コード例 #1
0
ファイル: controllers.py プロジェクト: jfunez/opac
def count_elements_by_type_and_visibility(type, public_only=False):
    """
    Retorna a quantidade de registros indicado pelo @type.
    @params:
    - ``type``: O tipo de elemento que queremos contabilizar.
                Deve ser "journal" ou "issue" ou "article";
    - ``public_only``: Se for True, filtra na contagem somente os registros públicos,
                       caso contrario contabliza todos (públicos e não publicos);
    """

    if type == 'journal':
        if public_only:
            return Journal.objects(is_public=True).count()
        else:
            return Journal.objects.count()
    elif type == 'issue':
        if public_only:
            return Issue.objects(is_public=True).count()
        else:
            return Issue.objects.count()
    elif type == 'article':
        if public_only:
            return Article.objects(is_public=True).count()
        else:
            return Article.objects.count()
    else:
        raise ValueError(u"Parâmetro 'type' errado, tente: 'journal' ou 'issue' ou 'article'.")
コード例 #2
0
ファイル: controllers.py プロジェクト: patymori/opac
def count_elements_by_type_and_visibility(type, public_only=False):
    """
    Retorna a quantidade de registros indicado pelo @type.
    @params:
    - ``type``: O tipo de elemento que queremos contabilizar.
                Deve ser "journal" ou "issue" ou "article";
    - ``public_only``: Se for True, filtra na contagem somente os registros públicos,
                       caso contrario contabliza todos (públicos e não publicos);
    """

    if type == 'journal':
        if public_only:
            return Journal.objects(is_public=True).count()
        else:
            return Journal.objects.count()
    elif type == 'issue':
        if public_only:
            return Issue.objects(is_public=True).count()
        else:
            return Issue.objects.count()
    elif type == 'article':
        if public_only:
            return Article.objects(is_public=True).count()
        else:
            return Article.objects.count()
    elif type == 'news':
        return News.objects.count()
    elif type == 'sponsor':
        return Sponsor.objects.count()
    elif type == 'pressrelease':
        return PressRelease.objects.count()
    else:
        raise ValueError("Parâmetro 'type' errado, tente: 'journal' ou 'issue' ou 'article'.")
コード例 #3
0
ファイル: controllers.py プロジェクト: swarzesherz/opac
def get_journal_by_jid(jid, is_public=True):
    """
    Retorna um periódico considerando os parâmetros ``jid`` e ``is_public``

    - ``jid``: string, chave primaria do periódico (ex.: ``f8c87833e0594d41a89fe60455eaa5a5``);
    - ``is_public``: boolean, filtra por público e não público.
    """

    return Journal.objects(jid=jid, is_public=is_public).first()
コード例 #4
0
ファイル: controllers.py プロジェクト: jfunez/opac
def get_journals(is_public=True, order_by="title"):
    """
    Retorna uma lista de periódicos considerando os parâmetros:
    - ``is_public``: filtra por público e não público de cada periódico;
    - ``order_by``: que corresponde ao nome de um atributo pelo qual
                    deve estar ordenada a lista resultante.
    """

    return Journal.objects(is_public=is_public).order_by(order_by)
コード例 #5
0
ファイル: controllers.py プロジェクト: ednilson/opac
def get_journal_by_jid(jid, **kwargs):
    """
    Retorna um periódico considerando os parâmetros ``jid`` e ``kwargs``

    - ``jid``: string, chave primaria do periódico (ex.: ``f8c87833e0594d41a89fe60455eaa5a5``);
    - ``kwargs``: parâmetros de filtragem.
    """

    return Journal.objects(jid=jid, **kwargs).first()
コード例 #6
0
    def test_create_only_required_fields_success(self):
        # given
        _id = self.generate_uuid_32_string()
        jid = self.generate_uuid_32_string()
        journal_data = {
            '_id': _id,
            'jid': jid,
            'title': 'The Dummy Journal',
            'acronym': 'dj',
            'is_public': True
        }

        # when
        journal_doc = Journal(**journal_data)
        journal_doc.save()

        # then
        self.assertEqual(_id, journal_doc._id)
        self.assertEqual(jid, journal_doc.jid)
        self.assertEqual(1, Journal.objects.all().count())
コード例 #7
0
ファイル: controllers.py プロジェクト: patymori/opac
def get_journal_by_title(title):
    """
    Retorna um periódico considerando os parâmetros ``title``

    - ``title``: string, title do periódico

    Em caso de não existir itens retorna {}.
    """

    if not title:
        raise ValueError(__('Obrigatório um title.'))

    return Journal.objects(Q(title=title)).first()
コード例 #8
0
def get_journals(title_query='',
                 is_public=True,
                 query_filter="",
                 order_by="title_slug"):
    """
    Retorna uma lista de periódicos considerando os parâmetros:
    - ``title_query`` texto para filtrar (usando i_contains) pelo titulo do periódicos;
    - ``is_public``: filtra por público e não público de cada periódico;
    - ``query_filter``: string com possíveis valores:
        - "" (vazio == sem filtro)
        - "current" (somente periódicos ativos)
        - "no-current" (somente periódicos não ativos)
    - ``order_by``: que corresponde ao nome de um atributo pelo qual
                    deve estar ordenada a lista resultante.
    """
    filters = {}

    if query_filter not in ["", "current", "no-current"]:
        raise ValueError("Parámetro: 'query_filter' é inválido!")
    elif query_filter == "current":
        filters = {
            "current_status": "current",
        }
    elif query_filter == "no-current":
        filters = {
            "current_status__ne": "current",
        }

    if not title_query or title_query.strip() == "":
        journals = Journal.objects(is_public=is_public,
                                   **filters).order_by(order_by)
    else:
        title_query_slug = slugify(title_query)
        journals = Journal.objects(is_public=is_public,
                                   title_slug__icontains=title_query_slug,
                                   **filters).order_by(order_by)

    return journals
コード例 #9
0
ファイル: controllers.py プロジェクト: jamilatta/opac
def get_journal_by_acron(acron, **kwargs):
    """
    Retorna um periódico considerando os parâmetros ``acron`` e ``kwargs``

    - ``acron``: string, acrônimo do periódico
    - ``kwargs``: parâmetros de filtragem.

    Em caso de não existir itens retorna {}.
    """

    if not acron:
        raise ValueError(__(u'Obrigatório um acronym.'))

    return Journal.objects(acronym=acron, **kwargs).first()
コード例 #10
0
ファイル: controllers.py プロジェクト: jfunez/opac
def get_journal_by_jid(jid, **kwargs):
    """
    Retorna um periódico considerando os parâmetros ``jid`` e ``kwargs``

    - ``jid``: string, chave primaria do periódico (ex.: ``f8c87833e0594d41a89fe60455eaa5a5``);
    - ``kwargs``: parâmetros de filtragem.

    Em caso de não existir itens retorna {}.
    """

    if not jid:
        raise ValueError(__(u'Obrigatório um jid.'))

    return Journal.objects(jid=jid, **kwargs).first()
コード例 #11
0
ファイル: controllers.py プロジェクト: patymori/opac
def get_journal_by_url_seg(url_seg, **kwargs):
    """
    Retorna um periódico considerando os parâmetros ``url_seg`` e ``kwargs``

    - ``url_seg``: string, acrônimo do periódico
    - ``kwargs``: parâmetros de filtragem.

    Em caso de não existir itens retorna {}.
    """

    if not url_seg:
        raise ValueError(__('Obrigatório um url_seg.'))

    return Journal.objects(url_segment=url_seg, **kwargs).first()
コード例 #12
0
ファイル: controllers.py プロジェクト: patymori/opac
def get_journal_by_acron(acron, **kwargs):
    """
    Retorna um periódico considerando os parâmetros ``acron`` e ``kwargs``

    - ``acron``: string, acrônimo do periódico
    - ``kwargs``: parâmetros de filtragem.

    Em caso de não existir itens retorna {}.
    """

    if not acron:
        raise ValueError(__('Obrigatório um acronym.'))

    return Journal.objects(acronym=acron, **kwargs).first()
コード例 #13
0
ファイル: controllers.py プロジェクト: patymori/opac
def get_journal_by_jid(jid, **kwargs):
    """
    Retorna um periódico considerando os parâmetros ``jid`` e ``kwargs``

    - ``jid``: string, chave primaria do periódico (ex.: ``f8c87833e0594d41a89fe60455eaa5a5``);
    - ``kwargs``: parâmetros de filtragem.

    Em caso de não existir itens retorna {}.
    """

    if not jid:
        raise ValueError(__('Obrigatório um jid.'))

    return Journal.objects(jid=jid, **kwargs).first()
コード例 #14
0
    def _create_dummy_journal(self):
        journal_id = self.generate_uuid_32_string()
        journal_jid = self.generate_uuid_32_string()
        journal_data = {
            '_id': journal_id,
            'jid': journal_jid,
            'title': 'The Dummy Journal',
            'short_title': 'DummyJrnl',
            'acronym': 'dj',
            'is_public': True
        }

        journal_doc = Journal(**journal_data)
        return journal_doc
コード例 #15
0
ファイル: controllers.py プロジェクト: paratiuid/opac
def get_journal_by_issn(issn, **kwargs):
    """
    Retorna um periódico considerando os parâmetros ``issn`` e ``kwargs``

    - ``issn``: string, issn do periódico
    - ``kwargs``: parâmetros de filtragem.

    Em caso de não existir itens retorna {}.
    """

    if not issn:
        raise ValueError(__('Obrigatório um issn.'))

    return Journal.objects(Q(print_issn=issn) | Q(eletronic_issn=issn), **kwargs).first()
コード例 #16
0
ファイル: controllers.py プロジェクト: jamilatta/opac
def get_journal_by_url_seg(url_seg, **kwargs):
    """
    Retorna um periódico considerando os parâmetros ``url_seg`` e ``kwargs``

    - ``url_seg``: string, acrônimo do periódico
    - ``kwargs``: parâmetros de filtragem.

    Em caso de não existir itens retorna {}.
    """

    if not url_seg:
        raise ValueError(__(u'Obrigatório um url_seg.'))

    return Journal.objects(url_segment=url_seg, **kwargs).first()
コード例 #17
0
ファイル: controllers.py プロジェクト: jamilatta/opac
def get_journals(title_query='', is_public=True, query_filter="", order_by="title_slug"):
    """
    Retorna uma lista de periódicos considerando os parâmetros:
    - ``title_query`` texto para filtrar (usando i_contains) pelo titulo do periódicos;
    - ``is_public``: filtra por público e não público de cada periódico;
    - ``query_filter``: string com possíveis valores:
        - "" (vazio == sem filtro)
        - "current" (somente periódicos ativos)
        - "no-current" (somente periódicos não ativos)
    - ``order_by``: que corresponde ao nome de um atributo pelo qual
                    deve estar ordenada a lista resultante.
    """
    filters = {}

    if query_filter not in ["", "current", "no-current"]:
        raise ValueError(u"Parámetro: 'query_filter' é inválido!")
    elif query_filter == "current":
        filters = {
            "current_status": "current",
        }
    elif query_filter == "no-current":
        filters = {
            "current_status__ne": "current",
        }

    if not title_query or title_query.strip() == "":
        journals = Journal.objects(
            is_public=is_public, **filters).order_by(order_by)
    else:
        title_query_slug = slugify(title_query)
        journals = Journal.objects(
            is_public=is_public,
            title_slug__icontains=title_query_slug,
            **filters).order_by(order_by)

    return journals