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(' > <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a> > <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()
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 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(' > <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a> > <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 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(' > <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a> > <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)
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 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 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)
% { "name": washed_journal_name, "issue_year": journal_issue_year, "issue_number": journal_issue_number, "category": category, "ln": argd["ln"], }, ) journal_issue = "" if journal_issue_year is not None and journal_issue_number is not None: journal_issue = journal_issue_number + "/" + journal_issue_year try: journal_name = washed_journal_name issue = wash_issue_number(argd["ln"], journal_name, journal_issue) category = wash_category(argd["ln"], category, journal_name, issue) except InvenioWebJournalNoJournalOnServerError, e: register_exception(req=req) return e.user_box(req) except InvenioWebJournalNoNameError, e: return e.user_box(req) except InvenioWebJournalIssueNumberBadlyFormedError, e: register_exception(req=req) return e.user_box(req) except InvenioWebJournalNoCategoryError, e: register_exception(req=req) return e.user_box(req) except InvenioWebJournalJournalIdNotFoundDBError, e: register_exception(req=req) return e.user_box(req)
list to alert for new journal releases. """ navtrail_previous_links = wjn.getnavtrail(' > <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a> > <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 Error, e: return error_page(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() except InvenioWebJournalNoNameError, e: register_exception(req=req) return e.user_box() except InvenioWebJournalNoCurrentIssueError, e: register_exception(req=req)
redirect_to_url(req, CFG_SITE_URL + '/journal/%(name)s/%(issue_year)s/%(issue_number)s/%(category)s/?ln=%(ln)s' % \ {'name': washed_journal_name, 'issue_year': journal_issue_year, 'issue_number': journal_issue_number, 'category': category, 'ln': argd['ln']}) journal_issue = "" if journal_issue_year is not None and \ journal_issue_number is not None: journal_issue = journal_issue_number + '/' + \ journal_issue_year try: journal_name = washed_journal_name issue = wash_issue_number(argd['ln'], journal_name, journal_issue) category = wash_category(argd['ln'], category, journal_name, issue) except InvenioWebJournalNoJournalOnServerError, e: register_exception(req=req) return e.user_box(req) except InvenioWebJournalNoNameError, e: return e.user_box(req) except InvenioWebJournalIssueNumberBadlyFormedError, e: register_exception(req=req) return e.user_box(req) except InvenioWebJournalNoCategoryError, e: register_exception(req=req) return e.user_box(req) except InvenioWebJournalJournalIdNotFoundDBError, e: register_exception(req=req) return e.user_box(req)
class WebInterfaceJournalPages(WebInterfaceDirectory): """Defines the set of /journal pages.""" journal_name = None journal_issue_year = None journal_issue_number = None category = None article_id = None _exports = ['popup', 'search', 'contact'] def _lookup(self, component, path): """ This handler is invoked for the dynamic URLs """ if component in ['article', 'issue_control', 'edit_article', 'alert', 'feature_record', 'regenerate', 'administrate'] and \ CFG_CERN_SITE: return WebInterfaceJournalPagesLegacy(), [component] return self, [] 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) try: issue = wash_issue_number(ln, journal_name, argd['issue']) issue_year = issue.split('/')[1] issue_number = issue.split('/')[0] except InvenioWebJournalIssueNumberBadlyFormedError, e: register_exception(req=req) return e.user_box(req)
""" navtrail_previous_links = wjn.getnavtrail( ' > <a class="navtrail" href="%s/admin/webjournal/webjournaladmin.py">WebJournal Admin</a> > <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 Error, e: return error_page(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() except InvenioWebJournalNoNameError, e: register_exception(req=req) return e.user_box() except InvenioWebJournalNoCurrentIssueError, e: register_exception(req=req) return e.user_box()