# HG changeset patch # User cmlenz # Date 1120561937 0 # Node ID 1d4fa4c32afac8c65e93cd8b64162e383b76dc6a # Parent 6d7753ea179811aad43229fd40a616b45438e858 Add template and static resources, hooked up using the new {{{ITemplateProvider}}} extension point in Trac. diff --git a/bitten/model.py b/bitten/model.py --- a/bitten/model.py +++ b/bitten/model.py @@ -158,6 +158,19 @@ exists = property(fget=lambda self: self.id is not None) + def delete(self, db=None): + if not db: + db = self.env.get_db_cnx() + handle_ta = True + else: + handle_ta = False + + cursor = db.cursor() + cursor.execute("DELETE FROM bitten_rule WHERE id=%s", (self.id,)) + cursor.execute("DELETE FROM bitten_platform WHERE id=%s", (self.id,)) + if handle_ta: + db.commit() + def insert(self, db=None): if not db: db = self.env.get_db_cnx() diff --git a/bitten/trac_ext/tests/web_ui.py b/bitten/trac_ext/tests/web_ui.py --- a/bitten/trac_ext/tests/web_ui.py +++ b/bitten/trac_ext/tests/web_ui.py @@ -33,6 +33,7 @@ PermissionSystem(self.env).grant_permission('joe', 'BUILD_VIEW') req = Mock(Request, path_info='/build', args={}, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -45,6 +46,7 @@ PermissionSystem(self.env).grant_permission('joe', 'BUILD_ADMIN') req = Mock(Request, path_info='/build', args={}, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -60,6 +62,7 @@ PermissionSystem(self.env).grant_permission('joe', 'BUILD_VIEW') req = Mock(Request, path_info='/build/test', args={}, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -76,6 +79,7 @@ PermissionSystem(self.env).grant_permission('joe', 'BUILD_ADMIN') req = Mock(Request, path_info='/build/test', args={}, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -87,6 +91,7 @@ PermissionSystem(self.env).grant_permission('joe', 'BUILD_ADMIN') req = Mock(Request, path_info='/build', args={'action': 'new'}, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -106,6 +111,7 @@ args={'action': 'new', 'name': 'test', 'active': 'on', 'label': 'Test', 'path': 'test/trunk', 'description': 'Bla bla'}) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -129,6 +135,7 @@ redirect=redirect, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe'), args={'action': 'new', 'cancel': '1', 'name': 'test'}) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -145,6 +152,7 @@ PermissionSystem(self.env).grant_permission('joe', 'BUILD_ADMIN') req = Mock(Request, path_info='/build/test', args={'action': 'edit'}, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -168,6 +176,7 @@ args={'action': 'edit', 'name': 'foo', 'active': 'on', 'label': 'Test', 'path': 'test/trunk', 'description': 'Bla bla'}) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -197,6 +206,7 @@ redirect=redirect, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe'), args={'action': 'edit', 'cancel': '1'}) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -209,8 +219,10 @@ config.insert() PermissionSystem(self.env).grant_permission('joe', 'BUILD_ADMIN') - req = Mock(Request, path_info='/build/test', args={'action': 'new'}, + req = Mock(Request, path_info='/build/test', + args={'action': 'edit', 'new': '1'}, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -231,6 +243,7 @@ req = Mock(Request, method='POST', path_info='/build/test', redirect=redirect, args={'action': 'new', 'name': 'Test'}, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -250,6 +263,7 @@ req = Mock(Request, method='POST', path_info='/build/test', redirect=redirect, args={'action': 'new', 'cancel': '1'}, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -270,6 +284,7 @@ req = Mock(Request, path_info='/build/test', args={'action': 'edit', 'platform': platform.id}, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -297,6 +312,7 @@ 'name': 'Test'}, redirect=redirect, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) @@ -323,6 +339,7 @@ 'cancel': '1'}, redirect=redirect, hdf=HDFWrapper(), perm=PermissionCache(self.env, 'joe')) + req.hdf['htdocs_location'] = '/htdocs' module = BuildModule(self.env) assert module.match_request(req) diff --git a/bitten/trac_ext/web_ui.py b/bitten/trac_ext/web_ui.py --- a/bitten/trac_ext/web_ui.py +++ b/bitten/trac_ext/web_ui.py @@ -24,7 +24,8 @@ from trac.core import * from trac.Timeline import ITimelineEventProvider from trac.util import escape, pretty_timedelta -from trac.web.chrome import INavigationContributor, add_link +from trac.web.chrome import INavigationContributor, ITemplateProvider, \ + add_link, add_stylesheet from trac.web.main import IRequestHandler from trac.wiki import wiki_to_html from bitten.model import Build, BuildConfig, TargetPlatform @@ -32,144 +33,8 @@ class BuildModule(Component): - implements(INavigationContributor, IRequestHandler, ITimelineEventProvider) - - build_cs = """ - -
- - - -Triggered by: Changeset [] of
-Built by: ( on )
-Completed: ( ago)
Took:
+ | + |
+ | + |
+ |
Property name | Match pattern | +|
---|---|---|
+ | + | + | +
Triggered by: Changeset [] of
+Built by: ( on )
+Completed: ( ago)
Took: