from django.shortcuts import render

# Create your views here.

from django.http import HttpResponse
import datetime
from django.utils import timezone
from .models import Question,Choice
from django.template import loader
from django.shortcuts import render, get_object_or_404
from django.http import Http404,HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.views import generic
import logging
logger = logging.getLogger('django')
def index(request):
    '''
    latest_question_list = Question.objects.order_by('-pub_date')[:5]
    #-----method one------#
    #output = ",".join( [str(q) for q in latest_question_list ] )
    #return HttpResponse(output)
    #-----method two------#
    template = loader.get_template('polls/index.html')
    context = { 'latest_question_list': latest_question_list , }
    return HttpResponse(template.render(context, request) )
    #-----nothing--------#    
    #return HttpResponse("Hello world, you are at the polls index")    
    '''
    pass

def detail(request, question_id):
    '''
    try:
        question = Question.objects.get(pk=question_id)
        
    except:
        raise Http404("Question %s does not exist"%question_id )
    return render( request, 'polls/detail.html', {'question':question } )

    #return HttpResponse( "Your are looking at question %s." %question_id )
    '''
    pass

def results(request, question_id):
    '''
    return HttpResponse("Your are looking at result of question %s."%question_id )
    '''
    pass

class IndexView(generic.ListView):
    template_name = 'polls/index.html'
    context_object_name = 'latest_question_list'
    def get_queryset(self):
        logger.error("access index")
        latest_question_list = Question.objects.filter(pub_date__lte=timezone.now()  ).order_by('-pub_date')[:5]
        return latest_question_list

class DetailView(generic.DetailView):
    model = Question
    template_name='polls/detail.html'

    def get_queryset(self):
        return Question.objects.filter(pub_date__lte=timezone.now())        

class ResultsView(generic.DetailView):
    model = Question
    template_name = 'polls/results.html'

def vote(request, question_id):
    logger.error("access detail")

    question = get_object_or_404(Question, pk=question_id)
    try:
        selected_choice = question.choice_set.get(pk=request.POST['choice'])
        
    except:
        return render(request, 'polls/detail.html', { 'question':question, 'error_message':'you do not select a choice' } )
    selected_choice.votes += 1
    selected_choice.save()
    return HttpResponseRedirect( reverse('polls:results', args=(question.id,)))
    #   pass
    #eturn HttpResponse("You're voting on question %s."%question_id)




