api: use sql global views to get all user forms (when appropriate) (#18930)

This commit is contained in:
Frédéric Péters 2017-09-26 10:35:22 +02:00
parent 7521460768
commit 2cd42f04da
1 changed files with 11 additions and 6 deletions

View File

@ -505,12 +505,17 @@ class ApiUserDirectory(Directory):
return json.dumps(user_info)
def get_user_forms(self, user):
formdefs = FormDef.select()
user_forms = []
for formdef in formdefs:
user_forms.extend(formdef.data_class().get_with_indexed_value(
'user_id', user.id))
user_forms.sort(lambda x, y: cmp(x.receipt_time, y.receipt_time))
if get_publisher().is_using_postgresql() and not get_request().form.get('full') == 'on':
from wcs import sql
from qommon.storage import Equal
user_forms = sql.AnyFormData.select([Equal('user_id', str(user.id))], order_by='receipt_time')
else:
formdefs = FormDef.select()
user_forms = []
for formdef in formdefs:
user_forms.extend(formdef.data_class().get_with_indexed_value(
'user_id', user.id))
user_forms.sort(lambda x, y: cmp(x.receipt_time, y.receipt_time))
return user_forms
def drafts(self):