Exemplo n.º 1
0
def sherpa_romeo_journal_process(form, field, submit=False, fields=None):
    value = field.data or ''
    if value == "" or value.isspace():
        return

    s = SherpaRomeoSearch()
    s.search_journal(value, 'exact')
    if s.error:
        field.add_message(s.error_message, state='info')
        return

    if s.get_num_hits() == 1:
        issn = s.parser.get_journals(attribute='issn')
        if issn != [] and issn is not None:
            issn = issn[0]
            publisher = s.parser.get_publishers(journal=value)
            if publisher is not None and publisher != []:
                if hasattr(form, 'issn'):
                    form.issn.data = issn

                if hasattr(form, 'publisher'):
                    form.publisher.data = publisher['name']
                    form.publisher.post_process(form)
                return

            field.add_message("Journal's Publisher not found", state='info')
            if hasattr(form, 'issn'):
                form.issn.data = issn
            if hasattr(form, 'publisher'):
                form.publisher.data = publisher
                form.publisher.post_process(form)
        else:
            field.add_message("Couldn't find ISSN.", state='info')
Exemplo n.º 2
0
def sherpa_romeo_journal_process(form, field, submit=False, fields=None):
    value = field.data or ''
    if value == "" or value.isspace():
        return

    s = SherpaRomeoSearch()
    s.search_journal(value, 'exact')
    if s.error:
        field.add_message(s.error_message, state='info')
        return

    if s.get_num_hits() == 1:
        issn = s.parser.get_journals(attribute='issn')
        if issn != [] and issn is not None:
            issn = issn[0]
            publisher = s.parser.get_publishers(journal=value)
            if publisher is not None and publisher != []:
                if hasattr(form, 'issn'):
                    form.issn.data = issn

                if hasattr(form, 'publisher'):
                    form.publisher.data = publisher['name']
                    form.publisher.post_process(form)
                return

            field.add_message("Journal's Publisher not found", state='info')
            if hasattr(form, 'issn'):
                form.issn.data = issn
            if hasattr(form, 'publisher'):
                form.publisher.data = publisher
                form.publisher.post_process(form)
        else:
            field.add_message("Couldn't find ISSN.", state='info')
Exemplo n.º 3
0
def sherpa_romeo_journals(dummy_form, dummy_field, term, limit=50):
    """Search SHERPA/RoMEO for journal name."""
    if term:
        # SherpaRomeoSearch doesnt' like unicode
        if isinstance(term, unicode):
            term = term.encode('utf8')
        s = SherpaRomeoSearch()
        journals = s.search_journal(term)
        if journals is not None:
            return map(lambda x: {'value': x}, journals[:limit])
    return []
def sherpa_romeo_journals(dummy_form, dummy_field, term, limit=50):
    """Search SHERPA/RoMEO for journal name."""
    if term:
        # SherpaRomeoSearch doesnt' like unicode
        if isinstance(term, unicode):
            term = term.encode('utf8')
        s = SherpaRomeoSearch()
        journals = s.search_journal(term)
        if journals is not None:
            return map(lambda x: {'value': x}, journals[:limit])
    return []