wiki:SimpleMultiProjectPlugin

Version 55 (modified by falkb, 9 years ago) (diff)

survey

Manage multiple user projects with one Trac instance

Description

This plugin lets you easily manage multiple user projects with one Trac instance or, respectively, one Trac database (.db file).

This is not a meta project in front of several other Trac projects. It implements the idea of wiki:TracMultipleProjects/SingleEnvironment.

Key features:

  • Milestones and versions are assigned to their projects, and both are displayed on the roadmap. There are several possibilities to filter by projects on that page, and also the timeline.
  • Components can be assigned to all or only certain projects.
  • 'New Ticket' will just offer the associated milestones, versions and components of the chosen project. This requires a new custom-ticket field 'project'.
  • You can rectrict access to certain milestones, versions and tickets by defining members or non-members of a project.

This is already running stable in a real production environment.

Note: The Multiple Project feature in the sense of having a meta Trac project on top of several Trac projects is discussed in T:#130 and scheduled for Trac topic-multiproject which is eventually part of Trac next-dev-1.1.x.

Plan

In testing state:

No results

Work in progress:

No results

Still just an idea:

#10089
project-related timeline page filtering of wiki changes
#10152
Localization / translation support (L10N)
#11162
improve project selection widget
#11543
Per-project ticket.default_* settings

Technical thoughts

This plugin adds a new resource 'project' implemented by database table:

  1. smp_project: a list of all defined projects
    Actually, most database tables of Trac core related to resources would need a new column 'project_id'. This way tickets, components, milestones, versions or even wikis could attach to certain projects. Since a plugin just adds stuff but cannot change the core structure, it implements the new dimension 'project' not by adding a new column to each resource table but rather by adding several mapping tables smp_[resource]_project, each one mapping a certain resource to projects:
  2. smp_milestone_project: the association of milestones to projects
  3. smp_version_project: the association of versions to projects
  4. smp_component_project: the association of components to projects

Example

All actions are also possible with the trac-admin script. See trac-admin <your-trac-env> project help for the list of available commands.

Admin Interface:

project admin interface


Add project summary and description. This is displayed on the roadmap page then:

write project summary and description


Associate a milestone with a project:

  • Mapping milestones and versions to a project is supported
    • via main menu item "Admin" -> "Ticket System" -> "Milestones" / "Versions".
    • Another way is doing it from the Roadmap page:
      1. From the Roadmap Page, find the desired milestone/version and click it.
      2. Scroll to bottom of page and "Edit" the page. Select the project from the given combobox.
    • via trac-admin project script.
  • Note: "New Ticket" with a chosen project only offers milestones and versions mapped to that certain project.

Edit milestone


Group milestones and versions on the roadmap by project, show project summary and description in the header of the project box, and display only projects chosen in the filter box:

roadmap can display project summary+description; project filter displays milestones and versions of certain projects, only


Display only tickets in the timeline of projects chosen in the filter box (adapted from TimelineComponentFilterPlugin):

timeline filter demo

Bugs/Feature Requests

Existing bugs and feature requests for SimpleMultiProjectPlugin are here.

If you have any issues, create a new ticket.

defect

86 / 94

enhancement

47 / 62

task

10 / 10

Download

Download the zipped source from [download:simplemultiprojectplugin here].

Source

You can check out SimpleMultiProjectPlugin from here using Subversion, or browse the source with Trac.

Installation

  1. Add a custom ticket field 'project' in your trac.ini file to give tickets the information to which project they belong. Milestones selection depends on that as well.
    [ticket-custom]
    project = select
    project.label = Project
    project.value =
    
  2. Generate the plugin .egg file from sources
    python setup.py bdist_egg
    
  3. Copy the plugin to Trac, e.g.
    cp dist/SimpleMultiProject-0.0.1-py2.6.egg /instance_trac/plugins/
    
  4. Restart Apache. After installation of this plugin Trac needs a database upgrade!
    trac-admin /instance_trac/ upgrade
    
  5. Give permissions to certain users. Available permissions are:
    • PROJECT_SETTINGS_VIEW - you can see the list of projects with their description and their component mapping on the Admin panel
    • PROJECT_ADMIN - full access, you can also create and delete projects, and map to milestones, versions and components
  6. Since plugin version 0.4 we support project-wise restriction of resources to a subset of users (#11367). Switch on the plugin component ProjectTicketsPolicy to activate it, and add the following to your trac.ini file:
    [trac]
    permission_policies = ProjectTicketsPolicy, ... any other ...
    
    Define a comma-separated list of users or groups in 'Admin' -> 'Manage Projects' -> 'Projects' -> '<project name>' -> 'Restrict to users' to limit the access to certain projects, such as milestones, versions and tickets. For example, set
    • john, mary, group1, authenticated to restrict to this set of users
    • !, bob, anonymous, group2 to exclude from the project.

Recent Changes

18451 by rjollos on 2021-10-15 17:19:25
SimpleMultiProjectPlugin: Release 0.7.4

Refs #14055.

18105 by Cinc-th on 2021-03-28 09:25:59
SimpleMultiProjectPlugin: fixed Jinja2 errors.
18093 by Cinc-th on 2021-03-25 09:45:06
SimpleMultiProjectPlugin: fix for test case error with python 3.
18092 by Cinc-th on 2021-03-25 07:02:35
SimpleMultiProjectPlugin: fix for error with postgres when trying to get the id of the last created project from the database right after insertion of the record.

Closes #13955

18091 by Cinc-th on 2021-03-25 06:26:19
SimpleMultiProjectPlugin: added test case for version page template.

Refs #13974

(more)

Author/Contributors

Author: crossroad, falkb, thomasd, Cinc-th
Maintainer: Cinc-th
Contributors:

Attachments (8)

Download all attachments as: .zip