def index(): ''' render the basic template for angular ''' data = graph.get_all('grimoire') grimoires = [] for g in data['nodes']: g = g['props'] year = helpers.grimoire_date(g) grimoires.append({ 'uid': g['uid'], 'identifier': g['identifier'], 'date': year, 'timestamp': g['date'] }) grimoires = sorted(grimoires, key=lambda grim: grim['timestamp']) excerpt = graph.get_frontpage_random()['nodes'][0] excerpt['props']['content'] = markdown(excerpt['props']['content']) # --- map events = graph.get_all('event')['nodes'] events = sorted(events, key=lambda k: int(k['props']['date']), reverse=True) for event in events: event['props']['display_date'] = helpers.grimoire_date(event['props']) # --- render template template_data = { 'title': 'Grimoire Encyclopedia', 'grimoires': grimoires, 'excerpt': excerpt, 'events': events } return flask_render_template('home.html', **template_data)
def index(): ''' render the basic template for angular ''' data = graph.get_all('grimoire') grimoires = [] for g in data['nodes']: g = g['props'] year = helpers.grimoire_date(g) grimoires.append({ 'uid': g['uid'], 'identifier': g['identifier'], 'date': year }) grimoires = sorted(grimoires, key=lambda grim: grim['identifier']) excerpt = graph.get_frontpage_random()['nodes'][0] excerpt['props']['content'] = markdown(excerpt['props']['content']) # --- map events = graph.get_all('event')['nodes'] events = sorted(events, key=lambda k: int(k['props']['date']), reverse=True) for event in events: event['props']['display_date'] = helpers.grimoire_date(event['props']) # --- render template template_data = { 'title': 'Grimoire Encyclopedia', 'grimoires': grimoires, 'excerpt': excerpt, 'events': events } return flask_render_template('home.html', **template_data)
def grimoire_item(node, rels): ''' grimoire item page :param node: the item node :param rels: default relationship list :return: customized data for this label ''' data = generic_item(node, rels) data['rels'] = helpers.exclude_rels(data['rels'], [ 'lists', 'has', 'includes', 'wrote', 'was_written_in']) data['details']['date'] = [{'text': helpers.grimoire_date(node['props'])}] authors = extract_rel_list_by_type(rels, 'wrote', 'start') authors = extract_details(authors) if authors: data['details']['author'] = authors languages = extract_rel_list_by_type(rels, 'was_written_in', 'end') if languages: data['details']['language'] = extract_details(languages) editions = extract_rel_list(rels, 'edition', 'end') if editions: data['sidebar'].append({ 'title': 'Editions', 'data': editions }) for entity in entities: items = extract_rel_list_by_type(rels, 'lists', 'end', label=entity) if len(items): item_json = { 'title': helpers.pluralize(entity), 'data': items, 'many': True, 'compare': get_comparison(node, entity) } data['main'].append(item_json) spells = extract_rel_list(rels, 'spell', 'end') if len(spells): data['main'].append({ 'title': 'Spells', 'data': spells, 'many': False, 'compare': get_comparison(node, 'spell') }) talisman = extract_rel_list(rels, 'talisman', 'end') if len(talisman): data['main'].append({ 'title': 'Talismans', 'data': talisman, 'many': False }) return data
def temporospatial(): ''' render the basic template for angular ''' events = graph.get_all('event')['nodes'] events = sorted(events, key=lambda k: int(k['props']['date']), reverse=True) for event in events: event['props']['display_date'] = helpers.grimoire_date(event['props']) template_data = {'title': 'Grimoire Encyclopedia', 'events': events} return flask_render_template('map.html', **template_data)
def grimoire_item(node, rels): ''' grimoire item page :param node: the item node :param rels: default relationship list :return: customized data for this label ''' data = generic_item(node, rels) data['rels'] = helpers.exclude_rels( data['rels'], ['lists', 'has', 'includes', 'wrote', 'was_written_in']) data['details']['date'] = [{'text': helpers.grimoire_date(node['props'])}] authors = extract_rel_list_by_type(rels, 'wrote', 'start') authors = extract_details(authors) if authors: data['details']['author'] = authors languages = extract_rel_list_by_type(rels, 'was_written_in', 'end') if languages: data['details']['language'] = extract_details(languages) editions = extract_rel_list(rels, 'edition', 'end') if editions: data['sidebar'].append({'title': 'Editions', 'data': editions}) for entity in entities: items = extract_rel_list_by_type(rels, 'lists', 'end', label=entity) if len(items): item_json = { 'title': helpers.pluralize(entity), 'data': items, 'many': True, 'compare': get_comparison(node, entity) } data['main'].append(item_json) spells = extract_rel_list(rels, 'spell', 'end') if len(spells): data['main'].append({ 'title': 'Spells', 'data': spells, 'many': False, 'compare': get_comparison(node, 'spell') }) talisman = extract_rel_list(rels, 'talisman', 'end') if len(talisman): data['main'].append({ 'title': 'Talismans', 'data': talisman, 'many': False }) return data
def temporospatial(): ''' render the basic template for angular ''' events = graph.get_all('event')['nodes'] events = sorted(events, key=lambda k: int(k['props']['date']), reverse=True) for event in events: event['props']['display_date'] = helpers.grimoire_date(event['props']) template_data = { 'title': 'Grimoire Encyclopedia', 'events': events } return flask_render_template('map.html', **template_data)