tracking code: don't display form if support os disabled everywhere

This commit is contained in:
Frédéric Péters 2015-02-24 14:58:53 +01:00
parent 6c9bc73d6e
commit 4b014889df
2 changed files with 17 additions and 9 deletions

View File

@ -326,6 +326,14 @@ def test_form_invalid_tracking_code():
formdef.enable_tracking_codes = True
formdef.store()
# create a secondary formdef, to always have the tracking code form
# displayed on homepage
formdef2 = FormDef()
formdef2.name = 'test2'
formdef2.fields = []
formdef2.enable_tracking_codes = True
formdef2.store()
formdata = formdef.data_class()()
formdata.data = {'0': 'foobar'}
formdata.store()

View File

@ -1010,7 +1010,15 @@ class RootDirectory(AccessControlled, Directory):
r += message
r += htmltext('</div>')
if FormDef.count():
if self.category:
formdefs = FormDef.select(lambda x: x.category_id == self.category.id,
order_by='name', ignore_errors=True)
else:
formdefs = FormDef.select(order_by='name', ignore_errors=True)
formdefs = [x for x in formdefs if (not x.is_disabled() or x.disabled_redirection)]
if any((x for x in formdefs if x.enable_tracking_codes)):
r += htmltext('<div id="side">')
r += htmltext('<div id="tracking-code">')
r += htmltext('<h3>%s</h3>') % _('Tracking code')
@ -1021,14 +1029,6 @@ class RootDirectory(AccessControlled, Directory):
r += htmltext('</div>')
r += htmltext('</div> <!-- #side -->')
if self.category:
formdefs = FormDef.select(lambda x: (
x.category_id == self.category.id and (not x.is_disabled() or x.disabled_redirection)),
order_by = 'name')
else:
formdefs = FormDef.select(lambda x: not x.is_disabled() or x.disabled_redirection, order_by = 'name',
ignore_errors=True)
list_forms, advertised_forms = self.get_list_of_forms(formdefs, user)
if formdefs and not list_forms and not advertised_forms: