from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from intranet.views import BaseOwnerPropMixin
from django.views.generic import TemplateView
from .models import Respuesta
from .forms import EncuestaForm
from django.shortcuts import redirect
from django.utils import timezone
from django.contrib import messages
from django.core.exceptions import PermissionDenied
from django.views.generic import DeleteView

from django.utils.translation import ugettext_lazy as _

class EncuestasResponder(TemplateView):
    template_name = 'encuesta/customer_encuesta.html'
    def get_context_data(self, *args, **kwargs):
        ctx = super(EncuestasResponder, self).get_context_data(*args, **kwargs)

        ctx['accion'] = 'Nada'
        respuestaid = kwargs.get('respuestaid')
        number =kwargs['localizador']

        if respuestaid and number:
            respuesta = get_object_or_404(Respuesta, id=respuestaid, book__number=number, respuesta_customer_fecha_responde_date=None)
            ctx['form'] = EncuestaForm(instance=respuesta)
            ctx['respuesta'] = respuesta
            ctx['accion']='Votar'
        else:
            return redirect('index')
        return ctx
    def post(self, request, respuestaid, localizador):
        respuesta = Respuesta.objects.filter(pk=respuestaid)[0]
        respuesta.votos1 = int(request.POST.get('1rating'))
        respuesta.votos2 = int(request.POST.get('2rating'))
        respuesta.votos3 = int(request.POST.get('3rating'))
        respuesta.votos4 = int(request.POST.get('4rating'))
        respuesta.votos5 = int(request.POST.get('5rating'))
        respuesta.respuesta_eliminada=False
        respuesta.respuesta_customer_fecha_responde_date = timezone.now()
        respuesta.respuesta_comentario_text=request.POST.get('respuesta_comentario_text', '')

        respuesta.save()
        return redirect('index')
encuesta_responder = EncuestasResponder.as_view()


class EncuestaDeleteView(DeleteView):
    model = Respuesta
    success_url = '/intranet/encuestas/'

    def get(self, request, *args, **kwargs):
        self.object = self.get_object()
       
        if not request.user.is_staff:
            raise PermissionDenied
        else:                      
            context = self.get_context_data(object=self.object)
            return self.render_to_response(context)
