def post(self): user = users.get_current_user() if not user: # need to sign in self.redirect('/?signin=True') return if bene_query.getCurrentUser().isConsumer: # consumers can't access this self.redirect('/') return _producer = bene_query.getCurrentProducer() if _producer == None: # no producer signed up, so ask to sign up self.redirect('/') return if not _producer.verified: # if producer is not verified self.redirect('/producerhome?%s' % urllib.urlencode({'verify': True})) return ID = self.request.get('id') if not ID: ''' TODO: If no ID sent, default to page with all factories? ''' self.redirect('/') return _factory = db.get(ID) ''' an error in getting the factory will be redirected to exception handler''' if _factory.owner != user: # if not owner of factory self.redirect('/producerhome?%s' % urllib.urlencode({'not_owner': True})) return _factory.name = self.request.get('name') _factory.address = self.request.get('address') _unique_save = _factory.unique _factory.unique = self.request.get('unique') if bene_util.doesFactoryExist(_factory) and _unique_save != _factory.unique : # if factory with same unique exists self.redirect('/editfactory?%s' % (urllib.urlencode({'id' : ID, 'repeatedit' : True}))) return _picture = self.request.get('picture') _factory.addPicture(_picture) _location = self.request.get('location') fields = _location.split(',') if len(fields) == 2: try: lat = float(fields[0]) lon = float(fields[1]) gp = db.GeoPt(lat, lon) except ValueError: gp = None else: gp = None _factory.location = gp _factory.put() self.redirect('/viewfactory?%s' % urllib.urlencode({'id': ID})) return
def post(self): user = users.get_current_user() if not user: # need to sign in self.redirect('/?signin=True') return if bene_query.getCurrentUser().isConsumer: # consumers can't access this self.redirect('/') return _producer = bene_query.getCurrentProducer() if _producer == None: # no producer signed up, so ask to sign up self.redirect('/') return if not _producer.verified: # if producer is not verified self.redirect('/producerhome?%s' % urllib.urlencode({'verify': True})) return _name = self.request.get('name') _address = self.request.get('address') _location = self.request.get('location') _unique = self.request.get('unique') _picture = self.request.get('picture') fields = _location.split(',') if len(fields) == 2: try: lat = float(fields[0]) lon = float(fields[1]) gp = db.GeoPt(lat, lon) except ValueError: gp = None else: gp = None f = entities.Factory(name=_name, address=_address, location=gp, unique=_unique, owner=user) f.addProducer(_producer) f.addPicture(_picture) if bene_util.doesFactoryExist(f): self.redirect('/createfactory?%s' % urllib.urlencode({'repeat': True})) return f.put() if self.request.get('more'): # want to add more self.redirect('/createfactory?%s' % urllib.urlencode({'added': True})) return # otherwise redirect to factory page self.redirect('/viewfactory?%s' % urllib.urlencode({'id' : f.key()}))