def post(self): errors = "" title = self.request.get("title") text = self.request.get("text") post_date = datetime.datetime.now(); slug = self.request.get("slug") post = BlogPost.new( title=title, text=text, post_date=post_date, slug=slug) posts = BlogPost.get_last(num=2) if BlogPost.get_by_slug(slug, post_date=post_date): errors = ("Error: this post has a duplicate slug to another post from " "the same day. This probably shouldn't happen often.") template_values = { 'session': self.session, 'flash': self.flashes, 'errors': errors, 'post': post, 'posts': posts, } if errors: self.response.out.write( template.render(get_path("dj_createpost.html"), template_values)) else: post.put() self.session.add_flash("Post \"%s\" successfully added." % title) self.redirect("/")
def get(self): # TODO: Please please fix this. Although realistically it will be fixed on # models rework in future. # So general MGMT can edit contacts page contacts = BlogPost.get_by_slug("contacts-page") template_values = { 'contact_selected': True, 'session': self.session, 'contacts': contacts } self.response.out.write( template.render(get_path("contact.html"), template_values))
def get(self, date_string, post_slug): post_date = datetime.datetime.strptime(date_string, "%Y-%m-%d") post = BlogPost.get_by_slug(post_slug, post_date=post_date) if not post: self.session.add_flash( "The post you requested could not be found. Please try again.") self.redirect('/') return template_values = { 'session': self.session, 'post': post, } self.response.out.write(template.render("blog_post.html", template_values))
def post(self, date_string, slug): errors = "" title = self.request.get("title") text = self.request.get("text") slug = self.request.get("slug") post_key = ndb.Key(urlsafe=self.request.get("post_key")) post = BlogPost.get(post_key) if not post: self.session.add_flash( "The post you're looking for does not exist. " "Something strange has occurred.") # this shouldn't happen unless people are fiddling around with # POST values by hand I think self.redirect("/") return if self.request.get("submit") == "Delete Post": post.delete() self.session.add_flash("Post deleted.") self.redirect("/") return duplicate = BlogPost.get_by_slug(slug, post_date=post.post_date) old_slug = post.slug post.slug = slug if duplicate: if duplicate.key != post_key: errors = ("This post has a duplicate slug to another post " "from the same day. Please rename the slug.") post.slug = old_slug post.title = title post.text = text posts = BlogPost.get_last(num=2) template_values = { 'session': self.session, 'flash': self.flashes, 'errors': errors, 'post': post, 'editing': True, 'posts': posts, } if errors: self.response.out.write( template.render(get_path("dj_createpost.html"), template_values)) else: post.put() self.session.add_flash("Successfully altered post %s" % post.title) self.redirect("/")
def get(self, date_string, slug): post_date = datetime.datetime.strptime(date_string, "%Y-%m-%d") post = BlogPost.get_by_slug(slug, post_date=post_date) if not post: self.session.add_flash( "The post you're looking for does not exist. " "But you can look at actual posts below :)") self.redirect("/") return posts = BlogPost.get_last(num=2) template_values = { 'session': self.session, 'flash': self.flashes, 'post': post, 'editing': True, 'posts': posts, } self.response.out.write( template.render(get_path("dj_createpost.html"), template_values))