Guest User

Untitled

a guest
Jan 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. ## reportes.py
  2.  
  3. from cStringIO import StringIO
  4. from django.contrib.auth.decorators import login_required
  5. from django.http import Http404, HttpResponse
  6. from django.conf import settings
  7. from wawanet.util import JasperClient
  8.  
  9.  
  10. @login_required
  11. def reporte(request):
  12. dni = request.GET.get('dni', None)
  13. report_type = request.GET.get('report', None)
  14.  
  15. # IDs de reportes, deben ser igual que en el repositorio.
  16. reports = {
  17. '1': 'control',
  18. '2': 'his',
  19. '3': 'formato_sis',
  20. '4': 'referencia_sis',
  21. '5': 'solicitud_examen',
  22. '6': 'solicitud_pap',
  23. '7': 'receta',
  24. }
  25.  
  26. if dni and report_type in reports:
  27. try:
  28. j = settings.JASPER_CONFIG
  29.  
  30. client = JasperClient(**j['conf'])
  31.  
  32. report = client.runReport(
  33. "%s/%s" % (j['repo'], "test123"),#reports[report_type]),
  34. params={'xdni': dni}
  35. )
  36.  
  37. output = StringIO()
  38. output.write(report['data'])
  39. pdf = output.getvalue()
  40. output.close()
  41.  
  42. response = HttpResponse(mimetype="application/pdf")
  43. response['Content-Disposition'] = "attachment;filename=%s.pdf" %\
  44. (reports[report_type] + '-' + dni)
  45. response.write(pdf)
  46.  
  47. return response
  48. except Exception as exc:
  49. # It should raise 500 here
  50. # TODO logging
  51. pass
  52. raise Http404
Add Comment
Please, Sign In to add comment