mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 01:12:08 +01:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			family
			...
			034ad9a4ce
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					034ad9a4ce | ||
| 
						 | 
					897d37f74d | 
@@ -17,7 +17,7 @@ from ...models import WEIMembership, Bus
 | 
			
		||||
 | 
			
		||||
WORDS = {
 | 
			
		||||
    'list': [
 | 
			
		||||
        'Fiesta', 'Graillance', 'Move it move it', 'Calme', 'Nert et geek', 'Jeux de rôles et danse rock',
 | 
			
		||||
        'Fiesta', 'Graillance', 'Move it move it', 'Calme', 'Nerd et geek', 'Jeux de rôles et danse rock',
 | 
			
		||||
        'Strass et paillettes', 'Spectaculaire', 'Splendide', 'Flow inégalable', 'Rap', 'Battles légendaires',
 | 
			
		||||
        'Techno', 'Alcool', 'Kiffeur·euse', 'Rugby', 'Médiéval', 'Festif',
 | 
			
		||||
        'Stylé', 'Chipie', 'Rétro', 'Vache', 'Farfadet', 'Fanfare',
 | 
			
		||||
@@ -57,7 +57,7 @@ WORDS = {
 | 
			
		||||
                42: "Un burgouzz de valouzz",
 | 
			
		||||
                47: "Un ocarina (pour me téléporter hors de ce bourbier)",
 | 
			
		||||
                48: "Des paillettes, un micro de karaoké et une enceinte bluetooth",
 | 
			
		||||
                45: "",
 | 
			
		||||
                45: "Un kebab",
 | 
			
		||||
                44: "Une 86 et un caisson pour taper du pied",
 | 
			
		||||
                46: "Une épée, un ballon et une tireuse",
 | 
			
		||||
                43: "Des lunettes de soleil",
 | 
			
		||||
@@ -176,7 +176,33 @@ WORDS = {
 | 
			
		||||
                49: "Soirée raclette !"
 | 
			
		||||
            }
 | 
			
		||||
        ]
 | 
			
		||||
    }
 | 
			
		||||
    },
 | 
			
		||||
    'stats': [
 | 
			
		||||
        {
 | 
			
		||||
            "question": """Le WEI est structuré par bus, et au sein de chaque bus, par équipes.
 | 
			
		||||
                         Pour toi, être dans une équipe où tout le monde reste sobre (primo-entrants comme encadrants) c'est :""",
 | 
			
		||||
            "answers": [
 | 
			
		||||
                (1, "Inenvisageable"),
 | 
			
		||||
                (2, "À contre cœur"),
 | 
			
		||||
                (3, "Pourquoi pas"),
 | 
			
		||||
                (4, "Souhaitable"),
 | 
			
		||||
                (5, "Nécessaire"),
 | 
			
		||||
            ],
 | 
			
		||||
            "help_text": "(De toute façon aucun alcool n'est consommé pendant les trajets du bus, ni aller, ni retour.)",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "question": "Faire partie d'un bus qui n'apporte pas de boisson alcoolisée pour ses membres, pour toi c'est :",
 | 
			
		||||
            "answers": [
 | 
			
		||||
                (1, "Inenvisageable"),
 | 
			
		||||
                (2, "À contre cœur"),
 | 
			
		||||
                (3, "Pourquoi pas"),
 | 
			
		||||
                (4, "Souhaitable"),
 | 
			
		||||
                (5, "Nécessaire"),
 | 
			
		||||
            ],
 | 
			
		||||
            "help_text": """(Tout les bus apportent de l'alcool cette année, cette question sert à l'organisation pour l'année prochaine.
 | 
			
		||||
                         De plus il y aura de toute façon de l'alcool commun au WEI et aucun alcool n'est consommé pendant les trajets en bus.)""",
 | 
			
		||||
        },
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
IMAGES = {
 | 
			
		||||
@@ -235,7 +261,7 @@ class WEISurveyForm2025(forms.Form):
 | 
			
		||||
            all_preferred_words = WORDS['list']
 | 
			
		||||
            rng.shuffle(all_preferred_words)
 | 
			
		||||
            self.fields["words"].choices = [(w, w) for w in all_preferred_words]
 | 
			
		||||
        else:
 | 
			
		||||
        elif information.step <= len(WORDS['questions']):
 | 
			
		||||
            questions = list(WORDS['questions'].items())
 | 
			
		||||
            idx = information.step - 1
 | 
			
		||||
            if idx < len(questions):
 | 
			
		||||
@@ -251,6 +277,15 @@ class WEISurveyForm2025(forms.Form):
 | 
			
		||||
                    widget=OptionalImageRadioSelect(images=IMAGES.get(q, {})),
 | 
			
		||||
                    required=True,
 | 
			
		||||
                )
 | 
			
		||||
        elif information.step == len(WORDS['questions']) + 1:
 | 
			
		||||
            for i, v in enumerate(WORDS['stats']):
 | 
			
		||||
                self.fields[f'stat_{i}'] = forms.ChoiceField(
 | 
			
		||||
                    label=v['question'],
 | 
			
		||||
                    choices=v['answers'],
 | 
			
		||||
                    widget=forms.RadioSelect(),
 | 
			
		||||
                    required=False,
 | 
			
		||||
                    help_text=_(v.get('help_text', ''))
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
    def clean_words(self):
 | 
			
		||||
        data = self.cleaned_data['words']
 | 
			
		||||
@@ -377,7 +412,7 @@ class WEISurvey2025(WEISurvey):
 | 
			
		||||
                setattr(self.information, "word" + str(i), word)
 | 
			
		||||
            self.information.step += 1
 | 
			
		||||
            self.save()
 | 
			
		||||
        else:
 | 
			
		||||
        elif 1 <= self.information.step <= len(WORDS['questions']):
 | 
			
		||||
            questions = list(WORDS['questions'].keys())
 | 
			
		||||
            idx = self.information.step - 1
 | 
			
		||||
            if idx < len(questions):
 | 
			
		||||
@@ -385,6 +420,13 @@ class WEISurvey2025(WEISurvey):
 | 
			
		||||
                setattr(self.information, q, form.cleaned_data[q])
 | 
			
		||||
                self.information.step += 1
 | 
			
		||||
                self.save()
 | 
			
		||||
        else:
 | 
			
		||||
            for i, __ in enumerate(WORDS['stats']):
 | 
			
		||||
                ans = form.cleaned_data.get(f'stat_{i}')
 | 
			
		||||
                if ans is not None:
 | 
			
		||||
                    setattr(self.information, f'stat_{i}', ans)
 | 
			
		||||
            self.information.step += 1
 | 
			
		||||
            self.save()
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def get_algorithm_class(cls):
 | 
			
		||||
@@ -394,7 +436,7 @@ class WEISurvey2025(WEISurvey):
 | 
			
		||||
        """
 | 
			
		||||
        The survey is complete once the bus is chosen.
 | 
			
		||||
        """
 | 
			
		||||
        return self.information.step > len(WORDS['questions'])
 | 
			
		||||
        return self.information.step > len(WORDS['questions']) + 1
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    @lru_cache()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								apps/wei/static/wei/img/logo_auvergne_rhone_alpes.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								apps/wei/static/wei/img/logo_auvergne_rhone_alpes.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 34 KiB  | 
@@ -53,9 +53,11 @@ class TestWEIAlgorithm(TestCase):
 | 
			
		||||
                birth_date='2000-01-01',
 | 
			
		||||
            )
 | 
			
		||||
            information = WEISurveyInformation2025(registration)
 | 
			
		||||
            for j in range(1, 21):
 | 
			
		||||
            for j in range(1, 1 + NB_WORDS):
 | 
			
		||||
                setattr(information, f'word{j}', random.choice(WORDS['list']))
 | 
			
		||||
            information.step = 20
 | 
			
		||||
            for q in WORDS['questions']:
 | 
			
		||||
                setattr(information, q, random.choice(list(WORDS['questions'][q][1].keys())))
 | 
			
		||||
            information.step = len(WORDS['questions']) + 2
 | 
			
		||||
            information.save(registration)
 | 
			
		||||
            registration.save()
 | 
			
		||||
 | 
			
		||||
@@ -87,7 +89,7 @@ class TestWEIAlgorithm(TestCase):
 | 
			
		||||
                setattr(information, f'word{j}', random.choice(WORDS['list']))
 | 
			
		||||
            for q in WORDS['questions']:
 | 
			
		||||
                setattr(information, q, random.choice(list(WORDS['questions'][q][1].keys())))
 | 
			
		||||
            information.step = len(WORDS['questions']) + 1
 | 
			
		||||
            information.step = len(WORDS['questions']) + 2
 | 
			
		||||
            information.save(registration)
 | 
			
		||||
            registration.save()
 | 
			
		||||
            survey = WEISurvey2025(registration)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user