Example #1
0
 def write(self, id=None):
     if id is None:
         c.post = None
         return render('/blog/write.mako')
     else:
         c.post = h.post.get(int(id))
         if c.post is None:
             abort(404)
         html = render('/blog/write.mako')
         tags = h.tag_post.get_tags(c.post.id)
         tag_list = []
         for tag in tags:
             tag_list.append(tag.name)
         values = {'subject':c.post.subject,'body':c.post.body,'tags':';'.join(tag_list)}
         return htmlfill.render(html,defaults=values)
Example #2
0
 def submit(self):
     c.post = h.post.get(int(request.params.get('post_id')))
     c.posts = None
     if h.forms.validate(h.forms.CommentForm()):         
         # save comment
         comment = h.comment.new()
         for k, v in c.form_result.items():
             setattr(comment, k, v)
         # some checks and defaults
         if len(comment.author) == 0:
             comment.author = 'anonymous'
         comment.posted = h.timehelpers.now()
         comment.body = h.html_escape(comment.body)
         comment.body = comment.body.replace('\n','<br>')
         comment.body = comment.body.replace('\t','&nbsp;')
         comment.body = comment.body.replace('  ','&nbsp; ')
         # save to db
         h.comment.save(comment)
         # flash message
         session['flash'] = 'Comment successfully saved.'
         session.save()
         # notify author
         h.mailer.send_mail('*****@*****.**', h.auth.get_user_mail(c.post.author), 'New comment for: '+c.post.subject, render('/messages/mail_new_comment.mako', extra_vars={'user':h.auth.get_user_name(id=c.post.author), 'post_subject':c.post.subject, 'site_name':h.config.get('site_title'), 'post_url':h.config.get('site_url')+url(controller='blog', action='view', id=c.post.id, subject=h.urlify(c.post.subject))}))
         # redirect to post
         redirect(url(controller='blog', action='view', id=request.params.get('post_id'), subject=h.urlify(c.post.subject)), code=303)
     else:
         session['flash'] = 'Erros in the submitted form, please correct and try again.'
         session.save()
         html = render('/blog/view.mako', extra_vars={'page_id':1, 'post_count':1})
         return htmlfill.render(html,defaults=c.form_result,errors=c.form_errors)
Example #3
0
 def save(self, id=None):
     if id is None:
         abort(404)
     if h.forms.validate(h.forms.PostForm()):
         if id == '0':
             # new post
             new = h.post.new()
             for k, v in c.form_result.items():
                 if k <> 'tags':
                     setattr(new, k, v)
             new.posted = h.timehelpers.now()
             identity = request.environ.get('repoze.who.identity')
             new.author = h.auth.get_user_id(identity['repoze.who.userid'])
         else:
             # edit
             new = h.post.get(int(id))
             new.body = request.POST['body']
             new.subject = request.POST['subject']
         # save to db
         h.post.save(new)
         # tags
         self._create_and_link_tags(request.POST['tags'],new.id)
         # flash message
         session['flash'] = 'Post successfully saved.'
         session.save()
         # redirect to post
         c.post = new
         redirect(url(controller='blog', action='view', id=new.id, subject=h.urlify(new.subject)), code=303)
     else:
         session['flash'] = 'Erros in the submitted post, please correct and try again.'
         session.save()
         c.post = None
         html = render('/blog/write.mako')
         return htmlfill.render(html,defaults=c.form_result,errors=c.form_errors)
Example #4
0
 def view(self,id):
     c.post = h.post.get(int(id))
     c.posts = None
     if c.post is None:
         abort(404)
     page_id = int(h.page.get_page_id_with_type('blog'))
     return render('/blog/view.mako', extra_vars={'page_id':page_id, 'post_count':1, 'page':'view', 'show_comment_form':'false'})
Example #5
0
 def latest(self):
     c.posts_count = h.post.get_many(amount=10, active_only=True, count_only=True)
     c.posts = h.post.get_many(amount=10, active_only=True, order='desc')
     c.post = None
     if c.posts is None:
         abort(404)
     page_id = int(h.page.get_page_id_with_type('blog'))
     return render('/blog/view.mako', extra_vars={'page_id':page_id, 'post_count':c.posts_count, 'page':'latest', 'show_comment_form':'false'})
Example #6
0
 def write(self, id=None):
     if id is None:
         c.post = None
         return render('/blog/write.mako')
     else:
         c.post = h.post.get(int(id))
         if c.post is None:
             abort(404)
         html = render('/blog/write.mako')
         tags = h.tag_post.get_tags(c.post.id)
         tag_list = []
         for tag in tags:
             tag_list.append(tag.name)
         values = {
             'subject': c.post.subject,
             'body': c.post.body,
             'tags': ';'.join(tag_list)
         }
         return htmlfill.render(html, defaults=values)
Example #7
0
 def show(self,id):
     
     posts = h.post.get_by_tag_name(id)
     if posts is None:
         abort(404)
     c.paginator = paginate.Page(
         posts,
         page=int(request.params.get('page', 1)),
         items_per_page = 20,
         )
     page_id = int(h.page.get_page_id_with_type('tags'))
     return render('/blog/posts_tag.mako', extra_vars={'page_id':page_id, 'tag':id})
Example #8
0
 def show(self,id):
     try:
         page_id = h.page.get_id_by_url_param(id)
     except:
         try:
             page_id = h.page.get_id_by_type_param(id)
         except:
             abort(404)
     try:
         return render('/pages/'+id+'.mako', extra_vars={'page_id':page_id})
     except Exception, e:
         abort(404)
Example #9
0
 def view(self, id):
     c.post = h.post.get(int(id))
     c.posts = None
     if c.post is None:
         abort(404)
     page_id = int(h.page.get_page_id_with_type('blog'))
     return render('/blog/view.mako',
                   extra_vars={
                       'page_id': page_id,
                       'post_count': 1,
                       'page': 'view',
                       'show_comment_form': 'false'
                   })
Example #10
0
 def login(self):
     """
     This is where the login form should be rendered.
     Without the login counter, we won't be able to tell if the user has
     tried to log in with wrong credentials
     """
     identity = request.environ.get('repoze.who.identity')
     came_from = str(request.GET.get('came_from', '')) or \
                 url('/')
     if identity:
         redirect(url(came_from))
     else:
         c.came_from = came_from
         c.login_counter = request.environ['repoze.who.logins'] + 1
         return render('/forms/login.mako')
Example #11
0
 def latest(self):
     c.posts_count = h.post.get_many(amount=10,
                                     active_only=True,
                                     count_only=True)
     c.posts = h.post.get_many(amount=10, active_only=True, order='desc')
     c.post = None
     if c.posts is None:
         abort(404)
     page_id = int(h.page.get_page_id_with_type('blog'))
     return render('/blog/view.mako',
                   extra_vars={
                       'page_id': page_id,
                       'post_count': c.posts_count,
                       'page': 'latest',
                       'show_comment_form': 'false'
                   })
Example #12
0
 def save(self, id=None):
     if id is None:
         abort(404)
     if h.forms.validate(h.forms.PostForm()):
         if id == '0':
             # new post
             new = h.post.new()
             for k, v in c.form_result.items():
                 if k <> 'tags':
                     setattr(new, k, v)
             new.posted = h.timehelpers.now()
             identity = request.environ.get('repoze.who.identity')
             new.author = h.auth.get_user_id(identity['repoze.who.userid'])
         else:
             # edit
             new = h.post.get(int(id))
             new.body = request.POST['body']
             new.subject = request.POST['subject']
         # save to db
         h.post.save(new)
         # tags
         self._create_and_link_tags(request.POST['tags'], new.id)
         # flash message
         session['flash'] = 'Post successfully saved.'
         session.save()
         # redirect to post
         c.post = new
         redirect(url(controller='blog',
                      action='view',
                      id=new.id,
                      subject=h.urlify(new.subject)),
                  code=303)
     else:
         session[
             'flash'] = 'Erros in the submitted post, please correct and try again.'
         session.save()
         c.post = None
         html = render('/blog/write.mako')
         return htmlfill.render(html,
                                defaults=c.form_result,
                                errors=c.form_errors)
Example #13
0
 def get_all(self, id):
     comments = h.comment.get_post_comments(id)
     return render('/blog/comment_holder.mako', extra_vars={'comments':comments})
Example #14
0
class BlogController(BaseController):
    def latest(self):
        c.posts_count = h.post.get_many(amount=10,
                                        active_only=True,
                                        count_only=True)
        c.posts = h.post.get_many(amount=10, active_only=True, order='desc')
        c.post = None
        if c.posts is None:
            abort(404)
        page_id = int(h.page.get_page_id_with_type('blog'))
        return render('/blog/view.mako',
                      extra_vars={
                          'page_id': page_id,
                          'post_count': c.posts_count,
                          'page': 'latest',
                          'show_comment_form': 'false'
                      })

    def view(self, id):
        c.post = h.post.get(int(id))
        c.posts = None
        if c.post is None:
            abort(404)
        page_id = int(h.page.get_page_id_with_type('blog'))
        return render('/blog/view.mako',
                      extra_vars={
                          'page_id': page_id,
                          'post_count': 1,
                          'page': 'view',
                          'show_comment_form': 'false'
                      })

    def archives(self):
        try:
            if request.params.get('filter'):
                if h.forms.validate(h.forms.FilterForm()):
                    posts = h.post.get_many(
                        filter=request.params.get('filter'),
                        amount=100,
                        active_only=True,
                        order='desc')
                else:
                    raise Exception
            else:
                raise Exception
        except Exception, error:
            posts = h.post.get_many(active_only=True, order='desc', amount=100)
        if posts is None:
            abort(404)
        c.paginator = paginate.Page(
            posts,
            page=int(request.params.get('page', 1)),
            items_per_page=20,
        )
        page_id = int(h.page.get_page_id_with_type('archives'))
        if request.params.get('filter'):
            html = render('/blog/archives.mako',
                          extra_vars={'page_id': page_id})
            return htmlfill.render(html,
                                   defaults=c.form_result,
                                   errors=c.form_errors)
        else:
            return render('/blog/archives.mako',
                          extra_vars={'page_id': page_id})
Example #15
0
 def show_all(self):
     tags = h.tag_post.get_tag_counts()
     page_id = int(h.page.get_page_id_with_type('tags'))
     return render('/blog/tags.mako', extra_vars={'tags':tags, 'page_id':page_id})