diff --git a/manage_breast_screening/clinics/migrations/0019_clinicslot_starts_at_time.py b/manage_breast_screening/clinics/migrations/0019_clinicslot_starts_at_time.py new file mode 100644 index 000000000..d0e8e360f --- /dev/null +++ b/manage_breast_screening/clinics/migrations/0019_clinicslot_starts_at_time.py @@ -0,0 +1,20 @@ +# Generated by Django 5.2.8 on 2025-12-15 13:59 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('clinics', '0018_userassignment_roles'), + ] + + operations = [ + migrations.AddField( + model_name='clinicslot', + name='starts_at_time', + field=models.TimeField(default=datetime.time(13, 59, 56, 682231)), + preserve_default=False, + ), + ] diff --git a/manage_breast_screening/clinics/migrations/max_migration.txt b/manage_breast_screening/clinics/migrations/max_migration.txt index 7cf9e8f7c..678dfd8bd 100644 --- a/manage_breast_screening/clinics/migrations/max_migration.txt +++ b/manage_breast_screening/clinics/migrations/max_migration.txt @@ -1 +1 @@ -0018_userassignment_roles +0019_clinicslot_starts_at_time diff --git a/manage_breast_screening/clinics/models.py b/manage_breast_screening/clinics/models.py index 9691d140a..32d0a5670 100644 --- a/manage_breast_screening/clinics/models.py +++ b/manage_breast_screening/clinics/models.py @@ -175,6 +175,7 @@ class ClinicSlot(BaseModel): "clinics.Clinic", on_delete=models.PROTECT, related_name="clinic_slots" ) starts_at = models.DateTimeField() + starts_at_time = models.TimeField() duration_in_minutes = models.IntegerField() @property diff --git a/manage_breast_screening/clinics/tests/factories.py b/manage_breast_screening/clinics/tests/factories.py index 817424410..13dc55fc2 100644 --- a/manage_breast_screening/clinics/tests/factories.py +++ b/manage_breast_screening/clinics/tests/factories.py @@ -85,6 +85,7 @@ class Meta: starts_at = Sequence( lambda n: datetime(2025, 1, 1, 9, tzinfo=timezone.utc) + timedelta(hours=n) ) + starts_at_time = LazyAttribute(lambda o: o.starts_at.time()) duration_in_minutes = 15 diff --git a/manage_breast_screening/nonprod/management/commands/seed_demo_data.py b/manage_breast_screening/nonprod/management/commands/seed_demo_data.py index 3a2630f0e..fc0b8487e 100644 --- a/manage_breast_screening/nonprod/management/commands/seed_demo_data.py +++ b/manage_breast_screening/nonprod/management/commands/seed_demo_data.py @@ -141,11 +141,14 @@ def create_slot(self, clinic, slot_key): datetime.strptime(slot_key["starts_at_time"], "%H:%M").time(), ) + starts_at_time = datetime.strptime(slot_key["starts_at_time"], "%H:%M").time() + clinic_slot = ClinicSlotFactory( clinic=clinic, id=slot_key["id"], duration_in_minutes=slot_key["duration_in_minutes"], starts_at=starts_at, + starts_at_time=starts_at_time, ) if "appointment" in slot_key: