0

我目前正在将我们的 TRAC 实例修改为 Bootstrap 3.1。但是,需要对 .py 文件进行一些模板化。我只知道如何自定义 .html 文件...只需添加类,稍微自定义 DOM 结构,然后将其放入我们的 TRAC 实例的模板文件夹中。

现在如何从插件自定义 .py 文件?我尝试将它们放在模板文件夹中,但没有任何反应。

我没有使用 Python 的经验,但是很容易破解并添加一个引导类,例如在里程碑.py 的标签中添加“col-sm-2 control-label”

    def __edit_project(self, data, req):
    milestone = data.get('milestone').name
    all_projects = self.__SmpModel.get_all_projects_filtered_by_conditions(req)
    id_project_milestone = self.__SmpModel.get_id_project_milestone(milestone)

    if id_project_milestone != None:
        id_project_selected = id_project_milestone[0]
    else:
        id_project_selected = None

    return tag.div(
                   tag.label(
                   class_="col-sm-2 control-label",
                   'Project',
                   tag.br(),
                   tag.select(
                   tag.option(),
                   [tag.option(row[1], selected=(id_project_selected == row[0] or None), value=row[0]) for row in sorted(all_projects, key=itemgetter(1))],
                   name="project")
                   ),
                   class_="field")
4

1 回答 1

0

再次编译插件对我有用。在特定 .py 文件上添加引导类后,以下是我执行的步骤/命令:

在我正在编辑的插件的特定 setup.py 所在的 TRAC 环境插件目录中,构建 .egg 文件,例如

tracproject/plugins_source/sampleplugin: python setup.py bdist_egg

然后我在插件目录中重命名了插件的原始 .egg 文件,例如

tracproject/plugins/sampleplugin/: mv sampleplugin.egg sampleplugin.egg.old

之后,我将新生成的 .egg 文件复制到插件目录,例如

tracproject/plugins_source/sampleplugin/dist: mv sampleplugin.egg ../../../plugins/

最后,我重新启动了我们的服务器,例如(但是,在某些情况下,不需要重新启动,因为更改会立即反映)

sudo service apache2 restart

谢谢@falkb!我看到你是我试图放置引导类的 SimpleMultiProject 插件的作者。:)

这是 simplemultiprojectplugin 里程碑.py 的片段,我在其中添加了样式

    def __edit_project(self, data, req):
    milestone = data.get('milestone').name
    all_projects = self.__SmpModel.get_all_projects_filtered_by_conditions(req)
    id_project_milestone = self.__SmpModel.get_id_project_milestone(milestone)

    if id_project_milestone != None:
        id_project_selected = id_project_milestone[0]
    else:
        id_project_selected = None

    return tag.div(
                   tag.label('Project', class_="control-label col-sm-2"),
                   tag.div(
                   tag.select(
                   tag.option(),
                   [tag.option(row[1], selected=(id_project_selected == row[0] or None), value=row[0]) for row in sorted(all_projects, key=itemgetter(1))],
                   name="project",
                   class_="form-control"),
                   class_="col-sm-5"),
                   class_="form-group")
于 2014-07-14T03:47:02.337 回答