mirror of
https://github.com/ae-utbm/sith.git
synced 2025-01-09 08:31:11 +00:00
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:
parent
fc0ef29738
commit
03c27b10e5
@ -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)
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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."""
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"),
|
||||||
|
Loading…
Reference in New Issue
Block a user