Example #1
0
    def test_get_prev_issue_when_the_last_issue(self):
        """
        Testando o get_prev_issue quando é acessado um índice inexistente, deve
        retorna None.

        Acessando o a um índice inexistente, o último item da lista irá retornar
        None pois não existe o índice [último] + 1 (Lembrando que a lista de
        fascículo é invertida)

        Portanto a função get_prev_issue soma 1.

        IMPORTANTE: A lista é invertida.
        """

        issue1 = utils.makeOneIssue({'year': '2016', 'volume': '1',
                                     'number': '1', 'order': '1', })
        issue2 = utils.makeOneIssue({'year': '2016', 'volume': '1',
                                     'number': '2', 'order': '2', })
        issue3 = utils.makeOneIssue({'year': '2016', 'volume': '1',
                                     'number': '3', 'order': '3', })
        issue4 = utils.makeOneIssue({'year': '2016', 'volume': '1',
                                     'number': '4', 'order': '4', })

        # criando uma lista de fascículos ordenada
        issues = [issue1, issue2, issue3, issue4]

        prev_issue = wutils.get_prev_issue(issues, issue4)

        self.assertIsNone(prev_issue)
Example #2
0
    def test_get_prev_issue(self):
        """
        Teste da função utils.get_prev_issue().

        IMPORTANTE: A lista é invertida.
        """

        issue1 = utils.makeOneIssue({
            'year': '2016',
            'volume': '1',
            'number': '1',
            'order': '1',
        })
        issue2 = utils.makeOneIssue({
            'year': '2016',
            'volume': '1',
            'number': '2',
            'order': '2',
        })
        issue3 = utils.makeOneIssue({
            'year': '2016',
            'volume': '1',
            'number': '3',
            'order': '3',
        })

        # criando uma lista de números ordenada
        issues = [issue1, issue2, issue3]

        prev_issue = wutils.get_prev_issue(issues, issue2)

        self.assertEqual(prev_issue, issue3)
Example #3
0
def issue_toc(url_seg, url_seg_issue):
    default_lang = current_app.config.get('BABEL_DEFAULT_LOCALE')
    section_filter = request.args.get('section', '', type=str)

    if not session.get('lang'):
        lang = default_lang
    else:
        lang = session.get('lang')[:2]

    issue = controllers.get_issue_by_url_seg(url_seg, url_seg_issue)

    if not issue:
        abort(404, _('Fascículo não encontrado'))

    if not issue.is_public:
        abort(404, ISSUE_UNPUBLISH + _(issue.unpublish_reason))

    if not issue.journal.is_public:
        abort(404, JOURNAL_UNPUBLISH + _(issue.journal.unpublish_reason))

    journal = issue.journal
    articles = controllers.get_articles_by_iid(issue.iid, is_public=True)

    if articles:
        sections = list(articles.item_frequencies('section').keys())
        sections = sorted([k for k in sections if k is not None])
    else:
        sections = []

    issues = controllers.get_issues_by_jid(journal.id, is_public=True)

    if section_filter != '':
        articles = articles.filter(section__iexact=section_filter)

    issue_list = [_issue for _issue in issues]

    previous_issue = utils.get_prev_issue(issue_list, issue)
    next_issue = utils.get_next_issue(issue_list, issue)

    context = {
                'next_issue': next_issue,
                'previous_issue': previous_issue,
                'journal': journal,
                'issue': issue,
                'articles': articles,
                'sections': sections,
                'section_filter': section_filter,
                # o primiero item da lista é o último fascículo.
                'last_issue': issues[0] if issues else None
               }

    return render_template("issue/toc.html", **context)
Example #4
0
def issue_toc(url_seg, url_seg_issue):
    default_lang = current_app.config.get("BABEL_DEFAULT_LOCALE")
    section_filter = request.args.get("section", "", type=unicode)

    if not session.get("lang"):
        lang = default_lang
    else:
        lang = session.get("lang")[:2]

    issue = controllers.get_issue_by_url_seg(url_seg, url_seg_issue)

    if not issue:
        abort(404, _("Fascículo não encontrado"))

    if not issue.is_public:
        abort(404, ISSUE_UNPUBLISH + _(issue.unpublish_reason))

    if not issue.journal.is_public:
        abort(404, JOURNAL_UNPUBLISH + _(issue.journal.unpublish_reason))

    journal = issue.journal
    articles = controllers.get_articles_by_iid(issue.iid, is_public=True)

    if articles:
        sections = sorted(articles.item_frequencies("section").keys())
    else:
        sections = []

    issues = controllers.get_issues_by_jid(journal.id, is_public=True)

    if section_filter != "":
        articles = articles.filter(section__iexact=section_filter)

    issue_list = [_issue for _issue in issues]

    previous_issue = utils.get_prev_issue(issue_list, issue)
    next_issue = utils.get_next_issue(issue_list, issue)

    context = {
        "next_issue": next_issue,
        "previous_issue": previous_issue,
        "journal": journal,
        "issue": issue,
        "articles": articles,
        "sections": sections,
        "section_filter": section_filter,
        # o primiero item da lista é o último fascículo.
        "last_issue": issues[0] if issues else None,
    }

    return render_template("issue/toc.html", **context)
Example #5
0
    def test_get_prev_issue_with_one_item(self):
        """
        Teste da função utils.get_prev_issue() without itens, deve retorna None.
        """

        issue1 = utils.makeOneIssue({'year': '2016', 'volume': '1',
                                     'number': '1', 'order': '1', })

        issue = utils.makeOneIssue()

        # criando uma lista de fascículos vazia
        issues = [issue1]

        prev_issue = wutils.get_prev_issue(issues, issue)

        self.assertIsNone(prev_issue)
Example #6
0
    def test_get_prev_issue_when_the_last_issue(self):
        """
        Testando o get_prev_issue quando é acessado um índice inexistente, deve
        retorna None.

        Acessando o a um índice inexistente, o último item da lista irá retornar
        None pois não existe o índice [último] + 1 (Lembrando que a lista de
        número é invertida)

        Portanto a função get_prev_issue soma 1.

        IMPORTANTE: A lista é invertida.
        """

        issue1 = utils.makeOneIssue({
            'year': '2016',
            'volume': '1',
            'number': '1',
            'order': '1',
        })
        issue2 = utils.makeOneIssue({
            'year': '2016',
            'volume': '1',
            'number': '2',
            'order': '2',
        })
        issue3 = utils.makeOneIssue({
            'year': '2016',
            'volume': '1',
            'number': '3',
            'order': '3',
        })
        issue4 = utils.makeOneIssue({
            'year': '2016',
            'volume': '1',
            'number': '4',
            'order': '4',
        })

        # criando uma lista de números ordenada
        issues = [issue1, issue2, issue3, issue4]

        prev_issue = wutils.get_prev_issue(issues, issue4)

        self.assertIsNone(prev_issue)
Example #7
0
    def test_get_prev_issue_with_one_item(self):
        """
        Teste da função utils.get_prev_issue() without itens, deve retorna None.
        """

        issue1 = utils.makeOneIssue({
            'year': '2016',
            'volume': '1',
            'number': '1',
            'order': '1',
        })

        issue = utils.makeOneIssue()

        # criando uma lista de números vazia
        issues = [issue1]

        prev_issue = wutils.get_prev_issue(issues, issue)

        self.assertIsNone(prev_issue)
Example #8
0
    def test_get_prev_issue(self):
        """
        Teste da função utils.get_prev_issue().

        IMPORTANTE: A lista é invertida.
        """

        issue1 = utils.makeOneIssue({'year': '2016', 'volume': '1',
                                     'number': '1', 'order': '1', })
        issue2 = utils.makeOneIssue({'year': '2016', 'volume': '1',
                                     'number': '2', 'order': '2', })
        issue3 = utils.makeOneIssue({'year': '2016', 'volume': '1',
                                     'number': '3', 'order': '3', })

        # criando uma lista de fascículos ordenada
        issues = [issue1, issue2, issue3]

        prev_issue = wutils.get_prev_issue(issues, issue2)

        self.assertEqual(prev_issue, issue3)