Advertisement
akonrad

Module 10 create and delete review functions

Apr 4th, 2020
453
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.93 KB | None | 0 0
  1. from share.models import Script, Problem, Coder, Review
  2.  
  3. def create_review(request,script_id):
  4.     if request.method == "POST":
  5.         user = request.user
  6.         if not user.is_authenticated:
  7.             return redirect("share:login")
  8.  
  9.         script = get_object_or_404(Script, pk=script_id)
  10.         problem = get_object_or_404(Problem, pk=script.problem.id)
  11.  
  12.         coder = user.coder
  13.         feedback = request.POST["feedback"]
  14.  
  15.         stars = request.POST.get('stars', False)
  16.         print('************************')
  17.         print(stars)
  18.  
  19.         if stars == 'Confusing':
  20.             stars = 1
  21.         elif stars ==  "Clear":
  22.             stars = 2
  23.         else:
  24.             stars = 3
  25.  
  26.         try:
  27.             review = Review.objects.create(coder=coder, script=script, feedback=feedback, stars=stars)
  28.             review.save()
  29.             # script.html  needs user, script, problem, reviews, user_review
  30.             reviews = Review.objects.filter(script=script_id)
  31.             user_review = Review.objects.filter(coder=user.id).filter(script=script.id)
  32.  
  33.             return render(request, "share/script.html",
  34.             {"user":user, "problem":problem, "script": script, "reviews":reviews, "user_review":user_review})
  35.  
  36.         except:
  37.             return render(request, "share/script.html", {"error":"Can't create the script"})
  38.  
  39.     else:
  40.         # the user enteing    http://127.0.0.1:8000/problem/8/create
  41.         user = request.user
  42.         all_problems = Problem.objects.all()
  43.         return render(request, "share/index.html", {"user":user, "all_problems": all_problems, "error":"Can't create review!"})
  44.  
  45. def delete_review(request, review_id):
  46.     if request.method == "POST":
  47.         user = request.user
  48.         if not user.is_authenticated:
  49.             return HttpResponse(status=500)
  50.  
  51.         review = get_object_or_404(Review, pk=review_id)
  52.  
  53.         # script.html needs user, script, problem, reviews, user_review
  54.         script = get_object_or_404(Script, pk=review.script.id)
  55.         problem = get_object_or_404(Problem, pk=script.problem.id)
  56.  
  57.  
  58.         if review.coder.user.id == user.id:
  59.             Review.objects.get(pk=review_id).delete()
  60.  
  61.             reviews = Review.objects.filter(script=script.id)
  62.             user_review = Review.objects.filter(coder=user.id).filter(script=script.id)  # should retrive no obj
  63.  
  64.             return render(request, "share/script.html",
  65.             {"user":user, "problem": problem, "script":script, "reviews":reviews, "user_review":user_review,
  66.             "error":"Review deleted!"})
  67.  
  68.         else:
  69.             user_review = Review.objects.filter(coder=user.id).filter(script=script.id)  # should retrive no obj
  70.  
  71.             return render(request, "share/script.html",
  72.             {"user":user, "problem": problem, "script":script, "reviews":reviews, "user_review":user_review, "error":"Can't delete the review!"})
  73.  
  74.     else:
  75.         return HttpResponse(status=500)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement