|
| 1 | +# Generated by Django 5.0.3 on 2025-04-13 15:24 |
| 2 | + |
| 3 | +from django.db import migrations |
| 4 | + |
| 5 | +def migrate_schedule_data(apps, schema_editor): |
| 6 | + OldCalendarRelation = apps.get_model('schedule', 'CalendarRelation') |
| 7 | + OldCalendar = apps.get_model('schedule', 'Calendar') |
| 8 | + OldEvent = apps.get_model('schedule', 'Event') |
| 9 | + OldOccurrence = apps.get_model('schedule', 'Occurrence') |
| 10 | + OldRule = apps.get_model('schedule', 'Rule') |
| 11 | + OldEventRelation = apps.get_model('schedule', 'EventRelation') |
| 12 | + |
| 13 | + NewCalendarRelation = apps.get_model('ohq_schedule', 'CalendarRelation') |
| 14 | + NewCalendar = apps.get_model('ohq_schedule', 'Calendar') |
| 15 | + NewEvent = apps.get_model('ohq_schedule', 'Event') |
| 16 | + NewOccurrence = apps.get_model('ohq_schedule', 'Occurrence') |
| 17 | + NewRule = apps.get_model('ohq_schedule', 'Rule') |
| 18 | + NewEventRelation = apps.get_model('ohq_schedule', 'EventRelation') |
| 19 | + |
| 20 | + for old_calendar_relation in OldCalendarRelation.objects.all(): |
| 21 | + NewCalendarRelation.objects.create( |
| 22 | + id=old_calendar_relation.id, |
| 23 | + calendar_id=old_calendar_relation.calendar_id, |
| 24 | + content_type_id=old_calendar_relation.content_type_id, |
| 25 | + object_id=old_calendar_relation.object_id, |
| 26 | + distinction=old_calendar_relation.distinction, |
| 27 | + inheritable=old_calendar_relation.inheritable |
| 28 | + ) |
| 29 | + |
| 30 | + for old_calendar in OldCalendar.objects.all(): |
| 31 | + NewCalendar.objects.create( |
| 32 | + id=old_calendar.id, |
| 33 | + name=old_calendar.name, |
| 34 | + slug=old_calendar.slug |
| 35 | + ) |
| 36 | + |
| 37 | + for old_rule in OldRule.objects.all(): |
| 38 | + NewRule.objects.create( |
| 39 | + id=old_rule.id, |
| 40 | + name=old_rule.name, |
| 41 | + description=old_rule.description, |
| 42 | + frequency=old_rule.frequency, |
| 43 | + params=old_rule.params |
| 44 | + ) |
| 45 | + |
| 46 | + for old_event in OldEvent.objects.all(): |
| 47 | + NewEvent.objects.create( |
| 48 | + id=old_event.id, |
| 49 | + start=old_event.start, |
| 50 | + end=old_event.end, |
| 51 | + title=old_event.title, |
| 52 | + description=old_event.description, |
| 53 | + calendar_id=old_event.calendar_id, |
| 54 | + rule_id=old_event.rule_id, |
| 55 | + end_recurring_period=old_event.end_recurring_period, |
| 56 | + location=old_event.location if hasattr(old_event, 'location') else '', |
| 57 | + bookable=old_event.bookable if hasattr(old_event, 'bookable') else False, |
| 58 | + interval=old_event.interval if hasattr(old_event, 'interval') else None |
| 59 | + ) |
| 60 | + |
| 61 | + for old_occurrence in OldOccurrence.objects.all(): |
| 62 | + NewOccurrence.objects.create( |
| 63 | + id=old_occurrence.id, |
| 64 | + event_id=old_occurrence.event_id, |
| 65 | + title=old_occurrence.title, |
| 66 | + description=old_occurrence.description, |
| 67 | + start=old_occurrence.start, |
| 68 | + end=old_occurrence.end, |
| 69 | + cancelled=old_occurrence.cancelled, |
| 70 | + original_start=old_occurrence.original_start, |
| 71 | + original_end=old_occurrence.original_end, |
| 72 | + location=old_occurrence.location if hasattr(old_occurrence, 'location') else '', |
| 73 | + interval=old_occurrence.interval if hasattr(old_occurrence, 'interval') else None |
| 74 | + ) |
| 75 | + |
| 76 | + for old_relation in OldEventRelation.objects.all(): |
| 77 | + NewEventRelation.objects.create( |
| 78 | + id=old_relation.id, |
| 79 | + event_id=old_relation.event_id, |
| 80 | + content_type_id=old_relation.content_type_id, |
| 81 | + object_id=old_relation.object_id, |
| 82 | + distinction=old_relation.distinction |
| 83 | + ) |
| 84 | + |
| 85 | +def reverse_migrate_schedule_data(apps, schema_editor): |
| 86 | + NewCalendarRelation = apps.get_model('ohq_schedule', 'CalendarRelation') |
| 87 | + NewCalendar = apps.get_model('ohq_schedule', 'Calendar') |
| 88 | + NewEvent = apps.get_model('ohq_schedule', 'Event') |
| 89 | + NewOccurrence = apps.get_model('ohq_schedule', 'Occurrence') |
| 90 | + NewRule = apps.get_model('ohq_schedule', 'Rule') |
| 91 | + NewEventRelation = apps.get_model('ohq_schedule', 'EventRelation') |
| 92 | + |
| 93 | + NewCalendarRelation.objects.all().delete() |
| 94 | + NewCalendar.objects.all().delete() |
| 95 | + NewEvent.objects.all().delete() |
| 96 | + NewOccurrence.objects.all().delete() |
| 97 | + NewRule.objects.all().delete() |
| 98 | + NewEventRelation.objects.all().delete() |
| 99 | + |
| 100 | +class Migration(migrations.Migration): |
| 101 | + dependencies = [ |
| 102 | + ('ohq', '0022_booking'), |
| 103 | + ('schedule', '0001_initial'), |
| 104 | + ('ohq_schedule', '0015_event_bookable_event_interval_event_location_and_more'), |
| 105 | + ] |
| 106 | + operations = [ |
| 107 | + migrations.RunPython(migrate_schedule_data, reverse_migrate_schedule_data), |
| 108 | + ] |
0 commit comments