source: pullrequestsplugin/tags/pullrequestsplugin-1.1/pullrequests/core.py

Last change on this file was 16100, checked in by lucid, 7 years ago

PullRequestsPlugin: Trac 1.3 compatible IEnvironmentSetupParticipant.
Since trac:ticket:11605 the db parameters are not needed anymore.
Since trac:ticket:11901 they are not allowed anymore.
Since trac:ticket:8172 we can use helpers to simplify this a lot.

File size: 1.5 KB
Line 
1# -*- coding: utf-8 -*-
2
3import pkg_resources
4
5from trac.db.api import DatabaseManager
6from trac.core import *
7from trac.env import IEnvironmentSetupParticipant
8from trac.perm import IPermissionRequestor
9from trac.web.chrome import ITemplateProvider
10
11from pullrequests.model import SCHEMA
12
13
14PLUGIN_NAME = 'PullRequestsPlugin'
15PLUGIN_VERSION = 1
16
17
18class PullRequestsModule(Component):
19    """Pull Requests."""
20
21    implements(IPermissionRequestor, IEnvironmentSetupParticipant, ITemplateProvider)
22
23    # IPermissionRequestor methods
24   
25    def get_permission_actions(self):
26        actions = ['PULL_REQUEST']
27        return actions + [('PULL_REQUEST_ADMIN', actions)]
28
29    # IEnvironmentSetupParticipant
30
31    def environment_created(self):
32        dbm = DatabaseManager(self.env)
33        dbm.create_tables(SCHEMA)
34        dbm.set_database_version(PLUGIN_VERSION, PLUGIN_NAME)
35
36    def environment_needs_upgrade(self):
37        dbm = DatabaseManager(self.env)
38        return dbm.needs_upgrade(PLUGIN_VERSION, PLUGIN_NAME)
39
40    def upgrade_environment(self):
41        dbm = DatabaseManager(self.env)
42        if dbm.get_database_version(PLUGIN_NAME) == 0:
43            dbm.create_tables(SCHEMA)
44            dbm.set_database_version(PLUGIN_VERSION, PLUGIN_NAME)
45        else:
46            dbm.upgrade(PLUGIN_VERSION, PLUGIN_NAME, 'pullrequests.upgrades')
47
48    # ITemplateProvider methods
49   
50    def get_htdocs_dirs(self):
51        return []
52
53    def get_templates_dirs(self):
54        return [pkg_resources.resource_filename('pullrequests', 'templates')]
Note: See TracBrowser for help on using the repository browser.