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') _factory = self.request.get('factory') _workers = self.request.get_all('workers') _badges = self.request.get_all('badges') _picture = self.request.get('picture') _unique = self.request.get('unique') p = entities.Product(name=_name, unique=_unique, owner=user) p.addPicture(_picture) if _factory: p.addFactory(db.get(_factory)) p.addProducer(_producer) for _badge in _badges: p.addBadge(_badge) if bene_util.doesProductExist(p): # already exists self.redirect('/createproduct?%s' % urllib.urlencode({'repeat': True})) return p.put() # add product to workers if _workers: key = p.key() for _worker in _workers: if _worker: worker = db.get(_worker) worker.addProduct(key) worker.put() if self.request.get('more'): # want to add more self.redirect('/createproduct?%s' % urllib.urlencode({'added': True})) return # otherwise redirect to product page self.redirect('/mobilepage?%s' % urllib.urlencode({'id' : p.key()}))
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? ''' self.redirect('/') return _product = db.get(ID) if not _product: # product doesn't exist template_values = {} path = os.path.join(os.path.dirname(__file__), 'not_found.html') self.response.out.write(template.render(path, template_values)) return if _product.owner != user: # if current user doesn't own product self.redirect('/producerhome?%s' % urllib.urlencode({'not_owner': True})) return _product.name = self.request.get('name') _unique_save = _product.unique _product.unique = self.request.get('unique') if bene_util.doesProductExist(_product) and _unique_save != _product.unique: # if product already exists self.redirect('/editproduct?%s' % (urllib.urlencode({'id' : ID, 'repeatedit' : True}))) return _factory = self.request.get('factory') if _factory: _product.addFactory(db.get(_factory)) _picture = self.request.get('picture') _product.addPicture(_picture) # badges _badges = self.request.get_all('badges') _badges_old = _product.getBadges() if _badges_old: for badge in _badges_old: if not _badges: # convert None to empty array _badges = [] if badge not in _badges: _product.remBadge(badge) if _badges: for badge in _badges: if not _badges_old: # convert None to empty array _badges_old = [] if badge not in _badges_old: _product.addBadge(badge) _product.put() # workers ''' TODO: FIX THIS. Make it more efficient ''' _workers = self.request.get_all('workers') _workers_old = _product.getWorkers() key = _product.key() if _workers_old: for worker in _workers_old: worker.remProduct(key) worker.put() if _workers: for _worker in _workers: if _worker: worker = db.get(_worker) worker.addProduct(key) worker.put() self.redirect('/mobilepage?%s' % urllib.urlencode({'id': ID})) return