Example #1
0
def show_webcomic(request, slug, strip_id=None, template_name="webcomic.html"):
    ctx = {}
    ctx["webcomic"] = get_object(WebComic, slug=slug)    
    ctx["blog_pages"]=ctx["webcomic"].blog_page_list.filter(published=True)
    
    if strip_id is not None:
        ctx["strip"] = get_object(Strip, pk=strip_id)
    else: ctx["strip"] = ctx["webcomic"].current_strip()
    
    return rp(template_name, ctx, request)
Example #2
0
def rate_reply_view(request, pk_forum, pk_thread, pk_reply):
    forum = get_object(Forum.objects.active(), pk=pk_forum)
    threads = forum.threads.active()
    thread = get_object(threads, pk=pk_thread)
    reply = get_object(thread.replies.active(), pk=pk_reply)

    form = RateForm(request.POST or None)
    if form.is_bound and form.is_valid():
        rating = form.save(request.profile, reply)
        return HttpResponse(
            json.dumps({'status': 'ok', 'message': 'success'}),
            mimetype='application/json')

    return HttpResponse(
        json.dumps({'status': 'error', 'message': 'invalid form data'}),
        mimetype='application/json')
Example #3
0
def get_object_or_404(model, *args, **kwargs):
    """A version of get_object_or_404 that can accept a model name
    in place of the model class."""
    from django.shortcuts import get_object_or_404 as get_object

    if isinstance(model, basestring):
        model = get_model_or_404(model)
    return get_object(model, *args, **kwargs)
Example #4
0
def get_object_or_404(model, *args, **kwargs):
    """A version of get_object_or_404 that can accept a model name
    in place of the model class."""
    from django.shortcuts import get_object_or_404 as get_object

    if isinstance(model, basestring):
        model = get_model_or_404(model)
    return get_object(model, *args, **kwargs)
Example #5
0
    def dispatch(self, *args, **kwargs):
        self.forum = get_object(
            Forum.objects.active(),
            pk=kwargs['pk_forum'])
        self.category = self.forum.category
        self.object = None

        return super(NewThreadView, self).dispatch(*args, **kwargs)
Example #6
0
def edit(request, slug, pk=None, template_name="edit.html"):
    ctx, Form={}, EditWCForm
    ctx["webcomic"] = get_object(WebComic, pk=slug)
    
    if request.user != ctx["webcomic"].owner:
        return HttpResponseForbidden("You can not do that.", 'plain/text')
    
    if pk is not None:
        ctx["strip"] = get_object(Strip, pk=pk)
        Form = EditStripForm
        instance = ctx["strip"]
    else: instance = ctx["webcomic"]
    
    if request.method=="POST":
        ctx["form"] = Form(request.POST, request.FILES, instance=instance)
        if ctx["form"].is_valid():
            return HttpResponseRedirect( ctx["form"].save().link() )
    ctx["form"] = Form(instance=instance)
    return rp(template_name, ctx, request)
Example #7
0
 def get_context_data(self, **kwargs):
     pk_forum = self.kwargs['pk_forum']
     forum = get_object(Forum.objects.active(), pk=pk_forum)
     category = forum.category
     threads = forum.threads.active()
     page_number = self.kwargs.get('page', 1)
     object_list = Paginator(threads, PAGINATE_THREADS_BY).page(page_number)
     context = super(ForumView, self).get_context_data(**kwargs)
     context['category'] = category
     context['forum'] = forum
     context['object_list'] = object_list
     return context
Example #8
0
def reply_view(request, pk_forum, pk_thread):
    forum = get_object(Forum.objects.active(), pk=pk_forum)
    category = forum.category
    threads = forum.threads.active()
    thread = get_object(threads, pk=pk_thread)
    form = ReplyForm(request.POST or None)
    editor_name = MARKUP_EDITORS[MARKUP]
    editor_style = 'js/forum/markitup/sets/%s/style.css' % editor_name
    editor_set = 'js/forum/markitup/sets/%s/set.js' % editor_name

    if form.is_bound and form.is_valid():
        new_reply = form.save(request.user.forum_profile, forum, thread)
        return redirect(new_reply)

    return render(request, 'forum/reply.html', {
        'category': category,
        'forum': forum,
        'thread': thread,
        'form': form,
        'editor_name': editor_name,
        'editor_style': editor_style,
        'editor_set': editor_set,
    })
Example #9
0
def add_strip(request, slug, template_name="edit.html"):
    ctx = {}
    ctx["webcomic"] = get_object(WebComic, pk=slug)
    
    if request.user != ctx["webcomic"].owner:
        return HttpResponseForbidden("You can not do that.", 'plain/text')
    
    if request.method=="POST":
        ctx["form"] = EditStripForm(request.POST, request.FILES)
        if ctx["form"].is_valid():
            instance = ctx["form"].save(commit=False)
            instance.webcomic = ctx["webcomic"]
            instance.save()
            return HttpResponseRedirect( instance.link() )
    else: ctx["form"] = EditStripForm()
    return rp(template_name, ctx, request)
Example #10
0
def show_blog_page(request, slug, page_id, template_name="blog_page.html"):
    ctx = {}
    ctx["webcomic"] = get_object(WebComic, pk=slug)
    ctx["blog_page"] = get_object(BlogPage, pk=page_id)
    return rp(template_name, ctx, request)
Example #11
0
def show_archive(request, slug, template_name="archive.html"):
    ctx = {}
    ctx["webcomic"] = get_object(WebComic, slug=slug)
    return rp(template_name, ctx, request)
Example #12
0
 def get(self, request, nickname):
     return self.render_to_response({
         'is_self': False,
         'profile': get_object(Profile, nickname=nickname)
     })
Example #13
0
 def get_object(self, queryset):
     pk = self.kwargs.get(self.pk_url_kwarg, None)
     return get_object(queryset, pk=pk)
Example #14
0
 def dispatch(self, request, *args, **kwargs):
     self.forum = get_object(Forum.objects.active(), pk=kwargs['pk_forum'])
     self.category = self.forum.category
     self.thread = self.get_object(self.forum.threads.active())
     return super(ThreadView, self).dispatch(request, *args, **kwargs)
Example #15
0
 def recipient(self):
     nickname = self.kwargs['nickname']
     self._recipient = self._recipient \
         or get_object(Profile, nickname=nickname)
     return self._recipient