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