def show_post(self): self.template = 'sponsors_edit' user = users.get_current_user() event_id = self.request.get('event') event = CEvent(event_id).get() form = SponsorsForm(self.request.POST) # check permissions... if user and event and (user in event.organizers or users.is_current_user_admin()): if form.validate(): old_sponsors = CSponsorList(event_id).get() for i in range(0,1024): prefix = 'sponsors-' + str(i) + '-' if self.request.get(prefix + 'name'): # is this a modification of an existing sponsor or a new one? sponsor_id = self.request.get(prefix + 'sponsor') if sponsor_id in [str(s.key()) for s in old_sponsors]: sponsor = [s for s in old_sponsors if str(s.key()) == sponsor_id][0] # delete from old_sponsor old_sponsors = [s for s in old_sponsors if str(s.key()) != sponsor_id] else: sponsor = Sponsor() # fill in values for old/new sponsor sponsor.name = self.request.get(prefix + 'name') sponsor.gplus_id = self.request.get(prefix + 'gplus_id') sponsor.description = self.request.get(prefix + 'description') sponsor.url = self.request.get(prefix + 'url') upload_files = self.get_uploads(prefix + 'logo') if len(upload_files) > 0: blob_info = upload_files[0] sponsor.logo = '%s' % blob_info.key() sponsor.level = self.request.get(prefix + 'level') sponsor.event = event # update sponsor sponsor.put() # end for # now delete all sponsors not mentioned yet for s in old_sponsors: s.delete() # set info that modification was successful self.values['modified_successful'] = True # clear sponsor cache CSponsorList.remove_from_cache(event_id) # set event into form object self.values['event'] = event elif not user: return self.redirect( users.create_login_url("/event/sponsors/edit/" + event_id)) else: return self.redirect("/event/create"); self.values['current_navigation'] = 'sponsors' self.values['form_url'] = blobstore.create_upload_url( '/event/sponsors/upload') self.values['form'] = form
def load_from_db(self): self.entity_collection = Sponsor.all().filter('event =', CEvent(self.id).get())