def post(self): election = None try: slug = self._slugify(self.request.get("slug")) assert slug not in self.reserved election = Election(key_name=slug) election.creator = users.get_current_user() election.title = self.request.get("title").strip() or slug election.public = bool(self.request.get("public")) default = "Created by " + election.creator.nickname() election.description = self.request.get( "description").strip() or default when = self.request.get("starts") if when: election.starts = date_parser().parse(when) else: election.starts = datetime.now() when = self.request.get("closes") if when: election.closes = date_parser().parse(when) else: election.closes = election.starts + timedelta(days=14) # Check for duplication as the absolute last thing before # inserting, for slightly better protection. # Consider rolling back if there are two of them after inserting. assert not Election.get_by_key_name(slug) election.put() self.redirect("/%s/candidate" % slug) except Exception, err: logging.exception("Failed to create election: %r", repr(locals())) self.render("create.html", defaults=election, error=err)
def post(self): election = None try: slug = self._slugify(self.request.get("slug")) assert slug not in self.reserved election = Election(key_name=slug) election.creator = users.get_current_user() election.title = self.request.get("title").strip() or slug election.public = bool(self.request.get("public")) default = "Created by " + election.creator.nickname() election.description = self.request.get("description").strip() or default when = self.request.get("starts") if when: election.starts = date_parser().parse(when) else: election.starts = datetime.now() when = self.request.get("closes") if when: election.closes = date_parser().parse(when) else: election.closes = election.starts + timedelta(days=14) # Check for duplication as the absolute last thing before # inserting, for slightly better protection. # Consider rolling back if there are two of them after inserting. assert not Election.get_by_key_name(slug) election.put() self.redirect("/%s/candidate" % slug) except Exception, err: logging.exception("Failed to create election: %r", repr(locals())) self.render("create.html", defaults=election, error=err)