1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2024-12-23 07:52:23 +00:00

RecurrentTransaction amount history

This commit is contained in:
Yohann D'ANELLO 2020-04-27 03:21:13 +02:00
parent c5f3f9b760
commit 2bc2048076
5 changed files with 220 additions and 144 deletions

View File

@ -4,7 +4,7 @@
from django import forms
from django.contrib.contenttypes.models import ContentType
from django.utils.translation import gettext_lazy as _
from note_kfet.inputs import Autocomplete
from note_kfet.inputs import Autocomplete, AmountInput
from .models import TransactionTemplate, NoteClub
@ -24,11 +24,6 @@ class TransactionTemplateForm(forms.ModelForm):
model = TransactionTemplate
fields = '__all__'
# Le champ de destination est remplacé par un champ d'auto-complétion.
# Quand des lettres sont tapées, une requête est envoyée sur l'API d'auto-complétion
# et récupère les aliases valides
# Pour force le type d'une note, il faut rajouter le paramètre :
# forward=(forward.Const('TYPE', 'note_type') où TYPE est dans {user, club, special}
widgets = {
'destination':
Autocomplete(
@ -41,4 +36,5 @@ class TransactionTemplateForm(forms.ModelForm):
'placeholder': 'Note ...',
},
),
'amount': AmountInput(),
}

View File

@ -1,5 +1,6 @@
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
import json
from django.conf import settings
from django.contrib.auth.mixins import LoginRequiredMixin
@ -80,6 +81,33 @@ class TransactionTemplateUpdateView(ProtectQuerysetMixin, LoginRequiredMixin, Up
form_class = TransactionTemplateForm
success_url = reverse_lazy('note:template_list')
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
if "logs" in settings.INSTALLED_APPS:
from logs.models import Changelog
update_logs = Changelog.objects.filter(
model=ContentType.objects.get_for_model(TransactionTemplate),
instance_pk=self.object.pk,
action="edit",
)
price_history = []
for log in update_logs.all():
old_dict = json.loads(log.previous)
new_dict = json.loads(log.data)
old_price = old_dict["amount"]
new_price = new_dict["amount"]
if old_price != new_price:
price_history.append(dict(price=old_price, time=log.timestamp))
price_history.append(dict(price=self.object.amount, time=None))
price_history.reverse()
context["price_history"] = price_history
return context
class ConsoView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView):
"""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-09 21:59+0200\n"
"POT-Creation-Date: 2020-04-27 03:19+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -19,27 +19,27 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps/activity/apps.py:10 apps/activity/models.py:102
#: apps/activity/models.py:111
#: apps/activity/models.py:117
msgid "activity"
msgstr ""
#: apps/activity/forms.py:45 apps/activity/models.py:208
#: apps/activity/forms.py:45 apps/activity/models.py:213
msgid "You can't invite someone once the activity is started."
msgstr ""
#: apps/activity/forms.py:48 apps/activity/models.py:211
#: apps/activity/forms.py:48 apps/activity/models.py:216
msgid "This activity is not validated yet."
msgstr ""
#: apps/activity/forms.py:58 apps/activity/models.py:219
#: apps/activity/forms.py:58 apps/activity/models.py:224
msgid "This person has been already invited 5 times this year."
msgstr ""
#: apps/activity/forms.py:62 apps/activity/models.py:223
#: apps/activity/forms.py:62 apps/activity/models.py:228
msgid "This person is already invited."
msgstr ""
#: apps/activity/forms.py:66 apps/activity/models.py:227
#: apps/activity/forms.py:66 apps/activity/models.py:232
msgid "You can't invite more than 3 people to this activity."
msgstr ""
@ -113,57 +113,57 @@ msgstr ""
msgid "activities"
msgstr ""
#: apps/activity/models.py:116
#: apps/activity/models.py:122
msgid "entry time"
msgstr ""
#: apps/activity/models.py:122 apps/note/apps.py:14
#: apps/activity/models.py:128 apps/note/apps.py:14
#: apps/note/models/notes.py:58
msgid "note"
msgstr ""
#: apps/activity/models.py:133 templates/activity/activity_entry.html:38
#: apps/activity/models.py:139 templates/activity/activity_entry.html:38
msgid "entry"
msgstr ""
#: apps/activity/models.py:134 templates/activity/activity_entry.html:38
#: apps/activity/models.py:140 templates/activity/activity_entry.html:38
msgid "entries"
msgstr ""
#: apps/activity/models.py:141
#: apps/activity/models.py:146
msgid "Already entered on "
msgstr ""
#: apps/activity/models.py:141 apps/activity/tables.py:54
#: apps/activity/models.py:146 apps/activity/tables.py:54
msgid "{:%Y-%m-%d %H:%M:%S}"
msgstr ""
#: apps/activity/models.py:149
#: apps/activity/models.py:154
msgid "The balance is negative."
msgstr ""
#: apps/activity/models.py:179
#: apps/activity/models.py:184
msgid "last name"
msgstr ""
#: apps/activity/models.py:184 templates/member/profile_info.html:14
#: apps/activity/models.py:189 templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16
msgid "first name"
msgstr ""
#: apps/activity/models.py:191
#: apps/activity/models.py:196
msgid "inviter"
msgstr ""
#: apps/activity/models.py:232
#: apps/activity/models.py:237
msgid "guest"
msgstr ""
#: apps/activity/models.py:233
#: apps/activity/models.py:238
msgid "guests"
msgstr ""
#: apps/activity/models.py:245
#: apps/activity/models.py:250
msgid "Invitation"
msgstr ""
@ -186,7 +186,7 @@ msgstr ""
#: apps/activity/tables.py:79 apps/member/forms.py:80
#: apps/registration/forms.py:60 apps/treasury/forms.py:123
#: templates/note/transaction_form.html:97
#: templates/note/transaction_form.html:126
msgid "First name"
msgstr ""
@ -198,11 +198,11 @@ msgstr ""
msgid "Balance"
msgstr ""
#: apps/activity/views.py:45 templates/base.html:106
#: apps/activity/views.py:46 templates/base.html:121
msgid "Activities"
msgstr ""
#: apps/activity/views.py:154
#: apps/activity/views.py:160
msgid "Entry for activity \"{}\""
msgstr ""
@ -296,7 +296,7 @@ msgid "Credit amount"
msgstr ""
#: apps/member/forms.py:85 apps/registration/forms.py:65
#: apps/treasury/forms.py:125 templates/note/transaction_form.html:103
#: apps/treasury/forms.py:125 templates/note/transaction_form.html:132
msgid "Bank"
msgstr ""
@ -666,9 +666,9 @@ msgid "transactions"
msgstr ""
#: apps/note/models/transactions.py:207
#: templates/activity/activity_entry.html:13 templates/base.html:84
#: templates/activity/activity_entry.html:13 templates/base.html:99
#: templates/note/transaction_form.html:19
#: templates/note/transaction_form.html:145
#: templates/note/transaction_form.html:140
msgid "Transfer"
msgstr ""
@ -719,15 +719,15 @@ msgid "Delete"
msgstr ""
#: apps/note/tables.py:146 templates/member/club_info.html:55
#: templates/note/conso_form.html:121
#: templates/note/conso_form.html:128
msgid "Edit"
msgstr ""
#: apps/note/views.py:40
#: apps/note/views.py:41
msgid "Transfer money"
msgstr ""
#: apps/note/views.py:109 templates/base.html:79
#: apps/note/views.py:137 templates/base.html:94
msgid "Consumptions"
msgstr ""
@ -810,7 +810,7 @@ msgid ""
"The entered amount is not enough for the memberships, should be at least {}"
msgstr ""
#: apps/treasury/apps.py:12 templates/base.html:111
#: apps/treasury/apps.py:12 templates/base.html:126
msgid "Treasury"
msgstr ""
@ -836,7 +836,7 @@ msgid "You can't change the type of the remittance."
msgstr ""
#: apps/treasury/forms.py:127 apps/treasury/tables.py:47
#: templates/note/transaction_form.html:133
#: templates/note/transaction_form.html:95
#: templates/treasury/remittance_form.html:18
msgid "Amount"
msgstr ""
@ -857,7 +857,7 @@ msgstr ""
msgid "Description"
msgstr ""
#: apps/treasury/models.py:46 templates/note/transaction_form.html:91
#: apps/treasury/models.py:46 templates/note/transaction_form.html:120
msgid "Name"
msgstr ""
@ -1052,19 +1052,19 @@ msgstr ""
msgid "The ENS Paris-Saclay BDE note."
msgstr ""
#: templates/base.html:89
#: templates/base.html:104
msgid "Users"
msgstr ""
#: templates/base.html:94
#: templates/base.html:109
msgid "Clubs"
msgstr ""
#: templates/base.html:100
#: templates/base.html:115
msgid "Registrations"
msgstr ""
#: templates/base.html:150
#: templates/base.html:165
msgid ""
"Your e-mail address is not validated. Please check your mail inbox and click "
"on the validation link."
@ -1227,36 +1227,41 @@ msgstr ""
msgid "Save Changes"
msgstr ""
#: templates/member/user_list.html:14
#: templates/member/user_list.html:15
#: templates/registration/future_user_list.html:17
msgid "There is no pending user with this pattern."
msgstr ""
#: templates/note/conso_form.html:28 templates/note/transaction_form.html:55
msgid "Select emitters"
#: templates/note/conso_form.html:28
msgid "Consum"
msgstr ""
#: templates/note/conso_form.html:45
#: templates/note/conso_form.html:39 templates/note/transaction_form.html:61
#: templates/note/transaction_form.html:76
msgid "Name or alias..."
msgstr ""
#: templates/note/conso_form.html:48
msgid "Select consumptions"
msgstr ""
#: templates/note/conso_form.html:51
#: templates/note/conso_form.html:57
msgid "Consume!"
msgstr ""
#: templates/note/conso_form.html:64
#: templates/note/conso_form.html:71
msgid "Most used buttons"
msgstr ""
#: templates/note/conso_form.html:126
#: templates/note/conso_form.html:134
msgid "Single consumptions"
msgstr ""
#: templates/note/conso_form.html:130
#: templates/note/conso_form.html:139
msgid "Double consumptions"
msgstr ""
#: templates/note/conso_form.html:141 templates/note/transaction_form.html:152
#: templates/note/conso_form.html:150 templates/note/transaction_form.html:151
msgid "Recent transactions history"
msgstr ""
@ -1264,36 +1269,42 @@ msgstr ""
msgid "Gift"
msgstr ""
#: templates/note/transaction_form.html:73
msgid "External payment"
#: templates/note/transaction_form.html:55
msgid "Select emitters"
msgstr ""
#: templates/note/transaction_form.html:81
msgid "Transfer type"
msgstr ""
#: templates/note/transaction_form.html:116
#: templates/note/transaction_form.html:169
#: templates/note/transaction_form.html:176
#: templates/note/transaction_form.html:70
msgid "Select receivers"
msgstr ""
#: templates/note/transaction_form.html:138
#: templates/note/transaction_form.html:87
msgid "Action"
msgstr ""
#: templates/note/transaction_form.html:102
msgid "Reason"
msgstr ""
#: templates/note/transaction_form.html:183
msgid "Credit note"
#: templates/note/transaction_form.html:110
msgid "Transfer type"
msgstr ""
#: templates/note/transaction_form.html:190
msgid "Debit note"
msgstr ""
#: templates/note/transactiontemplate_form.html:6
#: templates/note/transactiontemplate_form.html:10
msgid "Buttons list"
msgstr ""
#: templates/note/transactiontemplate_form.html:21
msgid "Price history"
msgstr ""
#: templates/note/transactiontemplate_form.html:24
msgid "Obsolete since"
msgstr ""
#: templates/note/transactiontemplate_form.html:24
msgid "Current price"
msgstr ""
#: templates/note/transactiontemplate_list.html:9
msgid "search button"
msgstr ""

View File

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-09 21:59+0200\n"
"POT-Creation-Date: 2020-04-27 03:19+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -14,28 +14,28 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: apps/activity/apps.py:10 apps/activity/models.py:102
#: apps/activity/models.py:111
#: apps/activity/models.py:117
msgid "activity"
msgstr "activité"
#: apps/activity/forms.py:45 apps/activity/models.py:208
#: apps/activity/forms.py:45 apps/activity/models.py:213
msgid "You can't invite someone once the activity is started."
msgstr ""
"Vous ne pouvez pas inviter quelqu'un une fois que l'activité a démarré."
#: apps/activity/forms.py:48 apps/activity/models.py:211
#: apps/activity/forms.py:48 apps/activity/models.py:216
msgid "This activity is not validated yet."
msgstr "Cette activité n'est pas encore validée."
#: apps/activity/forms.py:58 apps/activity/models.py:219
#: apps/activity/forms.py:58 apps/activity/models.py:224
msgid "This person has been already invited 5 times this year."
msgstr "Cette personne a déjà été invitée 5 fois cette année."
#: apps/activity/forms.py:62 apps/activity/models.py:223
#: apps/activity/forms.py:62 apps/activity/models.py:228
msgid "This person is already invited."
msgstr "Cette personne est déjà invitée."
#: apps/activity/forms.py:66 apps/activity/models.py:227
#: apps/activity/forms.py:66 apps/activity/models.py:232
msgid "You can't invite more than 3 people to this activity."
msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
@ -109,57 +109,57 @@ msgstr "ouvrir"
msgid "activities"
msgstr "activités"
#: apps/activity/models.py:116
#: apps/activity/models.py:122
msgid "entry time"
msgstr "heure d'entrée"
#: apps/activity/models.py:122 apps/note/apps.py:14
#: apps/activity/models.py:128 apps/note/apps.py:14
#: apps/note/models/notes.py:58
msgid "note"
msgstr "note"
#: apps/activity/models.py:133 templates/activity/activity_entry.html:38
#: apps/activity/models.py:139 templates/activity/activity_entry.html:38
msgid "entry"
msgstr "entrée"
#: apps/activity/models.py:134 templates/activity/activity_entry.html:38
#: apps/activity/models.py:140 templates/activity/activity_entry.html:38
msgid "entries"
msgstr "entrées"
#: apps/activity/models.py:141
#: apps/activity/models.py:146
msgid "Already entered on "
msgstr "Déjà rentré le "
#: apps/activity/models.py:141 apps/activity/tables.py:54
#: apps/activity/models.py:146 apps/activity/tables.py:54
msgid "{:%Y-%m-%d %H:%M:%S}"
msgstr "{:%d/%m/%Y %H:%M:%S}"
#: apps/activity/models.py:149
#: apps/activity/models.py:154
msgid "The balance is negative."
msgstr "La note est en négatif."
#: apps/activity/models.py:179
#: apps/activity/models.py:184
msgid "last name"
msgstr "nom de famille"
#: apps/activity/models.py:184 templates/member/profile_info.html:14
#: apps/activity/models.py:189 templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16
msgid "first name"
msgstr "prénom"
#: apps/activity/models.py:191
#: apps/activity/models.py:196
msgid "inviter"
msgstr "hôte"
#: apps/activity/models.py:232
#: apps/activity/models.py:237
msgid "guest"
msgstr "invité"
#: apps/activity/models.py:233
#: apps/activity/models.py:238
msgid "guests"
msgstr "invités"
#: apps/activity/models.py:245
#: apps/activity/models.py:250
msgid "Invitation"
msgstr "Invitation"
@ -182,7 +182,7 @@ msgstr "Nom de famille"
#: apps/activity/tables.py:79 apps/member/forms.py:80
#: apps/registration/forms.py:60 apps/treasury/forms.py:123
#: templates/note/transaction_form.html:97
#: templates/note/transaction_form.html:126
msgid "First name"
msgstr "Prénom"
@ -194,11 +194,11 @@ msgstr "Note"
msgid "Balance"
msgstr "Solde du compte"
#: apps/activity/views.py:45 templates/base.html:106
#: apps/activity/views.py:46 templates/base.html:121
msgid "Activities"
msgstr "Activités"
#: apps/activity/views.py:154
#: apps/activity/views.py:160
msgid "Entry for activity \"{}\""
msgstr "Entrées pour l'activité « {} »"
@ -292,7 +292,7 @@ msgid "Credit amount"
msgstr "Montant à créditer"
#: apps/member/forms.py:85 apps/registration/forms.py:65
#: apps/treasury/forms.py:125 templates/note/transaction_form.html:103
#: apps/treasury/forms.py:125 templates/note/transaction_form.html:132
msgid "Bank"
msgstr "Banque"
@ -669,9 +669,9 @@ msgid "transactions"
msgstr "transactions"
#: apps/note/models/transactions.py:207
#: templates/activity/activity_entry.html:13 templates/base.html:84
#: templates/activity/activity_entry.html:13 templates/base.html:99
#: templates/note/transaction_form.html:19
#: templates/note/transaction_form.html:145
#: templates/note/transaction_form.html:140
msgid "Transfer"
msgstr "Virement"
@ -722,15 +722,15 @@ msgid "Delete"
msgstr "Supprimer"
#: apps/note/tables.py:146 templates/member/club_info.html:55
#: templates/note/conso_form.html:121
#: templates/note/conso_form.html:128
msgid "Edit"
msgstr "Éditer"
#: apps/note/views.py:40
#: apps/note/views.py:41
msgid "Transfer money"
msgstr "Transférer de l'argent"
#: apps/note/views.py:109 templates/base.html:79
#: apps/note/views.py:137 templates/base.html:94
msgid "Consumptions"
msgstr "Consommations"
@ -815,7 +815,7 @@ msgstr ""
"Le montant crédité est trop faible pour adhérer, il doit être au minimum de "
"{}"
#: apps/treasury/apps.py:12 templates/base.html:111
#: apps/treasury/apps.py:12 templates/base.html:126
msgid "Treasury"
msgstr "Trésorerie"
@ -841,7 +841,7 @@ msgid "You can't change the type of the remittance."
msgstr "Vous ne pouvez pas changer le type de la remise."
#: apps/treasury/forms.py:127 apps/treasury/tables.py:47
#: templates/note/transaction_form.html:133
#: templates/note/transaction_form.html:95
#: templates/treasury/remittance_form.html:18
msgid "Amount"
msgstr "Montant"
@ -862,7 +862,7 @@ msgstr "Objet"
msgid "Description"
msgstr "Description"
#: apps/treasury/models.py:46 templates/note/transaction_form.html:91
#: apps/treasury/models.py:46 templates/note/transaction_form.html:120
msgid "Name"
msgstr "Nom"
@ -1057,19 +1057,19 @@ msgstr "Toutes les activités"
msgid "The ENS Paris-Saclay BDE note."
msgstr "La note du BDE de l'ENS Paris-Saclay."
#: templates/base.html:89
#: templates/base.html:104
msgid "Users"
msgstr "Utilisateurs"
#: templates/base.html:94
#: templates/base.html:109
msgid "Clubs"
msgstr "Clubs"
#: templates/base.html:100
#: templates/base.html:115
msgid "Registrations"
msgstr "Inscriptions"
#: templates/base.html:150
#: templates/base.html:165
msgid ""
"Your e-mail address is not validated. Please check your mail inbox and click "
"on the validation link."
@ -1234,36 +1234,43 @@ msgstr "Voir mes adhésions"
msgid "Save Changes"
msgstr "Sauvegarder les changements"
#: templates/member/user_list.html:14
#: templates/member/user_list.html:15
#: templates/registration/future_user_list.html:17
msgid "There is no pending user with this pattern."
msgstr "Il n'y a pas d'inscription en attente avec cette entrée."
#: templates/note/conso_form.html:28 templates/note/transaction_form.html:55
msgid "Select emitters"
msgstr "Sélection des émetteurs"
#: templates/note/conso_form.html:28
#, fuzzy
#| msgid "Consume!"
msgid "Consum"
msgstr "Consommer !"
#: templates/note/conso_form.html:45
#: templates/note/conso_form.html:39 templates/note/transaction_form.html:61
#: templates/note/transaction_form.html:76
msgid "Name or alias..."
msgstr ""
#: templates/note/conso_form.html:48
msgid "Select consumptions"
msgstr "Sélection des consommations"
#: templates/note/conso_form.html:51
#: templates/note/conso_form.html:57
msgid "Consume!"
msgstr "Consommer !"
#: templates/note/conso_form.html:64
#: templates/note/conso_form.html:71
msgid "Most used buttons"
msgstr "Boutons les plus utilisés"
#: templates/note/conso_form.html:126
#: templates/note/conso_form.html:134
msgid "Single consumptions"
msgstr "Consommations simples"
#: templates/note/conso_form.html:130
#: templates/note/conso_form.html:139
msgid "Double consumptions"
msgstr "Consommations doubles"
#: templates/note/conso_form.html:141 templates/note/transaction_form.html:152
#: templates/note/conso_form.html:150 templates/note/transaction_form.html:151
msgid "Recent transactions history"
msgstr "Historique des transactions récentes"
@ -1271,36 +1278,44 @@ msgstr "Historique des transactions récentes"
msgid "Gift"
msgstr "Don"
#: templates/note/transaction_form.html:73
msgid "External payment"
msgstr "Paiement externe"
#: templates/note/transaction_form.html:55
msgid "Select emitters"
msgstr "Sélection des émetteurs"
#: templates/note/transaction_form.html:81
msgid "Transfer type"
msgstr "Type de transfert"
#: templates/note/transaction_form.html:116
#: templates/note/transaction_form.html:169
#: templates/note/transaction_form.html:176
#: templates/note/transaction_form.html:70
msgid "Select receivers"
msgstr "Sélection des destinataires"
#: templates/note/transaction_form.html:138
#: templates/note/transaction_form.html:87
#, fuzzy
#| msgid "action"
msgid "Action"
msgstr "Action"
#: templates/note/transaction_form.html:102
msgid "Reason"
msgstr "Raison"
#: templates/note/transaction_form.html:183
msgid "Credit note"
msgstr "Note à recharger"
#: templates/note/transaction_form.html:110
msgid "Transfer type"
msgstr "Type de transfert"
#: templates/note/transaction_form.html:190
msgid "Debit note"
msgstr "Note à débiter"
#: templates/note/transactiontemplate_form.html:6
#: templates/note/transactiontemplate_form.html:10
msgid "Buttons list"
msgstr "Liste des boutons"
#: templates/note/transactiontemplate_form.html:21
msgid "Price history"
msgstr "Historique des prix"
#: templates/note/transactiontemplate_form.html:24
msgid "Obsolete since"
msgstr "Obsolète depuis"
#: templates/note/transactiontemplate_form.html:24
msgid "Current price"
msgstr "Prix actuel"
#: templates/note/transactiontemplate_list.html:9
msgid "search button"
msgstr "Chercher un bouton"
@ -1334,15 +1349,16 @@ msgstr "Vous pouvez désormais <a href=\"%(login_url)s\">vous connecter</a>."
msgid ""
"You must pay now your membership in the Kfet to complete your registration."
msgstr ""
"Vous devez désormais payer votre adhésion à la Kfet pour compléter votre inscription."
"Vous devez désormais payer votre adhésion à la Kfet pour compléter votre "
"inscription."
#: templates/registration/email_validation_complete.html:13
msgid ""
"The link was invalid. The token may have expired. Please send us an email to "
"activate your account."
msgstr ""
"Le lien est invalide. Le jeton a sans doute expiré. Merci de nous contacter pour "
"activer votre compte."
"Le lien est invalide. Le jeton a sans doute expiré. Merci de nous contacter "
"pour activer votre compte."
#: templates/registration/future_profile_detail.html:56
msgid "Delete registration"
@ -1414,8 +1430,8 @@ msgid ""
"After that, you'll have to wait that someone validates your account before "
"you can log in. You will need to pay your membership in the Kfet."
msgstr ""
"Après cela, vous devrez attendre que quelqu'un valide votre compte avant "
"de pouvoir vous connecter. Vous devrez payer votre adhésion à la Kfet."
"Après cela, vous devrez attendre que quelqu'un valide votre compte avant de "
"pouvoir vous connecter. Vous devrez payer votre adhésion à la Kfet."
#: templates/registration/mails/email_validation_email.html:13
msgid "Thanks"
@ -1552,5 +1568,14 @@ msgstr "Il n'y a pas de transaction associée à une remise ouverte."
msgid "Closed remittances"
msgstr "Remises fermées"
#~ msgid "External payment"
#~ msgstr "Paiement externe"
#~ msgid "Credit note"
#~ msgstr "Note à recharger"
#~ msgid "Debit note"
#~ msgstr "Note à débiter"
#~ msgid "This membership is already renewed"
#~ msgstr "Cette adhésion est déjà renouvelée"

View File

@ -1,12 +1,28 @@
{% extends "base.html" %}
{% load static %}
{% load i18n %}
{% load crispy_forms_tags %}
{% load pretty_money %}
{% block content %}
<p><a class="btn btn-default" href="{% url 'note:template_list' %}">{% trans "Buttons list" %}</a></p>
<form method="post">
{% csrf_token %}
{{form|crispy}}
<button class="btn btn-primary" type="submit">Submit</button>
</form>
<p>
<a class="btn btn-default" href="{% url 'note:template_list' %}">{% trans "Buttons list" %}</a>
</p>
<form method="post">
{% csrf_token %}
{{form|crispy}}
<button class="btn btn-primary" type="submit">Submit</button>
</form>
{% if price_history %}
<hr>
<h4>{% trans "Price history" %}</h4>
<ul>
{% for price in price_history %}
<li>{{ price.price|pretty_money }} {% if price.time %}({% trans "Obsolete since" %} {{ price.time }}){% else %}({% trans "Current price" %}){% endif %}</li>
{% endfor %}
</ul>
{% endif %}
{% endblock %}