def view(self): with session_scope() as session: ss = session.query(Game).filter( Game.completions.any(Completion.status_id == 2), ~Game.quotations.any(Quotation.tags.any(Tag.id == get_tag('endless game').id)), ~Game.quotations.any(Quotation.tags.any(Tag.id == get_tag('you win').id))) return render_template('source/index.html', sources=ss)
def view(self): with session_scope() as session: no_type = session.query(Name).filter(Name.type == None) no_begin = session.query(Name).filter( or_(Name.begin_date == None, Name.begin_date == '')) return render_template_string(self.template, no_type=no_type, no_begin=no_begin)
def view(self): with session_scope() as session: metadata = defaultdict(lambda: defaultdict(list)) things = ( session.query(Source).all() + session.query(Term).all() + session.query(Journal).all() ) for s in things: for k, vs in s.user_metadata.items(): for v in vs: metadata[k][v].append(s) return render_template_string(self.template, metadata=metadata)
def view(self): with session_scope() as session: q = session.query(Completion).filter(Completion.end_date != None, Completion.status_id == 2).all() if 'individual' in request.args: entries = [{ 'start' : e.start_date.isoformat() if e.start_date else e.end_date.isoformat(), 'end' : e.end_date.isoformat() if e.start_date else None, 'type' : 'range' if e.start_date and e.start_date != e.end_date else 'point', 'content' : e.source.title} for e in q] else: entries = [] sers = {} for e in q: if not (e.source.series and (e.source.type in ['episode', 'comic', 'periodical'])): entries.append({ 'start' : e.start_date.isoformat() if e.start_date else e.end_date.isoformat(), 'end' : e.end_date.isoformat() if e.start_date else None, 'type' : 'range' if e.start_date and e.start_date != e.end_date else 'point', 'content' : e.source.title}) else: # A series item, so it should be collapsed me = { 'start' : e.start_date.isoformat() if e.start_date else e.end_date.isoformat(), 'end' : e.end_date.isoformat() if e.start_date else None, 'type' : 'range' if e.start_date and e.start_date != e.end_date else 'point', 'content' : e.source.series.name} if e.source.series.id in sers: start = sers[e.source.series.id]['start'] if start > me['start']: start = me['start'] sers[e.source.series.id]['start'] = start end = sers[e.source.series.id]['end'] if (not end) or (me['end'] and (end < me['end'])): end = me['end'] sers[e.source.series.id]['end'] = end else: sers[e.source.series.id] = me for e in sers.values(): entries.append({ 'start' : e['start'], 'end' : e['end'] if e['end'] else None, 'type' : 'range' if e['end'] else 'point', 'content' : e['content']}) return render_template_string(self.template, entries=entries)
def view(self): with session_scope() as session: ss = session.query(Source).filter(Source.roles.any(Role.role_type_id == None)) return render_template_string(self.template, sources=ss)