[[PageOutline(2-5,Contents,pullout)]] = SimpleMultiProjectPlugin = == Description == Lets you easily '''manage multiple projects with one Trac instance'''. * This implements the idea of [T:wiki:TracMultipleProjects/SingleEnvironment]. * 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'. Still an experimental version, feedback much appreciated. 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 [T:milestone:0.14-multiproject Trac 0.14]. == Plan == work in progress: [[TicketQuery(component=SimpleMultiProjectPlugin&keywords$=planned&status=assigned|reopened)]] seems it works, now testing: [[TicketQuery(component=SimpleMultiProjectPlugin&keywords=~planned&keywords=~testing)]] still just an idea: [[TicketQuery(component=SimpleMultiProjectPlugin&keywords$=planned&status!=assigned|reopened)]] == Technical thoughts == This plugin adds a new ressource 'project' implemented by database table: 1. smp_project: a list of all defined projects Actually, most database tables of Trac core related to ressources 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 ressource table but rather by adding several mapping tables smp_[ressource]_project, each one mapping a certain ressource 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 == '''''Admin Interface''''': [[BR]] [[Image(admin_project.png)]] ---- '''''Add project summary and description. This is displayed on the roadmap page then''''': [[BR]] [[Image(admin_projects_modify.png)]] ---- '''''Associate a milestone in a project''''': [[BR]] [[Image(http://trac-hacks.org/attachment/wiki/SimpleMultiProjectPlugin/edit_milestone.png?format=raw,center)]] ---- '''''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''''': [[BR]] [[Image(http://trac-hacks.org/attachment/wiki/SimpleMultiProjectPlugin/roadmap_projects_filter.png?format=raw,center)]] ---- '''''display only tickets in the timeline of projects chosen in the filter box (adapted from TimelineComponentFilterPlugin)''''': [[BR]] [[Image(http://trac-hacks.org/attachment/wiki/SimpleMultiProjectPlugin/timeline_projects_filter.png?format=raw,center)]] == Bugs/Feature Requests == Existing bugs and feature requests for SimpleMultiProjectPlugin are [report:9?COMPONENT=SimpleMultiProjectPlugin here]. If you have any issues, create a [http://trac-hacks.org/newticket?component=SimpleMultiProjectPlugin&owner=crossroad new ticket]. == Download == Download the zipped source from [download:simplemultiprojectplugin here]. == Source == You can check out SimpleMultiProjectPlugin from [http://trac-hacks.org/svn/simplemultiprojectplugin here] using Subversion, or [source:simplemultiprojectplugin browse the source] with Trac. == Installation == 1. Add a custom ticket field 'project' in your trac.ini to give tickets the information to which project they belong. Milestones selection depends on that as well. {{{ [ticket-custom] project = text 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 }}} == Recent Changes == [[ChangeLog(simplemultiprojectplugin, 3)]] == Author/Contributors == '''Author:''' [wiki:crossroad], [wiki:falkb], [wiki:thomasd] [[BR]] '''Maintainer:''' [wiki:crossroad] [[BR]] '''Contributors:'''