0003-admin-use-backoffice-now-unified-menu-items-in-heade.patch
wcs/admin/bounces.py | ||
---|---|---|
24 | 24 |
from qommon import errors |
25 | 25 |
from qommon import misc |
26 | 26 |
from qommon.bounces import Bounce |
27 |
from qommon.admin.menu import html_top, command_icon |
|
27 |
from qommon.backoffice.menu import html_top |
|
28 |
from qommon.admin.menu import command_icon |
|
28 | 29 | |
29 | 30 |
from qommon.form import * |
30 | 31 |
wcs/admin/categories.py | ||
---|---|---|
20 | 20 | |
21 | 21 |
from wcs.categories import Category |
22 | 22 |
from qommon.form import * |
23 |
from qommon.admin.menu import html_top
|
|
23 |
from qommon.backoffice.menu import html_top
|
|
24 | 24 | |
25 | 25 |
from wcs.formdef import FormDef |
26 | 26 |
wcs/admin/fields.py | ||
---|---|---|
20 | 20 | |
21 | 21 |
from qommon.form import * |
22 | 22 |
from qommon import errors, misc |
23 |
from qommon.admin.menu import html_top, command_icon |
|
23 |
from qommon.backoffice.menu import html_top |
|
24 |
from qommon.admin.menu import command_icon |
|
24 | 25 | |
25 | 26 |
from wcs import fields |
26 | 27 |
from wcs.formdef import FormDef |
wcs/admin/forms.py | ||
---|---|---|
29 | 29 |
from qommon import misc |
30 | 30 |
from qommon.errors import * |
31 | 31 |
from qommon.form import * |
32 |
from qommon.admin.menu import html_top
|
|
32 |
from qommon.backoffice.menu import html_top
|
|
33 | 33 |
from qommon import get_logger |
34 | 34 | |
35 | 35 |
from qommon import tokens |
wcs/admin/menu.py | ||
---|---|---|
14 | 14 |
# You should have received a copy of the GNU General Public License |
15 | 15 |
# along with this program; if not, see <http://www.gnu.org/licenses/>. |
16 | 16 | |
17 |
from qommon.admin.menu import html_top, command_icon, error_page, get_vc_version |
|
17 |
from qommon.backoffice.menu import html_top |
|
18 |
from qommon.admin.menu import command_icon, error_page, get_vc_version |
wcs/admin/roles.py | ||
---|---|---|
20 | 20 | |
21 | 21 |
from qommon.form import * |
22 | 22 | |
23 |
from qommon.admin.menu import html_top
|
|
23 |
from qommon.backoffice.menu import html_top
|
|
24 | 24 | |
25 | 25 |
from wcs.roles import Role |
26 | 26 |
from wcs.formdef import FormDef |
wcs/admin/settings.py | ||
---|---|---|
38 | 38 |
from qommon.form import * |
39 | 39 |
from qommon.sms import SMS |
40 | 40 | |
41 |
from qommon.admin.menu import html_top, error_page |
|
41 |
from qommon.backoffice.menu import html_top |
|
42 |
from qommon.admin.menu import error_page |
|
42 | 43 |
from qommon.admin.cfg import cfg_submit |
43 | 44 |
from qommon.admin.emails import EmailsDirectory |
44 | 45 |
from qommon.admin.texts import TextsDirectory |
wcs/admin/users.py | ||
---|---|---|
27 | 27 |
import qommon.ident |
28 | 28 |
from qommon.form import * |
29 | 29 |
from qommon.admin.emails import EmailsDirectory |
30 |
from qommon.admin.menu import html_top, error_page |
|
30 |
from qommon.backoffice.menu import html_top |
|
31 |
from qommon.admin.menu import error_page |
|
31 | 32 | |
32 | 33 |
class UserUI(object): |
33 | 34 |
def __init__(self, user): |
wcs/admin/workflows.py | ||
---|---|---|
29 | 29 |
from qommon import errors |
30 | 30 |
from qommon import misc |
31 | 31 |
from qommon.form import * |
32 |
from qommon.admin.menu import html_top, command_icon |
|
32 |
from qommon.backoffice.menu import html_top |
|
33 |
from qommon.admin.menu import command_icon |
|
33 | 34 |
from qommon import get_logger |
34 | 35 | |
35 | 36 |
from wcs.workflows import * |
wcs/qommon/admin/emails.py | ||
---|---|---|
20 | 20 | |
21 | 21 |
from qommon.form import * |
22 | 22 |
from qommon import misc, get_cfg |
23 |
from qommon.admin.menu import html_top
|
|
23 |
from qommon.backoffice.menu import html_top
|
|
24 | 24 |
from qommon.admin.cfg import cfg_submit |
25 | 25 | |
26 | 26 |
class EmailsDirectory(Directory): |
wcs/qommon/admin/logger.py | ||
---|---|---|
22 | 22 |
from quixote.directory import Directory |
23 | 23 | |
24 | 24 |
from qommon import logger, errors |
25 |
from qommon.admin.menu import html_top, error_page |
|
25 |
from qommon.backoffice.menu import html_top |
|
26 |
from qommon.admin.menu import error_page |
|
26 | 27 | |
27 | 28 |
class ByUserDirectory(Directory): |
28 | 29 |
def _q_lookup(self, component): |
wcs/qommon/admin/menu.py | ||
---|---|---|
122 | 122 |
def get_vc_version(): |
123 | 123 |
return vc_version |
124 | 124 | |
125 |
def generate_header_menu(selected = None): |
|
126 |
return get_publisher().get_admin_root().generate_header_menu(selected=selected) |
|
127 | ||
128 |
def generate_user_info(): |
|
129 |
if not get_request().user: |
|
130 |
return '' |
|
131 | ||
132 |
try: |
|
133 |
username = get_session().get_user_object().display_name |
|
134 |
except: |
|
135 |
username = None |
|
136 |
raise |
|
137 | ||
138 |
r = TemplateIO(html=True) |
|
139 |
logout_url = get_publisher().get_root_url() + 'logout' |
|
140 |
r += htmltext('<ul class="user-info">') |
|
141 |
if username: |
|
142 |
r += htmltext('<li class="ui-name">%s</li>') % username |
|
143 |
if get_publisher().backoffice_directory_class: |
|
144 |
backoffice_url = get_publisher().get_root_url() + 'backoffice/' |
|
145 |
r += htmltext('<li><a href="%s">%s</a></li>') % (backoffice_url, _('backoffice')) |
|
146 |
r += htmltext('<li class="ui-logout"><a href="%s">%s</a></li>') % (logout_url, _('logout')) |
|
147 | ||
148 |
if get_publisher().admin_help_url and get_request().language in get_publisher().admin_help_url: |
|
149 |
help_url = get_publisher().admin_help_url[get_request().language] |
|
150 |
get_response().add_javascript(['jquery.js', 'jquery-ui.js', 'qommon.admin.js']) |
|
151 |
get_response().add_css_include('../js/smoothness/jquery-ui-1.10.0.custom.min.css') |
|
152 |
r += htmltext('<li class="ui-help"><a href="%s">%s</a></li>') % (help_url, _('help')) |
|
153 | ||
154 |
r += htmltext('</ul>') |
|
155 |
return r.getvalue() |
|
156 | ||
157 | ||
158 |
def html_top(section, title = None, scripts = None): |
|
159 |
header_menu = generate_header_menu(section) |
|
160 |
user_info = generate_user_info() |
|
161 |
subtitle = '' |
|
162 |
for s in get_publisher().get_admin_root().menu_items: |
|
163 |
if s[0] == section or s[0] == '%s/' % section: |
|
164 |
subtitle = _(s[1]) |
|
165 |
if not title: |
|
166 |
title = '' |
|
167 |
if not scripts: |
|
168 |
script = '' |
|
169 |
else: |
|
170 |
script = '\n'.join(['<script src="%s" type="text/javascript"></script>' % x for x in scripts]) |
|
171 | ||
172 |
org_name = get_cfg('sp', {}).get('organization_name', get_publisher().APP_NAME) |
|
173 |
site_name = get_cfg('misc', {}).get('sitename', org_name) |
|
174 |
if site_name: |
|
175 |
sitetitle = _('Administration of %s') % site_name |
|
176 |
else: |
|
177 |
sitetitle = _('Administration') |
|
178 |
if title: |
|
179 |
sitetitle += ' - ' |
|
180 | ||
181 |
admin_ezt = True |
|
182 |
get_response().filter.update(locals()) |
|
183 | ||
184 | 125 |
def command_icon(url, type, label = None, icon = None, popup = False): |
185 | 126 |
icons = { |
186 | 127 |
'edit': 'stock_edit_16.png', |
wcs/qommon/admin/settings.py | ||
---|---|---|
20 | 20 | |
21 | 21 |
from qommon.form import * |
22 | 22 |
from qommon.admin.cfg import cfg_submit |
23 |
from qommon.admin.menu import html_top
|
|
23 |
from qommon.backoffice.menu import html_top
|
|
24 | 24 | |
25 | 25 |
class SettingsDirectory(AccessControlled, Directory): |
26 | 26 |
def _q_access(self): |
wcs/qommon/admin/texts.py | ||
---|---|---|
23 | 23 | |
24 | 24 |
from qommon.form import * |
25 | 25 |
from qommon import misc, get_cfg, ezt |
26 |
from qommon.admin.menu import html_top, is_accessible |
|
26 |
from qommon.backoffice.menu import html_top |
|
27 |
from qommon.admin.menu import is_accessible |
|
27 | 28 | |
28 | 29 | |
29 | 30 |
class TextsDirectory(Directory): |
wcs/qommon/ident/idp.py | ||
---|---|---|
38 | 38 |
from qommon import template |
39 | 39 |
from qommon import errors |
40 | 40 | |
41 |
from qommon.admin.menu import html_top as admin_html_top
|
|
41 |
from qommon.backoffice.menu import html_top
|
|
42 | 42 |
from qommon.admin.menu import command_icon |
43 | 43 | |
44 | 44 |
from base import AuthMethod |
... | ... | |
226 | 226 |
return Directory._q_traverse(self, path) |
227 | 227 | |
228 | 228 |
def _q_index(self): |
229 |
admin_html_top('settings', title = _(self.title))
|
|
229 |
html_top('settings', title = _(self.title)) |
|
230 | 230 |
r = TemplateIO(html=True) |
231 | 231 |
r += htmltext('<h2>%s</h2>') % _('Identity Providers') |
232 | 232 |
r += htmltext('<ul id="nav-idp-admin">\n') |
... | ... | |
319 | 319 |
form = self.get_form() |
320 | 320 | |
321 | 321 |
if not ('submit' in get_request().form and form.is_submitted()) or form.has_errors(): |
322 |
admin_html_top('settings', title = _('New Identity Provider'))
|
|
322 |
html_top('settings', title = _('New Identity Provider')) |
|
323 | 323 |
r = TemplateIO(html=True) |
324 | 324 |
r += htmltext('<h2>%s</h2>') % _('New Identity Provider') |
325 | 325 |
r += form.render() |
... | ... | |
497 | 497 |
os.unlink(metadata_pathname) |
498 | 498 | |
499 | 499 |
get_response().breadcrumb.append(('new_remote', _('New'))) |
500 |
admin_html_top('settings', title = _('New Identity Provider'))
|
|
500 |
html_top('settings', title = _('New Identity Provider')) |
|
501 | 501 |
r = TemplateIO(html=True) |
502 | 502 |
r += htmltext('<h2>%s</h2>') % _('New Identity Provider') |
503 | 503 |
r += form.render() |
... | ... | |
582 | 582 |
misc.get_abs_path(self.idp['metadata']), |
583 | 583 |
misc.get_abs_path(self.idp.get('publickey')), |
584 | 584 |
misc.get_abs_path(self.idp.get('cacertchain', None))) |
585 |
admin_html_top('settings', title = _('Identity Provider'))
|
|
585 |
html_top('settings', title = _('Identity Provider')) |
|
586 | 586 |
r = TemplateIO(html=True) |
587 | 587 |
r += htmltext('<h2>%s - %s</h2>') % (_('Identity Provider'), p.providerId) |
588 | 588 |
r += htmltext('<div class="form">') |
... | ... | |
608 | 608 |
form = AdminIDPDir.get_form(self.idp) |
609 | 609 | |
610 | 610 |
if not ('submit' in get_request().form and form.is_submitted()) or form.has_errors(): |
611 |
admin_html_top('settings', title = _('Edit Identity Provider'))
|
|
611 |
html_top('settings', title = _('Edit Identity Provider')) |
|
612 | 612 |
r = TemplateIO(html=True) |
613 | 613 |
r += htmltext('<h2>%s</h2>') % _('Edit Identity Provider') |
614 | 614 |
r += form.render() |
... | ... | |
635 | 635 |
if form.get_widget('cancel').parse(): |
636 | 636 |
return redirect('..') |
637 | 637 |
if not form.is_submitted() or form.has_errors(): |
638 |
admin_html_top('settings', title = _('Identity Provider'))
|
|
638 |
html_top('settings', title = _('Identity Provider')) |
|
639 | 639 |
r = TemplateIO(html=True) |
640 | 640 |
if p: |
641 | 641 |
r += htmltext('<h2>%s %s</h2>') % (_('Deleting'), p.providerId) |
... | ... | |
779 | 779 |
return Directory._q_traverse(self, path) |
780 | 780 | |
781 | 781 |
def _q_index(self): |
782 |
admin_html_top('settings', title = _(self.title))
|
|
782 |
html_top('settings', title = _(self.title)) |
|
783 | 783 |
r = TemplateIO(html=True) |
784 | 784 |
r += htmltext('<h2>SAML 2.0</h2>') |
785 | 785 |
r += htmltext('<dl> <dt><a href="sp">%s</a></dt> <dd>%s</dd>') % ( |
... | ... | |
879 | 879 |
else: |
880 | 880 |
return redirect('.') |
881 | 881 | |
882 |
admin_html_top('settings', title = _('Service Provider Configuration'))
|
|
882 |
html_top('settings', title = _('Service Provider Configuration')) |
|
883 | 883 |
r = TemplateIO(html=True) |
884 | 884 |
r += htmltext('<h2>%s</h2>') % _('Service Provider Configuration') |
885 | 885 |
r += form.render() |
... | ... | |
1030 | 1030 |
return redirect('.') |
1031 | 1031 | |
1032 | 1032 |
get_response().breadcrumb.append(('identities', _('Identities Interface'))) |
1033 |
admin_html_top('settings', title = _('Identities Interface'))
|
|
1033 |
html_top('settings', title = _('Identities Interface')) |
|
1034 | 1034 |
r = TemplateIO(html=True) |
1035 | 1035 |
r += htmltext('<h2>%s</h2>') % _('Identities Interface') |
1036 | 1036 |
r += form.render() |
... | ... | |
1059 | 1059 |
if request.form.has_key('cancel') or request.form.has_key('done'): |
1060 | 1060 |
return redirect('..') |
1061 | 1061 | |
1062 |
admin_html_top('users', title = _('Email with Identification Token'))
|
|
1062 |
html_top('users', title = _('Email with Identification Token')) |
|
1063 | 1063 |
r = TemplateIO(html=True) |
1064 | 1064 |
r += htmltext('<h2>%s</h2>') % _('Email with Identification Token') |
1065 | 1065 |
wcs/qommon/ident/password.py | ||
---|---|---|
33 | 33 |
from qommon import tokens |
34 | 34 |
from qommon import errors |
35 | 35 | |
36 |
from qommon.admin.menu import html_top as admin_html_top |
|
37 | 36 |
from qommon.admin.menu import command_icon |
38 | 37 | |
39 |
from qommon.backoffice.menu import html_top as backoffice_html_top
|
|
38 |
from qommon.backoffice.menu import html_top |
|
40 | 39 | |
41 | 40 |
from qommon.admin.emails import EmailsDirectory |
42 | 41 |
from qommon.admin.texts import TextsDirectory |
... | ... | |
684 | 683 |
_q_exports = ['', 'passwords', 'identities', ('import', 'p_import')] |
685 | 684 | |
686 | 685 |
def _q_index(self): |
687 |
admin_html_top('settings', title = _(ADMIN_TITLE))
|
|
686 |
html_top('settings', title = _(ADMIN_TITLE)) |
|
688 | 687 |
get_response().breadcrumb.append( ('password/', _(self.title))) |
689 | 688 |
r = TemplateIO(html=True) |
690 | 689 | |
... | ... | |
751 | 750 |
self.passwords_submit(form) |
752 | 751 |
return redirect('.') |
753 | 752 | |
754 |
admin_html_top('settings', title = _('Passwords'))
|
|
753 |
html_top('settings', title = _('Passwords')) |
|
755 | 754 |
r = TemplateIO(html=True) |
756 | 755 |
r += htmltext('<h2>%s</h2>') % _('Passwords') |
757 | 756 |
r += form.render() |
... | ... | |
801 | 800 |
self.identities_submit(form) |
802 | 801 |
return redirect('.') |
803 | 802 | |
804 |
admin_html_top('settings', title = _('Identities Interface'))
|
|
803 |
html_top('settings', title = _('Identities Interface')) |
|
805 | 804 |
r = TemplateIO(html=True) |
806 | 805 |
r += htmltext('<h2>%s</h2>') % _('Identities Interface') |
807 | 806 |
r += form.render() |
... | ... | |
850 | 849 |
return t |
851 | 850 |
return redirect('.') |
852 | 851 | |
853 |
admin_html_top('settings', title = _('Bulk Import'))
|
|
852 |
html_top('settings', title = _('Bulk Import')) |
|
854 | 853 |
r = TemplateIO(html=True) |
855 | 854 |
identities_cfg = get_cfg('identities', {}) |
856 | 855 |
users_cfg = get_cfg('users', {}) |
... | ... | |
1010 | 1009 |
job = AfterJob.get(get_request().form.get('job')) |
1011 | 1010 |
except KeyError: |
1012 | 1011 |
return redirect('..') |
1013 |
admin_html_top('settings', title=_('Notifications'))
|
|
1012 |
html_top('settings', title=_('Notifications')) |
|
1014 | 1013 |
r = TemplateIO(html=True) |
1015 | 1014 |
r += get_session().display_message() |
1016 | 1015 |
get_response().add_javascript(['jquery.js', 'afterjob.js']) |
... | ... | |
1083 | 1082 |
return actions |
1084 | 1083 | |
1085 | 1084 |
def email(self): |
1086 |
admin_html_top('users', title=_(ADMIN_TITLE))
|
|
1085 |
html_top('users', title=_(ADMIN_TITLE)) |
|
1087 | 1086 |
r = TemplateIO(html=True) |
1088 | 1087 |
get_response().breadcrumb.append(('email', 'Email Password')) |
1089 | 1088 |
r += htmltext('<h2>%s</h2>') % _('Email Password') |
... | ... | |
1215 | 1214 | |
1216 | 1215 |
def _q_traverse(self, path): |
1217 | 1216 |
get_response().breadcrumb.append(('%s/' % self.account.id, self.account.id)) |
1218 |
if get_publisher().get_backoffice_root(): |
|
1219 |
self.html_top = backoffice_html_top |
|
1220 |
else: |
|
1221 |
self.html_top = admin_html_top |
|
1222 | 1217 |
return Directory._q_traverse(self, path) |
1223 | 1218 | |
1224 | 1219 |
def _q_index(self): |
1225 | 1220 |
identities_cfg = get_cfg('identities', {}) |
1226 | 1221 |
users_cfg = get_cfg('users', {}) |
1227 | 1222 | |
1228 |
self.html_top('accounts', _('Account - %s') % self.account.id)
|
|
1223 |
html_top('accounts', _('Account - %s') % self.account.id) |
|
1229 | 1224 |
r = TemplateIO(html=True) |
1230 | 1225 |
r += htmltext('<h2>%s</h2>') % _('Moderation of account') |
1231 | 1226 | |
... | ... | |
1309 | 1304 | |
1310 | 1305 |
if not form.is_submitted(): |
1311 | 1306 |
get_response().breadcrumb.append(('reject', _('Rejection'))) |
1312 |
self.html_top('accounts', _('Rejection'))
|
|
1307 |
html_top('accounts', _('Rejection')) |
|
1313 | 1308 |
return form.render() |
1314 | 1309 |
else: |
1315 | 1310 |
self.account.user.remove_self() |
... | ... | |
1335 | 1330 | |
1336 | 1331 |
if not form.is_submitted(): |
1337 | 1332 |
get_response().breadcrumb.append(('email', _('Reply by email'))) |
1338 |
self.html_top('accounts', _('Reply by email'))
|
|
1333 |
html_top('accounts', _('Reply by email')) |
|
1339 | 1334 |
r = TemplateIO(html=True) |
1340 | 1335 |
r += htmltext('<h2>%s</h2>') % _('Reply by email') |
1341 | 1336 |
r += form.render() |
... | ... | |
1363 | 1358 | |
1364 | 1359 |
get_response().breadcrumb.append(('accounts/', _('Accounts Management'))) |
1365 | 1360 | |
1366 |
if get_publisher().get_backoffice_root(): |
|
1367 |
self.html_top = backoffice_html_top |
|
1368 |
else: |
|
1369 |
self.html_top = admin_html_top |
|
1370 | ||
1371 | 1361 |
def _q_index(self): |
1372 |
self.html_top('accounts', _('Accounts Management'))
|
|
1362 |
html_top('accounts', _('Accounts Management')) |
|
1373 | 1363 |
r = TemplateIO(html=True) |
1374 | 1364 |
r += htmltext('<h2>%s</h2>') % _('New accounts waiting for moderation') |
1375 | 1365 | |
1376 |
- |