from django.shortcuts import render from django.shortcuts import redirect from django.views.generic import View from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.contrib.auth.mixins import LoginRequiredMixin from django.utils import timezone from .models import FacebookReview from .forms import ReplyForm class FacebookReviews(LoginRequiredMixin, View): def post(self, request, *args, **kwargs): form = ReplyForm(self.request.POST) if form.is_valid(): replied_text = form.cleaned_data.get('reply') review_id = self.request.POST['review_id'] # TODO: Reply this review using selenium... return redirect('un-replied-review') def get(self, request, *args, **kwargs): now = timezone.now() form = ReplyForm() date = now - timezone.timedelta(days=30) # reviews = FacebookReview.objects.filter(reply=None, create_time__gte=date)\ # .order_by('create_time') reviews = FacebookReview.objects.filter(create_time__gte=date)\ .order_by('create_time') page = request.GET.get('page', 1) paginator = Paginator(reviews, 10) try: reviews = paginator.page(page) except PageNotAnInteger: reviews = paginator.page(1) except EmptyPage: reviews = paginator.page(paginator.num_pages) context = {'reviews': reviews, 'form': form} return render(request, 'facebook-reviews.html', context=context)