diff --git a/apps/note/forms.py b/apps/note/forms.py index 50f226f2..bc479e20 100644 --- a/apps/note/forms.py +++ b/apps/note/forms.py @@ -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(), } diff --git a/apps/note/views.py b/apps/note/views.py index 88d47847..85f31d7e 100644 --- a/apps/note/views.py +++ b/apps/note/views.py @@ -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): """ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index f616ffd6..3daca779 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -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 \n" "Language-Team: LANGUAGE \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 "" diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 27636a65..51075884 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -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 \n" "Language-Team: LANGUAGE \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 vous connecter." 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" diff --git a/templates/note/transactiontemplate_form.html b/templates/note/transactiontemplate_form.html index 1f9a574a..26cd97b5 100644 --- a/templates/note/transactiontemplate_form.html +++ b/templates/note/transactiontemplate_form.html @@ -1,12 +1,28 @@ {% extends "base.html" %} + {% load static %} {% load i18n %} {% load crispy_forms_tags %} +{% load pretty_money %} + {% block content %} -

{% trans "Buttons list" %}

-
-{% csrf_token %} -{{form|crispy}} - -
+

+ {% trans "Buttons list" %} +

+
+ {% csrf_token %} + {{form|crispy}} + +
+ + {% if price_history %} +
+ +

{% trans "Price history" %}

+
    + {% for price in price_history %} +
  • {{ price.price|pretty_money }} {% if price.time %}({% trans "Obsolete since" %} {{ price.time }}){% else %}({% trans "Current price" %}){% endif %}
  • + {% endfor %} +
+ {% endif %} {% endblock %}