-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy path0030_session_release_date.py
More file actions
50 lines (37 loc) · 1.91 KB
/
0030_session_release_date.py
File metadata and controls
50 lines (37 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Generated by Django 2.2.9 on 2020-01-05 23:20
import django.utils.timezone
from django.db import migrations, models
class Migration(migrations.Migration):
def set_release_date_if_null(apps, schema_editor):
Session = apps.get_model('coderdojochi', 'Session')
for session in Session.objects.filter().iterator():
# If the start_date is in the past, set release_date to the start_date
if session.start_date <= timezone.now() and session.announced_date_guardians:
session.release_date = session.announced_date_guardians
else:
# Subtract 1 week
session.release_date = session.start_date - timedelta(weeks=1)
# If it's not on a monday, go to the previous monday
session.release_date -= timedelta(days=session.release_date.weekday())
# Set it to 9am of that day
session.release_date = session.release_date.replace(hour=9)
session.save()
def reverse_set_release_date_if_null(apps, schema_editor):
pass # code for reverting migration, if any
dependencies = [
('coderdojochi', '0029_course_duration_squashed_0040_auto_20200102_1801'),
]
operations = [
migrations.AddField(
model_name='session',
name='release_date',
field=models.DateTimeField(null=True, blank=True, help_text="The date guardians can sign up. If not set, the system will pick 1 week (Monday) from 'Start Date'."),
preserve_default=False,
),
migrations.RunPython(set_release_date_if_null, reverse_set_release_date_if_null),
migrations.AlterField(
model_name='session',
name='release_date',
field=models.DateTimeField(blank=True, help_text="The date guardians can sign up. If not set, the system will pick 1 week (Monday) from 'Start Date'."),
),
]