Skip to content

Commit

Permalink
Fix up a migration (#2485)
Browse files Browse the repository at this point in the history
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
annagav and pre-commit-ci[bot] authored Dec 5, 2024
1 parent 8e549c5 commit 98ba6d3
Showing 1 changed file with 21 additions and 14 deletions.
35 changes: 21 additions & 14 deletions cms/migrations/0041_populate_min_weeks.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,30 @@ def populate_max_min_weeks_fields(apps, schema_editor):

ProgramPage = apps.get_model("cms", "ProgramPage")
for program_page in ProgramPage.objects.all():
if program_page.length and program_page.max_weeks is None:
duration_string = re.findall(
r"\d+[\s-]*[\d+\s]*week", program_page.length.lower()
)
if duration_string:
duration_nums = re.findall(r"\d+", duration_string[0])
else:
if program_page.length:
duration_nums = []
program_length = program_page.length.lower()

if "week" in program_length:
duration_string = re.findall(r"\d+[\s-]*[\d+\s]*week", program_length)
duration_nums = re.findall(
r"\d+", duration_string[0] if duration_string else []
)
elif "month" in program_length:
duration_string = re.findall(
r"\d+[\s-]*[\d+\s]*month", program_page.length.lower()
)
duration_nums_in_month = re.findall(r"\d+", duration_string[0])
duration_nums = [num * 4 for num in duration_nums_in_month]
program_page.min_weeks = duration_nums[0]
program_page.max_weeks = (
duration_nums[1] if len(duration_nums) > 1 else duration_nums[0]
)
program_page.save()
duration_nums_in_month = re.findall(
r"\d+", duration_string[0] if duration_string else []
)
duration_nums = [int(num) * 4 for num in duration_nums_in_month]

if len(duration_nums) > 0:
program_page.min_weeks = duration_nums[0]
program_page.max_weeks = (
duration_nums[1] if len(duration_nums) > 1 else duration_nums[0]
)
program_page.save()


class Migration(migrations.Migration):
Expand Down

0 comments on commit 98ba6d3

Please sign in to comment.