Author: dammina Date: Sat Jun 21 03:09:58 2014 New Revision: 1604311 URL: http://svn.apache.org/r1604311 Log: IPermissionRequestorMethods implemented
Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/theme.py Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/theme.py URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/theme.py?rev=1604311&r1=1604310&r2=1604311&view=diff ============================================================================== --- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/theme.py (original) +++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/theme.py Sat Jun 21 03:09:58 2014 @@ -685,7 +685,8 @@ application_version = get_distribution(' ################################################################################################################ class BatchCreateTicketDialog(Component): - implements(IRequestFilter, IRequestHandler, ITemplateStreamFilter) + implements(IRequestFilter, IRequestHandler, ITemplateStreamFilter, IPermissionRequestor) + bct_fields = ListOption('ticket', 'batch_create_fields', 'product, version, type', doc="""Multiple selection fields displayed in create ticket menu""", @@ -697,6 +698,10 @@ class BatchCreateTicketDialog(Component) add_domain(self.env.path, locale_dir) super(BatchCreateTicketDialog, self).__init__(*args, **kwargs) + # IPermissionRequestor methods + def get_permission_actions(self): + return ['TICKET_BATCH_CREATE'] + # IRequestFilter(Interface): def pre_process_request(self, req, handler): @@ -778,7 +783,7 @@ class BatchCreateTicketDialog(Component) """ try: tm = self._get_ticket_module() - req.perm.require('TICKET_CREATE') + req.perm.require('TICKET_BATCH_CREATE') attrs = dict([k[6:], v] for k, v in req.args.iteritems() if k.startswith('field_')) @@ -808,9 +813,11 @@ class BatchCreateTicketDialog(Component) #Template Stream Filter methods def filter_stream(self, req, method, filename, stream, data): - if (filename == 'bh_wiki_view.html') and (req.perm.has_permission('TICKET_ADMIN') or req.perm.has_permission('TICKET_CREATE')): + if (filename == 'bh_wiki_view.html') and (req.perm.has_permission('TICKET_ADMIN') or req.perm.has_permission('TICKET_BATCH_CREATE')): + #(req.perm.has_permission('TICKET_ADMIN') or req.perm.has_permission('TICKET_CREATE') #headers = {'summary':'Summary','description':'Description','product':'Product','status':'Status','priority':'Priority','type':'Type','owner':'Owner','cc':'Cc','keywords':'Keywords','milestone':'Milestone'} headers = {'summary':'Summary','description':'Description','product':'Product','status':'Status'} + products = self.env.db_query("SELECT * FROM bloodhound_product") xpath = '//div[@id="content"]' div = tag.div(class_="span12", id="batch_create_empty_table") text = tag.text("Batch Create Tickets") @@ -841,70 +848,36 @@ class BatchCreateTicketDialog(Component) td_row.append(input_description) tr_rows.append(td_row) elif header == "status": + statuses = ["accepted", "assigned", "closed", "new", "reopened"] td_row = tag.td() input_status = tag.select(id = "field-status"+str(num), name="field_status"+str(num)) - option = tag.option(value="accepted") - text = tag.text("accepted") - option.append(text) - input_status.append(option) - option = tag.option(value="assigned") - text = tag.text("assigned") - option.append(text) - input_status.append(option) - option = tag.option(value="closed") - text = tag.text("closed") - option.append(text) - input_status.append(option) - option = tag.option(value="new", selected="selected") - text = tag.text("new") - option.append(text) - input_status.append(option) - option = tag.option(value="reopened") - text = tag.text("reopened") - option.append(text) - input_status.append(option) + for status in statuses: + option = tag.option(value=str(status)) + text = tag.text(str(status)) + option.append(text) + input_status.append(option) td_row.append(input_status) tr_rows.append(td_row) elif header == "priority": + priorities = ["blocker", "critical", "major", "minor", "trivial"] td_row = tag.td() input_priority = tag.select(id = "field-priority"+str(num), name="field_priority"+str(num)) - option = tag.option(value="blocker") - text = tag.text("blocker") - option.append(text) - input_priority.append(option) - option = tag.option(value="critical") - text = tag.text("critical") - option.append(text) - input_priority.append(option) - option = tag.option(value="major") - text = tag.text("major") - option.append(text) - input_priority.append(option) - option = tag.option(value="minor", selected="selected") - text = tag.text("minor") - option.append(text) - input_priority.append(option) - option = tag.option(value="trivial") - text = tag.text("trivial") - option.append(text) - input_priority.append(option) + for priority in priorities: + option = tag.option(value=str(priority)) + text = tag.text(str(priority)) + option.append(text) + input_priority.append(option) td_row.append(input_priority) tr_rows.append(td_row) elif header=="type": + types = ["defect", "enhancement", "task"] td_row = tag.td() input_type = tag.select(id = "field-type"+str(num), name="field_type"+str(num)) - option = tag.option(value="defect") - text = tag.text("defect") - option.append(text) - input_type.append(option) - option = tag.option(value="enhancement") - text = tag.text("enhancement") - option.append(text) - input_type.append(option) - option = tag.option(value="task", selected="selected") - text = tag.text("task") - option.append(text) - input_type.append(option) + for type in types: + option = tag.option(value=str(type)) + text = tag.text(str(type)) + option.append(text) + input_type.append(option) td_row.append(input_type) tr_rows.append(td_row) elif header == "product": @@ -914,10 +887,11 @@ class BatchCreateTicketDialog(Component) text = tag.text("Choose...") option.append(text) input_product.append(option) - option = tag.option(value="@") - text = tag.text("Default") - option.append(text) - input_product.append(option) + for product in products: + option = tag.option(value=str(product[0])) + text = tag.text(str(product[1])) + option.append(text) + input_product.append(option) td_row.append(input_product) tr_rows.append(td_row) elif header == "owner": @@ -985,7 +959,7 @@ class BatchCreateTicketDialog(Component) except Exception, e: self.log.exception("Failure sending notification on creation " "of ticket #%s: %s" % (t.id, e)) - prev_max=t._get_max_ticket_id()[0][0]-num_of_tkts - created_tickets = t._get_tickets_by_id(prev_max+1) + start_id = self.env.db_query("SELECT MAX(uid) FROM ticket")[0][0] - num_of_tkts + created_tickets = self.env.db_query("SELECT * FROM ticket WHERE uid>%s"%start_id) return t['product'], t.id, created_tickets