Commit ba9acfe2 authored by Antoine Bernard's avatar Antoine Bernard

Possibilité de télécharger l'historique d 'un compte

* on ajoute une bouton dans template_historique
* on ajoute la fonction qui renvoie l'objet à télécharger
* on ajoute l'url dans urls.py
parent eb639391
......@@ -16,6 +16,7 @@ Template de rendering d'historique de consos
{% trans "Historique des transactions récentes" %}
{% else %}
{% blocktrans with idbde=compte.idbde %}Historique des transactions du compte n°{{ idbde }} | {{nb_transactions}} transactions {% endblocktrans %}
<a class="btn btn-primary" href="../historique.csv">{% trans "Téléchargez mon historique" %}</a>
{% endif %}
</div>
{% include "note/template_pagination.html" %}
......
......@@ -39,6 +39,7 @@ urlpatterns = [
url(ur'^/search_historique_pseudo/*$', note.views.search_historique_pseudo,name='search_historique_pseudo'),
url(ur'^/comptes/(?P<idbde>[^/]*)/*$', note.views.comptes,name='comptes'),
url(ur'^/comptes/(?P<idbde>[^/]*)/historique/(?P<num_page>\d+)/*$', note.views.historique_transactions,name='historique_transactions'),
url(ur'^/comptes/(?P<idbde>[^/]*)/historique/historique.csv$', note.views.historique_csv,name='historique_csv'),
url(ur'^/comptes/(?P<idbde>[^/]*)/historique/*$', note.views.historique_transactions,name='historique_transactions'),
url(ur'^/comptes/(?P<idbde>[^/]*)/modifier(/listedroits)?/*$', note.views.modifier_compte,name='modifier_compte'),
url(ur'^/comptes/(?P<idbde>[^/]*)/supprimer/*$', note.views.supprimer_compte,name='supprimer_compte'),
......
......@@ -2013,6 +2013,45 @@ def TresorerieFacturation(request,sock,kwargs):
variables["page"]["facturation"] = True
return (variables, "note/trez_facturation.html")
@standard_page
def historique_csv(request,sock,kwargs):
"""
Propose de télécharger un .csv contenant l'historique de
ses consommations.
"""
idbde = kwargs["idbde"]
if idbde is None:
return HttpResponseRedirect('%scomptes/' % (settings.NOTE_ROOT_URL,))
# Création du nom de fichier .csv de l'historique
filename = ["CONSO_KFET", str(idbde), datetime.today().date(),]
filename = "_".join([unicode(x).upper() for x in filename]) + ".csv"
# Création d'un répertoire temporaire
TMP_PREFIX= os.path.join(settings.ROOT_PATH, "templates", '')
tmp = mkdtemp(prefix=TMP_PREFIX)
data = [os.path.join(tmp, filename), idbde]
sock.write(json.dumps(["historique2csv", data]))
out = nk.full_read(sock)
# On regarde la réponse
if not nk._is_success_code(out["retcode"]):
messages.add_error(request, out["errmsg"])
return HttpResponseRedirect("%sindex/" % settings.NOTE_ROOT_URL)
try:
csv = open("%s/%s" % (tmp, filename)).read()
finally:
shutil.rmtree(tmp)
pass
response = HttpResponse(csv, content_type="text/csv")
response['Content-Disposition'] = "attachement; filename=%s" %filename
return response
def teapot(request):
"""Easter egg"""
page = """<html><head>\n<title>418 I'm a Teapot</title>\n</head><body>\n<h1>HTCPCP error 418: I'm a Teapot</h1>\nThe requested URL cannot provide coffee, because this is a networked teapot. See RFC2324.<p>\n<hr>\n"""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment