backoffice: include all pages from admin/ (#6726)
This commit is contained in:
parent
df6e6df0b2
commit
ef37406330
|
@ -42,8 +42,15 @@ from wcs.formdef import FormDef
|
|||
|
||||
from wcs.forms.backoffice import FormDefUI
|
||||
|
||||
import wcs.admin.bounces
|
||||
import wcs.admin.categories
|
||||
import wcs.admin.forms
|
||||
import wcs.admin.logger
|
||||
import wcs.admin.roles
|
||||
import wcs.admin.settings
|
||||
import wcs.admin.users
|
||||
import wcs.admin.workflows
|
||||
|
||||
from wcs import data_sources
|
||||
|
||||
from wcs.api import get_user_from_api_query_string
|
||||
|
@ -243,11 +250,27 @@ class WorkflowsDirectory(wcs.admin.workflows.WorkflowsDirectory):
|
|||
class RootDirectory(BackofficeRootDirectory):
|
||||
_q_exports = ['', 'management', 'pending', 'statistics']
|
||||
|
||||
bounces = wcs.admin.bounces.BouncesDirectory()
|
||||
categories = wcs.admin.categories.CategoriesDirectory()
|
||||
forms = wcs.admin.forms.FormsDirectory()
|
||||
logger = wcs.admin.logger.LoggerDirectory()
|
||||
roles = wcs.admin.roles.RolesDirectory()
|
||||
settings = wcs.admin.settings.SettingsDirectory()
|
||||
users = wcs.admin.users.UsersDirectory()
|
||||
workflows = wcs.admin.workflows.WorkflowsDirectory()
|
||||
|
||||
menu_items = [
|
||||
('management', N_('Management')),
|
||||
('forms/', N_('Forms'), FormsDirectory.is_accessible),
|
||||
('workflows/', N_('Workflows'), WorkflowsDirectory.is_accessible),
|
||||
('/', N_('WCS Form Server'))]
|
||||
('forms/', N_('Forms Workshop')),
|
||||
('workflows/', N_('Workflows Workshop')),
|
||||
('users/', N_('Users')),
|
||||
('roles/', N_('Roles')),
|
||||
('categories/', N_('Categories')),
|
||||
('logger/', N_('Logs')),
|
||||
('bounces/', N_('Bounces')),
|
||||
('settings/', N_('Settings')),
|
||||
('/', N_('WCS Form Server'))
|
||||
]
|
||||
|
||||
def get_intro_text(self):
|
||||
return _('''Welcome.''')
|
||||
|
@ -265,8 +288,6 @@ class RootDirectory(BackofficeRootDirectory):
|
|||
'categories', 'settings', 'management'):
|
||||
# limit this space to menu entries that have icons.
|
||||
continue
|
||||
if display_function and not display_function(k):
|
||||
continue
|
||||
r += htmltext('<li class="zone-%s"><a href="%s">') % (k.strip('/'), k)
|
||||
if callable(v):
|
||||
r += v()
|
||||
|
@ -501,13 +522,32 @@ class RootDirectory(BackofficeRootDirectory):
|
|||
return redirect('.')
|
||||
|
||||
def _q_lookup(self, component):
|
||||
if component == 'forms':
|
||||
return FormsDirectory()
|
||||
if component == 'workflows':
|
||||
return WorkflowsDirectory()
|
||||
|
||||
if component in [str(x[0]).strip('/') for x in self.menu_items]:
|
||||
if not is_accessible(component):
|
||||
raise errors.AccessForbiddenError()
|
||||
return getattr(self, component)
|
||||
return FormPage(component)
|
||||
|
||||
def get_menu_items(self):
|
||||
if not get_request().user:
|
||||
return self.menu_items
|
||||
user_roles = set(get_request().user.roles or [])
|
||||
if not get_cfg('admin-permissions', {}):
|
||||
return self.menu_items
|
||||
menu_items = self.menu_items[:]
|
||||
for item in menu_items:
|
||||
if len(item) == 2:
|
||||
item = list(item) + [None]
|
||||
k, v, display_function = item
|
||||
k = k.strip(str('/'))
|
||||
if not k:
|
||||
continue
|
||||
if display_function and not display_function(k):
|
||||
continue
|
||||
if is_accessible(k):
|
||||
continue
|
||||
menu_items.remove((k+'/', v))
|
||||
return menu_items
|
||||
|
||||
class FakeField(object):
|
||||
def __init__(self, id, type_, label):
|
||||
|
|
Loading…
Reference in New Issue