def test_descriptive_very_short_format(self):

        del (self.sample['title'])
        del (self.sample['short_title'])
        del (self.sample['lpage'])
        del (self.sample['fpage'])
        del (self.sample['elocation'])

        result = descriptive_very_short_format(**self.sample)

        self.assertEqual('2011, Volume: 67, Issue: 9 Supplement 3', result)
Beispiel #2
0
def get_journal_json_data(journal, language='pt'):
    """
    Para cada journal, retorna uma estrutura mais resumida para ser enviada como json
    para o frontend.

    Exemplo:

    {
        "id": "e3ad10cca39a466da771c8abe6591a9f",
        "is_active": true,
        "issues_count": 64,
        "last_issue": {
            "legend": "LEGENDA BIBLIOGRAFICA DO ISSUE",
            "number": "123",
            "volume": 456,
            "year": 2016,
            "url_segment": "/foo"
        },
        "links": {
            "about": "#",
            "contact": "#",
            "detail": "/journals/e3ad10cca39a466da771c8abe6591a9f",
            "instructions": "#",
            "submission": "#"
        },
        "title": "Interface - Comunica\\u00e7\\u00e3o, Sa\\u00fade, Educa\\u00e7\\u00e3o"
    },
    """

    j_data = {
        'id': journal.id,
        'title': journal.title,
        'links': {
            'detail': url_for('main.journal_detail', url_seg=journal.url_segment),
            'issue_grid': url_for('main.issue_grid', url_seg=journal.url_segment),
            'submission': journal.online_submission_url or url_for('main.about_journal',
                                                                   url_seg=journal.url_segment) + '#submission',
            'instructions': url_for('main.about_journal', url_seg=journal.url_segment) + '#instructions',
            'about': url_for('main.about_journal', url_seg=journal.url_segment),
            'contact': url_for('main.about_journal', url_seg=journal.url_segment) + '#contact',
            'editors': url_for('main.about_journal', url_seg=journal.url_segment) + '#editors',
        },
        'is_active': journal.current_status == 'current',
        'issues_count': journal.issue_count,
        'next_title': journal.next_title,
        'status_reason': str(JOURNAL_STATUS.get(journal.current_status,  journal.current_status))
    }

    if journal.last_issue:
        last_issue_legend = descriptive_very_short_format(
            pubdate=str(journal.last_issue.year),
            volume=journal.last_issue.volume,
            number=journal.last_issue.number,
            suppl=journal.last_issue.suppl_text,
            language=language)

        j_data['last_issue'] = {
            'legend': last_issue_legend,
            'volume': journal.last_issue.volume,
            'number': journal.last_issue.number,
            'year': journal.last_issue.year,
            # verificar uma forma mais legal de gerar essa URL o ideal é fazer isso com url_for
            'url_segment': '%s/%s' % ('toc', journal.url_last_issue)
        }

    if journal.url_next_journal:
        j_data['url_next_journal'] = url_for('main.journal_detail', url_seg=journal.url_next_journal)

    return j_data