mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-04 17:06:27 +00:00
Merge branch 'master' into graph_topo
This commit is contained in:
commit
c62a1ac30e
8 changed files with 329 additions and 321 deletions
Binary file not shown.
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-03-31 14:05+0000\n"
|
||||
"POT-Creation-Date: 2018-05-10 15:21-0500\n"
|
||||
"PO-Revision-Date: 2018-03-31 16:09+0002\n"
|
||||
"Last-Translator: Maël Kervella <dev@maelkervella.eu>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -30,114 +30,69 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: acl.py:41
|
||||
#: acl.py:45
|
||||
msgid "You don't have the rights to see this application."
|
||||
msgstr "Vous n'avez pas les droits de voir cette application."
|
||||
|
||||
#: forms.py:63 cotisations/forms.py:298 cotisations/models.py:86
|
||||
#: forms.py:63 forms.py:321
|
||||
msgid "Cheque number"
|
||||
msgstr "Numéro de chèque"
|
||||
|
||||
#: forms.py:64 cotisations/forms.py:299
|
||||
#: forms.py:64 forms.py:322
|
||||
msgid "Not specified"
|
||||
msgstr "Non renseigné"
|
||||
|
||||
#: forms.py:66 cotisations/forms.py:301
|
||||
#: forms.py:66 forms.py:324
|
||||
msgid "Select a payment method"
|
||||
msgstr "Sélectionnez un moyen de paiement"
|
||||
|
||||
#: forms.py:83, cotisations/forms.py:325
|
||||
#: forms.py:83 forms.py:347
|
||||
msgid "A payment method must be specified."
|
||||
msgstr "Un moyen de paiement doit être renseigné."
|
||||
|
||||
#: forms.py:87, cotisations/forms.py:330
|
||||
#: forms.py:87 forms.py:352
|
||||
msgid "A cheque number and a bank must be specified."
|
||||
msgstr "Un numéro de chèqe et une banque doivent être renseignés."
|
||||
|
||||
#: forms.py:114 cotisations/forms.py:129 cotisations/forms.py:144
|
||||
#: models.py:243
|
||||
#: templates/cotisations/aff_article.html:31
|
||||
#: templates/cotisations/new_facture.html:50
|
||||
#: templates/cotisations/new_facture_solde.html:44
|
||||
msgid "Article"
|
||||
msgstr "Article"
|
||||
|
||||
#: forms.py:118 cotisations/forms.py:133 cotisations/forms.py:147
|
||||
#: templates/cotisations/edit_facture.html:46
|
||||
msgid "Quantity"
|
||||
msgstr "Quantité"
|
||||
|
||||
#: forms.py:150
|
||||
msgid "Paid"
|
||||
msgstr "Payé"
|
||||
|
||||
#: forms.py:152
|
||||
msgid "Recipient"
|
||||
msgstr "Destinataire"
|
||||
|
||||
#: forms.py:154
|
||||
msgid "Address"
|
||||
msgstr "Adresse"
|
||||
|
||||
#: forms.py:159
|
||||
msgid "Invoice number"
|
||||
msgstr "Numéro de facture"
|
||||
|
||||
#: forms.py:174 cotisations/models.py:403
|
||||
#: forms.py:184
|
||||
msgid "Member"
|
||||
msgstr "Adhérent"
|
||||
|
||||
#: forms.py:176
|
||||
#: forms.py:186
|
||||
msgid "Select the proprietary member"
|
||||
msgstr "Sélectionnez l'adhérent propriétaire"
|
||||
|
||||
#: forms.py:177
|
||||
#: forms.py:187
|
||||
msgid "Validated invoice"
|
||||
msgstr "Facture validée"
|
||||
|
||||
#: forms.py:190
|
||||
#: forms.py:201
|
||||
msgid "Article name"
|
||||
msgstr "Nom de l'article"
|
||||
|
||||
#: forms.py:199
|
||||
msgid "Existing articles"
|
||||
msgstr "Articles disponibles"
|
||||
|
||||
#: forms.py:225
|
||||
#: forms.py:239
|
||||
msgid "Payment method name"
|
||||
msgstr "Nom du moyen de paiement"
|
||||
|
||||
#: forms.py:226 cotisations/models.py:505
|
||||
#: forms.py:240
|
||||
msgid "Payment type"
|
||||
msgstr "Type de paiement"
|
||||
|
||||
#: forms.py:228
|
||||
#: forms.py:242
|
||||
msgid ""
|
||||
"The payement type is used for specific behaviour. The \"cheque\" "
|
||||
"type means a cheque number and a bank name may be added when "
|
||||
"using this payment method."
|
||||
msgstr ""
|
||||
"Le type de paiement est utilisé pour des comportements spécifiques. Le type "
|
||||
"\"chèque\" permet de spécifier un numéro de chèque et une banque lors de "
|
||||
" l'utilisation de cette méthode."
|
||||
"\"chèque\" permet de spécifier un numéro de chèque et une banque lors de "
|
||||
"l'utilisation de cette méthode."
|
||||
|
||||
#: forms.py:241
|
||||
msgid "Existing payment method"
|
||||
msgstr "Moyen de paiements disponibles"
|
||||
|
||||
#: forms.py:266
|
||||
#: forms.py:282
|
||||
msgid "Bank name"
|
||||
msgstr "Nom de la banque"
|
||||
|
||||
#: forms.py:276
|
||||
msgid "Existing banks"
|
||||
msgstr "Banques disponibles"
|
||||
|
||||
#: forms.py:337 cotisations/models.py:238
|
||||
msgid "Amount"
|
||||
msgstr "Montant"
|
||||
|
||||
#: forms.py:350
|
||||
#: forms.py:380
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Requested amount is too small. Minimum amount possible : "
|
||||
|
@ -146,7 +101,7 @@ msgstr ""
|
|||
"Montant demandé est trop faible. Montant minimal possible : "
|
||||
"%(min_online_amount)s €"
|
||||
|
||||
#: forms.py:359
|
||||
#: forms.py:390
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Requested amount is too high. Your balance can't exceed "
|
||||
|
@ -155,150 +110,67 @@ msgstr ""
|
|||
"Montant demandé trop grand. Votre solde ne peut excéder "
|
||||
"%(max_online_balance)s €"
|
||||
|
||||
#: models.py:90
|
||||
#: templates/cotisations/aff_cotisations.html:47
|
||||
#: templates/cotisations/control.html:67
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
#: models.py:95
|
||||
#: templates/cotisations/control.html:71
|
||||
msgid "Validated"
|
||||
msgstr "Validé"
|
||||
|
||||
#: models.py:100
|
||||
#: templates/cotisations/control.html:75
|
||||
msgid "Controlled"
|
||||
msgstr "Controllé"
|
||||
|
||||
#: models.py:107
|
||||
msgid "Can change the \"controlled\" state"
|
||||
msgstr "Peut modifier l'état \"controllé\""
|
||||
|
||||
#: models.py:109
|
||||
msgid "Can create a custom PDF invoice"
|
||||
msgstr "Peut crée une facture PDF personnalisée"
|
||||
|
||||
#: models.py:110
|
||||
msgid "Can see an invoice's details"
|
||||
msgstr "Peut voir les détails d'une facture"
|
||||
|
||||
#: models.py:111
|
||||
msgid "Can edit all the previous invoices"
|
||||
msgstr "Peut modifier toutes les factures existantes"
|
||||
|
||||
#: models.py:113 cotisations/models.py:233
|
||||
msgid "Invoice"
|
||||
msgstr "Facture"
|
||||
|
||||
#: models.py:114
|
||||
#: templates/cotisations/index.html:29 templates/cotisations/sidebar.html:40
|
||||
msgid "Invoices"
|
||||
msgstr "Factures"
|
||||
|
||||
#: models.py:152 cotisations/models.py:186
|
||||
#: models.py:165 models.py:213
|
||||
msgid "You don't have the right to edit an invoice."
|
||||
msgstr "Vous n'avez pas le droit de modifier une facture."
|
||||
|
||||
#: models.py:154
|
||||
#: models.py:168
|
||||
msgid "You don't have the right to edit this user's invoices."
|
||||
msgstr "Vous n'avez pas le droit de modifier les facture de cette utilisateur."
|
||||
|
||||
#: models.py:157
|
||||
#: models.py:172
|
||||
msgid ""
|
||||
"You don't have the right to edit an invoice already controlled or "
|
||||
"invalidated."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de modifier une facture précedement controllée "
|
||||
"ou invalidée."
|
||||
"Vous n'avez pas le droit de modifier une facture précedement controllée ou "
|
||||
"invalidée."
|
||||
|
||||
#: models.py:163
|
||||
#: models.py:179
|
||||
msgid "You don't have the right to delete an invoice."
|
||||
msgstr "Vous n'avez pas le droit de supprimer une facture."
|
||||
|
||||
#: models.py:165
|
||||
#: models.py:181
|
||||
msgid "You don't have the right to delete this user's invoices."
|
||||
msgstr "Vous n'avez pas le droit de supprimer les factures de cet utilisateur."
|
||||
|
||||
#: models.py:167
|
||||
#: models.py:184
|
||||
msgid ""
|
||||
"You don't have the right to delete an invoice already controlled or "
|
||||
"invalidated."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de supprimer une facture précedement controllée "
|
||||
"ou invalidée."
|
||||
"Vous n'avez pas le droit de supprimer une facture précedement controllée ou "
|
||||
"invalidée."
|
||||
|
||||
#: models.py:174
|
||||
#: models.py:192
|
||||
msgid "You don't have the right to see someone else's invoices history."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de voir l'historique de la facture de "
|
||||
"quelqu'un d'autre."
|
||||
"Vous n'avez pas le droit de voir l'historique de la facture de quelqu'un "
|
||||
"d'autre."
|
||||
|
||||
#: models.py:176
|
||||
#: models.py:195
|
||||
msgid "The invoice has been invalidated."
|
||||
msgstr "La facture a été invalidée."
|
||||
|
||||
#: models.py:182
|
||||
msgid "You don't have the right to edit the controlled state."
|
||||
#: models.py:205
|
||||
#, fuzzy
|
||||
#| msgid "You don't have the right to edit the controlled state."
|
||||
msgid "You don't have the right to edit the \"controlled\" state."
|
||||
msgstr "Vous n'avez pas le droit de modifier l'état \"controllé\"."
|
||||
|
||||
#: models.py:224 cotisations/models.py:409
|
||||
#: models.py:536
|
||||
msgid "Connexion"
|
||||
msgstr "Connexion"
|
||||
|
||||
#: models.py:225 cotisations/models.py:410
|
||||
msgid "Membership"
|
||||
msgstr "Adhésion"
|
||||
|
||||
#: models.py:226 cotisations/models.py:405
|
||||
#: models.py:411 cotisations/models.py:538
|
||||
msgid "Both of them"
|
||||
msgstr "Les deux"
|
||||
|
||||
#: models.py:250
|
||||
#: templates/cotisations/aff_article.html:32
|
||||
msgid "Price"
|
||||
msgstr "Prix"
|
||||
|
||||
#: models.py:255 cotisations/models.py:428
|
||||
msgid "Duration (in whole month)"
|
||||
msgstr "Durée (en mois entiers)"
|
||||
|
||||
#: models.py:263 cotisations/models.py:442
|
||||
#: models.py:552
|
||||
msgid "Type of cotisation"
|
||||
msgstr "Type de cotisation"
|
||||
|
||||
#: models.py:268
|
||||
msgid "Can see a purchase's details"
|
||||
msgstr "Peut voir les détails d'un achat"
|
||||
|
||||
#: models.py:269
|
||||
msgid "Can edit all the previous purchases"
|
||||
msgstr "Peut voir les achats existants"
|
||||
|
||||
#: models.py:271 cotisations/models.py:546
|
||||
msgid "Purchase"
|
||||
msgstr "Achat"
|
||||
|
||||
#: models.py:272
|
||||
msgid "Purchases"
|
||||
msgstr "Achat"
|
||||
|
||||
#: models.py:328
|
||||
#: models.py:372
|
||||
msgid "A cotisation should always have a duration."
|
||||
msgstr "Une cotisation devrait toujours avoir une durée."
|
||||
|
||||
#: models.py:335
|
||||
#: models.py:379
|
||||
msgid "You don't have the right to edit the purchases."
|
||||
msgstr "Vous n'avez pas le droit de modifier les achats."
|
||||
|
||||
#: models.py:337
|
||||
#: models.py:384
|
||||
msgid "You don't have the right to edit this user's purchases."
|
||||
msgstr "Vous n'avez pas le droit de modifier les achats de cet utilisateur."
|
||||
|
||||
#: models.py:340
|
||||
#: models.py:388
|
||||
msgid ""
|
||||
"You don't have the right to edit a purchase already controlled or "
|
||||
"invalidated."
|
||||
|
@ -306,15 +178,15 @@ msgstr ""
|
|||
"Vous n'avez pas le droit de modifier un achat précédement controllé ou "
|
||||
"invalidé."
|
||||
|
||||
#: models.py:346
|
||||
#: models.py:395
|
||||
msgid "You don't have the right to delete a purchase."
|
||||
msgstr "Vous n'avez pas le droit de supprimer un achat."
|
||||
|
||||
#: models.py:348
|
||||
#: models.py:397
|
||||
msgid "You don't have the right to delete this user's purchases."
|
||||
msgstr "Vous n'avez pas le droit de supprimer les achats de cet utilisateur."
|
||||
|
||||
#: models.py:350
|
||||
#: models.py:400
|
||||
msgid ""
|
||||
"You don't have the right to delete a purchase already controlled or "
|
||||
"invalidated."
|
||||
|
@ -322,113 +194,29 @@ msgstr ""
|
|||
"Vous n'avez pas le droit de supprimer un achat précédement controllé ou "
|
||||
"invalidé."
|
||||
|
||||
#: models.py:357
|
||||
#: models.py:408
|
||||
msgid "You don't have the right to see someone else's purchase history."
|
||||
msgstr "Vous n'avez pas le droit de voir l'historique d'un achat de quelqu'un d'autre."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de voir l'historique d'un achat de quelqu'un "
|
||||
"d'autre."
|
||||
|
||||
#: models.py:404
|
||||
msgid "Club"
|
||||
msgstr "Club"
|
||||
|
||||
#: models.py:416
|
||||
#: templates/cotisations/aff_cotisations.html:40
|
||||
#: templates/cotisations/control.html:60
|
||||
#: templates/cotisations/edit_facture.html:45
|
||||
msgid "Designation"
|
||||
msgstr "Désignation"
|
||||
|
||||
#: models.py:422
|
||||
msgid "Unitary price"
|
||||
msgstr "Prix unitaire"
|
||||
|
||||
#: models.py:434
|
||||
msgid "Type of users concerned"
|
||||
msgstr "Type d'utilisateurs concernés"
|
||||
|
||||
#: models.py:449
|
||||
msgid "Can see an article's details"
|
||||
msgstr "Peut voir les détails d'un article"
|
||||
|
||||
#: models.py:457
|
||||
#: models.py:517
|
||||
msgid "Solde is a reserved article name"
|
||||
msgstr "Solde est un nom d'article réservé"
|
||||
|
||||
#: models.py:461
|
||||
#: models.py:521
|
||||
msgid "Duration must be specified for a cotisation"
|
||||
msgstr "La durée doit être spécifiée pour une cotisation"
|
||||
|
||||
#: models.py:474
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: models.py:479
|
||||
msgid "Can see a bank's details"
|
||||
msgstr "Peut voir les détails d'une banque"
|
||||
|
||||
#: models.py:481
|
||||
#: templates/cotisations/aff_banque.html:31
|
||||
msgid "Bank"
|
||||
msgstr "Banque"
|
||||
|
||||
#: models.py:482
|
||||
#: templates/cotisations/index_banque.html:30
|
||||
#: templates/cotisations/sidebar.html:50
|
||||
msgid "Banks"
|
||||
msgstr "Banques"
|
||||
|
||||
#: models.py:493
|
||||
msgid "Standard"
|
||||
msgstr "Standard"
|
||||
|
||||
#: models.py:494
|
||||
msgid "Cheque"
|
||||
msgstr "Chèque"
|
||||
|
||||
#: models.py:500
|
||||
msgid "Method"
|
||||
msgstr "Moyen"
|
||||
|
||||
#: models.py:510
|
||||
msgid "Can see a payement's details"
|
||||
msgstr "Peut voir les détails d'un paiement"
|
||||
|
||||
#: models.py:512
|
||||
#: templates/cotisations/aff_cotisations.html:43
|
||||
#: templates/cotisations/aff_paiement.html:31
|
||||
#: templates/cotisations/control.html:63
|
||||
msgid "Payment method"
|
||||
msgstr "Moyen de paiement"
|
||||
|
||||
#: models.py:513
|
||||
#: templates/cotisations/sidebar.html:55
|
||||
msgid "Payment methods"
|
||||
msgstr "Moyens de paiement"
|
||||
|
||||
#: models.py:526
|
||||
#: models.py:603
|
||||
msgid "You cannot have multiple payment method of type cheque"
|
||||
msgstr "Vous ne pouvez avoir plusieurs moyens de paiement de type chèque"
|
||||
|
||||
#: models.py:555
|
||||
msgid "Starting date"
|
||||
msgstr "Date de début"
|
||||
|
||||
#: models.py:558
|
||||
msgid "Ending date"
|
||||
msgstr "Date de fin"
|
||||
|
||||
#: models.py:563
|
||||
msgid "Can see a cotisation's details"
|
||||
msgstr "Peut voir les détails d'une cotisation"
|
||||
|
||||
#: models.py:564
|
||||
msgid "Can edit the previous cotisations"
|
||||
msgstr "Peut voir les cotisations existantes"
|
||||
|
||||
#: models.py:569
|
||||
#: models.py:654
|
||||
msgid "You don't have the right to edit a cotisation."
|
||||
msgstr "Vous n'avez pas le droit de modifier une cotisation."
|
||||
|
||||
#: models.py:572
|
||||
#: models.py:658
|
||||
msgid ""
|
||||
"You don't have the right to edit a cotisation already controlled or "
|
||||
"invalidated."
|
||||
|
@ -436,11 +224,11 @@ msgstr ""
|
|||
"Vous n'avez pas le droit de modifier une cotisaiton précédement controllée "
|
||||
"ou invalidée."
|
||||
|
||||
#: models.py:578
|
||||
#: models.py:665
|
||||
msgid "You don't have the right to delete a cotisation."
|
||||
msgstr "Vous n'avez pas le droit de supprimer une cotisation."
|
||||
|
||||
#: models.py:580
|
||||
#: models.py:668
|
||||
msgid ""
|
||||
"You don't have the right to delete a cotisation already controlled or "
|
||||
"invalidated."
|
||||
|
@ -448,21 +236,32 @@ msgstr ""
|
|||
"Vous n'avez pas le droit de supprimer une cotisation précédement controllée "
|
||||
"ou invalidée."
|
||||
|
||||
#: models.py:587
|
||||
#: models.py:676
|
||||
msgid "You don't have the right to see someone else's cotisation history."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de voir l'historique d'une cotisation de "
|
||||
"quelqu'un d'autre."
|
||||
"Vous n'avez pas le droit de voir l'historique d'une cotisation de quelqu'un "
|
||||
"d'autre."
|
||||
|
||||
#: payment.py:26
|
||||
#: payment.py:31
|
||||
#, python-format
|
||||
msgid "The payment of %(amount)s € has been accepted."
|
||||
msgstr "Le paiement de %(amount)s € a été accepté."
|
||||
|
||||
#: payment.py:38
|
||||
#: payment.py:49
|
||||
msgid "The payment has been refused."
|
||||
msgstr "Le paiment a été refusé."
|
||||
|
||||
#: templates/cotisations/aff_article.html:31
|
||||
#: templates/cotisations/facture.html:43
|
||||
#: templates/cotisations/new_facture.html:50
|
||||
#: templates/cotisations/new_facture_solde.html:44
|
||||
msgid "Article"
|
||||
msgstr "Article"
|
||||
|
||||
#: templates/cotisations/aff_article.html:32
|
||||
msgid "Price"
|
||||
msgstr "Prix"
|
||||
|
||||
#: templates/cotisations/aff_article.html:33
|
||||
msgid "Cotisation type"
|
||||
msgstr "Type de cotisation"
|
||||
|
@ -480,7 +279,8 @@ msgstr "Utilisateurs concernés"
|
|||
#: templates/cotisations/aff_cotisations.html:69
|
||||
#: templates/cotisations/aff_cotisations.html:75
|
||||
#: templates/cotisations/aff_paiement.html:40
|
||||
#: templates/cotisations/control.html:104
|
||||
#: templates/cotisations/control.html:104 views.py:396 views.py:443
|
||||
#: views.py:507 views.py:585
|
||||
msgid "Edit"
|
||||
msgstr "Modifier"
|
||||
|
||||
|
@ -491,15 +291,36 @@ msgstr "Modifier"
|
|||
msgid "Historique"
|
||||
msgstr "Historique"
|
||||
|
||||
#: templates/cotisations/aff_banque.html:31
|
||||
msgid "Bank"
|
||||
msgstr "Banque"
|
||||
|
||||
#: templates/cotisations/aff_cotisations.html:37
|
||||
msgid "User"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
#: templates/cotisations/aff_cotisations.html:40
|
||||
#: templates/cotisations/control.html:60
|
||||
#: templates/cotisations/edit_facture.html:45
|
||||
msgid "Designation"
|
||||
msgstr "Désignation"
|
||||
|
||||
#: templates/cotisations/aff_cotisations.html:41
|
||||
#: templates/cotisations/control.html:61
|
||||
msgid "Total price"
|
||||
msgstr "Prix total"
|
||||
|
||||
#: templates/cotisations/aff_cotisations.html:43
|
||||
#: templates/cotisations/aff_paiement.html:31
|
||||
#: templates/cotisations/control.html:63
|
||||
msgid "Payment method"
|
||||
msgstr "Moyen de paiement"
|
||||
|
||||
#: templates/cotisations/aff_cotisations.html:47
|
||||
#: templates/cotisations/control.html:67
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
#: templates/cotisations/aff_cotisations.html:51
|
||||
#: templates/cotisations/control.html:53
|
||||
msgid "Invoice id"
|
||||
|
@ -509,7 +330,8 @@ msgstr "Id facture"
|
|||
msgid "Controlled invoice"
|
||||
msgstr "Facture controllé"
|
||||
|
||||
#: templates/cotisations/aff_cotisations.html:84
|
||||
#: templates/cotisations/aff_cotisations.html:84 views.py:464 views.py:542
|
||||
#: views.py:620
|
||||
msgid "Delete"
|
||||
msgstr "Supprimer"
|
||||
|
||||
|
@ -545,6 +367,14 @@ msgstr "Prénom"
|
|||
msgid "User id"
|
||||
msgstr "Id utilisateur"
|
||||
|
||||
#: templates/cotisations/control.html:71
|
||||
msgid "Validated"
|
||||
msgstr "Validé"
|
||||
|
||||
#: templates/cotisations/control.html:75
|
||||
msgid "Controlled"
|
||||
msgstr "Controllé"
|
||||
|
||||
#: templates/cotisations/delete.html:29
|
||||
msgid "Deletion of cotisations"
|
||||
msgstr "Supprimer des cotisations"
|
||||
|
@ -581,11 +411,38 @@ msgid "Edit the invoice"
|
|||
msgstr "Edition de factures"
|
||||
|
||||
#: templates/cotisations/edit_facture.html:41
|
||||
#: templates/cotisations/facture.html:38
|
||||
#: templates/cotisations/new_facture.html:46
|
||||
#: templates/cotisations/new_facture_solde.html:40
|
||||
msgid "Invoice's articles"
|
||||
msgstr "Articles de la facture"
|
||||
|
||||
#: templates/cotisations/edit_facture.html:46
|
||||
msgid "Quantity"
|
||||
msgstr "Quantité"
|
||||
|
||||
#: templates/cotisations/facture.html:52
|
||||
#: templates/cotisations/new_facture.html:59
|
||||
#: templates/cotisations/new_facture_solde.html:53
|
||||
msgid "Add an article"
|
||||
msgstr "Ajouter un article"
|
||||
|
||||
#: templates/cotisations/facture.html:54
|
||||
#: templates/cotisations/new_facture.html:61
|
||||
#: templates/cotisations/new_facture_solde.html:55
|
||||
msgid ""
|
||||
"\n"
|
||||
" Total price : <span id=\"total_price\">0,00</span> €\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Prix total : <span id=\"total_price\">0,00</span> €\n"
|
||||
" "
|
||||
|
||||
#: templates/cotisations/index.html:29 templates/cotisations/sidebar.html:40
|
||||
msgid "Invoices"
|
||||
msgstr "Factures"
|
||||
|
||||
#: templates/cotisations/index.html:32
|
||||
msgid "Cotisations"
|
||||
msgstr "Cotisations"
|
||||
|
@ -606,6 +463,11 @@ msgstr "Ajouter un type d'article"
|
|||
msgid "Delete article types"
|
||||
msgstr "Supprimer des types d'articles"
|
||||
|
||||
#: templates/cotisations/index_banque.html:30
|
||||
#: templates/cotisations/sidebar.html:50
|
||||
msgid "Banks"
|
||||
msgstr "Banques"
|
||||
|
||||
#: templates/cotisations/index_banque.html:33
|
||||
msgid "Banks list"
|
||||
msgstr "Liste des banques"
|
||||
|
@ -650,23 +512,7 @@ msgstr ""
|
|||
" Solde de l'utilisateur : %(user.solde)s €\n"
|
||||
" "
|
||||
|
||||
#: templates/cotisations/new_facture.html:59
|
||||
#: templates/cotisations/new_facture_solde.html:53
|
||||
msgid "Add an article"
|
||||
msgstr "Ajouter un article"
|
||||
|
||||
#: templates/cotisations/new_facture.html:61
|
||||
#: templates/cotisations/new_facture_solde.html:55
|
||||
msgid ""
|
||||
"\n"
|
||||
" Total price : <span id=\"total_price\">0,00</span> €\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Prix total : <span id=\"total_price\">0,00</span> €\n"
|
||||
" "
|
||||
|
||||
#: templates/cotisations/new_facture.html:65
|
||||
#: templates/cotisations/new_facture.html:65 views.py:257
|
||||
msgid "Create"
|
||||
msgstr "Créer"
|
||||
|
||||
|
@ -715,65 +561,79 @@ msgstr "Contrôler les factures"
|
|||
msgid "Available articles"
|
||||
msgstr "Articles disponibles"
|
||||
|
||||
#: views.py:133
|
||||
#: templates/cotisations/sidebar.html:55
|
||||
msgid "Payment methods"
|
||||
msgstr "Moyens de paiement"
|
||||
|
||||
#: views.py:138
|
||||
msgid "Your balance is too low for this operation."
|
||||
msgstr "Votre solde est trop faible pour cette opération."
|
||||
|
||||
#: views.py:163
|
||||
#: views.py:168
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The cotisation of %(member_name)s has been extended to "
|
||||
"%(end_date)s."
|
||||
msgstr "La cotisation de %(member_name)s a été étendu jusqu'à %(end_date)s."
|
||||
|
||||
#: views.py:172
|
||||
#: views.py:178
|
||||
msgid "The invoice has been created."
|
||||
msgstr "La facture a été créée."
|
||||
|
||||
#: views.py:180 cotisations/views.py:777
|
||||
#: views.py:186 views.py:824
|
||||
msgid "You need to choose at least one article."
|
||||
msgstr "Vous devez choisir au moins un article."
|
||||
|
||||
#: views.py:292
|
||||
#: views.py:338
|
||||
msgid "The invoice has been successfully edited."
|
||||
msgstr "La facture a été crée avec succès."
|
||||
|
||||
#: views.py:314
|
||||
#: views.py:358
|
||||
msgid "The invoice has been successfully deleted."
|
||||
msgstr "La facture a été supprimée avec succès."
|
||||
|
||||
#: views.py:351
|
||||
#: views.py:363
|
||||
msgid "Invoice"
|
||||
msgstr "Facture"
|
||||
|
||||
#: views.py:391
|
||||
msgid "Balance successfully updated."
|
||||
msgstr "Solde mis à jour avec succès."
|
||||
|
||||
#: views.py:376
|
||||
#: views.py:417
|
||||
msgid "The article has been successfully created."
|
||||
msgstr "L'article a été créé avec succès."
|
||||
|
||||
#: views.py:400
|
||||
#: views.py:422 views.py:485 views.py:563
|
||||
#, fuzzy
|
||||
#| msgid "Address"
|
||||
msgid "Add"
|
||||
msgstr "Adresse"
|
||||
|
||||
#: views.py:438
|
||||
msgid "The article has been successfully edited."
|
||||
msgstr "L'article a été modifié avec succès."
|
||||
|
||||
#: views.py:419
|
||||
#: views.py:459
|
||||
msgid "The article(s) have been successfully deleted."
|
||||
msgstr "L'(es) article(s) a(ont) été supprimé(s) avec succès. "
|
||||
|
||||
#: views.py:441
|
||||
#: views.py:480
|
||||
msgid "The payment method has been successfully created."
|
||||
msgstr "Le moyen de paiement a été créé avec succès."
|
||||
|
||||
#: views.py:465
|
||||
#: views.py:502
|
||||
msgid "The payement method has been successfully edited."
|
||||
msgstr "Le moyen de paiement a été modifié avec succès."
|
||||
|
||||
#: views.py:488
|
||||
#: views.py:526
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The payment method %(method_name)s has been successfully "
|
||||
"deleted."
|
||||
msgstr "Le moyen de paiement %(method_name)s a été supprimé avec succès."
|
||||
|
||||
#: views.py:496
|
||||
#: views.py:534
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The payment method %(method_name)s can't be deleted "
|
||||
|
@ -782,21 +642,21 @@ msgstr ""
|
|||
"Le moyen de paiement %(method_name)s ne peut pas être mis à jour car il y a "
|
||||
"des factures l'utilisant."
|
||||
|
||||
#: views.py:519
|
||||
#: views.py:558
|
||||
msgid "The bank has been successfully created."
|
||||
msgstr "La banque a été crée avec succès."
|
||||
|
||||
#: views.py:543
|
||||
#: views.py:580
|
||||
msgid "The bank has been successfully edited"
|
||||
msgstr "La banque a été modifée avec succès."
|
||||
|
||||
#: views.py:566
|
||||
#: views.py:604
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The bank %(bank_name)s has been successfully deleted."
|
||||
msgstr "La banque %(bank_name)s a été supprimée avec succès."
|
||||
|
||||
#: views.py:574
|
||||
#: views.py:612
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The bank %(bank_name)s can't be deleted because there "
|
||||
|
@ -805,21 +665,127 @@ msgstr ""
|
|||
"La banque %(bank_name)s ne peut pas être supprimée car il y a des factures "
|
||||
"qui l'utilisent."
|
||||
|
||||
#: views.py:730
|
||||
#: views.py:656
|
||||
msgid "Your changes have been properly taken into account."
|
||||
msgstr "Vos modifications ont correctement été prises en compte."
|
||||
|
||||
#: views.py:776
|
||||
msgid "The balance is too low for this operation."
|
||||
msgstr "Le solde est trop faible pour cette opération."
|
||||
|
||||
#: views.py:760
|
||||
#: views.py:806
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The cotisation of %(member_name)s has been successfully "
|
||||
"extended to %(end_date)s."
|
||||
msgstr "La cotisation de %(member_name)s a été prolongée jusqu'à %(end_date)s."
|
||||
|
||||
#: views.py:769
|
||||
#: views.py:816
|
||||
msgid "The invoice has been successuflly created."
|
||||
msgstr "La facture a été créée avec succès."
|
||||
|
||||
#: views.py:796
|
||||
#: views.py:846
|
||||
msgid "Online payment is disabled."
|
||||
msgstr "Le paiement en ligne est désactivé."
|
||||
|
||||
#~ msgid "Paid"
|
||||
#~ msgstr "Payé"
|
||||
|
||||
#~ msgid "Recipient"
|
||||
#~ msgstr "Destinataire"
|
||||
|
||||
#~ msgid "Invoice number"
|
||||
#~ msgstr "Numéro de facture"
|
||||
|
||||
#~ msgid "Existing articles"
|
||||
#~ msgstr "Articles disponibles"
|
||||
|
||||
#~ msgid "Existing payment method"
|
||||
#~ msgstr "Moyen de paiements disponibles"
|
||||
|
||||
#~ msgid "Existing banks"
|
||||
#~ msgstr "Banques disponibles"
|
||||
|
||||
#~ msgid "Amount"
|
||||
#~ msgstr "Montant"
|
||||
|
||||
#~ msgid "Can change the \"controlled\" state"
|
||||
#~ msgstr "Peut modifier l'état \"controllé\""
|
||||
|
||||
#~ msgid "Can create a custom PDF invoice"
|
||||
#~ msgstr "Peut crée une facture PDF personnalisée"
|
||||
|
||||
#~ msgid "Can see an invoice's details"
|
||||
#~ msgstr "Peut voir les détails d'une facture"
|
||||
|
||||
#~ msgid "Can edit all the previous invoices"
|
||||
#~ msgstr "Peut modifier toutes les factures existantes"
|
||||
|
||||
#~ msgid "Connexion"
|
||||
#~ msgstr "Connexion"
|
||||
|
||||
#~ msgid "Membership"
|
||||
#~ msgstr "Adhésion"
|
||||
|
||||
#~ msgid "Both of them"
|
||||
#~ msgstr "Les deux"
|
||||
|
||||
#~ msgid "Duration (in whole month)"
|
||||
#~ msgstr "Durée (en mois entiers)"
|
||||
|
||||
#~ msgid "Type of cotisation"
|
||||
#~ msgstr "Type de cotisation"
|
||||
|
||||
#~ msgid "Can see a purchase's details"
|
||||
#~ msgstr "Peut voir les détails d'un achat"
|
||||
|
||||
#~ msgid "Can edit all the previous purchases"
|
||||
#~ msgstr "Peut voir les achats existants"
|
||||
|
||||
#~ msgid "Purchase"
|
||||
#~ msgstr "Achat"
|
||||
|
||||
#~ msgid "Purchases"
|
||||
#~ msgstr "Achat"
|
||||
|
||||
#~ msgid "Club"
|
||||
#~ msgstr "Club"
|
||||
|
||||
#~ msgid "Unitary price"
|
||||
#~ msgstr "Prix unitaire"
|
||||
|
||||
#~ msgid "Type of users concerned"
|
||||
#~ msgstr "Type d'utilisateurs concernés"
|
||||
|
||||
#~ msgid "Can see an article's details"
|
||||
#~ msgstr "Peut voir les détails d'un article"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Nom"
|
||||
|
||||
#~ msgid "Can see a bank's details"
|
||||
#~ msgstr "Peut voir les détails d'une banque"
|
||||
|
||||
#~ msgid "Standard"
|
||||
#~ msgstr "Standard"
|
||||
|
||||
#~ msgid "Cheque"
|
||||
#~ msgstr "Chèque"
|
||||
|
||||
#~ msgid "Method"
|
||||
#~ msgstr "Moyen"
|
||||
|
||||
#~ msgid "Can see a payement's details"
|
||||
#~ msgstr "Peut voir les détails d'un paiement"
|
||||
|
||||
#~ msgid "Starting date"
|
||||
#~ msgstr "Date de début"
|
||||
|
||||
#~ msgid "Ending date"
|
||||
#~ msgstr "Date de fin"
|
||||
|
||||
#~ msgid "Can see a cotisation's details"
|
||||
#~ msgstr "Peut voir les détails d'une cotisation"
|
||||
|
||||
#~ msgid "Can edit the previous cotisations"
|
||||
#~ msgstr "Peut voir les cotisations existantes"
|
||||
|
|
|
@ -651,6 +651,10 @@ def control(request):
|
|||
if control_invoices_form.is_valid():
|
||||
control_invoices_form.save()
|
||||
reversion.set_comment("Controle")
|
||||
messages.success(
|
||||
request,
|
||||
_("Your changes have been properly taken into account.")
|
||||
)
|
||||
return redirect(reverse('cotisations:control'))
|
||||
return render(request, 'cotisations/control.html', {
|
||||
'facture_list': invoice_list,
|
||||
|
|
|
@ -541,8 +541,7 @@ class Extension(RevMixin, AclMixin, models.Model):
|
|||
)
|
||||
soa = models.ForeignKey(
|
||||
'SOA',
|
||||
on_delete=models.CASCADE,
|
||||
default=SOA.new_default_soa
|
||||
on_delete=models.CASCADE
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
|
|
@ -189,7 +189,7 @@ def can_change(*targets):
|
|||
method 'can_change'. See `acl_base_decorator` documentation for further
|
||||
details.
|
||||
"""
|
||||
return acl_base_decorator('can_change', *targets)
|
||||
return acl_base_decorator('can_change', *targets, on_instance=False)
|
||||
|
||||
|
||||
def can_delete(*targets):
|
||||
|
|
|
@ -25,6 +25,7 @@ A set of mixins used all over the project to avoid duplicating code
|
|||
|
||||
from reversion import revisions as reversion
|
||||
from django.utils.functional import cached_property
|
||||
from django.db import transaction
|
||||
|
||||
|
||||
class RevMixin(object):
|
||||
|
@ -34,13 +35,16 @@ class RevMixin(object):
|
|||
def save(self, *args, **kwargs):
|
||||
""" Creates a version of this object and save it to database """
|
||||
if self.pk is None:
|
||||
reversion.set_comment("Création")
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
reversion.set_comment("Création")
|
||||
return super(RevMixin, self).save(*args, **kwargs)
|
||||
return super(RevMixin, self).save(*args, **kwargs)
|
||||
|
||||
def delete(self, *args, **kwargs):
|
||||
""" Creates a version of this object and delete it from database """
|
||||
reversion.set_comment("Suppresion")
|
||||
return super(RevMixin, self).delete(*args, **kwargs)
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
reversion.set_comment("Suppresion")
|
||||
return super(RevMixin, self).delete(*args, **kwargs)
|
||||
|
||||
|
||||
class FormRevMixin(object):
|
||||
|
|
34
static/js/shortcuts.js
Normal file
34
static/js/shortcuts.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
$(document).ready(function() {
|
||||
ctrl = false;
|
||||
alt = false;
|
||||
});
|
||||
|
||||
$(document).keydown(function(event) {
|
||||
// Update state keys
|
||||
if (event.which == "17")
|
||||
ctrl = true;
|
||||
else if (event.which == "18")
|
||||
alt = true;
|
||||
|
||||
// CTRL+K will focus on the search bar
|
||||
else if (ctrl && event.which == "75") {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
$("#search-term")[0].focus();
|
||||
}
|
||||
|
||||
// CTRL+L will trigger the login/logout
|
||||
else if (ctrl && event.which == "76") {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
window.location.href = $("#toggle_login")[0].href;
|
||||
}
|
||||
});
|
||||
|
||||
$(document).keyup(function(event) {
|
||||
// Update state keys
|
||||
if (event.which == "17")
|
||||
ctrl = false;
|
||||
else if (event.which == "18")
|
||||
alt = false;
|
||||
});
|
|
@ -50,6 +50,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
<script src="/static/js/konami/konami.js"></script>
|
||||
<script src="/static/js/sapphire.js"> var s=Sapphire(); Konami(s.activate); </script>
|
||||
<script src="/static/js/bootstrap-tokenfield/bootstrap-tokenfield.js"></script>
|
||||
<script src="/static/js/shortcuts.js"></script>
|
||||
<link rel="stylesheet" href="{% static "/css/base.css" %}">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ site_name }} : {% block title %}Accueil{% endblock %}</title>
|
||||
|
@ -74,7 +75,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa-user-circle"></i> {{request.user.pseudo|slice:":15"}} <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="{% url "users:mon-profil" %}"><i class="fa fa-user"></i> Mon profil</a></li>
|
||||
<li><a href="{% url 'logout' %}"><i class="fa fa-sign-out-alt"></i> Se déconnecter</a></li>
|
||||
<li><a id="toggle_login" href="{% url 'logout' %}"><i class="fa fa-sign-out-alt"></i> Se déconnecter</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
@ -129,7 +130,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
</li>
|
||||
{% endif %}
|
||||
<li>
|
||||
<a href="{% url 'login' %}">
|
||||
<a id="toggle_login" href="{% url 'login' %}">
|
||||
<i class="fa fa-sign-in-alt"></i> Login
|
||||
</a>
|
||||
</li>
|
||||
|
|
Loading…
Reference in a new issue