Exemple #1
0
def review_create(request):
	if request.method == 'POST':
		review = Review()
		review.author = request.user
		form = ReviewForm(request.POST, instance=review)
		if form.is_valid():
			form.save()
			return redirect(reverse('reviews_review_index'), context_instance=RequestContext(request))
	else:
		form = ReviewForm()

	return render_to_response(
		'reviews/review_add.html',
		{ 'form': form, },
		context_instance=RequestContext(request)
	)
Exemple #2
0
def review_update(request, review_id):
	review = get_object_or_404(Review, pk=review_id)
	if request.user == review.author:
		if request.method == 'POST':
			form = ReviewForm(request.POST, instance=review)
			if form.is_valid():
				form.save()
				messages.success(request, 'Entry updated.')
		else:
			form = ReviewForm(instance=review)
	else:
		raise Http404
	return render_to_response(
		'reviews/review_edit.html',
		{ 'form': form, },
		context_instance=RequestContext(request)
	)
Exemple #3
0
 def get_context_data(self, **kwargs):
     context_data = super().get_context_data(**kwargs)
     context_data['review_form'] = ReviewForm(**self.get_form_kwargs())
     context_data['approve_form'] = ReviewApproveForm(**self.get_form_kwargs())
     context_data['self_review'] = SelfReview.objects.get(user=self.object.target,
                                                          interval=self.object.interval)
     context_data['previous_review'] = (Review.visible_to_reviewer.filter(target=self.object.target,
                                                                          reviewer=self.object.reviewer)
                                                                  .exclude(interval=self.current_interval)
                                                                  .order_by('interval__name').last())
     return context_data
Exemple #4
0
def add_review(request, review_id=None, ticket_id=None):
    """
    Display and handle the :model:`reviews.forms.ReviewForm` used
    to add and edit :model:`reviews.Review` instances.

    **Context**

    ``form``
        An instance of the :model:`reviews.forms.ReviewForm`

    ``review_instance``
        An instance of the :model:`reviews.Review`  # Not currently used from the Template

    **Template:**

    :template:'reviews/review.html'

    **Redirect:**

    Use the '_source' session parameter set by either 'main_page' or 'user_posts' views
    in order to redirect to the approrpiate view whenthe forms are validated.

    """

    print("add_review:", request.method, review_id, ticket_id)

    review_instance = get_object_or_404(Review, pk=review_id) if review_id else None

    if review_id is not None:
        ticket_instance = review_instance.ticket
    else:
        ticket_instance = get_object_or_404(Ticket, pk=ticket_id) if ticket_id else None

    if request.method == "GET":

        form = ReviewForm(instance=review_instance)

        return render(request, "reviews/review.html", locals())

    elif request.method == "POST":

        form = ReviewForm(request.POST, request.FILES, instance=review_instance)

        if form.is_valid():
            new_review_instance = form.save(commit=False)
            new_review_instance.ticket = ticket_instance
            new_review_instance.user = request.user
            new_review_instance.save()

            return redirect_flux(request.session.get("_source"))

        return render(request, "reviews/review.html", locals())