diff --git a/modules/websession/lib/websession_templates_epfl.py b/modules/websession/lib/websession_templates_epfl.py index d9a1a9537..8d6b71c65 100644 --- a/modules/websession/lib/websession_templates_epfl.py +++ b/modules/websession/lib/websession_templates_epfl.py @@ -1,308 +1,311 @@ # -*- coding: utf-8 -*- """ EPFL templates. Websession handles admin menu and login links """ import urllib from invenio.config import CFG_SITE_LANG, CFG_SITE_SECURE_URL, CFG_SITE_URL from invenio.messages import gettext_set_language from invenio import websession_templates class Template(websession_templates.Template): """ EPFL subclass of websession_template """ def tmpl_account_adminactivities(self, ln, uid, guest, roles, activities): """ Displays the admin activities block for this user Parameters: - 'ln' *string* - The language to display the interface in - 'uid' *string* - The used id - 'guest' *boolean* - If the user is guest - 'roles' *array* - The current user roles - 'activities' *array* - The user allowed activities """ # load the right message language _ = gettext_set_language(ln) out = "" # guest condition if guest: return _("You seem to be a guest user. You have to %(x_url_open)slogin%(x_url_close)s first.") % \ {'x_url_open': '', 'x_url_close': ''} # no rights condition if not roles: return "

" + _("You are not authorized to access administrative functions.") + "

" # displaying form out += "

" + _("You are enabled to the following roles: %(x_role)s.") % {'x_role': ('' + ", ".join(roles) + "")} + '

' if activities: # print proposed links: activities.sort(lambda x, y: cmp(x.lower(), y.lower())) tmp_out = '' for action in activities: if action == "runbibedit": tmp_out += """
   
%s""" % (CFG_SITE_URL, _("Run Record Editor")) if action == "runbibeditmulti": tmp_out += """
    %s""" % (CFG_SITE_URL, _("Run Multi-Record Editor")) if action == "runbibcirculation": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Run BibCirculation")) if action == "runbibmerge": tmp_out += """
    %s""" % (CFG_SITE_URL, _("Run Record Merger")) if action == "runbibswordclient": tmp_out += """
    %s""" % (CFG_SITE_URL, _("Run BibSword Client")) if action == "runbatchuploader": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Run Batch Uploader")) if action == "cfgbibformat": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure BibFormat")) tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure BibKnowledge")) if action == "cfgoaiharvest": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure OAI Harvest")) if action == "cfgoairepository": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure OAI Repository")) if action == "cfgbibindex": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure BibIndex")) if action == "cfgbibrank": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure BibRank")) if action == "cfgwebaccess": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure WebAccess")) if action == "cfgwebcomment": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure WebComment")) if action == "cfgwebjournal": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure WebJournal")) if action == "cfgwebsearch": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure WebSearch")) if action == "cfgwebsubmit": tmp_out += """
    %s""" % (CFG_SITE_URL, ln, _("Configure WebSubmit")) if tmp_out: out += _("Here are some interesting web admin links for you:") + tmp_out out += "
" + _("For more admin-level activities, see the complete %(x_url_open)sAdmin Area%(x_url_close)s.") %\ {'x_url_open': '', 'x_url_close': ''} return out def tmpl_create_useractivities_menu(self, user_info, ln, selected, url_referer, guest, username, submitter, referee, admin, usebaskets, usemessages, usealerts, usegroups, useloans, usestats): """ Returns the main navigation menu with actions based on user's priviledges @param ln: The language to display the interface in @type ln: string @param selected: If the menu is currently selected @type selected: boolean @param url_referer: URL of the page being displayed @type url_referer: string @param guest: If the user is guest @type guest: string @param username: The username (nickname or email) @type username: string @param submitter: If the user is submitter @type submitter: boolean @param referee: If the user is referee @type referee: boolean @param admin: If the user is admin @type admin: boolean @param usebaskets: If baskets are enabled for the user @type usebaskets: boolean @param usemessages: If messages are enabled for the user @type usemessages: boolean @param usealerts: If alerts are enabled for the user @type usealerts: boolean @param usegroups: If groups are enabled for the user @type usegroups: boolean @param useloans: If loans are enabled for the user @type useloans: boolean @param usestats: If stats are enabled for the user @type usestats: boolean @return: html menu of the user activities @rtype: string """ # load the right message language _ = gettext_set_language(ln) out = '' if guest: return out out = """ """ % {'secure_domain': CFG_SITE_SECURE_URL, 'ln': ln, 'sciper': user_info.get('external_uniqueidentifier', [None])[0] or user_info.get('external_cn', [None])[-1] or '', 'my_infoscience_label': _("My profile"), 'collections_label': _("My collections"), 'alerts_label': _("My alerts"), 'publications_validation_label': _("to be validated"), 'publications_import_label': _("to be imported"), 'publications_manual_match_label': _("to be matched"), } junk = _("XX-Translate-test") return out def tmpl_create_adminactivities_menu(self, ln, selected, url_referer, guest, username, submitter, referee, admin, usebaskets, usemessages, usealerts, usegroups, useloans, usestats, activities): """ Returns the main navigation menu with actions based on user's priviledges @param ln: The language to display the interface in @type ln: string @param selected: If the menu is currently selected @type selected: boolean @param url_referer: URL of the page being displayed @type url_referer: string @param guest: If the user is guest @type guest: string @param username: The username (nickname or email) @type username: string @param submitter: If the user is submitter @type submitter: boolean @param referee: If the user is referee @type referee: boolean @param admin: If the user is admin @type admin: boolean @param usebaskets: If baskets are enabled for the user @type usebaskets: boolean @param usemessages: If messages are enabled for the user @type usemessages: boolean @param usealerts: If alerts are enabled for the user @type usealerts: boolean @param usegroups: If groups are enabled for the user @type usegroups: boolean @param useloans: If loans are enabled for the user @type useloans: boolean @param usestats: If stats are enabled for the user @type usestats: boolean @param activities: dictionary of admin activities @rtype activities: dict @return: html menu of the user activities @rtype: string """ # load the right message language _ = gettext_set_language(ln) if not activities: return '' admin_action_list = {} tmpl = '
  • %s
  • ' admin_action_list['curator_functions'] = '\n'.join([ tmpl % ('/curator/dropbox', _("Dropbox")), tmpl % ('/curator/delete', _("Delete by reference")), tmpl % ('/curator/laboratories', _("Laboratories management")), tmpl % ('/curator/stats/query', _("Laboratories stats")), tmpl % ('/curator/authors', _("Authors management")), tmpl % ('/curator/users/create', _("Create user")), tmpl % ('/curator/metrics', _("Publication statistics / bibliometrics")), #tmpl % ('/stats/', _("Site statistics")), ]) admin_action_list['getter_functions'] = '\n'.join([ tmpl % ('/curator/deduplicate/wos/list', _("Deduplicate")), tmpl % ('/curator/getter/manual_match', _("Manual match")), tmpl % ('/curator/getter/rejected_imports', _("Rejected imports")), ]) activities = activities.items() activities.sort(lambda x, y: cmp(x[0], y[0])) admin_action_list['invenio_functions'] = '\n'.join([tmpl % (url, label) for (label, url) in activities]) out = """ """ % (admin_action_list) return out def tmpl_navtrail(self, ln=CFG_SITE_LANG, title=""): """ display the navtrail, e.g.: Your account > Your group > title @param title: the last part of the navtrail. Is not a link @param ln: language return html formatted navtrail """ _ = gettext_set_language(ln) nav_h1 = '%s' nav_h2 = "" if (title != ""): nav_h2 = ' > %s' nav_h2 = nav_h2 % (CFG_SITE_URL, _("Your Groups")) return nav_h1 % (CFG_SITE_URL, _("Your Account")) + nav_h2 def tmpl_create_userinfobox(self, ln, url_referer, guest, username, submitter, referee, admin, usebaskets, usemessages, usealerts, usegroups, useloans, usestats): """ Displays the user block Parameters: - 'ln' *string* - The language to display the interface in - 'url_referer' *string* - URL of the page being displayed - 'guest' *boolean* - If the user is guest - 'username' *string* - The username (nickname or email) - 'submitter' *boolean* - If the user is submitter - 'referee' *boolean* - If the user is referee - 'admin' *boolean* - If the user is admin - 'usebaskets' *boolean* - If baskets are enabled for the user - 'usemessages' *boolean* - If messages are enabled for the user - 'usealerts' *boolean* - If alerts are enabled for the user - 'usegroups' *boolean* - If groups are enabled for the user - 'useloans' *boolean* - If loans are enabled for the user - 'usestats' *boolean* - If stats are enabled for the user @note: with the update of CSS classes (cds.cds -> invenio.css), the variables useloans etc are not used in this function, since they are in the menus. But we keep them in the function signature for backwards compatibility. """ # load the right message language _ = gettext_set_language(ln) out = '' if guest: out += """%(login)s""" % { 'sitesecureurl': CFG_SITE_SECURE_URL, 'ln' : ln, 'referer' : url_referer and ('&referer=%s' % urllib.quote(url_referer)) or '', 'login' : _('login') } else: out += """%(logout)s""" % { 'sitesecureurl' : CFG_SITE_SECURE_URL, 'ln' : ln, 'logout' : _("logout"), } out += """ (%(username)s)""" % { 'sitesecureurl' : CFG_SITE_SECURE_URL, 'ln' : ln, 'username' : username } return out