示例#1
0
文件: views.py 项目: dplorimer/osf
def list_citation_styles():
    query = None

    term = request.args.get('q')
    if term:
        query = (Q('_id', 'icontains', term) | Q('title', 'icontains', term)
                 | Q('short_title', 'icontains', term))

    return {
        'styles': [style.to_json() for style in CitationStyle.find(query)],
    }
示例#2
0
def list_citation_styles():
    query = None

    term = request.args.get('q')
    if term:
        query = (
            Q('_id', 'icontains', term) |
            Q('title', 'icontains', term) |
            Q('short_title', 'icontains', term)
        )

    return {
        'styles': [style.to_json() for style in CitationStyle.find(query)],
    }
示例#3
0
def main():
    init_app(set_backends=True, routes=False)

    # drop all styles
    CitationStyle.remove()

    total = 0

    for style_file in get_style_files(settings.CITATION_STYLES_PATH):
        with open(style_file, 'r') as f:
            try:
                root = etree.parse(f).getroot()
            except etree.XMLSyntaxError:
                continue
            total += 1
            namespace = root.nsmap.get(None)
            selector = '{{{ns}}}info/{{{ns}}}'.format(ns=namespace)

            # Required
            fields = {
                '_id': os.path.splitext(os.path.basename(style_file))[0],
                'title': root.find(selector + 'title').text,
            }

            # Optional
            try:
                fields['short_title'] = root.find(selector + "title-short").text
            except AttributeError:
                pass

            try:
                fields['summary'] = root.find(selector + 'summary').text
            except AttributeError:
                pass

            style = CitationStyle(**fields)
            style.save()

    return total
示例#4
0
 def get_queryset(self):
     return CitationStyle.find(self.get_query_from_request())
示例#5
0
 def get_queryset(self):
     return CitationStyle.find(self.get_query_from_request())