from django.shortcuts import render_to_response, get_object_or_404
from django.http import HttpResponseRedirect
from Fost.decorator import *
import santa.travelling.models as models
import datetime, random


def homepage(request):
    if request.user.is_authenticated():
        if request.method == 'POST':
            program = models.Program()
            program.initialise(request, False)
            program.save()
            return HttpResponseRedirect('%s/' % program.reference)
        else:
            return render_to_response('myprograms.html', dict(
                programs = models.Program.objects.filter(
                    user = request.user,
                    is_user = False
                ).order_by('obsolete', 'reference'),
                user = request.user
            ))
    else:
        return HttpResponseRedirect('/')


def performance(request, reference):
    program = get_object_or_404(models.Program, pk = reference)
    return render_to_response('program.html', dict(
        program = program,
        configurations = [(
            config,
            models.Problem.objects.filter(
                program = program,
                configuration = config
            ).order_by('completed')
        ) for config in models.Configuration.objects.all().order_by('pk')]
    ))


@RESTpost
def problem(request, body, reference, configuration):
    program = get_object_or_404(models.Program, pk = reference)
    configuration = get_object_or_404(models.Configuration, pk = configuration)
    problem = models.Problem()
    problem.initialise(request, program, configuration)
    problem.save()
    return HttpResponseRedirect('/city/%s/' % problem.reference)
