Fix refill permissions

* Remove ability to refill from counters
* Fix bug where you could refill without any board member on a BAR
* Add a warning message explaining why refilling are disabled
This commit is contained in:
Antoine Bartuccio 2024-12-17 02:42:07 +01:00
parent fc0ef29738
commit 03c27b10e5
5 changed files with 152 additions and 138 deletions

View File

@ -43,7 +43,7 @@ from core.fields import ResizedImageField
from core.models import Group, Notification, User from core.models import Group, Notification, User
from core.utils import get_start_of_semester from core.utils import get_start_of_semester
from counter.apps import PAYMENT_METHOD from counter.apps import PAYMENT_METHOD
from sith.settings import SITH_COUNTER_OFFICES, SITH_MAIN_CLUB from sith.settings import SITH_MAIN_CLUB
from subscription.models import Subscription from subscription.models import Subscription
@ -559,9 +559,6 @@ class Counter(models.Model):
"""Show if the counter authorize the refilling with physic money.""" """Show if the counter authorize the refilling with physic money."""
if self.type != "BAR": if self.type != "BAR":
return False return False
if self.id in SITH_COUNTER_OFFICES:
# If the counter is either 'AE' or 'BdF', refills are authorized
return True
# at least one of the barmen is in the AE board # at least one of the barmen is in the AE board
ae = Club.objects.get(unix_name=SITH_MAIN_CLUB["unix_name"]) ae = Club.objects.get(unix_name=SITH_MAIN_CLUB["unix_name"])
return any(ae.get_membership_for(barman) for barman in self.barmen_list) return any(ae.get_membership_for(barman) for barman in self.barmen_list)

View File

@ -31,7 +31,7 @@
<p>{% trans %}Amount: {% endtrans %}<span x-text="customerBalance"></span> €</p> <p>{% trans %}Amount: {% endtrans %}<span x-text="customerBalance"></span> €</p>
</div> </div>
<div id="click_form"> <div id="click_form" style="width: 20%;">
<h5 id="selling-accordion">{% trans %}Selling{% endtrans %}</h5> <h5 id="selling-accordion">{% trans %}Selling{% endtrans %}</h5>
<div> <div>
{% set counter_click_url = url('counter:click', counter_id=counter.id, user_id=customer.user_id) %} {% set counter_click_url = url('counter:click', counter_id=counter.id, user_id=customer.user_id) %}
@ -100,19 +100,28 @@
<input type="submit" value="{% trans %}Cancel{% endtrans %}"/> <input type="submit" value="{% trans %}Cancel{% endtrans %}"/>
</form> </form>
</div> </div>
{% if refilling_fragment %} {% if object.type == "BAR" %}
<h5>{% trans %}Refilling{% endtrans %}</h5> <h5>{% trans %}Refilling{% endtrans %}</h5>
<div {% if refilling_fragment %}
@htmx:after-request="onRefillingSuccess" <div
> @htmx:after-request="onRefillingSuccess"
{{ refilling_fragment }} >
</div> {{ refilling_fragment }}
{% endif %} </div>
{% if student_card_fragment %} {% else %}
<h5>{% trans %}Student card{% endtrans %}</h3> <div>
<div> <p class="alert alert-yellow">
{{ student_card_fragment }} {% trans trimmed %}As a barman, you are not able to refill any account on your own. An admin should be connected on this counter for that. The customer can refill by using the eboutic.{% endtrans %}
</div> </p>
</div>
{% endif %}
{% if student_card_fragment %}
<h5>{% trans %}Student card{% endtrans %}</h3>
<div>
{{ student_card_fragment }}
</div>
{% endif %}
{% endif %} {% endif %}
</div> </div>

View File

@ -159,7 +159,7 @@ class TestCounter(TestCase):
}, },
HTTP_REFERER=counter_url, HTTP_REFERER=counter_url,
) )
assert response.status_code == 302 assert response.status_code == 403 # Krophil is not board admin
def test_annotate_has_barman_queryset(self): def test_annotate_has_barman_queryset(self):
"""Test if the custom queryset method `annotate_has_barman` works as intended.""" """Test if the custom queryset method `annotate_has_barman` works as intended."""

View File

@ -6,7 +6,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-16 00:11+0100\n" "POT-Creation-Date: 2024-12-17 02:39+0100\n"
"PO-Revision-Date: 2016-07-18\n" "PO-Revision-Date: 2016-07-18\n"
"Last-Translator: Maréchal <thomas.girod@utbm.fr\n" "Last-Translator: Maréchal <thomas.girod@utbm.fr\n"
"Language-Team: AE info <ae.info@utbm.fr>\n" "Language-Team: AE info <ae.info@utbm.fr>\n"
@ -87,12 +87,12 @@ msgstr "Compte club"
msgid "%(club_account)s on %(bank_account)s" msgid "%(club_account)s on %(bank_account)s"
msgstr "%(club_account)s sur %(bank_account)s" msgstr "%(club_account)s sur %(bank_account)s"
#: accounting/models.py:188 club/models.py:351 counter/models.py:969 #: accounting/models.py:188 club/models.py:351 counter/models.py:965
#: election/models.py:16 launderette/models.py:165 #: election/models.py:16 launderette/models.py:165
msgid "start date" msgid "start date"
msgstr "date de début" msgstr "date de début"
#: accounting/models.py:189 club/models.py:352 counter/models.py:970 #: accounting/models.py:189 club/models.py:352 counter/models.py:966
#: election/models.py:17 #: election/models.py:17
msgid "end date" msgid "end date"
msgstr "date de fin" msgstr "date de fin"
@ -106,7 +106,7 @@ msgid "club account"
msgstr "compte club" msgstr "compte club"
#: accounting/models.py:199 accounting/models.py:255 counter/models.py:92 #: accounting/models.py:199 accounting/models.py:255 counter/models.py:92
#: counter/models.py:687 #: counter/models.py:683
msgid "amount" msgid "amount"
msgstr "montant" msgstr "montant"
@ -128,18 +128,18 @@ msgstr "classeur"
#: accounting/models.py:256 core/models.py:956 core/models.py:1467 #: accounting/models.py:256 core/models.py:956 core/models.py:1467
#: core/models.py:1512 core/models.py:1541 core/models.py:1565 #: core/models.py:1512 core/models.py:1541 core/models.py:1565
#: counter/models.py:697 counter/models.py:801 counter/models.py:1005 #: counter/models.py:693 counter/models.py:797 counter/models.py:1001
#: eboutic/models.py:57 eboutic/models.py:193 forum/models.py:312 #: eboutic/models.py:57 eboutic/models.py:193 forum/models.py:312
#: forum/models.py:413 #: forum/models.py:413
msgid "date" msgid "date"
msgstr "date" msgstr "date"
#: accounting/models.py:257 counter/models.py:300 counter/models.py:1006 #: accounting/models.py:257 counter/models.py:300 counter/models.py:1002
#: pedagogy/models.py:208 #: pedagogy/models.py:208
msgid "comment" msgid "comment"
msgstr "commentaire" msgstr "commentaire"
#: accounting/models.py:259 counter/models.py:699 counter/models.py:803 #: accounting/models.py:259 counter/models.py:695 counter/models.py:799
#: subscription/models.py:56 #: subscription/models.py:56
msgid "payment method" msgid "payment method"
msgstr "méthode de paiement" msgstr "méthode de paiement"
@ -166,7 +166,7 @@ msgstr "type comptable"
#: accounting/models.py:294 accounting/models.py:429 accounting/models.py:460 #: accounting/models.py:294 accounting/models.py:429 accounting/models.py:460
#: accounting/models.py:492 core/models.py:1540 core/models.py:1566 #: accounting/models.py:492 core/models.py:1540 core/models.py:1566
#: counter/models.py:767 #: counter/models.py:763
msgid "label" msgid "label"
msgstr "étiquette" msgstr "étiquette"
@ -517,7 +517,7 @@ msgid "Effective amount"
msgstr "Montant effectif" msgstr "Montant effectif"
#: accounting/templates/accounting/club_account_details.jinja:36 #: accounting/templates/accounting/club_account_details.jinja:36
#: sith/settings.py:463 #: sith/settings.py:461
msgid "Closed" msgid "Closed"
msgstr "Fermé" msgstr "Fermé"
@ -1041,7 +1041,7 @@ msgstr "Vous ne pouvez pas faire de boucles dans les clubs"
msgid "A club with that unix_name already exists" msgid "A club with that unix_name already exists"
msgstr "Un club avec ce nom UNIX existe déjà." msgstr "Un club avec ce nom UNIX existe déjà."
#: club/models.py:337 counter/models.py:960 counter/models.py:996 #: club/models.py:337 counter/models.py:956 counter/models.py:992
#: eboutic/models.py:53 eboutic/models.py:189 election/models.py:183 #: eboutic/models.py:53 eboutic/models.py:189 election/models.py:183
#: launderette/models.py:130 launderette/models.py:184 sas/models.py:273 #: launderette/models.py:130 launderette/models.py:184 sas/models.py:273
#: trombi/models.py:205 #: trombi/models.py:205
@ -3301,7 +3301,7 @@ msgid "Go to my Trombi tools"
msgstr "Allez à mes outils de Trombi" msgstr "Allez à mes outils de Trombi"
#: core/templates/core/user_preferences.jinja:39 #: core/templates/core/user_preferences.jinja:39
#: counter/templates/counter/counter_click.jinja:112 #: counter/templates/counter/counter_click.jinja:119
msgid "Student card" msgid "Student card"
msgstr "Carte étudiante" msgstr "Carte étudiante"
@ -3607,13 +3607,13 @@ msgstr "Chèque"
msgid "Cash" msgid "Cash"
msgstr "Espèces" msgstr "Espèces"
#: counter/apps.py:30 counter/models.py:805 sith/settings.py:415 #: counter/apps.py:30 counter/models.py:801 sith/settings.py:415
#: sith/settings.py:420 #: sith/settings.py:420
msgid "Credit card" msgid "Credit card"
msgstr "Carte bancaire" msgstr "Carte bancaire"
#: counter/apps.py:36 counter/models.py:506 counter/models.py:966 #: counter/apps.py:36 counter/models.py:506 counter/models.py:962
#: counter/models.py:1002 launderette/models.py:32 #: counter/models.py:998 launderette/models.py:32
msgid "counter" msgid "counter"
msgstr "comptoir" msgstr "comptoir"
@ -3745,7 +3745,7 @@ msgstr "groupe d'achat"
msgid "archived" msgid "archived"
msgstr "archivé" msgstr "archivé"
#: counter/models.py:368 counter/models.py:1100 #: counter/models.py:368 counter/models.py:1096
msgid "product" msgid "product"
msgstr "produit" msgstr "produit"
@ -3773,44 +3773,44 @@ msgstr "vendeurs"
msgid "token" msgid "token"
msgstr "jeton" msgstr "jeton"
#: counter/models.py:705 #: counter/models.py:701
msgid "bank" msgid "bank"
msgstr "banque" msgstr "banque"
#: counter/models.py:707 counter/models.py:808 #: counter/models.py:703 counter/models.py:804
msgid "is validated" msgid "is validated"
msgstr "est validé" msgstr "est validé"
#: counter/models.py:712 #: counter/models.py:708
msgid "refilling" msgid "refilling"
msgstr "rechargement" msgstr "rechargement"
#: counter/models.py:785 eboutic/models.py:249 #: counter/models.py:781 eboutic/models.py:249
msgid "unit price" msgid "unit price"
msgstr "prix unitaire" msgstr "prix unitaire"
#: counter/models.py:786 counter/models.py:1080 eboutic/models.py:250 #: counter/models.py:782 counter/models.py:1076 eboutic/models.py:250
msgid "quantity" msgid "quantity"
msgstr "quantité" msgstr "quantité"
#: counter/models.py:805 #: counter/models.py:801
msgid "Sith account" msgid "Sith account"
msgstr "Compte utilisateur" msgstr "Compte utilisateur"
#: counter/models.py:813 #: counter/models.py:809
msgid "selling" msgid "selling"
msgstr "vente" msgstr "vente"
#: counter/models.py:917 #: counter/models.py:913
msgid "Unknown event" msgid "Unknown event"
msgstr "Événement inconnu" msgstr "Événement inconnu"
#: counter/models.py:918 #: counter/models.py:914
#, python-format #, python-format
msgid "Eticket bought for the event %(event)s" msgid "Eticket bought for the event %(event)s"
msgstr "Eticket acheté pour l'événement %(event)s" msgstr "Eticket acheté pour l'événement %(event)s"
#: counter/models.py:920 counter/models.py:933 #: counter/models.py:916 counter/models.py:929
#, python-format #, python-format
msgid "" msgid ""
"You bought an eticket for the event %(event)s.\n" "You bought an eticket for the event %(event)s.\n"
@ -3822,67 +3822,67 @@ msgstr ""
"Vous pouvez également retrouver tous vos e-tickets sur votre page de compte " "Vous pouvez également retrouver tous vos e-tickets sur votre page de compte "
"%(url)s." "%(url)s."
#: counter/models.py:971 #: counter/models.py:967
msgid "last activity date" msgid "last activity date"
msgstr "dernière activité" msgstr "dernière activité"
#: counter/models.py:974 #: counter/models.py:970
msgid "permanency" msgid "permanency"
msgstr "permanence" msgstr "permanence"
#: counter/models.py:1007 #: counter/models.py:1003
msgid "emptied" msgid "emptied"
msgstr "coffre vidée" msgstr "coffre vidée"
#: counter/models.py:1010 #: counter/models.py:1006
msgid "cash register summary" msgid "cash register summary"
msgstr "relevé de caisse" msgstr "relevé de caisse"
#: counter/models.py:1076 #: counter/models.py:1072
msgid "cash summary" msgid "cash summary"
msgstr "relevé" msgstr "relevé"
#: counter/models.py:1079 #: counter/models.py:1075
msgid "value" msgid "value"
msgstr "valeur" msgstr "valeur"
#: counter/models.py:1082 #: counter/models.py:1078
msgid "check" msgid "check"
msgstr "chèque" msgstr "chèque"
#: counter/models.py:1084 #: counter/models.py:1080
msgid "True if this is a bank check, else False" msgid "True if this is a bank check, else False"
msgstr "Vrai si c'est un chèque, sinon Faux." msgstr "Vrai si c'est un chèque, sinon Faux."
#: counter/models.py:1088 #: counter/models.py:1084
msgid "cash register summary item" msgid "cash register summary item"
msgstr "élément de relevé de caisse" msgstr "élément de relevé de caisse"
#: counter/models.py:1104 #: counter/models.py:1100
msgid "banner" msgid "banner"
msgstr "bannière" msgstr "bannière"
#: counter/models.py:1106 #: counter/models.py:1102
msgid "event date" msgid "event date"
msgstr "date de l'événement" msgstr "date de l'événement"
#: counter/models.py:1108 #: counter/models.py:1104
msgid "event title" msgid "event title"
msgstr "titre de l'événement" msgstr "titre de l'événement"
#: counter/models.py:1110 #: counter/models.py:1106
msgid "secret" msgid "secret"
msgstr "secret" msgstr "secret"
#: counter/models.py:1149 #: counter/models.py:1145
msgid "uid" msgid "uid"
msgstr "uid" msgstr "uid"
#: counter/models.py:1154 counter/models.py:1159 #: counter/models.py:1150 counter/models.py:1155
msgid "student card" msgid "student card"
msgstr "carte étudiante" msgstr "carte étudiante"
#: counter/models.py:1160 #: counter/models.py:1156
msgid "student cards" msgid "student cards"
msgstr "cartes étudiantes" msgstr "cartes étudiantes"
@ -3972,6 +3972,16 @@ msgstr "Terminer"
msgid "Refilling" msgid "Refilling"
msgstr "Rechargement" msgstr "Rechargement"
#: counter/templates/counter/counter_click.jinja:114
msgid ""
"As a barman, you are not able to refill any account on your own. An admin "
"should be connected on this counter for that. The customer can refill by "
"using the eboutic."
msgstr ""
"En tant que barman, vous n'êtes pas en mesure de recharger un compte par vous même. "
"Un admin doit être connecté sur ce comptoir pour cela. Le client peut recharger son compte "
"en utilisant l'eboutic"
#: counter/templates/counter/counter_list.jinja:4 #: counter/templates/counter/counter_list.jinja:4
#: counter/templates/counter/counter_list.jinja:10 #: counter/templates/counter/counter_list.jinja:10
msgid "Counter admin list" msgid "Counter admin list"
@ -4916,12 +4926,12 @@ msgid "Washing and drying"
msgstr "Lavage et séchage" msgstr "Lavage et séchage"
#: launderette/templates/launderette/launderette_book.jinja:27 #: launderette/templates/launderette/launderette_book.jinja:27
#: sith/settings.py:652 #: sith/settings.py:650
msgid "Washing" msgid "Washing"
msgstr "Lavage" msgstr "Lavage"
#: launderette/templates/launderette/launderette_book.jinja:31 #: launderette/templates/launderette/launderette_book.jinja:31
#: sith/settings.py:652 #: sith/settings.py:650
msgid "Drying" msgid "Drying"
msgstr "Séchage" msgstr "Séchage"
@ -5436,11 +5446,11 @@ msgstr "Personne(s)"
msgid "Identify users on pictures" msgid "Identify users on pictures"
msgstr "Identifiez les utilisateurs sur les photos" msgstr "Identifiez les utilisateurs sur les photos"
#: sith/settings.py:253 sith/settings.py:471 #: sith/settings.py:253 sith/settings.py:469
msgid "English" msgid "English"
msgstr "Anglais" msgstr "Anglais"
#: sith/settings.py:253 sith/settings.py:470 #: sith/settings.py:253 sith/settings.py:468
msgid "French" msgid "French"
msgstr "Français" msgstr "Français"
@ -5464,7 +5474,7 @@ msgstr "INFO"
msgid "GI" msgid "GI"
msgstr "GI" msgstr "GI"
#: sith/settings.py:401 sith/settings.py:481 #: sith/settings.py:401 sith/settings.py:479
msgid "E" msgid "E"
msgstr "E" msgstr "E"
@ -5512,296 +5522,296 @@ msgstr "Sevenans"
msgid "Montbéliard" msgid "Montbéliard"
msgstr "Montbéliard" msgstr "Montbéliard"
#: sith/settings.py:451 #: sith/settings.py:449
msgid "Free" msgid "Free"
msgstr "Libre" msgstr "Libre"
#: sith/settings.py:452 #: sith/settings.py:450
msgid "CS" msgid "CS"
msgstr "CS" msgstr "CS"
#: sith/settings.py:453 #: sith/settings.py:451
msgid "TM" msgid "TM"
msgstr "TM" msgstr "TM"
#: sith/settings.py:454 #: sith/settings.py:452
msgid "OM" msgid "OM"
msgstr "OM" msgstr "OM"
#: sith/settings.py:455 #: sith/settings.py:453
msgid "QC" msgid "QC"
msgstr "QC" msgstr "QC"
#: sith/settings.py:456 #: sith/settings.py:454
msgid "EC" msgid "EC"
msgstr "EC" msgstr "EC"
#: sith/settings.py:457 #: sith/settings.py:455
msgid "RN" msgid "RN"
msgstr "RN" msgstr "RN"
#: sith/settings.py:458 #: sith/settings.py:456
msgid "ST" msgid "ST"
msgstr "ST" msgstr "ST"
#: sith/settings.py:459 #: sith/settings.py:457
msgid "EXT" msgid "EXT"
msgstr "EXT" msgstr "EXT"
#: sith/settings.py:464 #: sith/settings.py:462
msgid "Autumn" msgid "Autumn"
msgstr "Automne" msgstr "Automne"
#: sith/settings.py:465 #: sith/settings.py:463
msgid "Spring" msgid "Spring"
msgstr "Printemps" msgstr "Printemps"
#: sith/settings.py:466 #: sith/settings.py:464
msgid "Autumn and spring" msgid "Autumn and spring"
msgstr "Automne et printemps" msgstr "Automne et printemps"
#: sith/settings.py:472 #: sith/settings.py:470
msgid "German" msgid "German"
msgstr "Allemand" msgstr "Allemand"
#: sith/settings.py:473 #: sith/settings.py:471
msgid "Spanish" msgid "Spanish"
msgstr "Espagnol" msgstr "Espagnol"
#: sith/settings.py:477 #: sith/settings.py:475
msgid "A" msgid "A"
msgstr "A" msgstr "A"
#: sith/settings.py:478 #: sith/settings.py:476
msgid "B" msgid "B"
msgstr "B" msgstr "B"
#: sith/settings.py:479 #: sith/settings.py:477
msgid "C" msgid "C"
msgstr "C" msgstr "C"
#: sith/settings.py:480 #: sith/settings.py:478
msgid "D" msgid "D"
msgstr "D" msgstr "D"
#: sith/settings.py:482 #: sith/settings.py:480
msgid "FX" msgid "FX"
msgstr "FX" msgstr "FX"
#: sith/settings.py:483 #: sith/settings.py:481
msgid "F" msgid "F"
msgstr "F" msgstr "F"
#: sith/settings.py:484 #: sith/settings.py:482
msgid "Abs" msgid "Abs"
msgstr "Abs" msgstr "Abs"
#: sith/settings.py:488 #: sith/settings.py:486
msgid "Selling deletion" msgid "Selling deletion"
msgstr "Suppression de vente" msgstr "Suppression de vente"
#: sith/settings.py:489 #: sith/settings.py:487
msgid "Refilling deletion" msgid "Refilling deletion"
msgstr "Suppression de rechargement" msgstr "Suppression de rechargement"
#: sith/settings.py:533 #: sith/settings.py:531
msgid "One semester" msgid "One semester"
msgstr "Un semestre, 20 €" msgstr "Un semestre, 20 €"
#: sith/settings.py:534 #: sith/settings.py:532
msgid "Two semesters" msgid "Two semesters"
msgstr "Deux semestres, 35 €" msgstr "Deux semestres, 35 €"
#: sith/settings.py:536 #: sith/settings.py:534
msgid "Common core cursus" msgid "Common core cursus"
msgstr "Cursus tronc commun, 60 €" msgstr "Cursus tronc commun, 60 €"
#: sith/settings.py:540 #: sith/settings.py:538
msgid "Branch cursus" msgid "Branch cursus"
msgstr "Cursus branche, 60 €" msgstr "Cursus branche, 60 €"
#: sith/settings.py:541 #: sith/settings.py:539
msgid "Alternating cursus" msgid "Alternating cursus"
msgstr "Cursus alternant, 30 €" msgstr "Cursus alternant, 30 €"
#: sith/settings.py:542 #: sith/settings.py:540
msgid "Honorary member" msgid "Honorary member"
msgstr "Membre honoraire, 0 €" msgstr "Membre honoraire, 0 €"
#: sith/settings.py:543 #: sith/settings.py:541
msgid "Assidu member" msgid "Assidu member"
msgstr "Membre d'Assidu, 0 €" msgstr "Membre d'Assidu, 0 €"
#: sith/settings.py:544 #: sith/settings.py:542
msgid "Amicale/DOCEO member" msgid "Amicale/DOCEO member"
msgstr "Membre de l'Amicale/DOCEO, 0 €" msgstr "Membre de l'Amicale/DOCEO, 0 €"
#: sith/settings.py:545 #: sith/settings.py:543
msgid "UT network member" msgid "UT network member"
msgstr "Cotisant du réseau UT, 0 €" msgstr "Cotisant du réseau UT, 0 €"
#: sith/settings.py:546 #: sith/settings.py:544
msgid "CROUS member" msgid "CROUS member"
msgstr "Membres du CROUS, 0 €" msgstr "Membres du CROUS, 0 €"
#: sith/settings.py:547 #: sith/settings.py:545
msgid "Sbarro/ESTA member" msgid "Sbarro/ESTA member"
msgstr "Membre de Sbarro ou de l'ESTA, 20 €" msgstr "Membre de Sbarro ou de l'ESTA, 20 €"
#: sith/settings.py:549 #: sith/settings.py:547
msgid "One semester Welcome Week" msgid "One semester Welcome Week"
msgstr "Un semestre Welcome Week" msgstr "Un semestre Welcome Week"
#: sith/settings.py:553 #: sith/settings.py:551
msgid "One month for free" msgid "One month for free"
msgstr "Un mois gratuit" msgstr "Un mois gratuit"
#: sith/settings.py:554 #: sith/settings.py:552
msgid "Two months for free" msgid "Two months for free"
msgstr "Deux mois gratuits" msgstr "Deux mois gratuits"
#: sith/settings.py:555 #: sith/settings.py:553
msgid "Eurok's volunteer" msgid "Eurok's volunteer"
msgstr "Bénévole Eurockéennes" msgstr "Bénévole Eurockéennes"
#: sith/settings.py:557 #: sith/settings.py:555
msgid "Six weeks for free" msgid "Six weeks for free"
msgstr "6 semaines gratuites" msgstr "6 semaines gratuites"
#: sith/settings.py:561 #: sith/settings.py:559
msgid "One day" msgid "One day"
msgstr "Un jour" msgstr "Un jour"
#: sith/settings.py:562 #: sith/settings.py:560
msgid "GA staff member" msgid "GA staff member"
msgstr "Membre staff GA (2 semaines), 1 €" msgstr "Membre staff GA (2 semaines), 1 €"
#: sith/settings.py:565 #: sith/settings.py:563
msgid "One semester (-20%)" msgid "One semester (-20%)"
msgstr "Un semestre (-20%), 12 €" msgstr "Un semestre (-20%), 12 €"
#: sith/settings.py:570 #: sith/settings.py:568
msgid "Two semesters (-20%)" msgid "Two semesters (-20%)"
msgstr "Deux semestres (-20%), 22 €" msgstr "Deux semestres (-20%), 22 €"
#: sith/settings.py:575 #: sith/settings.py:573
msgid "Common core cursus (-20%)" msgid "Common core cursus (-20%)"
msgstr "Cursus tronc commun (-20%), 36 €" msgstr "Cursus tronc commun (-20%), 36 €"
#: sith/settings.py:580 #: sith/settings.py:578
msgid "Branch cursus (-20%)" msgid "Branch cursus (-20%)"
msgstr "Cursus branche (-20%), 36 €" msgstr "Cursus branche (-20%), 36 €"
#: sith/settings.py:585 #: sith/settings.py:583
msgid "Alternating cursus (-20%)" msgid "Alternating cursus (-20%)"
msgstr "Cursus alternant (-20%), 24 €" msgstr "Cursus alternant (-20%), 24 €"
#: sith/settings.py:591 #: sith/settings.py:589
msgid "One year for free(CA offer)" msgid "One year for free(CA offer)"
msgstr "Une année offerte (Offre CA)" msgstr "Une année offerte (Offre CA)"
#: sith/settings.py:611 #: sith/settings.py:609
msgid "President" msgid "President"
msgstr "Président⸱e" msgstr "Président⸱e"
#: sith/settings.py:612 #: sith/settings.py:610
msgid "Vice-President" msgid "Vice-President"
msgstr "Vice-Président⸱e" msgstr "Vice-Président⸱e"
#: sith/settings.py:613 #: sith/settings.py:611
msgid "Treasurer" msgid "Treasurer"
msgstr "Trésorier⸱e" msgstr "Trésorier⸱e"
#: sith/settings.py:614 #: sith/settings.py:612
msgid "Communication supervisor" msgid "Communication supervisor"
msgstr "Responsable communication" msgstr "Responsable communication"
#: sith/settings.py:615 #: sith/settings.py:613
msgid "Secretary" msgid "Secretary"
msgstr "Secrétaire" msgstr "Secrétaire"
#: sith/settings.py:616 #: sith/settings.py:614
msgid "IT supervisor" msgid "IT supervisor"
msgstr "Responsable info" msgstr "Responsable info"
#: sith/settings.py:617 #: sith/settings.py:615
msgid "Board member" msgid "Board member"
msgstr "Membre du bureau" msgstr "Membre du bureau"
#: sith/settings.py:618 #: sith/settings.py:616
msgid "Active member" msgid "Active member"
msgstr "Membre actif⸱ve" msgstr "Membre actif⸱ve"
#: sith/settings.py:619 #: sith/settings.py:617
msgid "Curious" msgid "Curious"
msgstr "Curieux⸱euse" msgstr "Curieux⸱euse"
#: sith/settings.py:656 #: sith/settings.py:654
msgid "A new poster needs to be moderated" msgid "A new poster needs to be moderated"
msgstr "Une nouvelle affiche a besoin d'être modérée" msgstr "Une nouvelle affiche a besoin d'être modérée"
#: sith/settings.py:657 #: sith/settings.py:655
msgid "A new mailing list needs to be moderated" msgid "A new mailing list needs to be moderated"
msgstr "Une nouvelle mailing list a besoin d'être modérée" msgstr "Une nouvelle mailing list a besoin d'être modérée"
#: sith/settings.py:660 #: sith/settings.py:658
msgid "A new pedagogy comment has been signaled for moderation" msgid "A new pedagogy comment has been signaled for moderation"
msgstr "" msgstr ""
"Un nouveau commentaire de la pédagogie a été signalé pour la modération" "Un nouveau commentaire de la pédagogie a été signalé pour la modération"
#: sith/settings.py:662 #: sith/settings.py:660
#, python-format #, python-format
msgid "There are %s fresh news to be moderated" msgid "There are %s fresh news to be moderated"
msgstr "Il y a %s nouvelles toutes fraîches à modérer" msgstr "Il y a %s nouvelles toutes fraîches à modérer"
#: sith/settings.py:663 #: sith/settings.py:661
msgid "New files to be moderated" msgid "New files to be moderated"
msgstr "Nouveaux fichiers à modérer" msgstr "Nouveaux fichiers à modérer"
#: sith/settings.py:664 #: sith/settings.py:662
#, python-format #, python-format
msgid "There are %s pictures to be moderated in the SAS" msgid "There are %s pictures to be moderated in the SAS"
msgstr "Il y a %s photos à modérer dans le SAS" msgstr "Il y a %s photos à modérer dans le SAS"
#: sith/settings.py:665 #: sith/settings.py:663
msgid "You've been identified on some pictures" msgid "You've been identified on some pictures"
msgstr "Vous avez été identifié sur des photos" msgstr "Vous avez été identifié sur des photos"
#: sith/settings.py:666 #: sith/settings.py:664
#, python-format #, python-format
msgid "You just refilled of %s" msgid "You just refilled of %s"
msgstr "Vous avez rechargé votre compte de %s" msgstr "Vous avez rechargé votre compte de %s"
#: sith/settings.py:667 #: sith/settings.py:665
#, python-format #, python-format
msgid "You just bought %s" msgid "You just bought %s"
msgstr "Vous avez acheté %s" msgstr "Vous avez acheté %s"
#: sith/settings.py:668 #: sith/settings.py:666
msgid "You have a notification" msgid "You have a notification"
msgstr "Vous avez une notification" msgstr "Vous avez une notification"
#: sith/settings.py:680 #: sith/settings.py:678
msgid "Success!" msgid "Success!"
msgstr "Succès !" msgstr "Succès !"
#: sith/settings.py:681 #: sith/settings.py:679
msgid "Fail!" msgid "Fail!"
msgstr "Échec !" msgstr "Échec !"
#: sith/settings.py:682 #: sith/settings.py:680
msgid "You successfully posted an article in the Weekmail" msgid "You successfully posted an article in the Weekmail"
msgstr "Article posté avec succès dans le Weekmail" msgstr "Article posté avec succès dans le Weekmail"
#: sith/settings.py:683 #: sith/settings.py:681
msgid "You successfully edited an article in the Weekmail" msgid "You successfully edited an article in the Weekmail"
msgstr "Article édité avec succès dans le Weekmail" msgstr "Article édité avec succès dans le Weekmail"
#: sith/settings.py:684 #: sith/settings.py:682
msgid "You successfully sent the Weekmail" msgid "You successfully sent the Weekmail"
msgstr "Weekmail envoyé avec succès" msgstr "Weekmail envoyé avec succès"
#: sith/settings.py:692 #: sith/settings.py:690
msgid "AE tee-shirt" msgid "AE tee-shirt"
msgstr "Tee-shirt AE" msgstr "Tee-shirt AE"

View File

@ -432,8 +432,6 @@ SITH_SUBSCRIPTION_LOCATIONS = [
SITH_COUNTER_BARS = [(1, "MDE"), (2, "Foyer"), (35, "La Gommette")] SITH_COUNTER_BARS = [(1, "MDE"), (2, "Foyer"), (35, "La Gommette")]
SITH_COUNTER_OFFICES = {2: "PdF", 1: "AE"}
SITH_COUNTER_BANK = [ SITH_COUNTER_BANK = [
("OTHER", "Autre"), ("OTHER", "Autre"),
("SOCIETE-GENERALE", "Société générale"), ("SOCIETE-GENERALE", "Société générale"),