# -*- coding: iso-8859-15 -*-

from django.http import HttpResponse
from generador.models import Pegatina
from django.shortcuts import render_to_response, get_object_or_404
from reportlab.pdfgen import canvas
from reportlab.lib.units import cm
from reportlab.lib.pagesizes import A4


def index(request):
    pegatinas = Pegatina.objects.all()
    return render_to_response('generador/index.html',
                              {'pegatinas' : pegatinas })


def pdf_response(nombre='fichero.pdf'):
    """Genera una respuesta HTTP para un fichero PDF."""
    response = HttpResponse(mimetype='application/pdf')
    response['Content-Disposition'] = 'attachment; filename={0}'.format(nombre)
    return response

    
def genera_pegatina (respuesta, pegatina):
    """Crea una página PDF con pegatinas, y la escupe en la respuesta HTTP que nos pasan."""
    
    p = canvas.Canvas(respuesta)
    p.setPageSize(A4)
    
    ancho_pegatina = 3.8*cm
    alto_pegatina = 2.15*cm
    diff_y = 0.3*cm
    diff_x = 0.3*cm
    
    for pos_x in range(0,5):
        for pos_y in range(0,13): 
            
            x = cm + (pos_x * ancho_pegatina)
            y = 1.1*cm + alto_pegatina + (pos_y * alto_pegatina)
            #p.roundRect(x, y - alto_pegatina, ancho_pegatina, alto_pegatina, 0.2*cm)
            
            y = y - 0.3*cm
            p.setFont('Helvetica-Bold',8)
            p.drawString( x + diff_x, y - diff_y, pegatina.nombre)
            p.setFont('Helvetica',7)
            p.drawString( x + diff_x, y - (2*diff_y), pegatina.linea1)
            p.drawString( x + diff_x, y - (3*diff_y), pegatina.linea2)
            p.drawString( x + diff_x, y - (4*diff_y), pegatina.linea3)
            
    p.showPage()
    p.save()
    
    

def pegatina(request,pegatina_id):
    
    pegatina = get_object_or_404(Pegatina, pk=pegatina_id)
    respuesta = pdf_response('pegatina.pdf')
    genera_pegatina(respuesta, pegatina)
    
    return respuesta
