diff options
Diffstat (limited to 'tbc/views.py')
-rwxr-xr-x | tbc/views.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/tbc/views.py b/tbc/views.py index cc3d12c..13fe26a 100755 --- a/tbc/views.py +++ b/tbc/views.py @@ -16,6 +16,15 @@ import shutil import string import random import json +import reportlab +from reportlab.pdfgen import canvas +from reportlab.lib.pagesizes import letter, landscape, A4, cm +from reportlab.lib.units import inch +from reportlab.lib.styles import getSampleStyleSheet +from reportlab.lib.enums import TA_JUSTIFY, TA_LEFT, TA_CENTER +from reportlab.lib import colors +from reportlab.pdfgen import canvas +from reportlab.platypus import Paragraph, Table, TableStyle from email.mime.text import MIMEText @@ -1121,6 +1130,52 @@ def BooksUnderProgress(request): else: context['user'] = request.user return render_to_response('tbc/books_under_progress.html', context) + + +def GetCertificate(request): + user = request.user + user_profile = Profile.objects.get(user=user) + books = Book.objects.filter(contributor=user_profile, approved=True) + context = {} + context['user'] = user + context['books'] = books + width, height = A4 + styles = getSampleStyleSheet() + styleN = styles["BodyText"] + styleN.alignment = TA_LEFT + styleBH = styles["Normal"] + styleBH.alignment = TA_CENTER + def coord(x, y, unit=1): + x, y = x * unit, height - y * unit + return x, y + # Headers + hdescrpcion = Paragraph('''<b>descrpcion</b>''', styleBH) + hpartida = Paragraph('''<b>partida</b>''', styleBH) + hcandidad = Paragraph('''<b>candidad</b>''', styleBH) + hprecio_unitario = Paragraph('''<b>precio_unitario</b>''', styleBH) + hprecio_total = Paragraph('''<b>precio_total</b>''', styleBH) + # Texts + descrpcion = Paragraph('long paragraph', styleN) + partida = Paragraph('1', styleN) + candidad = Paragraph('120', styleN) + precio_unitario = Paragraph('$52.00', styleN) + precio_total = Paragraph('$6240.00', styleN) + data= [[hdescrpcion, hcandidad,hcandidad, hprecio_unitario, hprecio_total], + [partida, candidad, descrpcion, precio_unitario, precio_total]] + table = Table(data, colWidths=[2.05 * cm, 2.7 * cm, 5 * cm, + 3* cm, 3 * cm]) + table.setStyle(TableStyle([ + ('INNERGRID', (0,0), (-1,-1), 0.25, colors.black), + ('BOX', (0,0), (-1,-1), 0.25, colors.black), + ])) + c = canvas.Canvas("a.pdf", pagesize=A4) + table.wrapOn(c, width, height) + table.drawOn(c, *coord(1.8, 9.6, cm)) + c.save() + response = HttpResponse(content_type='application/pdf') + response['Content-Disposition'] = c + # Create the PDF object, using the response object as its "file." + return response def RedirectToIpynb(request, notebook_path=None): |