Browse Source

Fix #48 : Rename invoice PDF file

fix_superuser
LEVY-FALK Hugo 8 years ago
committed by root
parent
commit
d3b0e14ba9
  1. 27
      cotisations/tex.py
  2. 6
      cotisations/views.py

27
cotisations/tex.py

@ -21,17 +21,14 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from django.template.loader import get_template
from django.template import TemplateDoesNotExist, Context
from django.http import HttpResponse, Http404, HttpResponseNotModified
from django.core.cache import cache
from django.template import Context
from django.http import HttpResponse
from django.conf import settings
from django.shortcuts import redirect
from django.utils.text import slugify
import tempfile
from subprocess import Popen, PIPE
import os
import shutil
from hashlib import md5
TEMP_PREFIX = getattr(settings, 'TEX_TEMP_PREFIX', 'render_tex-')
@ -39,9 +36,22 @@ CACHE_PREFIX = getattr(settings, 'TEX_CACHE_PREFIX', 'render-tex')
CACHE_TIMEOUT = getattr(settings, 'TEX_CACHE_TIMEOUT', 86400) # 1 day
def render_tex(request,tmp, ctx={}):
def render_invoice(request, ctx={}):
filename = '_'.join([
'invoice',
slugify(ctx['asso_name']),
slugify(ctx['dest'].pseudo),
str(ctx['DATE'].year),
str(ctx['DATE'].month),
str(ctx['DATE'].day),
])
r = render_tex(request, 'cotisations/factures.tex', ctx)
r['Content-Disposition'] = ''.join(['attachment; filename="',filename,'.pdf"'])
return r
def render_tex(request, template, ctx={}):
context = Context(ctx)
template = get_template('cotisations/factures.tex')
template = get_template(template)
rendered_tpl = template.render(context).encode('utf-8')
with tempfile.TemporaryDirectory() as tempdir:
@ -55,6 +65,5 @@ def render_tex(request,tmp, ctx={}):
with open(os.path.join(tempdir, 'texput.pdf'), 'rb') as f:
pdf = f.read()
r = HttpResponse(content_type='application/pdf')
#r['Content-Disposition'] = 'attachement; filename=texput.pdf'
r.write(pdf)
return r

6
cotisations/views.py

@ -61,7 +61,7 @@ from .forms import (
SelectClubArticleForm,
CreditSoldeForm
)
from .tex import render_tex
from .tex import render_invoice
@login_required
@ -182,7 +182,7 @@ def new_facture_pdf(request):
tbl.append([art, quantite, art.prix * quantite])
prix_total = sum(a[2] for a in tbl)
user = {'name': destinataire, 'room': chambre}
return render_tex(request, 'cotisations/factures.tex', {
return render_invoice(request, {
'DATE': timezone.now(),
'dest': user,
'fid': fid,
@ -233,7 +233,7 @@ def facture_pdf(request, factureid):
options, _created = AssoOption.objects.get_or_create()
for vente in ventes_objects:
ventes.append([vente, vente.number, vente.prix_total])
return render_tex(request, 'cotisations/factures.tex', {
return render_invoice(request, {
'paid': True,
'fid': facture.id,
'DATE': facture.date,

Loading…
Cancel
Save