backoffice: create new comments as HTML (#35793)
This commit is contained in:
parent
a4f2fa1158
commit
d9d5fd2eed
|
@ -1583,6 +1583,22 @@ def test_form_edit_comment_field(pub):
|
|||
resp = app.get('/backoffice/forms/1/fields/1/')
|
||||
assert 'WysiwygTextWidget' not in resp.body
|
||||
|
||||
# check a new field is created with label as HTML, enclosing label in <p>
|
||||
resp = app.get('/backoffice/forms/1/fields/')
|
||||
resp.forms[0]['label'] = 'foobar'
|
||||
resp.forms[0]['type'] = 'Comment'
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/'
|
||||
assert FormDef.get(formdef.id).fields[-1].label == '<p>foobar</p>'
|
||||
|
||||
# unless label is already given as HTML
|
||||
resp = app.get('/backoffice/forms/1/fields/')
|
||||
resp.forms[0]['label'] = '<div>blah</div>'
|
||||
resp.forms[0]['type'] = 'Comment'
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.location == 'http://example.net/backoffice/forms/1/fields/'
|
||||
assert FormDef.get(formdef.id).fields[-1].label == '<div>blah</div>'
|
||||
|
||||
def test_form_edit_map_field(pub):
|
||||
create_superuser(pub)
|
||||
create_role()
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
from quixote import redirect
|
||||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
from quixote.html import TemplateIO, htmltext, htmlescape
|
||||
|
||||
from qommon import _
|
||||
from qommon.form import *
|
||||
|
@ -392,11 +392,15 @@ class FieldsDirectory(Directory):
|
|||
else:
|
||||
insertion_point = len(self.objectdef.fields)
|
||||
|
||||
if form.get_widget('label').parse() and form.get_widget('type').parse():
|
||||
field_type = form.get_widget('type').parse()
|
||||
if form.get_widget('label').parse() and field_type:
|
||||
label = form.get_widget('label').parse()
|
||||
if field_type == 'comment' and not label.startswith('<'):
|
||||
label = '<p>%s</p>' % htmlescape(label)
|
||||
self.objectdef.fields.insert(insertion_point,
|
||||
fields.get_field_class_by_type(form.get_widget('type').parse())(
|
||||
label = form.get_widget('label').parse(),
|
||||
type = form.get_widget('type').parse(),
|
||||
fields.get_field_class_by_type(field_type)(
|
||||
label=label,
|
||||
type=field_type,
|
||||
id =self.objectdef.get_new_field_id()))
|
||||
elif form.get_widget('form') and form.get_widget('form').parse():
|
||||
formdef = FormDef.get(form.get_widget('form').parse())
|
||||
|
|
Loading…
Reference in New Issue