def get(self): shows = Program.get(num=1000) # TODO: NOPE slug = self.request.get("show") datestring = self.request.get("programdate") selected_date = None if datestring: try: selected_date = datetime.datetime.strptime(datestring, "%m/%d/%Y") selected_date = selected_date + datetime.timedelta(hours=12) except: self.session.add_flash("The date provided could not be parsed.") self.redirect("/") return if slug: selected_program = Program.get(slug=slug) if not selected_program: self.session.add_flash("There is no program for slug %s." % slug) self.redirect("/") return if selected_date: plays = models.getPlaysBetween(program=selected_program, after=(selected_date - datetime.timedelta(hours=24)), before=(selected_date + datetime.timedelta(hours=24))) else: lastplay = Play.get_last(program=selected_program, num=1) if lastplay: lastplay = lastplay[0] last_date = lastplay.play_date plays = models.getPlaysBetween(program=selected_program, after=(last_date - datetime.timedelta(days=1))) else: plays = [] else: if not selected_date: lastplay = Play.get_last() if lastplay: selected_date = lastplay.play_date if selected_date: plays = models.getPlaysForDate(selected_date) else: plays = Play.get_last(num=60) template_values = { 'playlists_selected': True, 'session': self.session, 'plays': plays, 'shows': shows, } self.response.out.write(template.render(get_path("playlist.html"), template_values))
def post(self): if (self.request.get("submit") != "Add Program"): self.session.add_flash( "There was an error processing your request. Please try again.") else: slug = self.request.get("slug") program = Program.get(slug=slug) if program: self.session.add_flash(("Program \"%s\" already exists with slug %s."% (program.title, slug))) self.redirect("/dj/programs/") return # Set up the program entry, and then put it in the DB program = Program.new(title=self.request.get("title"), slug=self.request.get("slug"), desc=self.request.get("desc"), dj_list=self.request.get_all("djkey"), page_html=self.request.get("page_html"), current=bool(self.request.get("current"))) program.put() self.session.add_flash( "%s was successfully created associated a program. " "Click <a href='/dj/programs/%s'>here</a> " "to edit it (you probably want to do " "this as there are no DJs on it currently)."% (program.title, str(program.key))) self.redirect('/dj/programs/')
def get(self, program_key): program = Program.get(program_key) if not program: self.session.add_flash( "Unable to find program (" + program_key + "). Please try again.") self.redirect("/dj/programs/") else: new_programs = Program.get(num=5) template_values = { 'program_djs': [Dj.get(dj) for dj in program.dj_list], 'program': program, 'session': self.session, 'flash': self.flashes, 'new_programs': new_programs } self.response.out.write( template.render(get_path("dj_manage_programs.html"), template_values))
def get(self): new_programs = Program.get(num=5) template_values = { 'session': self.session, 'flash': self.flashes, 'new_programs': new_programs, } self.response.out.write( template.render(get_path("dj_manage_programs.html"), template_values))
def get(self): slug = self.request.get("show") datestring = self.request.get("programdate") selected_date = None selected_program = None if datestring: try: selected_date = datetime.datetime.strptime(datestring, "%m/%d/%Y") selected_date = selected_date + datetime.timedelta(hours=12) except: self.session.add_flash("The date provided could not be parsed.", level="error") self.redirect("/playlists") return if slug: selected_program = Program.get(slug=slug) if not selected_program: self.session.add_flash("There is no program for slug %s." % slug, level="error") self.redirect("/playlists") return if selected_date: plays = Play.get_last(program=selected_program, after=(selected_date - datetime.timedelta(hours=24)), before=(selected_date + datetime.timedelta(hours=24)), num=60) else: lastplay = Play.get_last(program=selected_program) if lastplay: last_date = lastplay.play_date plays = Play.get_last(program=selected_program, after=(last_date - datetime.timedelta(days=1)), num=60) else: plays = [] else: if selected_date: plays = Play.get_last(before=selected_date, num=60) else: plays = Play.get_last(num=60) template_values = { 'playlists_selected': True, 'session': self.session, 'plays': plays, 'show': selected_program, 'datestring': datestring, } self.response.out.write(template.render(get_path("playlist.html"), template_values))
def post(self): program_key = self.request.get("programkey") program = Program.get(key=program_key) if not program: self.session.add_flash( "An error occurred retrieving your program. Please try again.") self.redirect("/dj/") return self.set_session_program(program) self.session.add_flash( "The current program has been set to %s."%program.title) self.redirect("/dj/")
def get(self): if not self.session_has_program(): self.session.add_flash( "You can't chart songs until you have an associated program in the " "system. Please contact a member of management immediately.") self.redirect("/dj/") return memcache_key = "playlist_html_%s"%self.session.get('program').get('key') playlist_html = memcache.get(memcache_key) if not playlist_html: playlist_html = template.render("dj_chartsong_playlist_div.html", {'playlist': Play.get_last(num=50, program=Program.get(self.program_key), after=(datetime.date.today())), } ) memcache.set(memcache_key, playlist_html, 60 * 60 * 24) last_psa = None #Psa.get_last() # cache.getLastPsa() new_albums = None #new_song_div_html = memcache.get("new_song_div_html") album_songs = [] new_song_div_html = None if not new_song_div_html: new_albums = Album.get_new() #by_artist=True) if new_albums: logging.debug(new_albums) album_songs = Song.get(new_albums[0].tracklist) new_song_div_html = template.render( get_path("dj_chartsong_newsongdiv.html"), {'new_albums': new_albums, 'album_songs': album_songs,}) memcache.set("new_song_div_html", new_song_div_html) template_values = { 'last_psa': last_psa, 'playlist_html': playlist_html, 'session': self.session, 'flash': self.flashes, 'new_albums': new_albums, 'album_songs': album_songs, 'new_song_div_html': new_song_div_html, } self.response.out.write( template.render(get_path("dj_chartsong.html"), template_values))
def post(self, program_key): program = Program.get(program_key) if (not program or (self.request.get("submit") != "Edit Program" and self.request.get("submit") != "Delete Program")): self.session.add_flash( "There was an error processing your request. Please try again.") elif self.request.get("submit") == "Edit Program": program.title = self.request.get("title") program.slug = self.request.get("slug") program.desc = self.request.get("desc") program.page_html = self.request.get("page_html") program.dj_list = self.request.get_all("djkey") program.current = bool(self.request.get("current")) program.put() self.session.add_flash(program.title + " successfully edited.") elif self.request.get("submit") == "Delete Program": program.delete() self.session.add_flash(program.title + " successfully deleted.") self.redirect("/dj/programs/")