Esempio n. 1
0
    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)
Esempio n. 2
0
 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)
Esempio n. 3
0
 def election(self):
     slug = self.request.url.split("/")[3]
     election = Election.get_by_key_name(slug)
     if election is None:
         self.response.set_status(404, 'Not Found')
     return election
Esempio n. 4
0
 def election(self):
     slug = self.request.url.split("/")[3]
     election = Election.get_by_key_name(slug)
     if election is None:
         self.response.set_status(404, 'Not Found')
     return election