mirror of
https://gitlab.crans.org/bde/nk20
synced 2024-12-23 07:52:23 +00:00
Added a search tab for the conso page
This commit is contained in:
parent
ff6e207512
commit
0cc130092f
@ -103,6 +103,11 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link font-weight-bold" data-toggle="tab" href="#search">
|
||||
{% trans "Search" %}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -123,6 +128,20 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="tab-pane" id="search">
|
||||
<input class="form-control mx-auto d-block mb-3"
|
||||
placeholder="{% trans "Search button..." %}" type="text" id="search-input"/>
|
||||
<div class="d-inline-flex flex-wrap justify-content-center" id="search-results">
|
||||
{% for button in search_results %}
|
||||
{% if button.display %}
|
||||
<button class="btn btn-outline-dark rounded-0 flex-fill"
|
||||
id="search_button{{ button.id }}" name="button" value="{{ button.name }}">
|
||||
{{ button.name }} ({{ button.amount | pretty_money }})
|
||||
</button>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -182,5 +201,37 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
{% for button in search_results %}
|
||||
{% if button.display %}
|
||||
$("#search_button{{ button.id }}").click(function() {
|
||||
addConso({{ button.destination_id }}, {{ button.amount }},
|
||||
{{ polymorphic_ctype }}, {{ button.category_id }}, "{{ button.category.name|escapejs }}",
|
||||
{{ button.id }}, "{{ button.name|escapejs }}");
|
||||
});
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
searchbar = document.getElementById("search-input")
|
||||
|
||||
const parser = new DOMParser();
|
||||
old_pattern = null;
|
||||
function updateSearch(force = false) {
|
||||
let pattern = searchbar.value
|
||||
if ((pattern === old_pattern || pattern === "") && !force)
|
||||
return;
|
||||
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", location.pathname + "?search=" +
|
||||
encodeURI(pattern) + "#search", true)
|
||||
xhr.onload = () => {
|
||||
document.getElementById("search-results").innerHTML =
|
||||
parser.parseFromString(xhr.responseText, "text/html").getElementById("search-results").innerHTML
|
||||
};
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
searchbar.addEventListener("input", function (e) {
|
||||
debounce(updateSearch)()
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
@ -10,12 +10,12 @@ from django.core.exceptions import PermissionDenied
|
||||
from django.db.models import Q, F
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.generic import CreateView, UpdateView, DetailView
|
||||
from django_tables2 import SingleTableView
|
||||
from django.urls import reverse_lazy
|
||||
from django_tables2 import SingleTableView
|
||||
from activity.models import Entry
|
||||
from note_kfet.inputs import AmountInput
|
||||
from permission.backends import PermissionBackend
|
||||
from permission.views import ProtectQuerysetMixin
|
||||
from note_kfet.inputs import AmountInput
|
||||
|
||||
from .forms import TransactionTemplateForm, SearchTransactionForm
|
||||
from .models import TemplateCategory, Transaction, TransactionTemplate, RecurrentTransaction, NoteSpecial, Note
|
||||
@ -190,6 +190,14 @@ class ConsoView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView):
|
||||
).order_by('name').all()
|
||||
context['polymorphic_ctype'] = ContentType.objects.get_for_model(RecurrentTransaction).pk
|
||||
|
||||
if "search" in self.request.GET and self.request.GET["search"]:
|
||||
pattern = self.request.GET["search"]
|
||||
context['search_results'] = TransactionTemplate.objects.filter(
|
||||
name__iregex=pattern
|
||||
).filter(
|
||||
PermissionBackend.filter_queryset(self.request, TransactionTemplate, "view")
|
||||
).filter(display=True).order_by('name').all()
|
||||
|
||||
return context
|
||||
|
||||
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-09-18 17:27+0200\n"
|
||||
"POT-Creation-Date: 2023-10-25 19:12+0200\n"
|
||||
"PO-Revision-Date: 2020-11-16 20:02+0000\n"
|
||||
"Last-Translator: bleizi <bleizi@crans.org>\n"
|
||||
"Language-Team: German <http://translate.ynerant.fr/projects/nk20/nk20/de/>\n"
|
||||
@ -1286,16 +1286,16 @@ msgstr "Rollen in diesen Club bearbeiten"
|
||||
msgid "Members of the club"
|
||||
msgstr "Mitlglieder dieses Club"
|
||||
|
||||
#: apps/note/admin.py:129 apps/note/models/transactions.py:109
|
||||
#: apps/note/admin.py:139 apps/note/models/transactions.py:109
|
||||
msgid "source"
|
||||
msgstr "Sender"
|
||||
|
||||
#: apps/note/admin.py:137 apps/note/admin.py:205
|
||||
#: apps/note/admin.py:147 apps/note/admin.py:215
|
||||
#: apps/note/models/transactions.py:56 apps/note/models/transactions.py:122
|
||||
msgid "destination"
|
||||
msgstr "Empfänger"
|
||||
|
||||
#: apps/note/admin.py:210 apps/note/models/transactions.py:60
|
||||
#: apps/note/admin.py:220 apps/note/models/transactions.py:60
|
||||
#: apps/note/models/transactions.py:140
|
||||
msgid "amount"
|
||||
msgstr "Anzahl"
|
||||
@ -1643,7 +1643,7 @@ msgstr ""
|
||||
msgid "Add back"
|
||||
msgstr "Neue Bus"
|
||||
|
||||
#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:132
|
||||
#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:151
|
||||
#: apps/wei/tables.py:49 apps/wei/tables.py:50
|
||||
#: apps/wei/templates/wei/base.html:89
|
||||
#: apps/wei/templates/wei/bus_detail.html:20
|
||||
@ -1684,15 +1684,27 @@ msgstr "Konsumieren!"
|
||||
msgid "Highlighted buttons"
|
||||
msgstr "Hervorgehobene Tasten"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:138
|
||||
#: apps/note/templates/note/conso_form.html:108
|
||||
#, fuzzy
|
||||
#| msgid "Search WEI"
|
||||
msgid "Search"
|
||||
msgstr "WEI finden"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:133
|
||||
#, fuzzy
|
||||
#| msgid "Search button"
|
||||
msgid "Search button..."
|
||||
msgstr "Tatsen finden"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:157
|
||||
msgid "Single consumptions"
|
||||
msgstr "Solo Modus"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:143
|
||||
#: apps/note/templates/note/conso_form.html:162
|
||||
msgid "Double consumptions"
|
||||
msgstr "Doppelte Modus"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:154
|
||||
#: apps/note/templates/note/conso_form.html:173
|
||||
#: apps/note/templates/note/transaction_form.html:163
|
||||
msgid "Recent transactions history"
|
||||
msgstr "Verlauf der letzten Transaktionen"
|
||||
@ -1826,7 +1838,7 @@ msgstr "Verbräuche"
|
||||
msgid "You can't see any button."
|
||||
msgstr "Sie können keine Taste sehen."
|
||||
|
||||
#: apps/note/views.py:200
|
||||
#: apps/note/views.py:208
|
||||
msgid "Search transactions"
|
||||
msgstr "Transaktion finden"
|
||||
|
||||
@ -2402,12 +2414,12 @@ msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:10
|
||||
#: apps/treasury/views.py:180
|
||||
#: apps/treasury/views.py:173
|
||||
msgid "Delete invoice"
|
||||
msgstr "Rechnung löschen"
|
||||
|
||||
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:15
|
||||
#: apps/treasury/views.py:184
|
||||
#: apps/treasury/views.py:177
|
||||
msgid "This invoice is locked and can't be deleted."
|
||||
msgstr "Eine Rechnung kann nicht gelöscht werden, wenn sie gesperrt ist."
|
||||
|
||||
@ -2593,36 +2605,36 @@ msgstr "Neue Rechnung"
|
||||
msgid "Invoices list"
|
||||
msgstr "Rechnunglist"
|
||||
|
||||
#: apps/treasury/views.py:112 apps/treasury/views.py:286
|
||||
#: apps/treasury/views.py:412
|
||||
#: apps/treasury/views.py:105 apps/treasury/views.py:275
|
||||
#: apps/treasury/views.py:401
|
||||
msgid "You are not able to see the treasury interface."
|
||||
msgstr "Sie können die Quaestor-App nicht sehen."
|
||||
|
||||
#: apps/treasury/views.py:122
|
||||
#: apps/treasury/views.py:115
|
||||
msgid "Update an invoice"
|
||||
msgstr "Rechnung bearbeiten"
|
||||
|
||||
#: apps/treasury/views.py:247
|
||||
#: apps/treasury/views.py:240
|
||||
msgid "Create a new remittance"
|
||||
msgstr "Neue Überweisung"
|
||||
|
||||
#: apps/treasury/views.py:274
|
||||
#: apps/treasury/views.py:267
|
||||
msgid "Remittances list"
|
||||
msgstr "Überweisungliste"
|
||||
|
||||
#: apps/treasury/views.py:337
|
||||
#: apps/treasury/views.py:326
|
||||
msgid "Update a remittance"
|
||||
msgstr "Überweisung bearbeiten"
|
||||
|
||||
#: apps/treasury/views.py:360
|
||||
#: apps/treasury/views.py:349
|
||||
msgid "Attach a transaction to a remittance"
|
||||
msgstr "Fügen Sie einer Überweisung eine Transaktion hinzu"
|
||||
|
||||
#: apps/treasury/views.py:404
|
||||
#: apps/treasury/views.py:393
|
||||
msgid "List of credits from the Société générale"
|
||||
msgstr "Kreditliste von Société générale"
|
||||
|
||||
#: apps/treasury/views.py:449
|
||||
#: apps/treasury/views.py:438
|
||||
msgid "Manage credits from the Société générale"
|
||||
msgstr "Krediten von der Société générale handeln"
|
||||
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-09-18 17:27+0200\n"
|
||||
"POT-Creation-Date: 2023-10-25 19:12+0200\n"
|
||||
"PO-Revision-Date: 2022-04-11 23:12+0200\n"
|
||||
"Last-Translator: bleizi <bleizi@crans.org>\n"
|
||||
"Language-Team: \n"
|
||||
@ -1272,16 +1272,16 @@ msgstr "Gestionar los papeles de un usuario en el club"
|
||||
msgid "Members of the club"
|
||||
msgstr "Miembros del club"
|
||||
|
||||
#: apps/note/admin.py:129 apps/note/models/transactions.py:109
|
||||
#: apps/note/admin.py:139 apps/note/models/transactions.py:109
|
||||
msgid "source"
|
||||
msgstr "fuente"
|
||||
|
||||
#: apps/note/admin.py:137 apps/note/admin.py:205
|
||||
#: apps/note/admin.py:147 apps/note/admin.py:215
|
||||
#: apps/note/models/transactions.py:56 apps/note/models/transactions.py:122
|
||||
msgid "destination"
|
||||
msgstr "destino"
|
||||
|
||||
#: apps/note/admin.py:210 apps/note/models/transactions.py:60
|
||||
#: apps/note/admin.py:220 apps/note/models/transactions.py:60
|
||||
#: apps/note/models/transactions.py:140
|
||||
msgid "amount"
|
||||
msgstr "monto"
|
||||
@ -1627,7 +1627,7 @@ msgstr "Añadir como amig@"
|
||||
msgid "Add back"
|
||||
msgstr "Añadir en retorno"
|
||||
|
||||
#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:132
|
||||
#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:151
|
||||
#: apps/wei/tables.py:49 apps/wei/tables.py:50
|
||||
#: apps/wei/templates/wei/base.html:89
|
||||
#: apps/wei/templates/wei/bus_detail.html:20
|
||||
@ -1668,15 +1668,27 @@ msgstr "¡ Consumir !"
|
||||
msgid "Highlighted buttons"
|
||||
msgstr "Botones resaltados"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:138
|
||||
#: apps/note/templates/note/conso_form.html:108
|
||||
#, fuzzy
|
||||
#| msgid "Search WEI"
|
||||
msgid "Search"
|
||||
msgstr "Buscar un WEI"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:133
|
||||
#, fuzzy
|
||||
#| msgid "Search button"
|
||||
msgid "Search button..."
|
||||
msgstr "Buscar un botón"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:157
|
||||
msgid "Single consumptions"
|
||||
msgstr "Consumiciones simples"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:143
|
||||
#: apps/note/templates/note/conso_form.html:162
|
||||
msgid "Double consumptions"
|
||||
msgstr "Consumiciones dobles"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:154
|
||||
#: apps/note/templates/note/conso_form.html:173
|
||||
#: apps/note/templates/note/transaction_form.html:163
|
||||
msgid "Recent transactions history"
|
||||
msgstr "Historial de las transacciones recientes"
|
||||
@ -1806,7 +1818,7 @@ msgstr "Consumiciones"
|
||||
msgid "You can't see any button."
|
||||
msgstr "Usted no puede ver ningún botón."
|
||||
|
||||
#: apps/note/views.py:200
|
||||
#: apps/note/views.py:208
|
||||
msgid "Search transactions"
|
||||
msgstr "Buscar transacciones"
|
||||
|
||||
@ -2378,12 +2390,12 @@ msgid "Yes"
|
||||
msgstr "Sí"
|
||||
|
||||
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:10
|
||||
#: apps/treasury/views.py:180
|
||||
#: apps/treasury/views.py:173
|
||||
msgid "Delete invoice"
|
||||
msgstr "Suprimir la factura"
|
||||
|
||||
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:15
|
||||
#: apps/treasury/views.py:184
|
||||
#: apps/treasury/views.py:177
|
||||
msgid "This invoice is locked and can't be deleted."
|
||||
msgstr "Esta factura esta bloqueada y no puede ser suprimida."
|
||||
|
||||
@ -2559,36 +2571,36 @@ msgstr "Crear una nueva factura"
|
||||
msgid "Invoices list"
|
||||
msgstr "Lista de las facturas"
|
||||
|
||||
#: apps/treasury/views.py:112 apps/treasury/views.py:286
|
||||
#: apps/treasury/views.py:412
|
||||
#: apps/treasury/views.py:105 apps/treasury/views.py:275
|
||||
#: apps/treasury/views.py:401
|
||||
msgid "You are not able to see the treasury interface."
|
||||
msgstr "Usted no tiene derecho a ver la interfaz de tesorería."
|
||||
|
||||
#: apps/treasury/views.py:122
|
||||
#: apps/treasury/views.py:115
|
||||
msgid "Update an invoice"
|
||||
msgstr "Modificar una factura"
|
||||
|
||||
#: apps/treasury/views.py:247
|
||||
#: apps/treasury/views.py:240
|
||||
msgid "Create a new remittance"
|
||||
msgstr "Crear un nuevo descuento"
|
||||
|
||||
#: apps/treasury/views.py:274
|
||||
#: apps/treasury/views.py:267
|
||||
msgid "Remittances list"
|
||||
msgstr "Lista de los descuentos"
|
||||
|
||||
#: apps/treasury/views.py:337
|
||||
#: apps/treasury/views.py:326
|
||||
msgid "Update a remittance"
|
||||
msgstr "Modificar un descuento"
|
||||
|
||||
#: apps/treasury/views.py:360
|
||||
#: apps/treasury/views.py:349
|
||||
msgid "Attach a transaction to a remittance"
|
||||
msgstr "Unir una transacción con un descuento"
|
||||
|
||||
#: apps/treasury/views.py:404
|
||||
#: apps/treasury/views.py:393
|
||||
msgid "List of credits from the Société générale"
|
||||
msgstr "Lista de los créditos de la Société Générale"
|
||||
|
||||
#: apps/treasury/views.py:449
|
||||
#: apps/treasury/views.py:438
|
||||
msgid "Manage credits from the Société générale"
|
||||
msgstr "Gestionar los créditos de la Société Générale"
|
||||
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-09-18 17:27+0200\n"
|
||||
"POT-Creation-Date: 2023-10-25 19:12+0200\n"
|
||||
"PO-Revision-Date: 2022-04-11 22:05+0200\n"
|
||||
"Last-Translator: bleizi <bleizi@crans.org>\n"
|
||||
"Language-Team: French <http://translate.ynerant.fr/projects/nk20/nk20/fr/>\n"
|
||||
@ -1274,16 +1274,16 @@ msgstr "Gérer les rôles d'un utilisateur dans le club"
|
||||
msgid "Members of the club"
|
||||
msgstr "Membres du club"
|
||||
|
||||
#: apps/note/admin.py:129 apps/note/models/transactions.py:109
|
||||
#: apps/note/admin.py:139 apps/note/models/transactions.py:109
|
||||
msgid "source"
|
||||
msgstr "source"
|
||||
|
||||
#: apps/note/admin.py:137 apps/note/admin.py:205
|
||||
#: apps/note/admin.py:147 apps/note/admin.py:215
|
||||
#: apps/note/models/transactions.py:56 apps/note/models/transactions.py:122
|
||||
msgid "destination"
|
||||
msgstr "destination"
|
||||
|
||||
#: apps/note/admin.py:210 apps/note/models/transactions.py:60
|
||||
#: apps/note/admin.py:220 apps/note/models/transactions.py:60
|
||||
#: apps/note/models/transactions.py:140
|
||||
msgid "amount"
|
||||
msgstr "montant"
|
||||
@ -1630,7 +1630,7 @@ msgstr "Ajouter en ami"
|
||||
msgid "Add back"
|
||||
msgstr "Ajouter"
|
||||
|
||||
#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:132
|
||||
#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:151
|
||||
#: apps/wei/tables.py:49 apps/wei/tables.py:50
|
||||
#: apps/wei/templates/wei/base.html:89
|
||||
#: apps/wei/templates/wei/bus_detail.html:20
|
||||
@ -1671,15 +1671,23 @@ msgstr "Consommer !"
|
||||
msgid "Highlighted buttons"
|
||||
msgstr "Boutons mis en avant"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:138
|
||||
#: apps/note/templates/note/conso_form.html:108
|
||||
msgid "Search"
|
||||
msgstr "Recherche"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:133
|
||||
msgid "Search button..."
|
||||
msgstr "Chercher un bouton..."
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:157
|
||||
msgid "Single consumptions"
|
||||
msgstr "Consommations simples"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:143
|
||||
#: apps/note/templates/note/conso_form.html:162
|
||||
msgid "Double consumptions"
|
||||
msgstr "Consommations doubles"
|
||||
|
||||
#: apps/note/templates/note/conso_form.html:154
|
||||
#: apps/note/templates/note/conso_form.html:173
|
||||
#: apps/note/templates/note/transaction_form.html:163
|
||||
msgid "Recent transactions history"
|
||||
msgstr "Historique des transactions récentes"
|
||||
@ -1809,7 +1817,7 @@ msgstr "Consommations"
|
||||
msgid "You can't see any button."
|
||||
msgstr "Vous ne pouvez pas voir le moindre bouton."
|
||||
|
||||
#: apps/note/views.py:200
|
||||
#: apps/note/views.py:208
|
||||
msgid "Search transactions"
|
||||
msgstr "Rechercher des transactions"
|
||||
|
||||
@ -2382,12 +2390,12 @@ msgid "Yes"
|
||||
msgstr "Oui"
|
||||
|
||||
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:10
|
||||
#: apps/treasury/views.py:180
|
||||
#: apps/treasury/views.py:173
|
||||
msgid "Delete invoice"
|
||||
msgstr "Supprimer la facture"
|
||||
|
||||
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:15
|
||||
#: apps/treasury/views.py:184
|
||||
#: apps/treasury/views.py:177
|
||||
msgid "This invoice is locked and can't be deleted."
|
||||
msgstr "Cette facture est verrouillée et ne peut pas être supprimée."
|
||||
|
||||
@ -2567,36 +2575,36 @@ msgstr "Créer une nouvelle facture"
|
||||
msgid "Invoices list"
|
||||
msgstr "Liste des factures"
|
||||
|
||||
#: apps/treasury/views.py:112 apps/treasury/views.py:286
|
||||
#: apps/treasury/views.py:412
|
||||
#: apps/treasury/views.py:105 apps/treasury/views.py:275
|
||||
#: apps/treasury/views.py:401
|
||||
msgid "You are not able to see the treasury interface."
|
||||
msgstr "Vous n'êtes pas autorisé à voir l'interface de trésorerie."
|
||||
|
||||
#: apps/treasury/views.py:122
|
||||
#: apps/treasury/views.py:115
|
||||
msgid "Update an invoice"
|
||||
msgstr "Modifier la facture"
|
||||
|
||||
#: apps/treasury/views.py:247
|
||||
#: apps/treasury/views.py:240
|
||||
msgid "Create a new remittance"
|
||||
msgstr "Créer une nouvelle remise"
|
||||
|
||||
#: apps/treasury/views.py:274
|
||||
#: apps/treasury/views.py:267
|
||||
msgid "Remittances list"
|
||||
msgstr "Liste des remises"
|
||||
|
||||
#: apps/treasury/views.py:337
|
||||
#: apps/treasury/views.py:326
|
||||
msgid "Update a remittance"
|
||||
msgstr "Modifier la remise"
|
||||
|
||||
#: apps/treasury/views.py:360
|
||||
#: apps/treasury/views.py:349
|
||||
msgid "Attach a transaction to a remittance"
|
||||
msgstr "Joindre une transaction à une remise"
|
||||
|
||||
#: apps/treasury/views.py:404
|
||||
#: apps/treasury/views.py:393
|
||||
msgid "List of credits from the Société générale"
|
||||
msgstr "Liste des crédits de la Société générale"
|
||||
|
||||
#: apps/treasury/views.py:449
|
||||
#: apps/treasury/views.py:438
|
||||
msgid "Manage credits from the Société générale"
|
||||
msgstr "Gérer les crédits de la Société générale"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user