Skip to content
Snippets Groups Projects
Commit 38e5f5b9 authored by florimondmanca's avatar florimondmanca
Browse files

add drag-n-drop ordering on sections and questions

parent 5fca08a2
Branches
No related tags found
No related merge requests found
"""Dynamic forms admin panels."""
from django.contrib import admin
from adminsortable2.admin import SortableInlineAdminMixin
from .models import Answer, File, Form, FormEntry, Question, Section
from .views import download_multiple_forms_entries
class SectionInline(admin.StackedInline):
class SectionInline(SortableInlineAdminMixin, admin.StackedInline):
"""Inline for sections."""
model = Section
extra = 0
class QuestionInline(admin.StackedInline):
class QuestionInline(SortableInlineAdminMixin, admin.StackedInline):
"""Inline for questions."""
model = Question
......
# Generated by Django 2.0.6 on 2018-06-16 19:36
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('dynamicforms', '0014_auto_20180616_1812'),
]
operations = [
migrations.AlterModelOptions(
name='question',
options={'ordering': ('order',)},
),
migrations.AlterModelOptions(
name='section',
options={'ordering': ('order',)},
),
migrations.AddField(
model_name='question',
name='order',
field=models.PositiveIntegerField(default=0, verbose_name='position'),
),
migrations.AddField(
model_name='section',
name='order',
field=models.PositiveIntegerField(default=0, verbose_name='position'),
),
]
......@@ -59,8 +59,17 @@ class Section(models.Model):
verbose_name='formulaire',
help_text="Formulaire associé à la section.")
order = models.PositiveIntegerField(
'position',
default=0,
blank=False,
null=False)
questions: models.Manager
class Meta: # noqa
ordering = ('order',)
def __str__(self):
return str(self.title)
......@@ -108,8 +117,17 @@ class Question(models.Model):
verbose_name='section',
help_text="Section de formulaire associée à la question.")
order = models.PositiveIntegerField(
'position',
default=0,
blank=False,
null=False)
answers: models.Manager
class Meta: # noqa
ordering = ('order',)
def __str__(self) -> str:
return f'{self.text}{self.required and "*" or ""}'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment