--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -77,15 +77,15 @@
ProjectRole.query.get(name='*anonymous')._id)
self.config.acl['comment'].append(
ProjectRole.query.get(name='*authenticated')._id)
- model.Globals(project_id=c.project._id, last_ticket_num=0, status_names='open,unread,accepted,pending,closed')
+ model.Globals(app_config_id=c.app.config._id, last_ticket_num=0, status_names='open,unread,accepted,pending,closed')
def uninstall(self, project):
"Remove all the plugin's artifacts from the database"
- project_id = {'project_id':c.project._id}
- # mapper(model.Ticket).remove(project_id)
- # mapper(model.Comment).remove(project_id)
- # mapper(model.Attachment).remove(project_id)
- # mapper(model.Globals).remove(project_id)
+ model.Attachment.query.remove({'metadata.app_config_id':c.app.config._id})
+ app_config_id = {'app_config_id':c.app.config._id}
+ model.Ticket.query.remove(app_config_id)
+ model.Comment.query.remove(app_config_id)
+ model.Globals.query.remove(app_config_id)
class RootController(object):
@@ -93,7 +93,7 @@
@with_trailing_slash
@expose('forgetracker.templates.index')
def index(self):
- tickets = model.Ticket.query.find(dict(project_id=c.project._id)).sort('ticket_num')
+ tickets = model.Ticket.query.find(dict(app_config_id=c.app.config._id)).sort('ticket_num')
return dict(tickets=tickets)
@expose('forgetracker.templates.search')
@@ -135,16 +135,16 @@
if request.method != 'POST':
raise Exception('save_new must be a POST request')
if ticket_num:
- ticket = model.Ticket.query.get(project_id=c.project._id,
+ ticket = model.Ticket.query.get(app_config_id=c.app.config._id,
ticket_num=int(ticket_num))
if not ticket:
raise Exception('Ticket number not found.')
del post_data['ticket_num']
else:
ticket = model.Ticket()
- ticket.project_id = c.project._id
+ ticket.app_config_id = c.app.config._id
ticket.custom_fields = dict()
- globals = model.Globals.query.get(project_id=c.project._id)
+ globals = model.Globals.query.get(app_config_id=c.app.config._id)
# FIX ME: need to lock around this increment or something
globals.last_ticket_num += 1
@@ -153,7 +153,7 @@
for k,v in post_data.iteritems():
setattr(ticket, k, v)
- redirect(str(ticket.ticket_num))
+ redirect(str(ticket.ticket_num)+'/')
class TicketController(object):
@@ -161,7 +161,7 @@
def __init__(self, ticket_num=None):
if ticket_num is not None:
self.ticket_num = int(ticket_num)
- self.ticket = model.Ticket.query.get(project_id=c.project._id,
+ self.ticket = model.Ticket.query.get(app_config_id=c.app.config._id,
ticket_num=self.ticket_num)
self.attachment = AttachmentsController(self.ticket)
self.comments = CommentController(self.ticket)
@@ -171,7 +171,7 @@
def index(self, **kw):
require(has_artifact_access('read', self.ticket))
if self.ticket is not None:
- globals = model.Globals.query.get(project_id=c.project._id)
+ globals = model.Globals.query.get(app_config_id=c.app.config._id)
return dict(ticket=self.ticket, globals=globals)
else:
redirect('not_found')
@@ -180,7 +180,7 @@
@expose('forgetracker.templates.edit_ticket')
def edit(self, **kw):
require(has_artifact_access('write', self.ticket))
- globals = model.Globals.query.get(project_id=c.project._id)
+ globals = model.Globals.query.get(app_config_id=c.app.config._id)
return dict(ticket=self.ticket, globals=globals)
@expose()
@@ -193,11 +193,11 @@
self.ticket.assigned_to = post_data['assigned_to']
self.ticket.status = post_data['status']
- globals = model.Globals.query.get(project_id=c.project._id)
+ globals = model.Globals.query.get(app_config_id=c.app.config._id)
if globals.custom_fields:
for field in globals.custom_fields.split(','):
self.ticket.custom_fields[field] = post_data[field]
- redirect('edit')
+ redirect('edit/')
@expose()
def attach(self, file_info=None):
@@ -209,7 +209,8 @@
with model.Attachment.create(
content_type=content_type,
filename=filename,
- ticket_id=self.ticket._id) as fp:
+ ticket_id=self.ticket._id,
+ app_config_id=c.app.config._id) as fp:
while True:
s = file_info.file.read()
if not s: break
@@ -290,7 +291,7 @@
@with_trailing_slash
@expose('forgetracker.templates.admin')
def index(self):
- globals = model.Globals.query.get(project_id=c.project._id)
+ globals = model.Globals.query.get(app_config_id=c.app.config._id)
return dict(app=self.app, globals=globals)
@expose()
@@ -299,12 +300,12 @@
@expose()
def set_status_names(self, **post_data):
- globals = model.Globals.query.get(project_id=c.project._id)
+ globals = model.Globals.query.get(app_config_id=c.app.config._id)
globals.status_names = post_data['status_names']
redirect('.')
@expose()
def set_custom_fields(self, **post_data):
- globals = model.Globals.query.get(project_id=c.project._id)
+ globals = model.Globals.query.get(app_config_id=c.app.config._id)
globals.custom_fields = post_data['custom_fields']
redirect('.')