def config_processor(requests): configs = {} models = BlogConfig.objects.all() if len(models) == 0: BlogConfig.insert_default_config() models = BlogConfig.objects.all() for item in models: configs[item.key] = item.get_value() return configs
def respond_post(post): comments = Comment.objects.filter(post__id=post.id) form = PostCommentForm() captcha = BlogConfig.get_captcha() random = captcha.random() form.fields['random'] = django.forms.CharField(initial=random, \ widget=django.forms.widgets.HiddenInput()) nr_comments = len(comments) return render_to_resp('post.html', \ {'post': post, 'commentform':form, 'comments':comments, \ 'captcha_img': captcha.image(), \ 'captcha_audio': captcha.audio_url(), \ 'errormsg': '', 'nr_comments':nr_comments})
def post_comment(request, postid): if request.method == 'POST': post = Post.objects.filter(id=int(postid)) if len(post) == 0: raise Http404 post = post[0] form = PostCommentForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] url = form.cleaned_data['url'] email = form.cleaned_data['email'] content = form.cleaned_data['content'] password = form.cleaned_data['password'] random = request.POST['random'] now = datetime.datetime.now() reader = Reader.objects.filter(name=name) captcha = BlogConfig.get_captcha() if captcha is not None: if not captcha.validate(random): return HttpResponseRedirect('/id/' + postid + "/captchaerr") if not captcha.verify(password): return HttpResponseRedirect('/id/' + postid + "/captchaerr") if len(reader) == 0: reader = Reader(name=name, url=url, email=email) reader.save() else: reader = reader[0] if len(url) != 0: if reader.url != url: reader.url = url if len(email) != 0: if reader.email != email: reader.email = email reader.save() comment = Comment(reader=reader, \ post=post,\ content=content, \ created=now) comment.save() return HttpResponseRedirect('/id/' + postid) return HttpResponseForbidden("Not implemented\r\n")
def post_comment(request, postid): if request.method == 'POST': post = Post.objects.filter(id=int(postid)) if len(post) == 0: raise Http404 post = post[0] form = PostCommentForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] url = form.cleaned_data['url'] email = form.cleaned_data['email'] content= form.cleaned_data['content'] password = form.cleaned_data['password'] random = request.POST['random'] now = datetime.datetime.now() reader = Reader.objects.filter(name=name) captcha = BlogConfig.get_captcha() if captcha is not None: if not captcha.validate(random): return HttpResponseRedirect('/id/' + postid + "/captchaerr") if not captcha.verify(password): return HttpResponseRedirect('/id/' + postid + "/captchaerr") if len(reader) == 0: reader = Reader(name=name, url=url, email=email) reader.save() else: reader = reader[0] if len(url) != 0: if reader.url != url: reader.url = url if len(email) != 0: if reader.email != email: reader.email = email reader.save() comment = Comment(reader=reader, \ post=post,\ content=content, \ created=now) comment.save() return HttpResponseRedirect('/id/' + postid) return HttpResponseForbidden("Not implemented\r\n")
def resp_posts_list(posts, page_nr=1, url_before_pgn="l", url_after_pgn=""): bc = BlogConfig.get() post_per_page = bc.nr_posts_per_page page_nr = page_nr - 1 if page_nr < 0: page_nr = 0 start = page_nr * post_per_page end = start + post_per_page nr_posts = posts.count() nr_pages = nr_posts / post_per_page if nr_posts % post_per_page: nr_pages += 1 posts = posts[start:end] for p in posts: n = Comment.objects.filter(post__id=p.id).count() p.nr_comments = n return render_to_resp('postslist.html', {'posts': posts, \ 'pages':range(1, nr_pages + 1), 'url_before_pgn': url_before_pgn, \ 'url_after_pgn': url_after_pgn})
def resp_posts_list(posts, page_nr = 1, url_before_pgn = "l", url_after_pgn = ""): bc = BlogConfig.get() post_per_page = bc.nr_posts_per_page page_nr = page_nr - 1 if page_nr < 0: page_nr = 0 start = page_nr * post_per_page end = start + post_per_page nr_posts = posts.count() nr_pages = nr_posts/post_per_page if nr_posts % post_per_page: nr_pages += 1 posts = posts[start:end] for p in posts: n = Comment.objects.filter(post__id = p.id).count() p.nr_comments = n return render_to_resp('postslist.html', {'posts': posts, \ 'pages':range(1, nr_pages + 1), 'url_before_pgn': url_before_pgn, \ 'url_after_pgn': url_after_pgn})
def set_config(request): if request.method == 'POST': msg = request.POST['msg'] authorname = request.POST['author'] key = request.POST['key'] author = Author.objects.filter(name=authorname) if len(author) == 0: return HttpResponseForbidden("Failed\r\n") author = author[0] if not author.can_set_config: return HttpResponseForbidden("Failed\r\n") msg = decode_post(msg, author.decrypt_key, key) bc = BlogConfig.get() if msg.has_key('title'): bc.title = msg['title'] if msg.has_key('subtitle'): bc.subtitle = msg['subtitle'] if msg.has_key('nr_posts_per_page'): bc.nr_posts_per_page = int(msg['nr_posts_per_page']) if msg.has_key('captcha_name'): bc.captcha_name = msg['captcha_name'] if msg.has_key('captcha_secret'): bc.captcha_secret = msg['captcha_secret'] if msg.has_key('nr_poptags'): bc.nr_poptags = int(msg['nr_poptags']) if msg.has_key('about'): bc.about = msg['about'] if msg.has_key('domain_name'): bc.domain_name = msg['domain_name'] if msg.has_key('link'): bc.link = msg['link'] if msg.has_key('license'): bc.license = msg['license'] bc.save() return HttpResponse("Success\r\n") return HttpResponseForbidden("Not implemented\r\n")
def item_link(self, item): bc = BlogConfig.get() url = os.path.join(bc.link, "p", item.slug, item.language) return url
def render_to_resp(template, kv): bc = BlogConfig.get() poptags = Tag.objects.all()[:bc.nr_poptags] meta = {'config':bc, 'poptags':poptags} meta.update(kv) return render_to_response(template, meta)
def title(self): bc = BlogConfig.get() return bc.title
def link(self): bc = BlogConfig.get() return bc.link
def description(self): bc = BlogConfig.get() return bc.subtitle
def handle(self, *args, **kwargs): default_cfg = BlogConfig() default_cfg.save() self.stdout.write("Created default config for blog")
def render_to_resp(template, kv): bc = BlogConfig.get() poptags = Tag.objects.all()[:bc.nr_poptags] meta = {'config': bc, 'poptags': poptags} meta.update(kv) return render_to_response(template, meta)