0

現在、TRAC インスタンスを Bootstrap 3.1 に変更しています。ただし、.py ファイルに対していくつかのテンプレートを作成する必要があります。私は .html ファイルをカスタマイズする方法しか知りません...クラスを追加し、DOM 構造を少しカスタマイズしてから、TRAC インスタンスのテンプレート フォルダーに配置します。

プラグインから .py ファイルをカスタマイズするのはどうですか? テンプレートフォルダーに入れてみましたが、何も起こりませんでした。

私は Python の経験がありませんでしたが、ハックしてブートストラップ クラスを追加するだけで簡単に実行できます。たとえば、milestone.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 環境の plugins ディレクトリで、.egg ファイルをビルドします。

tracproject/plugins_source/sampleplugin: python setup.py bdist_egg

次に、プラグイン ディレクトリにあるプラグインの元の .egg ファイルの名前を変更しました。

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

その後、新しく生成された .egg ファイルを plugins ディレクトリにコピーしました。

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

最後に、サーバーを再起動するなどしました(ただし、変更がすぐに反映されるため、再起動する必要がない場合がありました)。

sudo service apache2 restart

ありがとう@falkb!ブートストラップ クラスを配置しようとしていた SimpleMultiProject プラグインの作成者であることがわかりました。:)

これは、スタイリングを追加した simplemultiprojectplugin milestone.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 に答える