TICKET_BATCH_CREATE permission created for the component.
On Sat, Jun 21, 2014 at 8:39 AM, <[email protected]> wrote: > 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 > > > > -- Dammina Sahabandu. Committer for ASF (Apache Bloodhound) Undergraduate Department of Computer Science and Engineering University of Moratuwa Sri Lanka.
