9f12763f8b
Server: - ListOfSpeakers (LOS) is now a speprate model, containing of an id, speakers, closed and a content_object. - Moved all speaker related views from ItemViewSet to the new ListOfSpeakersViewSet. - Make Mixins for content objects of items and lists of speakers. - Migrations: Move the lists of speakers from items to the LOS model. Client: - Removed the speaker repo and moved functionality to the new ListOfSpeakersRepositoryService. - Splitted base classes for agenda item content objects to items and LOS. - CurrentAgendaItemService -> CurrentListOfSpeakersSerivce - Cleaned up the list of speakers component.
57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
# Generated by Django 2.1.7 on 2019-04-25 07:00
|
|
|
|
from django.db import migrations
|
|
|
|
|
|
def move_speakers_to_own_model(apps, schema_editor):
|
|
"""
|
|
Create a list of speaker for every item that exists. Move the speakers over to
|
|
the new list of speakers.
|
|
"""
|
|
Item = apps.get_model("agenda", "Item")
|
|
Speaker = apps.get_model("agenda", "Speaker")
|
|
ListOfSpeakers = apps.get_model("agenda", "ListOfSpeakers")
|
|
|
|
for item in Item.objects.all():
|
|
los = ListOfSpeakers(
|
|
content_type=item.content_type,
|
|
object_id=item.object_id,
|
|
closed=item.speaker_list_closed,
|
|
)
|
|
los.save(skip_autoupdate=True)
|
|
|
|
for speaker in Speaker.objects.all():
|
|
speaker.list_of_speakers = ListOfSpeakers.objects.get(
|
|
object_id=speaker.item.object_id, content_type=speaker.item.content_type
|
|
)
|
|
speaker.save(skip_autoupdate=True)
|
|
|
|
|
|
def add_speakers_to_mediafiles(apps, schema_editor):
|
|
"""
|
|
Adds lists of speakers for all mediafiles.
|
|
"""
|
|
ListOfSpeakers = apps.get_model("agenda", "ListOfSpeakers")
|
|
ContentType = apps.get_model("contenttypes", "ContentType")
|
|
Mediafile = apps.get_model("mediafiles", "Mediafile")
|
|
|
|
mediafile_content_type = ContentType.objects.get_for_model(Mediafile)
|
|
for mediafile in Mediafile.objects.all():
|
|
los = ListOfSpeakers(
|
|
content_type=mediafile_content_type, object_id=mediafile.pk
|
|
)
|
|
los.save(skip_autoupdate=True)
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
("agenda", "0007_list_of_speakers_1"),
|
|
("mediafiles", "0003_auto_20190119_1425"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(move_speakers_to_own_model),
|
|
migrations.RunPython(add_speakers_to_mediafiles),
|
|
]
|