# -*- encoding: utf-8 -*-
+import os
import datetime
+import StringIO
from collections import defaultdict
from datetime import date
from simplejson import dumps
from django.core.urlresolvers import reverse
from django.http import Http404, HttpResponse, HttpResponseGone
from django.shortcuts import redirect, render_to_response, get_object_or_404
-from django.template import RequestContext
+from django.template import Context, RequestContext
+from django.template.loader import get_template
from django.contrib import messages
+from django.conf import settings
from reversion.models import Version
+import ho.pisa as pisa
from project.dae import models as dae
from project.rh_v1 import models as rh
employe_dans_ma_region_ou_service
from forms import *
+pisa.showLogging()
+
+def reponse_pdf(template_src, context_dict):
+ """
+ Générer une réponse HTTP avec un PDF
+ """
+ css = ""
+ for f in ('css/pdf.css', 'css/dae.css'):
+ css_file = os.path.join(settings.MEDIA_ROOT, f)
+ css += open(css_file, 'r').read()
+ context_dict['css'] = css
+
+ template = get_template(template_src)
+ context = Context(context_dict)
+ html = template.render(context)
+ result = StringIO.StringIO()
+ pdf = pisa.pisaDocument(html, result, encoding='UTF-8')
+ if not pdf.err:
+ return HttpResponse(result.getvalue(), mimetype='application/pdf')
+ return HttpResponse("impossible de générer le pdf! %s" % html)
+
+
@dae_groupe_requis
def index(request):
return render_to_response('dae/index.html', {}, RequestContext(request))
validationForm = PosteWorkflowForm(instance=poste, request=request)
vars = {'poste' : poste, 'validationForm' : validationForm, }
- return render_to_response('dae/poste_consulter.html', vars, RequestContext(request))
+
+
+ mode = request.GET.get('mode', None)
+ if mode is None:
+ return render_to_response('dae/poste_consulter.html', vars, RequestContext(request))
+ if mode == 'pdf':
+ return reponse_pdf('dae/poste_pdf.html', vars)
+ if mode == 'vpdf':
+ return render_to_response('dae/poste_pdf.html', vars, RequestContext(request))
+
@dae_groupe_requis
@poste_dans_ma_region_ou_service