Projet

Général

Profil

0001-admin-factor-anchored-field-redirection-43580.patch

Frédéric Péters, 03 juin 2020 15:26

Télécharger (2,78 ko)

Voir les différences:

Subject: [PATCH] admin: factor anchored field redirection (#43580)

 wcs/admin/fields.py | 26 +++++++++++---------------
 1 file changed, 11 insertions(+), 15 deletions(-)
wcs/admin/fields.py
102 102
    def get_deletion_extra_warning(self):
103 103
        return _('Warning: this field data will be permanently deleted.')
104 104

  
105
    def redirect_field_anchor(self, field):
106
        anchor = '#itemId_%s' % field.id if field else ''
107
        if self.page_id:
108
            return redirect('../%s' % anchor)
109
        else:
110
            return redirect('../../fields/%s' % anchor)
111

  
105 112
    def delete(self):
106 113
        form = Form(enctype='multipart/form-data')
107 114
        ellipsized_field_label = misc.ellipsize(self.field.unhtmled_label, 60)
......
114 121
        form.add_submit('delete', _('Submit'))
115 122
        form.add_submit("cancel", _("Cancel"))
116 123
        if form.get_widget('cancel').parse():
117
            if self.page_id:
118
                return redirect('../#itemId_%s' % self.field.id)
119
            else:
120
                return redirect('../../fields/#itemId_%s' % self.field.id)
124
            return self.redirect_field_anchor(self.field)
121 125
        if not form.is_submitted() or form.has_errors():
122 126
            get_response().breadcrumb.append(('delete', _('Delete')))
123 127
            self.html_top(title = _('Delete Field'))
......
135 139
                    above_field = self.objectdef.fields[0]
136 140
                else:
137 141
                    above_field = self.objectdef.fields[field_index-1]
138
                anchor = '#itemId_%s' % above_field.id
139 142
            else:
140
                anchor = ''
141
            if self.page_id:
142
                return redirect('../' + anchor)
143
            else:
144
                return redirect('../../fields/' + anchor)
143
                above_field = None
144
            return self.redirect_field_anchor(above_field)
145 145

  
146 146
    def duplicate(self):
147 147
        field_pos = self.objectdef.fields.index(self.field)
......
151 151
        new_field.id = self.objectdef.get_new_field_id()
152 152
        fields.insert(field_pos+1, new_field)
153 153
        self.objectdef.store()
154
        anchor = '#itemId_%s' % new_field.id
155
        if self.page_id:
156
            return redirect('../' + anchor)
157
        else:
158
            return redirect('../../fields/' + anchor)
154
        return self.redirect_field_anchor(new_field)
159 155

  
160 156

  
161 157
class FieldsPagesDirectory(Directory):
162
-