Source code for radioco.apps.schedules.migrations.0004__v3_0__adding_rrules

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

import datetime

import django.db.models.deletion
import recurrence.fields
from django.db import migrations, models
from django.utils.timezone import utc


[docs]def migrate_daily_recurrences(apps, schema_editor): """ Migration to convert weekly recurrences into new complex recurrences """ Schedule = apps.get_model("schedules", "Schedule") for schedule in Schedule.objects.all(): schedule.recurrences = recurrence.Recurrence(rrules=[recurrence.Rule(recurrence.WEEKLY, byday=(int(schedule.day), ))]) schedule.save()
[docs]class Migration(migrations.Migration): dependencies = [ ('schedules', '0003__v3_0__create_excludeddates_model'), ] operations = [ migrations.AddField( model_name='schedule', name='end_date', field=models.DateTimeField(help_text='This field is dynamically generated to improve performance', null=True, verbose_name='end date', blank=True), ), migrations.AddField( model_name='schedule', name='from_collection', field=models.ForeignKey(related_name='child_schedules', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='schedules.Schedule', null=True), ), migrations.AddField( model_name='schedule', name='recurrences', field=recurrence.fields.RecurrenceField(default=recurrence.Recurrence(rrules=[recurrence.Rule(recurrence.WEEKLY)]), help_text='Excluded dates will appear in this list as result of dragging and dropping.', verbose_name='recurrences'), preserve_default=False, ), migrations.RunPython(migrate_daily_recurrences), migrations.AddField( model_name='schedule', name='start_date', field=models.DateTimeField(default=datetime.datetime(2015, 1, 1, 0, 0, 0, 0, tzinfo=utc), verbose_name='start date'), preserve_default=False, ), migrations.AddField( model_name='schedule', name='effective_end_dt', field=models.DateTimeField(help_text='This field is dynamically generated to improve performance', null=True, verbose_name='last effective end date', blank=True), ), migrations.AddField( model_name='schedule', name='effective_start_dt', field=models.DateTimeField(help_text='This field is dynamically generated to improve performance', null=True, verbose_name='first effective start date', blank=True), ), migrations.RenameField( model_name='schedule', old_name='start_date', new_name='start_dt', ), ]