Merging heads
authoramit@shrike.aero.iitb.ac.in
Tue, 30 Nov 2010 17:53:10 +0530
changeset 321 fa3b368d39ea
parent 319 26137e53781e (current diff)
parent 320 9414017a5589 (diff)
child 323 5d8dd7139b49
Merging heads
--- a/project/scipycon/user/views.py	Tue Nov 30 16:21:59 2010 +0530
+++ b/project/scipycon/user/views.py	Tue Nov 30 17:53:10 2010 +0530
@@ -34,6 +34,11 @@
 #for user_dump creation
 from project.scipycon.registration.models import Accommodation
 
+#Pdf badge generation
+from reportlab.pdfgen import canvas
+from reportlab.lib.units import cm
+from reportlab.platypus import  Image as reportlabImage
+
 
 @login_required
 def account(request, scope, template_name="user/account.html"):
@@ -319,3 +324,51 @@
 
     else:
             raise Http404
+
+
+@login_required
+def badge(request,scope):
+    # Create the HttpResponse object with the appropriate PDF headers.
+    response = HttpResponse(mimetype='application/pdf')
+    response['Content-Disposition'] = 'attachment; filename=scipybadge.pdf'
+
+    # Create the PDF object, using the response object as its "file."
+    c = canvas.Canvas(response)
+
+    ref=5*cm
+    # Draw things on the PDF. Here's where the PDF generation happens.
+    # See the ReportLab documentation for the full list of functionality.
+    c.rect(ref,ref,9.45*cm,6.45*cm)
+
+    im = reportlabImage("project/static/img/scipyshiny_small.png", width=1.75*cm, height=1.75*cm)
+    im.drawOn(c,(ref+0.8*cm),(ref+4.5*cm))
+    c.setFont('Helvetica', 6)
+    c.drawString((ref+1.0*cm),(ref+4.4*cm),'scipy.in 2010') 
+    c.drawString((ref+1.1*cm),(ref+4.2*cm),'Hyderabad') 
+
+    c.setFont('Helvetica', 12)
+    print request.user.id
+    reg_obj=Registration.objects.get(registrant=request.user.id)
+
+    c.drawString((ref+5*cm),(ref+5*cm),str(reg_obj.slug)) 
+    c.setFont('Helvetica-Bold', 14)
+    c.drawString((ref+0.6*cm),(ref+3.5*cm),str(request.user.get_full_name()))
+    c.setFont('Helvetica', 10)
+    c.drawString((ref+2.8*cm),(ref+2.8*cm),reg_obj.organisation)
+    c.setFont('Helvetica', 10)
+    try:
+        c.drawString((ref+2.8*cm),(ref+2.3*cm),reg_obj.occupation.split(':')[1])
+    except IndexError:
+        c.drawString((ref+2.8*cm),(ref+2.3*cm),reg_obj.occupation)
+        
+    c.setFont('Helvetica', 10)
+    c.drawString((ref+2.8*cm),(ref+1.8*cm),reg_obj.city)
+    c.setFont('Helvetica', 10)
+    c.drawString((ref+2.8*cm),(ref+1*cm),'Delegate')
+
+
+    
+    # Close the PDF object cleanly, and we're done.
+    c.showPage()
+    c.save()
+    return response
--- a/project/urls.py	Tue Nov 30 16:21:59 2010 +0530
+++ b/project/urls.py	Tue Nov 30 17:53:10 2010 +0530
@@ -74,7 +74,9 @@
     url(r'^%s/get-usernames/$' % (SCOPE_ARG_PATTERN),
         'get_usernames', name='scipycon_get_usernames'),
     url(r'^%s/get-user-dump/$' % (SCOPE_ARG_PATTERN),
-        'get_user_dump', name='scipycon_get_usernames'))
+        'get_user_dump', name='scipycon_get_usernames'),
+    url(r'^%s/badge/$' % (SCOPE_ARG_PATTERN),
+        'badge', name='scipycon_badge'))
     
 
 # Proceedings