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 })
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})
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})
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})
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})
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, }, )
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})
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})
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})
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})