def festivals(query=None): cursor.execute( "SELECT * FROM festivals f JOIN PLACES p ON f.id_place = p.id_place ORDER BY f.date_start DESC" ) incoming = cursor.fetchall() if query: incoming = filter_by_query(incoming, query) query_form = QueryForm() form = FestivalForm() cursor.execute("SELECT * FROM places") places = cursor.fetchall() form.place.choices = BLANK_OPTION + sorted( [(place['id_place'], f'{place["city"]} / {place["name"]}') for place in places], key=lambda x: x[1]) form.to_edit.choices = Options.EMPTY + sorted( [(x['id_festival'], x['festival_name']) for x in incoming], key=lambda x: x[1]) return render_template('festivals.html', incoming=incoming, form=form, query_form=query_form)
def musicians(query=None): cursor.execute("SELECT * FROM musicians ORDER BY band, name") my_musicians = cursor.fetchall() if query: my_musicians = filter_by_query(my_musicians, query) form = MusicianForm() query_form = QueryForm() cursor.execute("SELECT * FROM bands") bands = cursor.fetchall() form.band.choices = Options.BLANK + sorted( [(band['name'], band['name']) for band in bands], key=lambda x: x[1]) cursor.execute("SELECT * FROM instruments") instruments = cursor.fetchall() form.instrument.choices = Options.BLANK + sorted( [(instrument['type'], instrument['type']) for instrument in instruments], key=lambda x: x[1]) form.to_edit.choices = Options.EMPTY + [(x['name'], x['name']) for x in my_musicians] return render_template('musicians.html', my_musicians=my_musicians, form=form, query_form=query_form)
def albums(query=None): cursor.execute("SELECT * FROM albums ORDER BY band, name") my_albums = cursor.fetchall() if query: my_albums = filter_by_query(my_albums, query) form = AlbumForm() query_form = QueryForm() cursor.execute("SELECT * FROM bands") bands = cursor.fetchall() form.band.choices = Options.BLANK + sorted( [(band['name'], band['name']) for band in bands], key=lambda x: x[1]) cursor.execute("SELECT * FROM genres") genres = cursor.fetchall() form.genre.choices = Options.BLANK + sorted([(genre['name'], genre['name']) for genre in genres], key=lambda x: x[1]) form.to_edit.choices = Options.EMPTY + sorted( [(x['name'], x['name']) for x in my_albums], key=lambda x: x[1]) return render_template('albums.html', my_albums=my_albums, form=form, query_form=query_form)
def appearances(id_festival=None, query=None): cursor.execute("SELECT * FROM bands b JOIN appearances a ON b.name = a.band " "WHERE a.id_festival = %s::INTEGER order by b.name", [id_festival]) my_bands = cursor.fetchall() if query: my_bands = filter_by_query(my_bands, query) form = AppearanceForm() query_form = QueryForm() cursor.execute("SELECT * FROM bands") bands = cursor.fetchall() form.band.choices = Options.BLANK + sorted([(band['name'], band['name']) for band in bands], key=lambda x: x[1]) cursor.execute("SELECT festival_name FROM festivals WHERE id_festival = %s::INTEGER", [id_festival]) festival = cursor.fetchone() return render_template('appearances.html', my_bands=my_bands, query_form=query_form, form=form, id_festival=id_festival, festival_name=festival['festival_name'])
def concerts(days=None, query=None): days = days or 30 query = None if query == 'none' else query cursor.execute( "SELECT * FROM getConcertsByDate(days_number := %s::INTEGER) NATURAL JOIN PLACES " "ORDER BY concert_date DESC", (days, )) incoming = cursor.fetchall() if query: incoming = filter_by_query(incoming, query) form = ConcertForm() query_form = ConcertsQueryForm() cursor.execute("SELECT * FROM bands") bands = cursor.fetchall() form.band.choices = Options.BLANK + sorted( [(band['name'], band['name']) for band in bands], key=lambda x: x[1]) cursor.execute("SELECT * FROM places") places = cursor.fetchall() form.place.choices = Options.BLANK + sorted( [(place['id_place'], f'{place["city"]} / {place["name"]}') for place in places], key=lambda x: x[1]) # form.to_edit.choices = Options.EMPTY + sorted([(x['id_concert'], x['id_concert']) for x in incoming], key=lambda x: x[1]) form.to_edit.choices = Options.EMPTY + sorted( [(x['id_concert'], f'{x["concert_date"]} / {x["band"]} / {x["name"]} / {x["city"]}') for x in incoming], key=lambda x: x[1], reverse=True) return render_template('concerts.html', incoming=incoming, form=form, query_form=query_form)
def awards(query=None): cursor.execute("SELECT * FROM awards ORDER BY name ASC") awards = cursor.fetchall() if query: awards = filter_by_query(awards, query) query_form = QueryForm() form = AwardForm() form.to_edit.choices = Options.EMPTY + sorted( [(x['name'], x['name']) for x in awards], key=lambda x: x[1]) return render_template('awards.html', awards=awards, form=form, query_form=query_form)
def bands(query=None): cursor.execute("SELECT * FROM bands ORDER BY name") my_bands = cursor.fetchall() if query: my_bands = filter_by_query(my_bands, query) query_form = QueryForm() form = BandForm() form.to_edit.choices = Options.EMPTY + [(x['name'], x['name']) for x in my_bands] return render_template('bands.html', my_bands=my_bands, form=form, query_form=query_form)
def instruments(query=None): cursor.execute("SELECT * FROM INSTRUMENTS ORDER BY TYPE ASC") instruments = cursor.fetchall() if query: instruments = filter_by_query(instruments, query) query_form = QueryForm() form = InstrumentForm() form.to_edit.choices = Options.EMPTY + sorted( [(x['type'], x['type']) for x in instruments], key=lambda x: x[1]) return render_template('instruments.html', instruments=instruments, form=form, query_form=query_form)
def places(query=None): cursor.execute("SELECT * FROM PLACES ORDER BY CITY ASC, NAME ASC") places = cursor.fetchall() if query: places = filter_by_query(places, query) query_form = QueryForm() form = PlaceForm() form.to_edit.choices = Options.EMPTY + sorted( [(x['id_place'], f'{x["name"]}/{x["city"]}') for x in places], key=lambda x: x[1]) return render_template('places.html', places=places, form=form, query_form=query_form)
def genres(query=None): cursor.execute("SELECT * FROM genres ORDER BY name ASC") genres = cursor.fetchall() if query: genres = filter_by_query(genres, query) query_form = QueryForm() form = GenreForm() form.supergenre.choices = Options.BLANK + sorted( [(x['name'], x['name']) for x in genres], key=lambda x: x[1]) form.to_edit.choices = Options.EMPTY + sorted( [(x['name'], x['name']) for x in genres], key=lambda x: x[1]) return render_template('genres.html', genres=genres, form=form, query_form=query_form)
def songs(id_album): cursor.execute( "SELECT * FROM songs WHERE id_album = %s::INTEGER order by position", [id_album]) my_songs = cursor.fetchall() cursor.execute( "SELECT name, band FROM albums WHERE id_album = %s::INTEGER", [id_album]) album_info = cursor.fetchone() form = SongForm() form.to_edit.choices = Options.EMPTY + sorted( [(x['name'], x['position']) for x in my_songs], key=lambda x: x[1]) return render_template('songs.html', my_songs=my_songs, id_album=id_album, album_name=album_info['name'], band=album_info['band'], form=form)