def show_post(self):
    user = users.get_current_user()
    if not user:
      return self.redirect(users.create_login_url("/event/create"))

    form = EventForm(self.request.POST)
    
    if form.validate():
      event = Event()
      event.gplus_event_url = self.request.get('gplus_event_url')
      event.location = self.request.get('location')
      lat, long, city, country = self.get_geolocation(self.request.get('location'))

      event.user = user
      event.city = city
      event.country = country
      event.geo_location = db.GeoPt(lat, long)
      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.put()
      self.values['created_successful'] = True
    self.values['form'] = form
    self.template = 'event_create'
  def show_post(self):
    self.values['current_navigation'] = 'events'
    form = EventForm(self.request.POST)
    self.values['form'] = form
    self.template = 'event_create'
    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"))


    if form.validate():
      event = Event()
      if self.request.get('edit') != '':
        ev = Event.get(self.request.get('edit'))
        if user in ev.organizers:
          event = ev

      existing_event = Event.all().filter('organizers =', user).get()
      if existing_event:
        event = existing_event

      event.gplus_event_url = self.request.get('gplus_event_url')
      event.external_url = self.request.get('external_url')
      event.external_width = int(self.request.get('external_width'))
      event.external_height = int(self.request.get('external_height'))
      event.location = self.request.get('location')

      event.organizers = [user]

      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.technologies = self.request.get_all('technologies')
      event.gdg_chapters = self.request.get('gdg_chapters').split(',')
      event.kind_of_support = self.request.get('kind_of_support')
      event.subdomain = self.request.get('subdomain')
      event.put()
      self.values['edit'] = str(event.key())
      self.values['created_successful'] = True
Exemple #3
0
  def show_post(self):
    form = EventForm(self.request.POST)
    
    if form.validate():
      event = Event()
      event.gplus_event_url = self.request.get('gplus_event_url')
      event.location = self.request.get('location')
      lat, long, city, country = self.get_geolocation(self.request.get('location'))

      event.city = city
      event.country = country
      event.geo_location = db.GeoPt(lat, long)
      event.status = self.request.get('status')
      event.agenda = self.request.get_all('agenda')
      event.put()
      self.values['created_successful'] = True
    self.values['form'] = form
    self.template = 'event_create'
  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