From a201d8376a698005a0a284aed1c480b5c0da28db Mon Sep 17 00:00:00 2001 From: mcngnt Date: Mon, 26 Aug 2024 17:09:05 +0200 Subject: [PATCH] updated survey --- ...lter_opener_options_alter_opener_opener.py | 24 ++++ .../0005_alter_food_polymorphic_ctype.py | 20 +++ ...7_alter_note_polymorphic_ctype_and_more.py | 25 ++++ .../0009_alter_sogecredit_transactions.py | 19 +++ apps/wei/forms/surveys/wei2024.py | 126 ++++++++++++------ 5 files changed, 175 insertions(+), 39 deletions(-) create mode 100644 apps/activity/migrations/0005_alter_opener_options_alter_opener_opener.py create mode 100644 apps/food/migrations/0005_alter_food_polymorphic_ctype.py create mode 100644 apps/note/migrations/0007_alter_note_polymorphic_ctype_and_more.py create mode 100644 apps/treasury/migrations/0009_alter_sogecredit_transactions.py diff --git a/apps/activity/migrations/0005_alter_opener_options_alter_opener_opener.py b/apps/activity/migrations/0005_alter_opener_options_alter_opener_opener.py new file mode 100644 index 00000000..c09500e1 --- /dev/null +++ b/apps/activity/migrations/0005_alter_opener_options_alter_opener_opener.py @@ -0,0 +1,24 @@ +# Generated by Django 4.2.15 on 2024-08-28 08:00 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('note', '0006_trust'), + ('activity', '0004_opener'), + ] + + operations = [ + migrations.AlterModelOptions( + name='opener', + options={'verbose_name': 'Opener', 'verbose_name_plural': 'Openers'}, + ), + migrations.AlterField( + model_name='opener', + name='opener', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activity_responsible', to='note.note', verbose_name='Opener'), + ), + ] diff --git a/apps/food/migrations/0005_alter_food_polymorphic_ctype.py b/apps/food/migrations/0005_alter_food_polymorphic_ctype.py new file mode 100644 index 00000000..5473bffc --- /dev/null +++ b/apps/food/migrations/0005_alter_food_polymorphic_ctype.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.15 on 2024-08-28 08:00 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('contenttypes', '0002_remove_content_type_name'), + ('food', '0004_auto_20240813_2358'), + ] + + operations = [ + migrations.AlterField( + model_name='food', + name='polymorphic_ctype', + field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype'), + ), + ] diff --git a/apps/note/migrations/0007_alter_note_polymorphic_ctype_and_more.py b/apps/note/migrations/0007_alter_note_polymorphic_ctype_and_more.py new file mode 100644 index 00000000..8d0e8a19 --- /dev/null +++ b/apps/note/migrations/0007_alter_note_polymorphic_ctype_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 4.2.15 on 2024-08-28 08:00 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('contenttypes', '0002_remove_content_type_name'), + ('note', '0006_trust'), + ] + + operations = [ + migrations.AlterField( + model_name='note', + name='polymorphic_ctype', + field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype'), + ), + migrations.AlterField( + model_name='transaction', + name='polymorphic_ctype', + field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype'), + ), + ] diff --git a/apps/treasury/migrations/0009_alter_sogecredit_transactions.py b/apps/treasury/migrations/0009_alter_sogecredit_transactions.py new file mode 100644 index 00000000..e3a46576 --- /dev/null +++ b/apps/treasury/migrations/0009_alter_sogecredit_transactions.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.15 on 2024-08-28 08:00 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('note', '0007_alter_note_polymorphic_ctype_and_more'), + ('treasury', '0008_auto_20240322_0045'), + ] + + operations = [ + migrations.AlterField( + model_name='sogecredit', + name='transactions', + field=models.ManyToManyField(blank=True, related_name='+', to='note.membershiptransaction', verbose_name='membership transactions'), + ), + ] diff --git a/apps/wei/forms/surveys/wei2024.py b/apps/wei/forms/surveys/wei2024.py index e37cf621..21bd8407 100644 --- a/apps/wei/forms/surveys/wei2024.py +++ b/apps/wei/forms/surveys/wei2024.py @@ -8,38 +8,50 @@ from django.db import transaction from django.db.models import Q from .base import WEISurvey, WEISurveyInformation, WEISurveyAlgorithm, WEIBusInformation -from ...models import WEIMembership +from ...models import Bus, WEIMembership buses_descr = [ [ - "Magi[Kar]p", "#ef5568", - """bus faible en alcool mais fort en connerie avec une partie calme pour les amateurs de sieste et de jeux de société. - Non discriminant il accepte tout le monde y compris le plus nulle des pokémons (magicarpe !!!!!!). Malgré les - accusations mensongères, il n'y a aucun weeb dans le Magi[Kar]p""", + "Magi[Kar]p", "#ef5568", 0, + """Vous l'aurez compris au nom du bus, l'ambiance est aux jeux et à la culture geek ! Ici, vous trouverez une ambiance + calme avec une bonne dose d'autodérision et de second degré. Que vous ayez besoin de beaucoup dormir pour tenir la soirée + du lendemain, ou que vous souhaitiez faire nuit blanche pour jouer toute la nuit, vous pouvez nous rejoindre. Votre voix + n'y survivra peut-être pas à force de chanter. PS : les meilleurs cocktails du WEI sont chez nous, à déguster, pas à + siphoner !""", ], [ - "Va[car]me", "#fd7a28", - "descr", + "Va[car]me", "#fd7a28", 0, + """Ici c'est le bus du bruit. Que ce soit les groupes de musique du Bureau des Arts ou la fanfare, on sera là pour vous + ambiancer ! On fera en sorte que vous vous souveniez de votre WEI et de son Vacarme !""", ], [ - "[Kar]aïbes", "#a5cfdd", - "descr", + "[Kar]aïbes", "#a5cfdd", 0, + """Bus dans le thème des Caraïbes … 🐬🏴‍☠️🐬""", ], [ - "[Kar]di [Bus]", "#e46398", - "descr", + "[Kar]di [Bus]", "#e46398", 0, + """Bienvenue à bord du Kardi Bus, la seul, l’unique, l’inimitable pépite de ce weekend d’intégration ! Inspiré par les + icônes suprêmes de la pop culture telles les Bratz, les Winx et autres Mean Girls, notre bus est un sanctuaire de style, + d’audace et de pur plaisir. A nos cotés attends toi à siroter tes meilleurs Cosmo, sex on the Beach et autres cocktails + de maxi pétasse tout en papotant entre copains copines ! Si tu rejoins le Kardi Bus, tu entres dans un monde où tu + pourras te déhancher sur du Beyoncé, Britney, Aya et autres reines de la pop ! À très vite, les futures stars du Kardi + Bus !""", ], [ - "Sparta[bus] 🐺🐒🏉", "#ebdac2", - "descr", + "Sparta[bus] 🏉", "#ebdac2", 0, + """Dans notre bus, on vous donne un avant goût des plus grandes assos de l'ENS : les Kyottes et l'Aspique (clubs de rugby + féminin et masculin, mais pas que). Bien entendu, qui dit rugby dit les copaings, le pastaga et la Pena Bayona, mais vous + verrez par vous même qu'on est ouvert à toutes propositions quand il s'agit de faire la fête. Pour les casse-cou comme + pour les plus calmes, vous trouverez au bus Aspique-Kyottes les 2A+ qui vous feront kiffer votre WEI.""", ], [ - "Zanzo[Bus]", "#FFFF", - "descr", + "Zanzo[Bus]", "#FFFF", 0, + """Dans un entre-trois bien senti entre zinzinerie, enfance et vieillerie, le Zanzo[BUS] est un concentré de fun mêlé à + de la dinguerie à gogo. N'hésitez plus et rejoignez-nous pour un WEI toujours plus déjanté !""", ], [ - "Bran[Kar]", "#6da1ac", + "Bran[Kar] 🥳", "#6da1ac", 3.5, """Si vous ne connaissez pas le Bran[Kar], c’est comme une grande famille qui fait un apéro, qui se bourre un peu la gueule en discutant des heures autour d’une table remplie de bouffe et de super bons cocktails (la plupart des barmen/barwomen du bus sont les barmans de Shakens), sauf qu’on est un bus du Wei (vous comprendrez bien le nom de notre @@ -47,56 +59,92 @@ buses_descr = [ musique !""", ], [ - "Techno [kar]ade", "#8065a3", - "descr" + "Techno [kar]ade", "#8065a3", 0, + """Avis à tous·tes les gauchos, amoureux·ses de la fête et des manifs : le Techno [kar]ade vous ouvre grand ses bras pour + finir en beauté votre première inté. Préparez-vous à vous abreuver de cocktails (savamment élaborés) à la vibration d’un + système son fabriqué pour l’occasion. Des sets technos à « Mon père était tellement de gauche » en passant par « Female + Body », le car accueillant les meilleures DJs du plateau saura animer le trajet aussi bien que les soirées. Si alcool et + musique seront au rendez-vous, les maîtres mots sont sécurité et inclusivité. Qui que vous soyez et quelle que soit votre + manière de vous amuser, notre objectif est que vous vous sentiez à l’aise pour rencontrer au mieux les 1A, les 2A et les + (nombreux) 3A+ qui auront répondu à l’appel. Bref, rejoignez-nous, on est super cools :)""" ], [ - "[Bus]ka-P", "#7c4768", - "descr", + "[Bus]ka-P", "#7c4768", 0, + """Booska-p, c’est le « site N°1 du Rap français ». Le [Bus]ka-p ? Le bus N°1 sur l’ambiance au WEI. Les nuits vont être + courtes, les cocktails vont couler à flots : tout sera réuni pour vivre un week-end dont tu te souviendras toute ta vie. + Au programme pas un seul temps mort et un maximum de rencontres pour bien commencer ta première année à l’ENS. Et bien + entendu, le tout accompagné des meilleurs sons, de Jul à Aya, en passant par ABBA et Sexion d’Assaut. Bref, si tu veux + vivre un WEI d’anthologie et faire la fête, de jour comme de nuit, nous t’accueillons avec plaisir !""", ], ] -def get_survey_info(id): +def get_survey_info(i): s = {"recap": { "1": 0, - "2": 0, - "3": 0, - "4": 0, - "5": 0, }} - s_ = {f"bus{id}": {f"{i}": 0 for i in range(1, 5 + 1)} for id in range(len(buses_descr))} + s_ = {f"bus{i}": {f"{i}": 0 for i in range(1, 5 + 1)} for i in range(len(buses_descr))} s.update(s_) - s.update({f"bus{id}": {f"{i}": i for i in range(1, 5 + 1)}}) + s.update({f"bus{i}": {f"{join}": join for join in range(1, 5 + 1)}}) return {"scores": s} -def print_bus(id): - return buses_descr[id][0] + "\n\n" + buses_descr[id][2] +def print_bus(i): + return f"""

{buses_descr[i][0]}


+ Alcoolomètre : {buses_descr[i][2]} / 5 🍻

{buses_descr[i][3]}
""" def print_all_buses(): - liste = [print_bus(id) for id in range(len(buses_descr))] - return "

---------

".join(liste) + liste = [print_bus(i) for i in range(len(buses_descr))] + return "



".join(liste) + + +def populate_buses(self): + self.buses = [] + for i in range(len(buses_descr)): + bus = Bus.objects.create(wei=self.wei, name=f"{buses_descr[i][0]}", size=50) + self.buses.append(bus) + information = WEIBusInformation2024(bus) + information.scores = get_survey_info(i) + information.save() + bus.save() + + +def get_number_comment(i): + match i: + case 1: + return "Même pas en rêve" + case 2: + return "Pas envie" + case 3: + return "Mouais..." + case 4: + return "Pourquoi pas !" + case 5: + return "Ce bus ou rien !!!" + case _: + return "" WORDS = { "recap": [ - """Chèr⋅e 1A, te voilà arrivé⋅e devant un choix fatidique, le choix de ton bus.......
- (Musique effrayante)
- Petite blagounette évidemment, chacun des bus te permettra de passer un excellent WEI ! - Mais quitte à avoir le choix, voici la liste de tous les bus ainsi qu'une description détaillée de ces derniers ! - Prends ton temps, observe les bien et quand tu te sens prêt⋅e, appuye sur le bouton 'Noter les bus' pour continuer - (pas besoin d'apprendre par cœur les bus, la description du bus te sera rappeler avant de le noter !)


""" + print_all_buses(), + """Chèr⋅e 1A, te voilà arrivé⋅e au moment fatidique du choix de ton bus !


+ Ton bus est constitué des gens avec qui tu passeras la majorité de ton temps : que ce soit le voyage d'aller et de + retour et les différentes activité qu'ils pourront te proposer tout au long du WEI donc choisis le bien ! +

Tu trouveras ci-dessous la liste de tous les bus ainsi qu'une description détaillée de ces derniers. + Prends ton temps pour étudier chacun d'eux et quand tu te sens prêt⋅e, appuye sur le bouton 'J'ai pris conaissance + des bus' pour continuer +
(pas besoin d'apprendre par cœur chaque bus, la description de chaque bus te sera rappeler avant de lui attribuer + une note !)



""" + print_all_buses(), { - "1": "Noter les bus :", + "1": "J'ai pris conaissance des différents bus et me sent fin prêt à choisir celui qui me convient le mieux !", } ] } WORDS.update({ - f"bus{id}": [print_bus(id), {i: f"Noter {i}/5" for i in range(1, 5 + 1)}] for id in range(len(buses_descr)) + f"bus{id}": [print_bus(id), {i: f"{get_number_comment(i)} ({i}/5)" for i in range(1, 5 + 1)}] for id in range(len(buses_descr)) })