Exemplo n.º 1
0
  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))
Exemplo n.º 2
0
Arquivo: dj.py Projeto: hchapman/WBOR
  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/')
Exemplo n.º 3
0
Arquivo: dj.py Projeto: hchapman/WBOR
 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))
Exemplo n.º 4
0
Arquivo: dj.py Projeto: hchapman/WBOR
  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))
Exemplo n.º 5
0
  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))
Exemplo n.º 6
0
Arquivo: dj.py Projeto: hchapman/WBOR
 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/")
Exemplo n.º 7
0
Arquivo: dj.py Projeto: hchapman/WBOR
  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))
Exemplo n.º 8
0
Arquivo: dj.py Projeto: hchapman/WBOR
 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/")