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)
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',' ') comment.body = comment.body.replace(' ',' ') # 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)
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)
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 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 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)
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})
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)
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 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')
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 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)
def get_all(self, id): comments = h.comment.get_post_comments(id) return render('/blog/comment_holder.mako', extra_vars={'comments':comments})
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})
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})