Beispiel #1
0
 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
Beispiel #2
0
 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()}))