예제 #1
0
def story(request, base62_id):
    action_keys = filter(lambda i: i in ['delete', 'publish'], request.POST)
    action_key = action_keys[0] if action_keys else None
    if action_key:
        method = {
            u'delete': _delete_story,
            u'publish': _publish_story
        }.get(action_key)
        if method:
            story = get_object_or_404(Story,
                                      id=base62.to_decimal(base62_id),
                                      owner=request.user)
            return method(request, story)
    statuses_in = [Story.DRAFT, Story.PUBLISHED] if \
        request.user.is_authenticated() else [Story.PUBLISHED]
    story = get_object_or_404(Story,
                              id=base62.to_decimal(base62_id),
                              status__in=statuses_in,
                              owner__is_active=True)
    blocked_user_ids = compute_blocked_user_ids_for(request.user)
    story_is_visible = story.is_visible_for(request.user,
                                            blocked_user_ids=blocked_user_ids)
    comments = Comment.objects\
        .filter(story=story, status=Comment.PUBLISHED)\
        .from_active_owners()\
        .visible_for(request.user)\
        .select_related('owner__userprofile')
    comments = paginated(request, comments, settings.COMMENTS_PER_PAGE)
    if request.user.is_authenticated():
        if request.method == 'POST' and request.POST.get('action') ==\
           'create_comment':
            comment_form = CommentForm(request.POST,
                                       owner=request.user,
                                       story=story)
            if comment_form.is_valid():
                comment = comment_form.save()
                return HttpResponseRedirect(comment.get_absolute_url())
        else:
            comment_form = CommentForm(owner=request.user, story=story)
    else:
        comment_form = None
    return render(
        request, 'story/story_detail.html', {
            'story': story,
            'current_site': Site.objects.get_current(),
            'story_is_visible': story_is_visible,
            'comments': comments,
            'comment_form': comment_form
        })
예제 #2
0
def update_details(request, base62_id):
    story = get_object_or_404(Story, id=base62.to_decimal(base62_id), owner=request.user)
    if request.method == "POST":
        update_captions_form = UpdateCaptionsForm(request.POST, story=story)
        if update_captions_form.is_valid():
            update_captions_form.save(slot_data=request.POST)
            return HttpResponseRedirect(story.get_absolute_url())
    update_captions_form = UpdateCaptionsForm(story=story)
    return render(request, "story/update_captions.html", {"captions_form": update_captions_form})
예제 #3
0
def create_story(request, base62_id):
    mid = base62.to_decimal(base62_id)
    meta = get_object_or_404(QuestionMeta, id=mid)
    if request.POST:
        story_form = StoryForm(request.POST, owner=request.user, meta=meta)
        if story_form.is_valid():
            story = story_form.save(publish="publish" in request.POST)
            return HttpResponseRedirect(story.get_absolute_url())
    else:
        story_form = StoryForm(owner=request.user, meta=meta, initial={"question": request.GET.get("qid")})
    return render(request, "story/create_story.html", {"story_form": story_form})
예제 #4
0
def update_story(request, base62_id):
    story = get_object_or_404(Story, id=base62.to_decimal(base62_id), owner=request.user)
    if request.method == "POST":
        story_form = StoryForm(request.POST, instance=story, owner=request.user, meta=story.question_meta)
        if story_form.is_valid():
            story_form.save()
            messages.success(request, _("Your story updated"))
            return HttpResponseRedirect(story.get_absolute_url())
        else:
            return render(request, "story/create_story.html", {"story_form": story_form})
    story_form = StoryForm(instance=story, owner=request.user, meta=story.question_meta)
    return render(request, "story/create_story.html", {"story_form": story_form})
예제 #5
0
def update_details(request, base62_id):
    story = get_object_or_404(Story,
                              id=base62.to_decimal(base62_id),
                              owner=request.user)
    if request.method == "POST":
        update_captions_form = UpdateCaptionsForm(request.POST, story=story)
        if update_captions_form.is_valid():
            update_captions_form.save(slot_data=request.POST)
            return HttpResponseRedirect(story.get_absolute_url())
    update_captions_form = UpdateCaptionsForm(story=story)
    return render(request, 'story/update_captions.html',
                  {'captions_form': update_captions_form})
예제 #6
0
def story(request, base62_id):
    action_keys = filter(lambda i: i in ["delete", "publish"], request.POST)
    action_key = action_keys[0] if action_keys else None
    if action_key:
        method = {u"delete": _delete_story, u"publish": _publish_story}.get(action_key)
        if method:
            story = get_object_or_404(Story, id=base62.to_decimal(base62_id), owner=request.user)
            return method(request, story)
    statuses_in = [Story.DRAFT, Story.PUBLISHED] if request.user.is_authenticated() else [Story.PUBLISHED]
    story = get_object_or_404(Story, id=base62.to_decimal(base62_id), status__in=statuses_in, owner__is_active=True)
    blocked_user_ids = compute_blocked_user_ids_for(request.user)
    story_is_visible = story.is_visible_for(request.user, blocked_user_ids=blocked_user_ids)
    comments = (
        Comment.objects.filter(story=story)
        .from_active_owners()
        .visible_for(request.user)
        .select_related("owner__profile")
    )
    comments = paginated(request, comments, settings.COMMENTS_PER_PAGE)
    if request.user.is_authenticated():
        if request.method == "POST" and request.POST.get("action") == "create_comment":
            comment_form = CommentForm(request.POST, owner=request.user, story=story)
            if comment_form.is_valid():
                comment = comment_form.save()
                return HttpResponseRedirect(comment.get_absolute_url())
        else:
            comment_form = CommentForm(owner=request.user, story=story)
    else:
        comment_form = None
    return render(
        request,
        "story/story_detail.html",
        {
            "story": story,
            "current_site": Site.objects.get_current(),
            "story_is_visible": story_is_visible,
            "comments": comments,
            "comment_form": comment_form,
        },
    )
예제 #7
0
파일: views.py 프로젝트: kamilklkn/Resmin
def story(request, base62_id):
    action_keys = filter(lambda i: i in ['delete', 'publish'], request.POST)
    action_key = action_keys[0] if action_keys else None
    if action_key:
        method = {u'delete': _delete_story,
                  u'publish': _publish_story}.get(action_key)
        if method:
            story = get_object_or_404(Story, id=base62.to_decimal(base62_id),
                                      owner=request.user)
            return method(request, story)
    statuses_in = [Story.DRAFT, Story.PUBLISHED] if \
        request.user.is_authenticated() else [Story.PUBLISHED]
    story = get_object_or_404(Story, id=base62.to_decimal(base62_id),
                              status__in=statuses_in, owner__is_active=True)
    blocked_user_ids = compute_blocked_user_ids_for(request.user)
    story_is_visible = story.is_visible_for(request.user,
                                            blocked_user_ids=blocked_user_ids)
    comments = Comment.objects\
        .filter(story=story)\
        .from_active_owners()\
        .visible_for(request.user)\
        .select_related('owner__profile')
    comments = paginated(request, comments, settings.COMMENTS_PER_PAGE)
    if request.user.is_authenticated():
        if request.method == 'POST' and request.POST.get('action') ==\
           'create_comment':
            comment_form = CommentForm(request.POST, owner=request.user,
                                       story=story)
            if comment_form.is_valid():
                comment = comment_form.save()
                return HttpResponseRedirect(comment.get_absolute_url())
        else:
            comment_form = CommentForm(owner=request.user, story=story)
    else:
        comment_form = None
    return render(request, 'story/story_detail.html',
                  {'story': story, 'current_site': Site.objects.get_current(),
                   'story_is_visible': story_is_visible, 'comments': comments,
                   'comment_form': comment_form})
예제 #8
0
파일: views.py 프로젝트: kamilklkn/Resmin
def create_story(request, base62_id):
    mid = base62.to_decimal(base62_id)
    qid = request.GET.get('qid')
    meta = get_object_or_404(QuestionMeta, id=mid)
    question = get_object_or_404(Question, id=qid) if qid else None
    if request.POST:
        story_form = StoryForm(request.POST, owner=request.user, meta=meta,
                               question=question)
        if story_form.is_valid():
            story = story_form.save(publish='publish' in request.POST)
            return HttpResponseRedirect(story.get_absolute_url())
    else:
        story_form = StoryForm(owner=request.user, meta=meta, initial={
            'question': question})
    return render(request, 'story/create_story.html',
                  {'story_form': story_form})
예제 #9
0
def create_story(request, base62_id):
    mid = base62.to_decimal(base62_id)
    qid = request.GET.get('qid')
    meta = get_object_or_404(QuestionMeta, id=mid)
    question = get_object_or_404(Question, id=qid) if qid else None
    if request.POST:
        story_form = StoryForm(request.POST,
                               owner=request.user,
                               meta=meta,
                               question=question)
        if story_form.is_valid():
            story = story_form.save(publish='publish' in request.POST)
            return HttpResponseRedirect(story.get_absolute_url())
    else:
        story_form = StoryForm(owner=request.user,
                               meta=meta,
                               initial={'question': question})
    return render(request, 'story/create_story.html',
                  {'story_form': story_form})
예제 #10
0
def update_story(request, base62_id):
    story = get_object_or_404(Story,
                              id=base62.to_decimal(base62_id),
                              owner=request.user)
    if request.method == "POST":
        story_form = StoryForm(request.POST,
                               instance=story,
                               owner=request.user,
                               meta=story.question_meta)
        if story_form.is_valid():
            story_form.save()
            messages.success(request, _('Your story updated'))
            return HttpResponseRedirect(story.get_absolute_url())
        else:
            return render(request, 'story/create_story.html',
                          {'story_form': story_form})
    story_form = StoryForm(instance=story,
                           owner=request.user,
                           meta=story.question_meta)
    return render(request, 'story/create_story.html',
                  {'story_form': story_form})