formdata: publish category variables in lazy mode (#30442)

This commit is contained in:
Frédéric Péters 2019-02-07 09:48:13 +01:00
parent c3c0d5745c
commit 1bdb38ad5f
2 changed files with 9 additions and 0 deletions

View File

@ -11,6 +11,7 @@ from qommon.template import Template
from qommon.form import PicklableUpload
from wcs.qommon.http_request import HTTPRequest
from wcs import fields, formdef
from wcs.categories import Category
from wcs.conditions import Condition
from wcs.formdef import FormDef
from wcs.formdata import Evolution
@ -42,12 +43,17 @@ def pub(request):
pub.write_cfg()
FormDef.wipe()
Category.wipe()
cat = Category(name='test category')
cat.store()
global formdef
formdef = FormDef()
formdef.name = 'foobar'
formdef.url_name = 'foobar'
formdef.fields = []
formdef.category_id = cat.id
formdef.store()
return pub
@ -63,6 +69,7 @@ def test_basic(pub):
assert substvars.get('form_status') == 'Unknown'
assert substvars.get('form_name') == 'foobar'
assert substvars.get('form_slug') == 'foobar'
assert substvars.get('category_name') == 'test category'
def test_saved(pub):
formdef.data_class().wipe()

View File

@ -783,6 +783,8 @@ class FormData(StorableObject):
'form': LazyFormData(self),
'attachments': AttachmentsSubstitutionProxy(self),
})
if self.formdef.category:
variables.update(self.formdef.category.get_substitution_variables(minimal=minimal))
if minimal:
return variables