Projet

Général

Profil

0001-admin-factor-the-roles-selection-dialog-for-future-u.patch

Frédéric Péters, 19 juillet 2015 15:13

Télécharger (2,51 ko)

Voir les différences:

Subject: [PATCH] admin: factor the roles selection dialog for future uses
 (#7873)

 wcs/admin/forms.py | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)
wcs/admin/forms.py
441 441
            self.formdef.store()
442 442
            return redirect('.')
443 443

  
444
    def roles(self):
444
    def _roles_selection(self, title, attribute, description=None):
445 445
        form = Form(enctype='multipart/form-data')
446
        form.add(WidgetList, 'roles', title=_('User Roles'), element_type=SingleSelectWidget,
447
                value=self.formdef.roles,
446
        form.add(WidgetList, 'roles', element_type=SingleSelectWidget,
447
                value=getattr(self.formdef, attribute),
448 448
                add_element_label = _('Add Role'),
449 449
                element_kwargs = {str('render_br'): False,
450 450
                str('options'): [(None, str('---')),
......
458 458
            get_response().breadcrumb.append( ('roles', _('User Roles')) )
459 459
            self.html_top(title=self.formdef.name)
460 460
            r = TemplateIO(html=True)
461
            r += htmltext('<h2>%s</h2>') % _('Roles')
462
            r += htmltext('<p>%s</p>') % _('Select the roles that can access this form.')
461
            r += htmltext('<h2>%s</h2>') % title
462
            if description:
463
                r += htmltext('<p>%s</p>') % description
463 464
            r += form.render()
464 465
            return r.getvalue()
465 466
        else:
466
            roles = form.get_widget('roles').parse()
467
            if roles:
468
                self.formdef.roles = [x for x in roles if x]
469
            else:
470
                self.formdef.roles = []
467
            roles = form.get_widget('roles').parse() or []
468
            setattr(self.formdef, attribute, [x for x in roles if x])
471 469
            self.formdef.store()
472 470
            return redirect('.')
473 471

  
472
    def roles(self):
473
        return self._roles_selection(
474
                title=_('User Roles'),
475
                attribute='roles',
476
                description=_('Select the roles that can access this form.'))
477

  
474 478
    def title(self):
475 479
        form = Form(enctype='multipart/form-data')
476 480
        form.add(StringWidget, 'name', title=_('Form Title'), required=True,
477
-