diff --git a/.credentials/HCAPTCHA_SECRET b/.credentials/HCAPTCHA_SECRET
new file mode 100644
index 00000000..7daa69d3
--- /dev/null
+++ b/.credentials/HCAPTCHA_SECRET
@@ -0,0 +1 @@
+0x0000000000000000000000000000000000000000
diff --git a/.credentials/HCAPTCHA_SITEKEY b/.credentials/HCAPTCHA_SITEKEY
new file mode 100644
index 00000000..f5093057
--- /dev/null
+++ b/.credentials/HCAPTCHA_SITEKEY
@@ -0,0 +1 @@
+10000000-ffff-ffff-ffff-000000000001
diff --git a/.credentials/KFETOPEN_TOKEN b/.credentials/KFETOPEN_TOKEN
new file mode 100644
index 00000000..4cbb2bf5
--- /dev/null
+++ b/.credentials/KFETOPEN_TOKEN
@@ -0,0 +1 @@
+k-feste_token
diff --git a/.credentials/SECRET_KEY b/.credentials/SECRET_KEY
new file mode 100644
index 00000000..de873cc2
--- /dev/null
+++ b/.credentials/SECRET_KEY
@@ -0,0 +1 @@
+insecure-key
diff --git a/.credentials/SYMPA_PASSWORD b/.credentials/SYMPA_PASSWORD
new file mode 100644
index 00000000..fbcf12d5
--- /dev/null
+++ b/.credentials/SYMPA_PASSWORD
@@ -0,0 +1 @@
+toto
diff --git a/.credentials/SYMPA_USERNAME b/.credentials/SYMPA_USERNAME
new file mode 100644
index 00000000..d525803f
--- /dev/null
+++ b/.credentials/SYMPA_USERNAME
@@ -0,0 +1 @@
+sympa
diff --git a/.envrc b/.envrc
new file mode 100644
index 00000000..1d953f4b
--- /dev/null
+++ b/.envrc
@@ -0,0 +1 @@
+use nix
diff --git a/.gitignore b/.gitignore
index 347d4b78..9122298b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ cof/settings.py
settings.py
*~
venv/
+.venv/
.vagrant
/src
media/
@@ -18,4 +19,6 @@ media/
.cache
# VSCode
-.vscode/
\ No newline at end of file
+.vscode/
+.direnv
+.static
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b0c1f4c6..ce3bd041 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -43,13 +43,21 @@ variables:
# Keep this disabled for now, as it may kill GitLab...
# coverage: '/TOTAL.*\s(\d+\.\d+)\%$/'
+kfettest:
+ stage: test
+ extends: .test_template
+ variables:
+ DJANGO_SETTINGS_MODULE: "gestioasso.settings.cof_prod"
+ script:
+ - coverage run manage.py test kfet
+
coftest:
stage: test
extends: .test_template
variables:
DJANGO_SETTINGS_MODULE: "gestioasso.settings.cof_prod"
script:
- - coverage run manage.py test gestioncof bda kfet petitscours shared --parallel
+ - coverage run manage.py test gestioncof bda petitscours shared --parallel
bdstest:
stage: test
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7a56e649..b68fb40c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,20 +21,87 @@ Liste des changements notables dans GestioCOF depuis la version 0.1 (septembre
Uniquement un modèle simple de clubs avec des respos. Aucune gestion des
adhérents ni des cotisations.
-## Version 0.11
+## TODO Prod
+
+- Lancer `python manage.py update_translation_fields` après la migration
+- Mettre à jour les units systemd `daphne.service` et `worker.service`
+
+- Créer un compte hCaptcha (https://www.hcaptcha.com/), au COF, et remplacer les secrets associés
+
+## Version ??? - ??/??/????
+
+## Version 0.15.1 - 15/06/2023
### K-Fêt
+- Rattrape les erreurs d'envoi de mail de négatif
+- Utilise l'adresse chefs pour les envois de négatifs
+
+## Version 0.15 - 22/05/2023
+
+### K-Fêt
+
+- Rajoute un formulaire de contact
+- Rajoute un formulaire de demande de soirée
+- Désactive les mails d'envoi de négatifs sur les comptes gelés
+
+## Version 0.14 - 19/05/2023
+
+- Répare les dépendances en spécifiant toutes les versions
+
+### K-Fêt
+
+- Répare la gestion des changement d'heure via moment.js
+
+## Version 0.13 - 19/02/2023
+
+### K-Fêt
+
+- Rajoute la valeur des inventaires
+- Résout les problèmes de négatif ne disparaissant pas
+- Affiche son surnom s'il y en a un
+- Bugfixes
+
+## Version 0.12.1 - 03/10/2022
+
+### K-Fêt
+
+- Fixe un problème de rendu causé par l'agrandissement du menu
+
+- Mise à jour vers Channels 3.x et Django 3.2
+
+## Version 0.12 - 17/06/2022
+
+### K-Fêt
+
+- Ajoute une exception à la limite d'historique pour les comptes `LIQ` et `#13`
+- Répare le problème des étiquettes LIQ/Comptes K-Fêt inversées dans les stats des articles K-Fêt
+
+## Version 0.11 - 26/10/2021
+
+### COF
+
+- Répare un problème de rendu sur le wagtail du COF
+
+### K-Fêt
+
+- Ajoute de mails de rappels pour les comptes en négatif
- La recherche de comptes sur K-Psul remarche normalement
- Le pointeur de la souris change de forme quand on survole un item d'autocomplétion
-
+- Modification du gel de compte:
+ - on ne peut plus geler/dégeler son compte soi-même (il faut la permission "Gérer les permissions K-Fêt")
+ - on ne peut rien compter sur un compte gelé (aucune override possible), et les K-Fêteux·ses dont le compte est gelé perdent tout accès à K-Psul
+ - les comptes actuellement gelés (sur l'ancien système) sont dégelés automatiquement
+- Modification du fonctionnement des négatifs
+ - impossible d'avoir des négatifs inférieurs à `kfet_config.overdraft_amount`
+ - il n'y a plus de limite de temps sur les négatifs
+ - supression des autorisations de négatif
+ - il n'est plus possible de réinitialiser la durée d'un négatif en faisant puis en annulant une charge
+- La gestion des erreurs passe du client au serveur, ce qui permet d'avoir des messages plus explicites
+- La supression d'opérations anciennes est réparée
## Version 0.10 - 18/04/2021
-### TODO Prod
-
-- Créer un compte hCaptcha (https://www.hcaptcha.com/), au COF, et remplacer les secrets associés
-
### K-Fêt
- On fait sauter la limite qui empêchait de vendre plus de 24 unités d'un item à
diff --git a/README.md b/README.md
index 28c6686d..5708277c 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ Il vous faudra installer pip, les librairies de développement de python ainsi
que sqlite3, un moteur de base de données léger et simple d'utilisation. Sous
Debian et dérivées (Ubuntu, ...) :
- sudo apt-get install python3-pip python3-dev python3-venv sqlite3
+ sudo apt-get install python3-pip python3-dev python3-venv sqlite3 libsasl2-dev python-dev-is-python3 libldap2-dev libssl-dev
Si vous décidez d'utiliser un environnement virtuel Python (virtualenv;
fortement conseillé), déplacez-vous dans le dossier où est installé GestioCOF
@@ -30,7 +30,15 @@ Pour l'activer, il faut taper
. venv/bin/activate
-depuis le même dossier.
+depuis le même dossier. Pour préparer l'environnement à l'utilisation de `./manage.py`
+(qui permet de faire des tests en local), il faut également taper
+
+ export CREDENTIALS_DIRECTORY=$(realpath .credentials)
+ export DJANGO_SETTINGS_MODULE=gestioasso.settings.local
+ export GESTIOCOF_DEBUG=true
+ export GESTIOCOF_STATIC_ROOT=$(realpath .static)
+ export GESTIOBDS_DEBUG=true
+ export GESTIOBDS_STATIC_ROOT=$(realpath .static)
Vous pouvez maintenant installer les dépendances Python depuis le fichier
`requirements-devel.txt` :
diff --git a/bda/admin.py b/bda/admin.py
index edba2c61..f52f721d 100644
--- a/bda/admin.py
+++ b/bda/admin.py
@@ -211,7 +211,6 @@ class AttributionAdminForm(forms.ModelForm):
class AttributionAdmin(ReadOnlyMixin, admin.ModelAdmin):
-
list_display = ("id", "spectacle", "participant", "given", "paid")
search_fields = (
"spectacle__title",
diff --git a/bda/algorithm.py b/bda/algorithm.py
index 3d4b4f51..078f2be8 100644
--- a/bda/algorithm.py
+++ b/bda/algorithm.py
@@ -2,7 +2,6 @@ import random
class Algorithm(object):
-
shows = None
ranks = None
origranks = None
diff --git a/bda/management/commands/loadbdadevdata.py b/bda/management/commands/loadbdadevdata.py
index a608db6a..186e1da7 100644
--- a/bda/management/commands/loadbdadevdata.py
+++ b/bda/management/commands/loadbdadevdata.py
@@ -81,7 +81,7 @@ class Command(MyBaseCommand):
shows = random.sample(
list(tirage.spectacle_set.all()), tirage.spectacle_set.count() // 2
)
- for (rank, show) in enumerate(shows):
+ for rank, show in enumerate(shows):
choices.append(
ChoixSpectacle(
participant=part,
diff --git a/bda/migrations/0001_initial.py b/bda/migrations/0001_initial.py
index 077ddd4e..5bc848c8 100644
--- a/bda/migrations/0001_initial.py
+++ b/bda/migrations/0001_initial.py
@@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [migrations.swappable_dependency(settings.AUTH_USER_MODEL)]
operations = [
diff --git a/bda/migrations/0002_add_tirage.py b/bda/migrations/0002_add_tirage.py
index f4b01ed2..c2c6bd3c 100644
--- a/bda/migrations/0002_add_tirage.py
+++ b/bda/migrations/0002_add_tirage.py
@@ -35,7 +35,6 @@ def fill_tirage_fields(apps, schema_editor):
class Migration(migrations.Migration):
-
dependencies = [("bda", "0001_initial")]
operations = [
diff --git a/bda/migrations/0003_update_tirage_and_spectacle.py b/bda/migrations/0003_update_tirage_and_spectacle.py
index 3548eb88..07f3742e 100644
--- a/bda/migrations/0003_update_tirage_and_spectacle.py
+++ b/bda/migrations/0003_update_tirage_and_spectacle.py
@@ -5,7 +5,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [("bda", "0002_add_tirage")]
operations = [
diff --git a/bda/migrations/0004_mails-rappel.py b/bda/migrations/0004_mails-rappel.py
index d331568a..407353a4 100644
--- a/bda/migrations/0004_mails-rappel.py
+++ b/bda/migrations/0004_mails-rappel.py
@@ -5,7 +5,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [("bda", "0003_update_tirage_and_spectacle")]
operations = [
diff --git a/bda/migrations/0005_encoding.py b/bda/migrations/0005_encoding.py
index eedfcee4..29ee0027 100644
--- a/bda/migrations/0005_encoding.py
+++ b/bda/migrations/0005_encoding.py
@@ -5,7 +5,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [("bda", "0004_mails-rappel")]
operations = [
diff --git a/bda/migrations/0006_add_tirage_switch.py b/bda/migrations/0006_add_tirage_switch.py
index ccfe7505..1535a5fe 100644
--- a/bda/migrations/0006_add_tirage_switch.py
+++ b/bda/migrations/0006_add_tirage_switch.py
@@ -18,7 +18,6 @@ def forwards_func(apps, schema_editor):
class Migration(migrations.Migration):
-
dependencies = [("bda", "0005_encoding")]
operations = [
diff --git a/bda/migrations/0007_extends_spectacle.py b/bda/migrations/0007_extends_spectacle.py
index 87182ff7..48865acb 100644
--- a/bda/migrations/0007_extends_spectacle.py
+++ b/bda/migrations/0007_extends_spectacle.py
@@ -5,7 +5,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [("bda", "0006_add_tirage_switch")]
operations = [
diff --git a/bda/migrations/0008_py3.py b/bda/migrations/0008_py3.py
index 6aa69abd..3a7dfeb1 100644
--- a/bda/migrations/0008_py3.py
+++ b/bda/migrations/0008_py3.py
@@ -5,7 +5,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [("bda", "0007_extends_spectacle")]
operations = [
diff --git a/bda/migrations/0009_revente.py b/bda/migrations/0009_revente.py
index d888140f..7a547f85 100644
--- a/bda/migrations/0009_revente.py
+++ b/bda/migrations/0009_revente.py
@@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [("bda", "0008_py3")]
operations = [
diff --git a/bda/migrations/0010_spectaclerevente_shotgun.py b/bda/migrations/0010_spectaclerevente_shotgun.py
index 9acd1878..ae0fdff1 100644
--- a/bda/migrations/0010_spectaclerevente_shotgun.py
+++ b/bda/migrations/0010_spectaclerevente_shotgun.py
@@ -21,7 +21,6 @@ def forwards_func(apps, schema_editor):
class Migration(migrations.Migration):
-
dependencies = [("bda", "0009_revente")]
operations = [
diff --git a/bda/migrations/0011_tirage_appear_catalogue.py b/bda/migrations/0011_tirage_appear_catalogue.py
index 446be392..a8c49e2d 100644
--- a/bda/migrations/0011_tirage_appear_catalogue.py
+++ b/bda/migrations/0011_tirage_appear_catalogue.py
@@ -5,7 +5,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [("bda", "0010_spectaclerevente_shotgun")]
operations = [
diff --git a/bda/migrations/0012_notif_time.py b/bda/migrations/0012_notif_time.py
index 96853a24..78ef8dce 100644
--- a/bda/migrations/0012_notif_time.py
+++ b/bda/migrations/0012_notif_time.py
@@ -5,7 +5,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [("bda", "0011_tirage_appear_catalogue")]
operations = [
diff --git a/bda/migrations/0012_swap_double_choice.py b/bda/migrations/0012_swap_double_choice.py
index e712f2ff..dcb8056d 100644
--- a/bda/migrations/0012_swap_double_choice.py
+++ b/bda/migrations/0012_swap_double_choice.py
@@ -13,7 +13,6 @@ def swap_double_choice(apps, schema_editor):
class Migration(migrations.Migration):
-
dependencies = [("bda", "0011_tirage_appear_catalogue")]
operations = [
diff --git a/bda/migrations/0013_merge_20180524_2123.py b/bda/migrations/0013_merge_20180524_2123.py
index 8f78b6a9..b974abf2 100644
--- a/bda/migrations/0013_merge_20180524_2123.py
+++ b/bda/migrations/0013_merge_20180524_2123.py
@@ -6,7 +6,6 @@ from django.db import migrations
class Migration(migrations.Migration):
-
dependencies = [("bda", "0012_notif_time"), ("bda", "0012_swap_double_choice")]
operations = []
diff --git a/bda/migrations/0014_attribution_paid_field.py b/bda/migrations/0014_attribution_paid_field.py
index b5bb6208..e5ef2b2d 100644
--- a/bda/migrations/0014_attribution_paid_field.py
+++ b/bda/migrations/0014_attribution_paid_field.py
@@ -4,7 +4,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [("bda", "0013_merge_20180524_2123")]
operations = [
diff --git a/bda/migrations/0015_move_bda_payment.py b/bda/migrations/0015_move_bda_payment.py
index 93f121a1..a39a159c 100644
--- a/bda/migrations/0015_move_bda_payment.py
+++ b/bda/migrations/0015_move_bda_payment.py
@@ -29,7 +29,6 @@ def set_participant_payment(apps, schema_editor):
class Migration(migrations.Migration):
-
dependencies = [("bda", "0014_attribution_paid_field")]
operations = [
diff --git a/bda/migrations/0016_delete_participant_paid.py b/bda/migrations/0016_delete_participant_paid.py
index f59d1eb9..86a17b24 100644
--- a/bda/migrations/0016_delete_participant_paid.py
+++ b/bda/migrations/0016_delete_participant_paid.py
@@ -4,7 +4,6 @@ from django.db import migrations
class Migration(migrations.Migration):
-
dependencies = [("bda", "0015_move_bda_payment")]
operations = [
diff --git a/bda/migrations/0017_participant_accepte_charte.py b/bda/migrations/0017_participant_accepte_charte.py
index 6bd32d8f..3157654b 100644
--- a/bda/migrations/0017_participant_accepte_charte.py
+++ b/bda/migrations/0017_participant_accepte_charte.py
@@ -4,7 +4,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [("bda", "0016_delete_participant_paid")]
operations = [
diff --git a/bda/migrations/0018_auto_20201021_1818.py b/bda/migrations/0018_auto_20201021_1818.py
index 88a56c39..444f32d8 100644
--- a/bda/migrations/0018_auto_20201021_1818.py
+++ b/bda/migrations/0018_auto_20201021_1818.py
@@ -5,7 +5,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
-
dependencies = [
("bda", "0017_participant_accepte_charte"),
]
diff --git a/bda/migrations/0019_auto_20220630_1245.py b/bda/migrations/0019_auto_20220630_1245.py
new file mode 100644
index 00000000..12b7149d
--- /dev/null
+++ b/bda/migrations/0019_auto_20220630_1245.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.13 on 2022-06-30 10:45
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("bda", "0018_auto_20201021_1818"),
+ ]
+
+ operations = [
+ migrations.AlterUniqueTogether(
+ name="choixspectacle",
+ unique_together=set(),
+ ),
+ migrations.AddConstraint(
+ model_name="choixspectacle",
+ constraint=models.UniqueConstraint(
+ fields=("participant", "spectacle"), name="unique_participation"
+ ),
+ ),
+ ]
diff --git a/bda/migrations/0019_auto_20240707_1359.py b/bda/migrations/0019_auto_20240707_1359.py
new file mode 100644
index 00000000..ad25e0d6
--- /dev/null
+++ b/bda/migrations/0019_auto_20240707_1359.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.2.28 on 2024-07-07 11:59
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('bda', '0018_auto_20201021_1818'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='attribution',
+ name='paymenttype',
+ field=models.CharField(blank=True, choices=[('cash', 'Cash'), ('cb', 'CB'), ('cheque', 'Chèque'), ('virement', 'Virement'), ('autre', 'Autre')], max_length=8, verbose_name='Moyen de paiement'),
+ ),
+ ]
diff --git a/bda/migrations/0020_merge_0019_auto_20220630_1245_0019_auto_20240707_1359.py b/bda/migrations/0020_merge_0019_auto_20220630_1245_0019_auto_20240707_1359.py
new file mode 100644
index 00000000..a8c7a72e
--- /dev/null
+++ b/bda/migrations/0020_merge_0019_auto_20220630_1245_0019_auto_20240707_1359.py
@@ -0,0 +1,13 @@
+# Generated by Django 4.2.16 on 2025-02-26 08:23
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("bda", "0019_auto_20220630_1245"),
+ ("bda", "0019_auto_20240707_1359"),
+ ]
+
+ operations = []
diff --git a/bda/models.py b/bda/models.py
index 578f235c..af0d49fb 100644
--- a/bda/models.py
+++ b/bda/models.py
@@ -151,6 +151,7 @@ PAYMENT_TYPES = (
("cash", "Cash"),
("cb", "CB"),
("cheque", "Chèque"),
+ ("virement", "Virement"),
("autre", "Autre"),
)
@@ -163,7 +164,7 @@ class Attribution(models.Model):
given = models.BooleanField("Donnée", default=False)
paid = models.BooleanField("Payée", default=False)
paymenttype = models.CharField(
- "Moyen de paiement", max_length=6, choices=PAYMENT_TYPES, blank=True
+ "Moyen de paiement", max_length=8, choices=PAYMENT_TYPES, blank=True
)
def __str__(self):
@@ -253,7 +254,11 @@ class ChoixSpectacle(models.Model):
class Meta:
ordering = ("priority",)
- unique_together = (("participant", "spectacle"),)
+ constraints = [
+ models.UniqueConstraint(
+ fields=["participant", "spectacle"], name="unique_participation"
+ )
+ ]
verbose_name = "voeu"
verbose_name_plural = "voeux"
diff --git a/bda/templates/bda-attrib.html b/bda/templates/bda-attrib.html
index fac0de67..057cacb4 100644
--- a/bda/templates/bda-attrib.html
+++ b/bda/templates/bda-attrib.html
@@ -1,5 +1,5 @@
{% extends "base_title.html" %}
-{% load staticfiles %}
+{% load static %}
{% block extra_head %}
diff --git a/bda/templates/bda/etat-places.html b/bda/templates/bda/etat-places.html
index 401cc856..d1af0667 100644
--- a/bda/templates/bda/etat-places.html
+++ b/bda/templates/bda/etat-places.html
@@ -1,5 +1,5 @@
{% extends "base_title.html" %}
-{% load staticfiles %}
+{% load static %}
{% block realcontent %}
État des inscriptions BdA
diff --git a/bda/templates/bda/inscription-tirage.html b/bda/templates/bda/inscription-tirage.html
index 3f8091df..1eecd7af 100644
--- a/bda/templates/bda/inscription-tirage.html
+++ b/bda/templates/bda/inscription-tirage.html
@@ -1,5 +1,5 @@
{% extends "base_title.html" %}
-{% load staticfiles %}
+{% load static %}
{% block extra_head %}
diff --git a/bda/templates/bda/mails/attributions.txt b/bda/templates/bda/mails/attributions.txt
index 3fd10032..002763ae 100644
--- a/bda/templates/bda/mails/attributions.txt
+++ b/bda/templates/bda/mails/attributions.txt
@@ -6,26 +6,24 @@ pour les spectacles suivants :
- 1 place pour {{ place }}{% endfor %}
*Paiement*
-L'intégralité de ces places de spectacles est à régler dès maintenant et AVANT
-vendredi prochain, au bureau du COF pendant les heures de permanences (du lundi au vendredi
-entre 12h et 14h, et entre 18h et 20h). Des facilités de paiement sont bien
-évidemment possibles : nous pouvons ne pas encaisser le chèque immédiatement,
-ou bien découper votre paiement en deux fois. Pour ceux qui ne pourraient pas
-venir payer au bureau, merci de nous contacter par mail.
+Au burô :
+L'intégralité de ces places de spectacles est à régler dès maintenant, au bureau du COF pendant les heures de permanences (lundi, mardi, jeudi entre 12h et 14h et entre 18h30 et 19h30, mercredi entre 18h30 et 19h30, vendredi entre 12h et 14h). Les places sont à régler AVANT les représentations. Si vous êtes en vacances, vous pourrez venir les régler dès votre retour. Il est demandé à chacun·e de prendre garde à honorer l’ensemble des places qui lui sont attribuées et de s'engager de fait à payer la ou les place(s) qui lui sont attribuées.
+
+Par virements :
+L'intégralité de ces places de spectacles est à régler dès maintenant par virements. Il vous sera demandé d'envoyer une confirmation de l'envoi de virement à bda@ens.fr.
+IBAN AEENS : FR76 4255 9100 0008 0263 8331 927
+Motif de virements : AVR25(ou MAI25)-tirageprintemps-NOM-prénom
+
+Les places sont à régler AVANT les représentations. Il est demandé à chacun·e de prendre garde à honorer l’ensemble des places qui lui sont attribuées et de s'engager de fait à payer la ou les place(s) qui lui sont attribuées.
+Des facilités de paiement sont bien évidemment possibles : nous pouvons ne pas encaisser le chèque immédiatement, ou bien découper votre paiement en deux fois. Pour ceux qui ne pourraient pas venir payer au bureau, merci de nous contacter par mail.
*Mode de retrait des places*
-Au moment du paiement, certaines places vous seront remises directement,
-d'autres seront à récupérer au cours de l'année, d'autres encore seront
-nominatives et à retirer le soir même dans les théâtres correspondants.
-Pour chaque spectacle, vous recevrez un mail quelques jours avant la
-représentation vous indiquant le mode de retrait.
-
-Nous vous rappelons que l'obtention de places du BdA vous engage à
-respecter les règles de fonctionnement :
+Au moment du paiement, certaines places vous seront remises directement, d'autres seront à récupérer au cours de l'année, d'autres encore seront nominatives et à retirer le soir même dans les théâtres correspondants. Pour chaque spectacle, vous recevrez un mail quelques jours avant la représentation vous indiquant le mode de retrait.
+Nous vous rappelons que l'obtention de places du BdA vous engage à respecter les règles de fonctionnement :
https://bda.ens.fr/lequipe/charte-bda/
-Un système de revente des places via les mails BdA-revente est disponible
-directement sur votre compte GestioCOF.
+
+Un système de revente des places via les mails BdA-revente est disponible directement sur votre compte GestioCOF. Pour pouvoir l'utiliser, il faut que vous ayez payé vos places en amont.
En vous souhaitant de très beaux spectacles tout au long de l'année,
--
-Le Bureau des Arts
\ No newline at end of file
+Le Bureau des Arts
diff --git a/bda/templates/bda/participants.html b/bda/templates/bda/participants.html
index 4ab2d1f7..c99e5182 100644
--- a/bda/templates/bda/participants.html
+++ b/bda/templates/bda/participants.html
@@ -1,5 +1,5 @@
{% extends "base_title.html" %}
-{% load staticfiles %}
+{% load static %}
{% block realcontent %}
diff --git a/gestioncof/templates/gestioncof/mails/welcome.txt b/gestioncof/templates/gestioncof/mails/welcome.txt
index aa7ff326..61244bb2 100644
--- a/gestioncof/templates/gestioncof/mails/welcome.txt
+++ b/gestioncof/templates/gestioncof/mails/welcome.txt
@@ -1,11 +1,11 @@
Bonjour {{ member.first_name }} et bienvenue au COF !
-Tu trouveras plein de trucs cool sur le site du COF : https://cof.ens.fr/ et notre page Facebook : https://www.facebook.com/cof.ulm
+Tu trouveras plein de trucs cool sur le site du COF : https://cof.ens.fr/ et notre compte instagram : https://www.instagram.com/cof_ulm
Et n'oublie pas d'aller découvrir GestioCOF, la plateforme de gestion du COF !
-Si tu as des questions, tu peux nous envoyer un mail à cof@ens.fr (on aime le spam), ou passer nous voir au Burô près de la Courô du lundi au vendredi de 12h à 14h et de 18h à 20h.
+Si tu as des questions, tu peux nous envoyer un mail à cof@ens.fr (on aime le spam), ou passer nous voir au Burô près de la Courô les lundi, mardi, jeudi et vendredi de 12h à 14h et du lundi au jeudi de 18h30 à 19h30.
-Retrouvez les évènements de rentrée pour les conscrit.e.s et les vieux/vieilles organisés par le COF et ses clubs ici : https://cof.ens.fr/planningrentree.
+Retrouvez tout les évènements organisés par le COF et ses clubs ici : https://calendrier.dgnum.eu/.
Amicalement,
-Ton COF qui t'aime.
\ No newline at end of file
+Ton COF qui t'aime.
diff --git a/gestioncof/templates/gestioncof/registration_kf_form.html b/gestioncof/templates/gestioncof/registration_kf_form.html
new file mode 100644
index 00000000..2b0711f6
--- /dev/null
+++ b/gestioncof/templates/gestioncof/registration_kf_form.html
@@ -0,0 +1,21 @@
+{% load bootstrap %}
+
+ {% if login_clipper %}
+
Inscription associée au compte clipper {{ login_clipper }}
+ {% elif member %}
+
Inscription du compte GestioCOF existant {{ member.username }}
{% endif %}
@@ -118,4 +118,4 @@
})
})
});
-
\ No newline at end of file
+
diff --git a/kfet/templates/kfet/mails/creation_trigramme.txt b/kfet/templates/kfet/mails/creation_trigramme.txt
new file mode 100644
index 00000000..25638186
--- /dev/null
+++ b/kfet/templates/kfet/mails/creation_trigramme.txt
@@ -0,0 +1,12 @@
+Salut {{ account.name }},
+
+Ton compte K-Fêt a bien été créé le {{ account.created_at }} avec le trigramme {{ account.trigramme }}.
+
+Tu peux désormais :
+- Accéder à ton historique personnel des consommations : https://{{ site }}{{ url_read }}
+- Modifier tes informations : https://{{ site }}{{ url_update }}
+- Supprimer ton compte : https://{{ site }}{{ url_delete }}
+
+En espérant te revoir bientôt,
+--
+L'équipe K-Fêt
diff --git a/kfet/templates/kfet/mails/demande_soiree.txt b/kfet/templates/kfet/mails/demande_soiree.txt
new file mode 100644
index 00000000..9fd6d635
--- /dev/null
+++ b/kfet/templates/kfet/mails/demande_soiree.txt
@@ -0,0 +1,16 @@
+Bonjour,
+
+J'aimerais organiser une soirée le {{ date }}, au thème « {{ theme|safe }} », en K-Fêt.
+Elle se terminerait à {{ horaire_fin }}, et le service serait en mode {{ service }}.
+
+Les 4 responsables de la soirée seraient :
+- {{ respo1 }}
+- {{ respo2 }}
+- {{ respo3 }}
+- {{ respo4 }}
+
+Quelques remarques supplémentaires :
+{{ remarques|safe }}
+
+Bien cordialement,
+{{ nom|safe }}
diff --git a/kfet/templates/kfet/mails/rappel.txt b/kfet/templates/kfet/mails/rappel.txt
new file mode 100644
index 00000000..b37b2b0e
--- /dev/null
+++ b/kfet/templates/kfet/mails/rappel.txt
@@ -0,0 +1,8 @@
+Bonjour {{ account.first_name }},
+
+Nous te rappelons que tu es en négatif de {{ neg_amount }}€ depuis le {{ start_date }}.
+N'oublie pas de régulariser ta situation au plus vite.
+
+En espérant te revoir très bientôt,
+--
+L'équipe K-Fêt
diff --git a/kfet/templates/kfet/nav_item.html b/kfet/templates/kfet/nav_item.html
index b5981266..76a24ca4 100644
--- a/kfet/templates/kfet/nav_item.html
+++ b/kfet/templates/kfet/nav_item.html
@@ -11,7 +11,7 @@
-->{{ text }}{{ text }}
{% if href %}
diff --git a/kfet/templates/kfet/order_create.html b/kfet/templates/kfet/order_create.html
index 20ae7b69..7e24d1c0 100644
--- a/kfet/templates/kfet/order_create.html
+++ b/kfet/templates/kfet/order_create.html
@@ -7,11 +7,20 @@
{% block main-size %}col-lg-8 col-lg-offset-2{% endblock %}
{% block main %}
+