views.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from django.shortcuts import render
  2. from django.shortcuts import redirect
  3. from django.views.generic import View
  4. from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
  5. from django.contrib.auth.mixins import LoginRequiredMixin
  6. from django.utils import timezone
  7. from .models import FacebookReview
  8. from .forms import ReplyForm
  9. class FacebookReviews(LoginRequiredMixin, View):
  10. def post(self, request, *args, **kwargs):
  11. form = ReplyForm(self.request.POST)
  12. if form.is_valid():
  13. replied_text = form.cleaned_data.get('reply')
  14. review_id = self.request.POST['review_id']
  15. # TODO: Reply this review using selenium...
  16. return redirect('un-replied-review')
  17. def get(self, request, *args, **kwargs):
  18. now = timezone.now()
  19. form = ReplyForm()
  20. date = now - timezone.timedelta(days=30)
  21. # reviews = FacebookReview.objects.filter(reply=None, create_time__gte=date)\
  22. # .order_by('create_time')
  23. reviews = FacebookReview.objects.filter(create_time__gte=date)\
  24. .order_by('create_time')
  25. page = request.GET.get('page', 1)
  26. paginator = Paginator(reviews, 10)
  27. try:
  28. reviews = paginator.page(page)
  29. except PageNotAnInteger:
  30. reviews = paginator.page(1)
  31. except EmptyPage:
  32. reviews = paginator.page(paginator.num_pages)
  33. context = {'reviews': reviews, 'form': form}
  34. return render(request, 'facebook-reviews.html', context=context)