Skip to content

Commit 34cb878

Browse files
authored
Add talk_manager field to schedule item (#4414)
1 parent 6c365ca commit 34cb878

File tree

4 files changed

+39
-0
lines changed

4 files changed

+39
-0
lines changed

backend/api/schedule/types/schedule_item.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ def user_has_spot(self, info) -> bool:
6161
user_id = info.context.request.user.id
6262
return self.attendees.filter(user_id=user_id).exists()
6363

64+
@strawberry.field
65+
def user_is_talk_manager(self, info: Info) -> bool:
66+
if not (user_id := info.context.request.user.id):
67+
return False
68+
69+
return self.talk_manager_id == user_id
70+
6471
@strawberry.field
6572
def speakers(self, info: Info) -> list[ScheduleItemUser]:
6673
speakers = []

backend/schedule/admin.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@ class ScheduleItemAdmin(ConferencePermissionMixin, admin.ModelAdmin):
314314
"language",
315315
"slot",
316316
"speakers_names",
317+
"talk_manager",
317318
"type",
318319
"submission",
319320
)
@@ -339,6 +340,7 @@ class ScheduleItemAdmin(ConferencePermissionMixin, admin.ModelAdmin):
339340
"keynote",
340341
"link_to",
341342
"slido_url",
343+
"talk_manager",
342344
)
343345
},
344346
),
@@ -377,6 +379,7 @@ class ScheduleItemAdmin(ConferencePermissionMixin, admin.ModelAdmin):
377379
"submission__speaker__full_name",
378380
"submission__speaker__email",
379381
)
382+
autocomplete_fields = ("talk_manager",)
380383
inlines = [
381384
ScheduleItemAdditionalSpeakerInline,
382385
ScheduleItemAttendeeInline,
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Generated by Django 5.1.4 on 2025-05-09 15:56
2+
3+
import django.db.models.deletion
4+
from django.conf import settings
5+
from django.db import migrations, models
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('schedule', '0054_scheduleitem_link_to_alter_scheduleitem_type'),
12+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
13+
]
14+
15+
operations = [
16+
migrations.AddField(
17+
model_name='scheduleitem',
18+
name='talk_manager',
19+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='talk manager'),
20+
),
21+
]

backend/schedule/models.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,14 @@ class ScheduleItem(TimeStampedModel):
232232
)
233233
link_to = models.CharField(_("link to"), blank=True, default="", max_length=1024)
234234

235+
talk_manager = models.ForeignKey(
236+
"users.User",
237+
on_delete=models.SET_NULL,
238+
null=True,
239+
blank=True,
240+
verbose_name=_("talk manager"),
241+
)
242+
235243
image = models.ImageField(
236244
_("image"), null=True, blank=True, upload_to="schedule_items"
237245
)

0 commit comments

Comments
 (0)