def article(self, req, form):
     """
     Article page.
     Washes all the parameters and stores them in journal_defaults dict
     for subsequent format_elements.
     Passes on to logic function and eventually returns HTML.
     """
     argd = wash_urlargd(form, {'name': (str, ""),
                                 'issue': (str, ""),
                                 'category': (str, ""),
                                 'number': (str, ""),
                                 'ln': (str, ""),
                                }
                         )
     try:
         ln = wash_journal_language(argd['ln'])
         journal_name = wash_journal_name(ln, argd['name'])
         issue = wash_issue_number(ln, journal_name,
                                   argd['issue'])
         issue_year = issue.split('/')[1]
         issue_number = issue.split('/')[0]
         category = wash_category(ln, argd['category'], journal_name, issue_number)
         number = wash_article_number(ln, argd['number'], journal_name)
         recid = get_recid_from_legacy_number(issue, category, int(number))
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
 def article(self, req, form):
     """
     Article page.
     Washes all the parameters and stores them in journal_defaults dict
     for subsequent format_elements.
     Passes on to logic function and eventually returns HTML.
     """
     argd = wash_urlargd(form, {'name': (str, ""),
                                 'issue': (str, ""),
                                 'category': (str, ""),
                                 'number': (str, ""),
                                 'ln': (str, ""),
                                }
                         )
     try:
         ln = wash_journal_language(argd['ln'])
         journal_name = wash_journal_name(ln, argd['name'])
         issue = wash_issue_number(ln, journal_name,
                                   argd['issue'])
         issue_year = issue.split('/')[1]
         issue_number = issue.split('/')[0]
         category = wash_category(ln, argd['category'], journal_name, issue_number)
         number = wash_article_number(ln, argd['number'], journal_name)
         recid = get_recid_from_legacy_number(issue, category, int(number))
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
Example #3
0
def regenerate(req, journal_name="", issue="", ln=CFG_SITE_LANG,
               confirmed_p="", publish_draft_articles_p=""):
    """
    Clears the cache for the given issue.
    """
    navtrail_previous_links = wjn.getnavtrail(' &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a> &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py/administrate?journal_name=%s">%s</a>' % (CFG_SITE_URL, CFG_SITE_URL, journal_name, journal_name))

    ln = wash_language(ln)
    _ = gettext_set_language(ln)

    try:
        uid = getUid(req)
    except:
        return error_page('Error', req)

    try:
        journal_name = wash_journal_name(ln, journal_name)
        issue_number = wash_issue_number(ln, journal_name,
                                         issue)
        confirmed_p = wash_url_argument(confirmed_p, 'str') == "confirmed"
        publish_draft_articles_p = wash_url_argument(publish_draft_articles_p, 'str') == "move"

    except InvenioWebJournalNoJournalOnServerError, e:
        register_exception(req=req)
        return e.user_box()
 def search(self, req, form):
     """
     Display search interface
     """
     argd = wash_urlargd(form, {'name': (str, ""),
                                'issue': (str, ""),
                                'archive_year': (str, ""),
                                'archive_issue': (str, ""),
                                'archive_select': (str, "False"),
                                'archive_date': (str, ""),
                                'archive_search': (str, "False"),
                                'ln': (str, CFG_SITE_LANG),
                                'verbose': (int, 0)})
     try:
         # FIXME: if journal_name is empty, redirect
         ln = wash_journal_language(argd['ln'])
         washed_journal_name = wash_journal_name(ln, argd['name'])
         archive_issue = wash_issue_number(ln, washed_journal_name,
                                           argd['archive_issue'])
         archive_date = wash_archive_date(ln, washed_journal_name,
                                          argd['archive_date'])
         archive_select = argd['archive_select']
         archive_search = argd['archive_search']
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
Example #5
0
def issue_control(req, journal_name="", issue=[],
                  ln=CFG_SITE_LANG, action="cfg"):
    """
    Page that allows full control over creating, backtracing, adding to,
    removing from issues.
    """
    navtrail_previous_links = wjn.getnavtrail(' &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a> &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py/administrate?journal_name=%s">%s</a>' % (CFG_SITE_URL, CFG_SITE_URL, journal_name, journal_name))

    ln = wash_language(ln)
    _ = gettext_set_language(ln)

    try:
        uid = getUid(req)
    except:
        return error_page('Error', req)
    try:
        journal_name = wash_journal_name(ln, journal_name)
        action = wash_url_argument(action, 'str')
        issue = wash_url_argument(issue, 'list')
        issues = [wash_issue_number(ln,journal_name, _issue) \
                  for _issue in issue \
                  if _issue != "ww/YYYY"]
    except InvenioWebJournalNoJournalOnServerError, e:
        register_exception(req=req)
        return e.user_box()
Example #6
0
def configure(req, journal_name=None, ln=CFG_SITE_LANG, xml_config=u'', action='edit'):
    """
    Let admins configure the journal settings
    """
    ln = wash_language(ln)
    _ = gettext_set_language(ln)

    if journal_name is None:
        navtrail_previous_links = wjn.getnavtrail(' &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a>' % CFG_SITE_URL)
    else:
        navtrail_previous_links = wjn.getnavtrail(' &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a> &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py/administrate?journal_name=%s">%s</a>' % (CFG_SITE_URL, CFG_SITE_URL, journal_name, journal_name))

    if action in ['add', 'addDone']:
        page_title = _('Add Journal')
    else:
        page_title = _("Edit Settings")

    try:
        uid = getUid(req)
    except:
        return error_page('Error', req)

    try:
        journal_name = wash_journal_name(ln, journal_name, guess=False)
        xml_config = wash_url_argument(xml_config, 'str')
        action = wash_url_argument(action, 'str')
    except InvenioWebJournalNoJournalOnServerError, e:
        # Ok, no journal. Let the admin add one...
        pass
 def search(self, req, form):
     """
     Display search interface
     """
     argd = wash_urlargd(
         form,
         {
             "name": (str, ""),
             "issue": (str, ""),
             "archive_year": (str, ""),
             "archive_issue": (str, ""),
             "archive_select": (str, "False"),
             "archive_date": (str, ""),
             "archive_search": (str, "False"),
             "ln": (str, CFG_SITE_LANG),
             "verbose": (int, 0),
         },
     )
     try:
         # FIXME: if journal_name is empty, redirect
         ln = wash_journal_language(argd["ln"])
         washed_journal_name = wash_journal_name(ln, argd["name"])
         archive_issue = wash_issue_number(ln, washed_journal_name, argd["archive_issue"])
         archive_date = wash_archive_date(ln, washed_journal_name, argd["archive_date"])
         archive_select = argd["archive_select"]
         archive_search = argd["archive_search"]
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
 def search(self, req, form):
     """
     Display search interface
     """
     argd = wash_urlargd(form, {'name': (str, ""),
                                'issue': (str, ""),
                                'archive_year': (str, ""),
                                'archive_issue': (str, ""),
                                'archive_select': (str, "False"),
                                'archive_date': (str, ""),
                                'archive_search': (str, "False"),
                                'ln': (str, CFG_SITE_LANG),
                                'verbose': (int, 0)})
     try:
         # FIXME: if journal_name is empty, redirect
         ln = wash_journal_language(argd['ln'])
         washed_journal_name = wash_journal_name(ln, argd['name'])
         archive_issue = wash_issue_number(ln, washed_journal_name,
                                           argd['archive_issue'])
         archive_date = wash_archive_date(ln, washed_journal_name,
                                          argd['archive_date'])
         archive_select = argd['archive_select']
         archive_search = argd['archive_search']
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
Example #9
0
def alert(req, journal_name="", ln=CFG_SITE_LANG, sent="False", plainText=u"",
          htmlMail="", recipients="", subject="", issue="", force="False"):
    """
    Sends an email alert, in HTML/PlainText or only PlainText to a mailing
    list to alert for new journal releases.
    """
    navtrail_previous_links = wjn.getnavtrail(' &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a> &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py/administrate?journal_name=%s">%s</a>' % (CFG_SITE_URL, CFG_SITE_URL, journal_name, journal_name))

    ln = wash_language(ln)
    _ = gettext_set_language(ln)

    try:
        uid = getUid(req)
    except:
        return error_page('Error', req)

    try:
        journal_name = wash_journal_name(ln, journal_name)
        issue = wash_issue_number(ln,
                                         journal_name,
                                         issue)
        plain_text = wash_url_argument(plainText, 'str')
        html_mail = wash_url_argument(htmlMail, 'str')
        recipients = wash_url_argument(recipients, 'str')
        subject = wash_url_argument(subject, 'str')
        sent = wash_url_argument(sent, 'str')
        force = wash_url_argument(force, 'str')
    except InvenioWebJournalNoJournalOnServerError, e:
        register_exception(req=req)
        return e.user_box()
 def administrate(self, req, form):
     """Index page."""
     argd = wash_urlargd(form, {'name': (str, ""), 'ln': (str, "")})
     try:
         ln = wash_journal_language(argd['ln'])
         journal_name = wash_journal_name(ln, argd['name'])
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box()
 def administrate(self, req, form):
     """Index page."""
     argd = wash_urlargd(form, {"name": (str, ""), "ln": (str, "")})
     try:
         ln = wash_journal_language(argd["ln"])
         journal_name = wash_journal_name(ln, argd["name"])
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
 def contact(self, req, form):
     """
     Display contact information for the journal.
     """
     argd = wash_urlargd(form, {"name": (str, ""), "ln": (str, ""), "verbose": (int, 0)})
     try:
         ln = wash_journal_language(argd["ln"])
         washed_journal_name = wash_journal_name(ln, argd["name"])
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
 def popup(self, req, form):
     """
     simple pass-through function that serves as a checker for popups.
     """
     argd = wash_urlargd(form, {"name": (str, ""), "record": (str, ""), "ln": (str, "")})
     try:
         ln = wash_journal_language(argd["ln"])
         washed_journal_name = wash_journal_name(ln, argd["name"])
         record = wash_popup_record(ln, argd["record"], washed_journal_name)
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
 def contact(self, req, form):
     """
     Display contact information for the journal.
     """
     argd = wash_urlargd(form, {'name': (str, ""),
                                'ln': (str, ""),
                                'verbose': (int, 0)
                                })
     try:
         ln = wash_journal_language(argd['ln'])
         washed_journal_name = wash_journal_name(ln, argd['name'])
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
 def popup(self, req, form):
     """
     simple pass-through function that serves as a checker for popups.
     """
     argd = wash_urlargd(form, {'name': (str, ""),
                                'record': (str, ""),
                                'ln': (str, "")
                                })
     try:
         ln = wash_journal_language(argd['ln'])
         washed_journal_name = wash_journal_name(ln, argd['name'])
         record = wash_popup_record(ln, argd['record'], washed_journal_name)
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
 def index(self, req, form):
     """
     Index page.
     Washes all the parameters and stores them in journal_defaults dict
     for subsequent format_elements.
     Passes on to logic function and eventually returns HTML.
     """
     argd = wash_urlargd(form, {"name": (str, ""), "issue": (str, ""), "category": (str, ""), "ln": (str, "")})
     try:
         ln = wash_journal_language(argd["ln"])
         journal_name = wash_journal_name(ln, argd["name"])
         issue_number = wash_issue_number(ln, journal_name, argd["issue"])
         category = wash_category(ln, argd["category"], journal_name, issue_number)
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
    def __call__(self, req, form):
        """ Maybe resolve the final / of a directory """
        path = req.uri[1:].split("/")
        journal_name = None
        journal_issue_year = None
        journal_issue_number = None
        specific_category = None
        category = None
        article_id = None
        if len(path) > 1:
            journal_name = path[1]
        if len(path) > 2 and path[2].isdigit():
            journal_issue_year = path[2]
        elif len(path) > 2 and not path[2].isdigit():
            specific_category = urllib.unquote(path[2])
        if len(path) > 3 and path[3].isdigit():
            journal_issue_number = path[3]
        if len(path) > 4:
            category = urllib.unquote(path[4])
        if len(path) > 5 and path[5].isdigit():
            article_id = int(path[5])

        ## Support for legacy journal/[empty]?(args*) urls. There are
        ## these parameters only in that case
        argd = wash_urlargd(
            form,
            {
                "name": (str, ""),
                "issue": (str, ""),
                "category": (str, ""),
                "ln": (str, CFG_SITE_LANG),
                "number": (int, None),
                "verbose": (int, 0),
            },
        )

        if "name" in form.keys() or "issue" in form.keys() or "category" in form.keys():
            ln = wash_journal_language(argd["ln"])
            try:
                journal_name = wash_journal_name(ln, argd["name"])
            except InvenioWebJournalNoJournalOnServerError, e:
                register_exception(req=req)
                return e.user_box(req)
            except InvenioWebJournalNoNameError, e:
                return e.user_box(req)
Example #18
0
def administrate(req, journal_name, ln=CFG_SITE_LANG):
    """
    Shows the settings of a journal
    """
    navtrail_previous_links = wjn.getnavtrail(' &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a>' % CFG_SITE_URL)

    ln = wash_language(ln)
    _ = gettext_set_language(ln)

    try:
        uid = getUid(req)
    except:
        return error_page('Error', req)

    try:
        journal_name = wash_journal_name(ln, journal_name)
    except InvenioWebJournalNoJournalOnServerError, e:
        register_exception(req=req)
        return e.user_box()
    def __call__(self, req, form):
        """ Maybe resolve the final / of a directory """
        path = req.uri[1:].split('/')
        journal_name = None
        journal_issue_year = None
        journal_issue_number = None
        specific_category = None
        category = None
        article_id = None
        if len(path) > 1:
            journal_name = path[1]
        if len(path) > 2 and path[2].isdigit():
            journal_issue_year = path[2]
        elif len(path) > 2 and not path[2].isdigit():
            specific_category = urllib.unquote(path[2])
        if len(path) > 3 and path[3].isdigit():
            journal_issue_number = path[3]
        if len(path) > 4:
            category = urllib.unquote(path[4])
        if len(path) > 5 and path[5].isdigit():
            article_id = int(path[5])

        ## Support for legacy journal/[empty]?(args*) urls. There are
        ## these parameters only in that case
        argd = wash_urlargd(form, {'name': (str, ""),
                                   'issue': (str, ""),
                                   'category': (str, ""),
                                   'ln': (str, CFG_SITE_LANG),
                                   'number': (int, None),
                                   'verbose': (int, 0)}
                            )

        if 'name' in form.keys() or \
            'issue' in form.keys() or \
            'category' in form.keys():
            ln = wash_journal_language(argd['ln'])
            try:
                journal_name = wash_journal_name(ln, argd['name'])
            except InvenioWebJournalNoJournalOnServerError, e:
                register_exception(req=req)
                return e.user_box(req)
            except InvenioWebJournalNoNameError, e:
                return e.user_box(req)
Example #20
0
def feature_record(req, journal_name="", recid="", img_url="", ln=CFG_SITE_LANG, action=""):
    """
    Interface to feature a record. Will be saved in a flat file.
    """

    navtrail_previous_links = wjn.getnavtrail(' &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a> &gt; <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py/administrate?journal_name=%s">%s</a>' % (CFG_SITE_URL, CFG_SITE_URL, journal_name, journal_name))

    ln = wash_language(ln)
    _ = gettext_set_language(ln)

    try:
        uid = getUid(req)
    except:
        return error_page('Error', req)

    try:
        journal_name = wash_journal_name(ln, journal_name)
    except InvenioWebJournalNoJournalOnServerError, e:
        register_exception(req=req)
        return e.user_box()
 def index(self, req, form):
     """
     Index page.
     Washes all the parameters and stores them in journal_defaults dict
     for subsequent format_elements.
     Passes on to logic function and eventually returns HTML.
     """
     argd = wash_urlargd(form, {'name': (str, ""),
                                 'issue': (str, ""),
                                 'category': (str, ""),
                                 'ln': (str, "")}
                         )
     try:
         ln = wash_journal_language(argd['ln'])
         journal_name = wash_journal_name(ln, argd['name'])
         issue_number = wash_issue_number(ln, journal_name,
                                          argd['issue'])
         category = wash_category(ln, argd['category'], journal_name, issue_number)
     except InvenioWebJournalNoJournalOnServerError, e:
         register_exception(req=req)
         return e.user_box(req)
    def __call__(self, req, form):
        """ Maybe resolve the final / of a directory """
        path = req.uri[1:].split('/')
        journal_name = None
        journal_issue_year = None
        journal_issue_number = None
        category = None
        article_id = None
        if len(path) > 1:
            journal_name = path[1]
        if len(path) > 2 and path[2].isdigit():
            journal_issue_year = path[2]
        if len(path) > 3 and path[3].isdigit():
            journal_issue_number = path[3]
        if len(path) > 4:
            category = urllib.unquote(path[4])
        if len(path) > 5 and path[5].isdigit():
            article_id = int(path[5])

        ## Support for legacy journal/[empty]?(args*) urls. There are
        ## these parameters only in that case
        argd = wash_urlargd(form, {'name': (str, ""),
                                   'issue': (str, ""),
                                   'category': (str, ""),
                                   'ln': (str, CFG_SITE_LANG),
                                   'number': (int, None),
                                   'verbose': (int, 0)}
                            )

        if 'name' in form.keys() or \
            'issue' in form.keys() or \
            'category' in form.keys():
            ln = wash_journal_language(argd['ln'])
            try:
                journal_name = wash_journal_name(ln, argd['name'])
            except InvenioWebJournalNoJournalOnServerError, e:
                register_exception(req=req)
                return e.user_box()
            except InvenioWebJournalNoNameError, e:
                return e.user_box()
Example #23
0
def index(req, ln=CFG_SITE_LANG, journal_name=None, action=""):
    """
    Main administration page.

    Lists the journals, and offers options to edit them, delete them
    or add new journals
    """
    navtrail_previous_links = wjn.getnavtrail()

    ln = wash_language(ln)
    _ = gettext_set_language(ln)

    try:
        uid = getUid(req)
    except:
        return error_page('Error', req)

    try:
        journal_name = wash_journal_name(ln, journal_name)
        action = wash_url_argument(action, 'str')
    except InvenioWebJournalNoJournalOnServerError, e:
        # Ok, no journal. Let the admin add one...
        pass
                return e.user_box(req)
            category = wash_category(ln, argd['category'], journal_name, issue).replace(' ', '%20')
            redirect_to_url(req, CFG_SITE_URL + '/journal/%(name)s/%(issue_year)s/%(issue_number)s/%(category)s/?ln=%(ln)s' % \
                            {'name': journal_name,
                             'issue_year': issue_year,
                             'issue_number': issue_number,
                             'category': category,
                             'ln': ln})

        ## End support for legacy urls

        # Check that given journal name exists and that it is written
        # with correct casing.
        redirect_p = False
        try:
            washed_journal_name = wash_journal_name(argd['ln'], journal_name)
            if washed_journal_name != journal_name:
                redirect_p = True
        except InvenioWebJournalNoNameError, e:
            return e.user_box(req)
        except InvenioWebJournalNoJournalOnServerError, e:
            register_exception(req=req)
            return e.user_box(req)

        # If some parameters are missing, deduce them and
        # redirect
        if not journal_issue_year or \
           not journal_issue_number or \
           not category or \
           redirect_p or \
           specific_category:
    Lists the journals, and offers options to edit them, delete them
    or add new journals
    """
    navtrail_previous_links = wjn.getnavtrail()

    ln = wash_language(ln)
    _ = gettext_set_language(ln)

    try:
        uid = getUid(req)
    except Error, e:
        return error_page(req)

    try:
        journal_name = wash_journal_name(ln, journal_name)
        action = wash_url_argument(action, 'str')
    except InvenioWebJournalNoJournalOnServerError, e:
        # Ok, no journal. Let the admin add one...
        pass
    except InvenioWebJournalNoNameError, e:
        register_exception(req=req)
        return e.user_box()
    if action in ['delete', 'askDelete']:
        # To perform these, one must be authorized
        auth = acc_authorize_action(getUid(req),
                                    'cfgwebjournal',
                                    name=journal_name,
                                    with_editor_rights='yes')
    else:
        auth = acc_authorize_action(getUid(req), 'cfgwebjournal')
                return e.user_box(req)
            category = wash_category(ln, argd['category'], journal_name, issue).replace(' ', '%20')
            redirect_to_url(req, CFG_SITE_URL + '/journal/%(name)s/%(issue_year)s/%(issue_number)s/%(category)s/?ln=%(ln)s' % \
                            {'name': journal_name,
                             'issue_year': issue_year,
                             'issue_number': issue_number,
                             'category': category,
                             'ln': ln})

        ## End support for legacy urls

        # Check that given journal name exists and that it is written
        # with correct casing.
        redirect_p = False
        try:
            washed_journal_name = wash_journal_name(argd['ln'], journal_name)
            if washed_journal_name != journal_name:
                redirect_p = True
        except InvenioWebJournalNoNameError, e:
            return e.user_box(req)
        except InvenioWebJournalNoJournalOnServerError, e:
            register_exception(req=req)
            return e.user_box(req)

        # If some parameters are missing, deduce them and
        # redirect
        if not journal_issue_year or \
           not journal_issue_number or \
           not category or \
           redirect_p or \
           specific_category:
                % {
                    "name": journal_name,
                    "issue_year": issue_year,
                    "issue_number": issue_number,
                    "category": category,
                    "ln": ln,
                },
            )

        ## End support for legacy urls

        # Check that given journal name exists and that it is written
        # with correct casing.
        redirect_p = False
        try:
            washed_journal_name = wash_journal_name(argd["ln"], journal_name)
            if washed_journal_name != journal_name:
                redirect_p = True
        except InvenioWebJournalNoNameError, e:
            return e.user_box(req)
        except InvenioWebJournalNoJournalOnServerError, e:
            register_exception(req=req)
            return e.user_box(req)

        # If some parameters are missing, deduce them and
        # redirect
        if not journal_issue_year or not journal_issue_number or not category or redirect_p or specific_category:
            if not journal_issue_year or not journal_issue_number:
                journal_issue = get_current_issue(argd["ln"], washed_journal_name)
                journal_issue_year = journal_issue.split("/")[1]
                journal_issue_number = journal_issue.split("/")[0]
    Lists the journals, and offers options to edit them, delete them
    or add new journals
    """
    navtrail_previous_links = wjn.getnavtrail()

    ln = wash_language(ln)
    _ = gettext_set_language(ln)

    try:
        uid = getUid(req)
    except Error, e:
        return error_page(req)

    try:
        journal_name = wash_journal_name(ln, journal_name)
        action = wash_url_argument(action, 'str')
    except InvenioWebJournalNoJournalOnServerError, e:
        # Ok, no journal. Let the admin add one...
        pass
    except InvenioWebJournalNoNameError, e:
        register_exception(req=req)
        return e.user_box()
    if action in ['delete', 'askDelete']:
        # To perform these, one must be authorized
        auth = acc_authorize_action(getUid(req), 'cfgwebjournal',
                                    name=journal_name, with_editor_rights='yes')
    else:
        auth = acc_authorize_action(getUid(req), 'cfgwebjournal')
    if auth[0] == 0:
        return page(title=_('WebJournal Admin'),