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)], }
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)], }
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
def get_queryset(self): return CitationStyle.find(self.get_query_from_request())