diff --git a/Ion.egg-info/SOURCES.txt b/Ion.egg-info/SOURCES.txt index ae39049f582..387d0261cb0 100644 --- a/Ion.egg-info/SOURCES.txt +++ b/Ion.egg-info/SOURCES.txt @@ -758,6 +758,7 @@ intranet/apps/polls/migrations/0009_auto_20170425_1730.py intranet/apps/polls/migrations/0010_poll_is_secret.py intranet/apps/polls/migrations/0011_auto_20220502_2202.py intranet/apps/polls/migrations/0012_poll_is_election.py +intranet/apps/polls/migrations/0013_poll_is_randomized.py intranet/apps/polls/migrations/__init__.py intranet/apps/preferences/__init__.py intranet/apps/preferences/fields.py diff --git a/intranet/apps/polls/forms.py b/intranet/apps/polls/forms.py index f6a61172865..7f950f190b2 100644 --- a/intranet/apps/polls/forms.py +++ b/intranet/apps/polls/forms.py @@ -13,10 +13,11 @@ def clean_description(self): class Meta: model = Poll - fields = ["title", "description", "start_time", "end_time", "visible", "is_secret", "is_election", "groups"] + fields = ["title", "description", "start_time", "end_time", "visible", "is_secret", "is_election", "is_randomized", "groups"] widgets = {"description": forms.Textarea()} - labels = {"is_secret": "Secret", "is_election": "Election"} + labels = {"is_secret": "Secret", "is_election": "Election", "is_randomized": "Randomize"} help_texts = { "is_secret": "This will prevent Ion administrators from viewing individual users' votes.", "is_election": "Enable election formatting and results features.", + "is_randomized": "Enable randomization of choices.", } diff --git a/intranet/apps/polls/migrations/0013_poll_is_randomized.py b/intranet/apps/polls/migrations/0013_poll_is_randomized.py new file mode 100644 index 00000000000..6ce333fe3ac --- /dev/null +++ b/intranet/apps/polls/migrations/0013_poll_is_randomized.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.17 on 2023-05-06 23:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('polls', '0012_poll_is_election'), + ] + + operations = [ + migrations.AddField( + model_name='poll', + name='is_randomized', + field=models.BooleanField(default=False), + ), + ] diff --git a/intranet/apps/polls/models.py b/intranet/apps/polls/models.py index 9555468eb5a..3ad004b7950 100644 --- a/intranet/apps/polls/models.py +++ b/intranet/apps/polls/models.py @@ -70,6 +70,7 @@ class Poll(models.Model): visible = models.BooleanField(default=False) is_secret = models.BooleanField(default=False) is_election = models.BooleanField(default=False) + is_randomized = models.BooleanField(default=False) groups = models.ManyToManyField(DjangoGroup, blank=True) # Access questions through .question_set diff --git a/intranet/apps/polls/views.py b/intranet/apps/polls/views.py index 489bfa8bbb1..133df684693 100644 --- a/intranet/apps/polls/views.py +++ b/intranet/apps/polls/views.py @@ -243,7 +243,7 @@ def poll_vote_view(request, poll_id): for q in poll.question_set.all(): current_votes = Answer.objects.filter(user=user, question=q) - if q.type == Question.ELECTION: + if q.poll.is_randomized: choices = q.random_choice_set else: choices = q.choice_set.all()