misc: ellipsize field labels used in snapshot descriptions (#52236)
This commit is contained in:
parent
b9d7aa9ee4
commit
cb8dcdeaaf
|
@ -176,6 +176,14 @@ def test_form_snapshot_comments(pub):
|
||||||
resp = resp.forms[0].submit().follow()
|
resp = resp.forms[0].submit().follow()
|
||||||
assert pub.snapshot_class.select(order_by='-timestamp')[0].comment == 'New field "foobar"'
|
assert pub.snapshot_class.select(order_by='-timestamp')[0].comment == 'New field "foobar"'
|
||||||
|
|
||||||
|
resp.forms[0]['label'] = 'foo' * 30
|
||||||
|
resp.forms[0]['type'] = 'string'
|
||||||
|
resp = resp.forms[0].submit().follow()
|
||||||
|
assert (
|
||||||
|
pub.snapshot_class.select(order_by='-timestamp')[0].comment
|
||||||
|
== 'New field "foofoofoofoofoofoofoofoofoo(…)"'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_form_snapshot_history(pub, formdef_with_history):
|
def test_form_snapshot_history(pub, formdef_with_history):
|
||||||
create_superuser(pub)
|
create_superuser(pub)
|
||||||
|
|
|
@ -113,7 +113,7 @@ class FieldDefPage(Directory):
|
||||||
if not widget:
|
if not widget:
|
||||||
continue
|
continue
|
||||||
setattr(self.field, f.replace('-', '_'), widget.parse())
|
setattr(self.field, f.replace('-', '_'), widget.parse())
|
||||||
self.objectdef.store(comment=_('Modification of field "%s"') % self.field.unhtmled_label)
|
self.objectdef.store(comment=_('Modification of field "%s"') % self.field.ellipsized_label)
|
||||||
|
|
||||||
def get_deletion_extra_warning(self):
|
def get_deletion_extra_warning(self):
|
||||||
return _('Warning: this field data will be permanently deleted.')
|
return _('Warning: this field data will be permanently deleted.')
|
||||||
|
@ -174,7 +174,7 @@ class FieldDefPage(Directory):
|
||||||
del self.objectdef.fields[index]
|
del self.objectdef.fields[index]
|
||||||
# delete current field
|
# delete current field
|
||||||
del self.objectdef.fields[current_field_index]
|
del self.objectdef.fields[current_field_index]
|
||||||
self.objectdef.store(comment=_('Deletion of field "%s"') % self.field.unhtmled_label)
|
self.objectdef.store(comment=_('Deletion of field "%s"') % self.field.ellipsized_label)
|
||||||
# redirect to the field that was above this one
|
# redirect to the field that was above this one
|
||||||
if self.objectdef.fields:
|
if self.objectdef.fields:
|
||||||
if current_field_index == 0:
|
if current_field_index == 0:
|
||||||
|
@ -553,7 +553,7 @@ class FieldsDirectory(Directory):
|
||||||
label=label, type=field_type, id=self.objectdef.get_new_field_id()
|
label=label, type=field_type, id=self.objectdef.get_new_field_id()
|
||||||
)
|
)
|
||||||
self.objectdef.fields.insert(insertion_point, field)
|
self.objectdef.fields.insert(insertion_point, field)
|
||||||
self.objectdef.store(comment=_('New field "%s"') % field.unhtmled_label)
|
self.objectdef.store(comment=_('New field "%s"') % field.ellipsized_label)
|
||||||
elif form.get_widget('form') and form.get_widget('form').parse():
|
elif form.get_widget('form') and form.get_widget('form').parse():
|
||||||
formdef = FormDef.get(form.get_widget('form').parse())
|
formdef = FormDef.get(form.get_widget('form').parse())
|
||||||
for j, field in enumerate(formdef.fields):
|
for j, field in enumerate(formdef.fields):
|
||||||
|
|
|
@ -286,6 +286,10 @@ class Field:
|
||||||
def unhtmled_label(self):
|
def unhtmled_label(self):
|
||||||
return force_str(html.unescape(force_text(re.sub('<.*?>', ' ', self.label or ''))).strip())
|
return force_str(html.unescape(force_text(re.sub('<.*?>', ' ', self.label or ''))).strip())
|
||||||
|
|
||||||
|
@property
|
||||||
|
def ellipsized_label(self):
|
||||||
|
return ellipsize(self.unhtmled_label)
|
||||||
|
|
||||||
def get_admin_attributes(self):
|
def get_admin_attributes(self):
|
||||||
return ['label', 'type', 'condition']
|
return ['label', 'type', 'condition']
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue