0002-misc-pass-menu-item-options-in-a-directory-34973.patch
wcs/backoffice/root.py | ||
---|---|---|
57 | 57 |
('management/', N_('Management')), |
58 | 58 |
('forms/', N_('Forms Workshop')), |
59 | 59 |
('workflows/', N_('Workflows Workshop')), |
60 |
('users/', N_('Users'), roles.is_visible),
|
|
61 |
('roles/', N_('Roles'), roles.is_visible),
|
|
60 |
('users/', N_('Users'), {'check_display_function': roles.is_visible}),
|
|
61 |
('roles/', N_('Roles'), {'check_display_function': roles.is_visible}),
|
|
62 | 62 |
('categories/', N_('Categories')), |
63 |
('bounces/', N_('Bounces'), bounces.is_visible),
|
|
63 |
('bounces/', N_('Bounces'), {'check_display_function': bounces.is_visible}),
|
|
64 | 64 |
('settings/', N_('Settings')), |
65 | 65 |
] |
66 | 66 | |
... | ... | |
239 | 239 |
backoffice_url += '/' |
240 | 240 |
for item in self.menu_items: |
241 | 241 |
if len(item) == 2: |
242 |
item = list(item) + [None]
|
|
243 |
k, v, display_function = item
|
|
242 |
item = list(item) + [{}]
|
|
243 |
k, v, options = item
|
|
244 | 244 |
slug = k.strip(str('/')) |
245 | 245 |
if not slug: |
246 | 246 |
continue |
247 |
display_function = options.get('check_display_function') |
|
247 | 248 |
if display_function and not display_function(slug): |
248 | 249 |
continue |
249 | 250 |
if not self.is_accessible(slug): |
wcs/qommon/backoffice/root.py | ||
---|---|---|
27 | 27 |
setattr(cls, urlname, directory) |
28 | 28 | |
29 | 29 |
@classmethod |
30 |
def register_menu_item(cls, url, title, check_display_function=None):
|
|
30 |
def register_menu_item(cls, url, title, **options):
|
|
31 | 31 |
for i, v in enumerate(cls.menu_items): |
32 | 32 |
if v[0] == url: |
33 | 33 |
del cls.menu_items[i] |
34 | 34 |
if title is None: |
35 | 35 |
# used to remove an item |
36 | 36 |
return |
37 |
cls.menu_items.append((url, title, check_display_function))
|
|
37 |
cls.menu_items.append((url, title, options))
|
|
38 | 38 | |
39 | 39 |
def _q_access(self): |
40 | 40 |
get_response().breadcrumb.append( ('backoffice/', _('Back Office')) ) |
wcs/qommon/ident/password.py | ||
---|---|---|
1202 | 1202 |
return False |
1203 | 1203 |
return True |
1204 | 1204 | |
1205 |
rdb.register_menu_item('accounts/', _('Accounts'), menu_entry_check_display) |
|
1205 |
rdb.register_menu_item('accounts/', _('Accounts'), |
|
1206 |
check_display_function=menu_entry_check_display) |
|
1206 | 1207 | |
1207 | 1208 | |
1208 | 1209 |
class AccountDirectory(Directory): |
1209 |
- |