Beispiel #1
0
 def post(self, slug):
     form = forms.PostForm(self.request.arguments,
         locale_code=self.locale.code, status_choices=opts.STATUSES,
         text_type_choices=opts.get_allowed_text_types())
     if form.validate():
         if form.data['custom_slug']:
             slug = form.data['slug']
         else:
             slug = text.get_slug(form.data['title'],
                 stop_words=options.slug_stop_words)
         html_content, plain_content = text.get_html_and_plain(
             form.data['content'], form.data['text_type'])
         post = form.data
         post.update({
             'slug': slug,
             'tags': helpers.remove_duplicates(form.data['tags']),
             'html_content': html_content,
             'plain_content': plain_content,
         })
         self.db.posts.update({'slug': slug}, {'$set': post})
         if post['status'] == 'published':
             self.redirect(self.reverse_url('post', slug))
         else:
             self.redirect(self.reverse_url('home'))
     else:
         self.render('editpost.html', message=form.errors, form=form)
Beispiel #2
0
 def get(self, slug):
     post = self.db.posts.find_one({'slug': slug}, {'_id': 0})
     if not post:
         raise tornado.web.HTTPError(404)
     post['tags'] = ','.join(post['tags'])
     form = forms.PostForm(locale_code=self.locale.code,
         status_choices=opts.STATUSES,
         text_type_choices=opts.get_allowed_text_types(), **post)
     self.render("editpost.html", form=form)
Beispiel #3
0
 def post(self):
     form = forms.PostForm(self.request.arguments,
         locale_code=self.locale.code, status_choices=opts.STATUSES,
         text_type_choices=opts.get_allowed_text_types())
     if form.validate():
         if form.data['custom_slug']:
             slug = form.data['slug']
         else:
             slug = text.get_slug(form.data['title'],
                 stop_words=options.slug_stop_words)
         if self.db.posts.find_one({'slug': slug}, {'_id': 1}) or \
             slug.strip() == '':
             self.render('newpost.html',
                 message=constants.POST_IS_ALREADY_REGISTERED, form=form)
         else:
             html_content, plain_content = text.get_html_and_plain(
                 form.data['content'], form.data['text_type'])
             post = form.data
             post.update({
                 'slug': slug,
                 'date': datetime.datetime.now(),
                 'tags': helpers.remove_duplicates(form.data['tags']),
                 'html_content': html_content,
                 'plain_content': plain_content,
                 'author': self.current_user['full_name'],
                 'email': self.current_user['email'],
                 'votes': 0,
                 'views': 0
             })
             self.db.posts.insert(post)
             if post['status'] == 'published':
                 self.redirect(self.reverse_url('post', post['slug']))
             else:
                 self.redirect(self.reverse_url('home'))
     else:
         self.render('newpost.html', message=form.errors, form=form)
Beispiel #4
0
 def get(self):
     self.render('newpost.html',
                 form=forms.PostForm(
                     locale_code=self.locale.code,
                     status_choices=opts.STATUSES,
                     text_type_choices=opts.get_allowed_text_types()))