Skip to content

Commit 1b6ede7

Browse files
committed
Backend: CFP availability
1 parent eb58536 commit 1b6ede7

File tree

5 files changed

+30
-14
lines changed

5 files changed

+30
-14
lines changed

backend/api/participants/types.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from typing import Optional
22

3+
from strawberry.scalars import JSON
34
import strawberry
45
from strawberry import ID
56

@@ -22,6 +23,7 @@ class Participant:
2223
mastodon_handle: str
2324
speaker_id: strawberry.Private[int]
2425
fullname: str
26+
speaker_availabilities: JSON
2527

2628
_speaker_level: strawberry.Private[str]
2729
_previous_talk_video: strawberry.Private[str]
@@ -59,4 +61,5 @@ def from_model(cls, instance):
5961
linkedin_url=instance.linkedin_url,
6062
facebook_url=instance.facebook_url,
6163
mastodon_handle=instance.mastodon_handle,
64+
speaker_availabilities=instance.speaker_availabilities or {},
6265
)

backend/api/submissions/mutations.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from strawberry.scalars import JSON
2+
13
from django.db import transaction
24
import math
35
import re
@@ -236,6 +238,7 @@ class UpdateSubmissionInput(BaseSubmissionInput):
236238
speaker_linkedin_url: str
237239
speaker_facebook_url: str
238240
speaker_mastodon_handle: str
241+
speaker_availabilities: JSON
239242

240243
topic: Optional[ID] = strawberry.field(default=None)
241244
tags: list[ID] = strawberry.field(default_factory=list)
@@ -307,6 +310,7 @@ def update_submission(
307310
"linkedin_url": input.speaker_linkedin_url,
308311
"facebook_url": input.speaker_facebook_url,
309312
"mastodon_handle": input.speaker_mastodon_handle,
313+
"speaker_availabilities": input.speaker_availabilities,
310314
},
311315
)
312316

backend/participants/admin.py

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,7 @@
88
class ParticipantForm(forms.ModelForm):
99
class Meta:
1010
model = Participant
11-
fields = [
12-
"conference",
13-
"user",
14-
"photo",
15-
"bio",
16-
"website",
17-
"twitter_handle",
18-
"instagram_handle",
19-
"linkedin_url",
20-
"facebook_url",
21-
"mastodon_handle",
22-
"speaker_level",
23-
"previous_talk_video",
24-
]
11+
fields = "__all__"
2512

2613

2714
@admin.register(Participant)
@@ -54,6 +41,7 @@ class ParticipantAdmin(admin.ModelAdmin):
5441
"mastodon_handle",
5542
"speaker_level",
5643
"previous_talk_video",
44+
"speaker_availabilities",
5745
),
5846
},
5947
),
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 5.1.1 on 2024-11-28 22:08
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('participants', '0011_alter_participant_photo'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='participant',
15+
name='speaker_availabilities',
16+
field=models.JSONField(blank=True, null=True, verbose_name='speaker availabilities'),
17+
),
18+
]

backend/participants/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ class SpeakerLevels(models.TextChoices):
5454
previous_talk_video = models.URLField(
5555
_("previous talk video"), blank=True, max_length=2049
5656
)
57+
speaker_availabilities = models.JSONField(
58+
_("speaker availabilities"), null=True, blank=True
59+
)
5760

5861
objects = ParticipantQuerySet().as_manager()
5962

0 commit comments

Comments
 (0)