diff --git a/src/pretix/base/models/items.py b/src/pretix/base/models/items.py index 0f7ad92a3d..11c5f4c09f 100644 --- a/src/pretix/base/models/items.py +++ b/src/pretix/base/models/items.py @@ -2036,6 +2036,9 @@ class Questionnaire(LoggedModel): blank=True, ) + class Meta: + ordering = ('position', 'id') + class QuestionnaireChild(LoggedModel): class SystemQuestion(models.TextChoices): @@ -2084,6 +2087,9 @@ class QuestionnaireChild(LoggedModel): ) dependency_values = MultiStringField(default=[]) + class Meta: + ordering = ('position', 'id') + class Quota(LoggedModel): """ diff --git a/src/pretix/static/pretixcontrol/js/ui/questionnaires/Editor.vue b/src/pretix/static/pretixcontrol/js/ui/questionnaires/Editor.vue index 910cca0436..8d9697607d 100644 --- a/src/pretix/static/pretixcontrol/js/ui/questionnaires/Editor.vue +++ b/src/pretix/static/pretixcontrol/js/ui/questionnaires/Editor.vue @@ -50,10 +50,14 @@ function addOrderQuestionnaire () { async function saveData () { using pb = ProgressBar.show('saving questionnaires') let promises = []; + let i = 0; for (const questionnaire of order_questionnaires.value) { + questionnaire.position = i++; promises.push(saveQuestionnaire(questionnaire)) } + i = 0; for (const questionnaire of position_questionnaires.value) { + questionnaire.position = i++; promises.push(saveQuestionnaire(questionnaire)) } await Promise.all(promises)