12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- from django.shortcuts import render
- from django.shortcuts import redirect
- from django.views.generic import View
- from django.contrib import messages
- from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
- from django.contrib.auth.mixins import LoginRequiredMixin
- from django.utils import timezone
- from .models import FacebookReview, FacebookReviewReply
- from .forms import ReplyForm
- from .review_utils import reply2facebook_review
- 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']
- print('review-id', review_id)
- # TODO: Reply this review using selenium...
- reply2facebook_review(
- review_id=review_id,
- reply=replied_text,
- love=True
- )
- FacebookReviewReply.objects.create(
- review_id=review_id,
- create_time=timezone.now(),
- replied_text=replied_text
- )
- messages.success(request, f'Your reply has been posted!')
- return redirect('facebook-reviews')
- def get(self, request, *args, **kwargs):
- now = timezone.now()
- form = ReplyForm()
- date = now - timezone.timedelta(days=15)
- reviews = FacebookReview.objects.filter(
- facebookreviewreply=None,
- 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)
|