...
 
Commits (3)
......@@ -11,4 +11,10 @@
<p class="lead text-center">
{% trans "Bienvenue sur la Note Kfet 2015." %}
</p>
<h1>{% trans "Quoi de neuf ?" %}</h1>
<ul>
<li>Vous pouvez désormais téléchargez votre historique de consommation au format CSV !
Pour cela, rendez vous sur votre profil, dans l'onglet historique !</li>
</ul>
{% endblock %}
......@@ -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,42 @@ 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) for x in filename]) + ".csv"
sock.write(json.dumps(["historique2csv", idbde]))
out = nk.full_read(sock)
# On regarde si ça a marché correctement
if not nk._is_success_code(out["retcode"]):
messages.add_error(request, out["errmsg"])
return HttpResponseRedirect("%sindex/" % settings.NOTE_ROOT_URL)
# puis on met au format csv
HEADERS_CSV = (u"Date", u"Émetteur", u"Destinaire", u"Type",
u"Quantité", u"Montant", u"Description", u"Valide")
tpl = u"""%(date)s,%(emetteurpseudo)s,%(destinatairepseudo)s,%(type)s,%(quantite)s,%(montant)s,%(description)s,%(valide)s\n"""
csv = ",".join(HEADERS_CSV) + "\n"
for d in out["msg"]["h"]:
csv += tpl % d
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"""
......