def post(self, slug): node = self.db.query(Node).filter_by(slug=slug).first() if not node: self.send_error(404) return title = self.get_argument("title", None) content = self.get_argument("content", None) if not (title and content): self.render("topic_form.html", message="Please Fill the form") return key = hashlib.md5(utf8(content)).hexdigest() url = self.cache.get(key) # avoid double submit if url: self.redirect(url) return topic = Topic(title=title, content=content) topic.node_id = node.id topic.user_id = self.current_user.id node.topic_count += 1 self.db.add(topic) self.db.add(node) self.db.commit() url = "/topic/%d" % topic.id self.cache.set(key, url, 100) self.redirect(url)
def post(self, slug): node = self.db.query(Node).filter_by(slug=slug).first() if not node: self.send_error(404) return title = self.get_argument('title', None) content = self.get_argument('content', None) if not (title and content): self.create_message('Form Error', 'Please fill the required field') self.render('topic_form.html', topic=None, node=node) return if not self._check_permission(node): self.create_message( 'Warning', "You have no permission to create a topic in this node") self.render('topic_form.html', topic=None, node=node) return key = hashlib.md5(utf8(content)).hexdigest() url = self.cache.get(key) # avoid double submit if url: self.redirect(url) return topic = Topic(title=title, content=content) topic.node_id = node.id topic.user_id = self.current_user.id node.topic_count += 1 self.db.add(topic) self.db.add(node) self.db.commit() url = '/topic/%d' % topic.id self.cache.set(key, url, 100) key1 = 'TopicListModule:0:1:-impact' key2 = 'NodeTopicsModule:%s:1:-impact' % node.id key3 = 'UserTopicsModule:%s:1:-impact' % self.current_user.id self.cache.delete_multi(['status', key1, key2, key3]) self.redirect(url) # social networks content = "%s %s%s" % (title[:70], options.siteurl, url) networks = self.get_user_social(self.current_user.id) register_social(networks, content)