Projet

Général

Profil

0001-misc-ellipsize-field-labels-used-in-snapshot-descrip.patch

Frédéric Péters, 15 avril 2021 14:42

Télécharger (3,33 ko)

Voir les différences:

Subject: [PATCH] misc: ellipsize field labels used in snapshot descriptions
 (#52236)

 tests/test_snapshots.py | 8 ++++++++
 wcs/admin/fields.py     | 6 +++---
 wcs/fields.py           | 4 ++++
 3 files changed, 15 insertions(+), 3 deletions(-)
tests/test_snapshots.py
175 175
    resp = resp.forms[0].submit().follow()
176 176
    assert pub.snapshot_class.select(order_by='-timestamp')[0].comment == 'New field "foobar"'
177 177

  
178
    resp.forms[0]['label'] = 'foo' * 30
179
    resp.forms[0]['type'] = 'string'
180
    resp = resp.forms[0].submit().follow()
181
    assert (
182
        pub.snapshot_class.select(order_by='-timestamp')[0].comment
183
        == 'New field "foofoofoofoofoofoofoofoofoo(…)"'
184
    )
185

  
178 186

  
179 187
def test_form_snapshot_history(pub, formdef_with_history):
180 188
    create_superuser(pub)
wcs/admin/fields.py
113 113
            if not widget:
114 114
                continue
115 115
            setattr(self.field, f.replace('-', '_'), widget.parse())
116
        self.objectdef.store(comment=_('Modification of field "%s"') % self.field.unhtmled_label)
116
        self.objectdef.store(comment=_('Modification of field "%s"') % self.field.ellipsized_label)
117 117

  
118 118
    def get_deletion_extra_warning(self):
119 119
        return _('Warning: this field data will be permanently deleted.')
......
174 174
                    del self.objectdef.fields[index]
175 175
            # delete current field
176 176
            del self.objectdef.fields[current_field_index]
177
            self.objectdef.store(comment=_('Deletion of field "%s"') % self.field.unhtmled_label)
177
            self.objectdef.store(comment=_('Deletion of field "%s"') % self.field.ellipsized_label)
178 178
            # redirect to the field that was above this one
179 179
            if self.objectdef.fields:
180 180
                if current_field_index == 0:
......
553 553
                label=label, type=field_type, id=self.objectdef.get_new_field_id()
554 554
            )
555 555
            self.objectdef.fields.insert(insertion_point, field)
556
            self.objectdef.store(comment=_('New field "%s"') % field.unhtmled_label)
556
            self.objectdef.store(comment=_('New field "%s"') % field.ellipsized_label)
557 557
        elif form.get_widget('form') and form.get_widget('form').parse():
558 558
            formdef = FormDef.get(form.get_widget('form').parse())
559 559
            for j, field in enumerate(formdef.fields):
wcs/fields.py
286 286
    def unhtmled_label(self):
287 287
        return force_str(html.unescape(force_text(re.sub('<.*?>', ' ', self.label or ''))).strip())
288 288

  
289
    @property
290
    def ellipsized_label(self):
291
        return ellipsize(self.unhtmled_label)
292

  
289 293
    def get_admin_attributes(self):
290 294
        return ['label', 'type', 'condition']
291 295

  
292
-