Skip to content

Commit

Permalink
Feat: add background image to form
Browse files Browse the repository at this point in the history
  • Loading branch information
AmooHashem committed Jan 26, 2025
1 parent 9b7cac7 commit fa5cc74
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 1 deletion.
18 changes: 18 additions & 0 deletions apps/fsm/migrations/0237_form_background_image.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 4.1.3 on 2025-01-26 08:46

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('fsm', '0236_alter_fsm_participant_limit'),
]

operations = [
migrations.AddField(
model_name='form',
name='background_image',
field=models.URLField(blank=True, null=True),
),
]
1 change: 1 addition & 0 deletions apps/fsm/models/form.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class AudienceType(models.TextChoices):
choices=AudienceType.choices,
default=AudienceType.ALL
)
background_image = models.URLField(null=True, blank=True)
start_date = models.DateTimeField(null=True, blank=True)
end_date = models.DateTimeField(null=True, blank=True)
participant_limit = models.PositiveIntegerField(default=0)
Expand Down
2 changes: 2 additions & 0 deletions apps/fsm/serializers/form/form_polymorphic_serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ class FormPolymorphicSerializer(PolymorphicSerializer):
Form: FormSerializer,
RegistrationForm: RegistrationFormSerializer,
}

resource_type_field_name = 'type'
14 changes: 13 additions & 1 deletion apps/fsm/serializers/form/form_serializer.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from apps.fsm.models.form import Form
from apps.fsm.serializers.object_serializer import ObjectSerializer
from apps.fsm.serializers.papers.paper_serializer import PaperSerializer


Expand All @@ -8,5 +9,16 @@ class Meta(PaperSerializer.Meta):
model = Form
ref_name = 'registration_form'
fields = [field for field in PaperSerializer.Meta.fields if field != 'widgets'] +\
['audience_type', 'start_date', 'end_date']
['audience_type', 'start_date', 'end_date', 'background_image']
read_only_fields = PaperSerializer.Meta.read_only_fields + []

def to_representation(self, instance):
# add object fields to representation
representation = super().to_representation(instance)
object_instance = instance.object
representation = {
**ObjectSerializer(object_instance, context=self.context).data,
**representation,
}

return representation

0 comments on commit fa5cc74

Please sign in to comment.