export afterjob: fix listing exports in after jobs (#3390)

This commit is contained in:
Jérôme Schneider 2013-07-30 10:41:47 +02:00
parent ea105138fc
commit fd6acd165f
2 changed files with 13 additions and 5 deletions

View File

@ -382,6 +382,7 @@ class FormPage(Directory):
def csv(self):
fields = self.get_fields_from_query()
selected_filter = self.get_filter_from_query()
user = get_request().user
class Exporter:
def __init__(self, formpage, formdef, fields, selected_filter):
@ -396,7 +397,8 @@ class FormPage(Directory):
csv_output.writerow(self.formpage.csv_tuple_heading(self.fields))
items, total_count = FormDefUI(self.formdef).get_listing_items(self.selected_filter)
items, total_count = FormDefUI(self.formdef).get_listing_items(
self.selected_filter, user = user)
for filled in items:
csv_output.writerow(self.formpage.csv_tuple(self.fields, filled))
@ -471,6 +473,7 @@ class FormPage(Directory):
fields = self.get_fields_from_query()
selected_filter = self.get_filter_from_query()
user = get_request().user
class Exporter:
def __init__(self, formpage, formdef, fields, selected_filter):
@ -486,7 +489,8 @@ class FormPage(Directory):
for i, f in enumerate(self.formpage.csv_tuple_heading(self.fields)):
ws.write(0, i, f)
items, total_count = FormDefUI(self.formdef).get_listing_items(self.selected_filter)
items, total_count = FormDefUI(self.formdef).get_listing_items(
self.selected_filter, user = user)
for i, filled in enumerate(items):
for j, elem in enumerate(self.formpage.csv_tuple(fields, filled)):
@ -521,6 +525,7 @@ class FormPage(Directory):
def ods(self):
fields = self.get_fields_from_query()
selected_filter = self.get_filter_from_query()
user = get_request().user
class Exporter:
def __init__(self, formpage, formdef, fields, selected_filter):
@ -536,7 +541,8 @@ class FormPage(Directory):
for i, f in enumerate(self.formpage.csv_tuple_heading(self.fields)):
ws.write(0, i, f)
items, total_count = FormDefUI(self.formdef).get_listing_items(self.selected_filter)
items, total_count = FormDefUI(self.formdef).get_listing_items(
self.selected_filter, user = user)
for i, filled in enumerate(items):
for j, elem in enumerate(self.formpage.csv_tuple(fields, filled, hint='ods')):

View File

@ -121,7 +121,8 @@ class FormDefUI:
_('Next Page')
'</div>'
def get_listing_items(self, selected_filter='all', offset=None, count=None, query=None):
def get_listing_items(self, selected_filter='all', offset=None,
count=None, query=None, user=None):
if selected_filter == 'all':
item_ids = self.formdef.data_class().keys()
else:
@ -160,7 +161,8 @@ class FormDefUI:
items.reverse()
# XXX: this will 1) break the offset/count support, and 2) kill performance
items = [x for x in items if self.formdef.is_user_allowed_read(get_request().user, x)]
user = user or get_request().user
items = [x for x in items if self.formdef.is_user_allowed_read(user, x)]
return (items, total_count)