def format_element(bfo): """ Formats a header used in Bulletin Articles containing: issue nr., date, english/french link, report number """ # get variables this_recid = bfo.control_field('001') available_languages = bfo.fields('041__a') current_language = bfo.lang report_number = bfo.fields('037__a') issue_numbers = bfo.fields('773__n') journal_name = bfo.field('773__t') if journal_name.lower() == 'cern bulletin': journal_name = 'CERNBulletin' elif journal_name.lower() == 'cms bulletin': journal_name = 'CMSBulletin' preferred_ln = get_journal_preferred_language(journal_name, bfo.lang) date = '' if len(issue_numbers) > 0: # date = get_release_datetime(issue_numbers[0], journal_name) # if not date: date = issue_to_datetime(issue_numbers[0], journal_name) weekday = get_i18n_day_name(date.isoweekday() % 7) monthname = get_i18n_month_name(date.month) date = weekday + ' ' + date.strftime('%d') + ' ' + monthname + ' ' + date.strftime('%Y') # assemble the HTML output out = '<div id="top"><div id="topbanner"> </div>' if len(issue_numbers) > 0: out += '<span class="printLogo">%s, %s</span>' % (" & ".join(["%s" % issue.split("/")[0] for issue in issue_numbers]), date) out += '<div id="mainmenu"><table width="100%">' out += '<tr>' if len(issue_numbers) > 0: issue_number, issue_year = issue_numbers[-1].split('/') out += '<td class="left"><a href="%s/journal/CERNBulletin/%s/%s" target="_blank">%s: %s, %s</a></td>' % \ (CFG_SITE_URL, issue_year, issue_number, cfg_messages["published_in"][preferred_ln], " & ".join(["%s" % issue for issue in issue_numbers]), date) if len(report_number) > 0: out += '<td class="right">%s</td>' % report_number[0] out += '</tr>' out += '<tr>' if len(available_languages) > 1: if current_language == "en" and "fr" in available_languages: #TODO: server name generic out += '<td class="left"><a href="%s/record/%s?ln=fr">>> french version</a></td>' % (CFG_SITE_URL, this_recid) elif current_language == "fr" and "en" in available_languages: out += '<td class="left"><a href="%s/record/%s?ln=en">>> version anglaise</a></td>' % (CFG_SITE_URL, this_recid) out += '<td class="right"></td>' out += '</tr>' out += '</table></div><div id="mainphoto"></div></div>' return out
# issues) grouped_issues = get_grouped_issues(journal_name, issue_number) if grouped_issues: issue_number = grouped_issues[0] if estimate_release_date.lower() == 'yes': # Get theoretical release date if granularity.lower() == 'day': granularity = DAILY elif granularity.lower() == 'week': granularity = WEEKLY elif granularity.lower() == 'month': granularity = MONTHLY else: granularity = None issue_release_time = issue_to_datetime(issue_number, journal_name, granularity) else: issue_release_time = get_release_datetime(issue_number, journal_name) # Get a nice internationalized representation of this date date_text = '' if issue_release_time: if display_week_day: date_text = get_i18n_day_name(issue_release_time.isoweekday(), display_week_day, ln) + ' ' month = get_i18n_month_name(issue_release_time.month, display_month, ln=ln) date_text += issue_release_time.strftime("%d " + month + " %Y").lstrip('0')
def test_issue_to_datetime(self): """webjournal - returns the *theoretical* date of release for given issue""" issue = wju.issue_to_datetime('03/2009', 'AtlantisTimes', granularity=None) self.assertEqual(issue, datetime.datetime(2009, 1, 19, 0, 0))
def test_issue_to_datetime(self): """webjournal - returns the *theoretical* date of release for given issue""" issue = wju.issue_to_datetime('03/2009', 'AtlantisTimes', granularity=None) self.assertEqual(issue, datetime.datetime(2009, 1, 19, 0, 0))
grouped_issues = get_grouped_issues(journal_name, issue_number) if grouped_issues: issue_number = grouped_issues[0] if estimate_release_date.lower() == 'yes': # Get theoretical release date if granularity.lower() == 'day': granularity = DAILY elif granularity.lower() == 'week': granularity = WEEKLY elif granularity.lower() == 'month': granularity = MONTHLY else: granularity = None issue_release_time = issue_to_datetime(issue_number, journal_name, granularity) else: issue_release_time = get_release_datetime(issue_number, journal_name) # Get a nice internationalized representation of this date date_text = '' if issue_release_time: if display_week_day: date_text = get_i18n_day_name(issue_release_time.isoweekday(), display_week_day, ln) + ' ' month = get_i18n_month_name(issue_release_time.month, display_month, ln=ln)