示例#1
0
  def show(self):
    self.template = 'admin/index'
    client = gdata.spreadsheets.client.SpreadsheetsClient(source='Devfest-Website-v1')
    access_token = gdata.gauth.AeLoad('spreadsheed_token')
    feed = client.get_list_feed(self.settings.DOCSAPI_SPREADSHEET_ID,
                                self.settings.DOCSAPI_SPREADSHEET_WORKSHEET_ID,
                                auth_token=access_token)
    if feed.entry:
      for entry in feed.entry:
        ev = entry.to_dict()
        original_users = ev['organizerse-mailid'].split(',')
        event_users = []
        for user in original_users:
          event_users.append(users.User(user.strip()))

        event = Event()
        event.user = event_users
        event.location = "%s, %s" % (ev['city'], ev['country'])
        event.gdg_chapters = [ev['gdgchaptername']]
        event.subdomain = ev['preferredsubdomainfortheeventwebsite']
        event.expected_participants = ev['expectednumberofparticipants']
        event.kind_of_support = ev['whatkindofsupportyouexpectforthisevent']
        event.approved = True
        try:
          event.start = datetime.strptime(ev['eventdate'], '%m/%d/%Y')
        except:
          pass

        event.put()
  def show_post(self):
    self.values['current_navigation'] = 'events'
    form = EventForm(self.request.POST)
    inEdit = False
    self.values['form'] = form
    self.template = 'event_edit'
    self.values['form_url'] = blobstore.create_upload_url('/event/upload')
    user = users.get_current_user()
    if not user:
      return self.redirect(users.create_login_url("/event/edit"))
    # special handling: if not admin of application then remove the field
    # 'approved'
    if not users.is_current_user_admin():
      del form.approved
    if self.request.get('event') != '':
      ev = Event.get(self.request.get('event'))
      if ev is not None and user in ev.organizers or users.is_current_user_admin():
        inEdit = True
        self.values['event'] = ev
    if form.validate():
      # create a new event (will be overwritten if in edit mode)
      if inEdit:
        event = ev

        if ev is not None and ev.approved == True:
          event.approved = True
      else:
        event = Event()

      event.series_key = self.request.get('series_key')
      event.gplus_event_url = self.request.get('gplus_event_url')
      event.external_url = self.request.get('external_url')
      event.external_width = saveint(self.request.get('external_width'))
      event.external_height = saveint(self.request.get('external_height'))
      event.location = self.request.get('location')
      event.name = self.request.get('name')
      event.register_url = self.request.get('register_url')
      if self.request.get('register_max'):
        event.register_max = saveint(self.request.get('register_max'))
      else:
        event.register_max = 0
      if event.organizers == []:
        event.organizers = [user]
      if users.is_current_user_admin():
        event.approved = savebool(self.request.get('approved'))
      upload_files = self.get_uploads('logo')
      if len(upload_files) > 0:
        blob_info = upload_files[0]
        event.logo = '%s' % blob_info.key()

      event.status = self.request.get('status')
      event.agenda = self.request.get_all('agenda')
      event.start = datetime.strptime(self.request.get('start'), '%Y-%m-%d %H:%M')
      event.end = datetime.strptime(self.request.get('end'), '%Y-%m-%d %H:%M')
      event.timezone = float(self.request.get('timezone'))
      event.agenda_description = self.request.get('agenda_description')
      event.technologies = self.request.get_all('technologies')
      event.gdg_chapters = self.request.get('gdg_chapters').split(',')
      event.organizers = [ users.User(e.strip()) for e in self.request.get('organizers').split(',') ]
      event.kind_of_support = self.request.get('kind_of_support')
      event.subdomain = self.request.get('subdomain')
      event.is_vhackandroid = savebool(self.request.get('is_vhackandroid'))
      event.put()
      # time to invalidate the cache
      CEvent.remove_all_from_cache(event.key())
      self.values['event'] = event
      if inEdit:
        self.values['modified_successful'] = True
      else:
        self.values['created_successful'] = True