]> git.0d.be Git - django-panik-emissions.git/commitdiff
account for existing diffusion when looking for next datetime
authorFrédéric Péters <fpeters@0d.be>
Sat, 26 Aug 2023 16:41:07 +0000 (18:41 +0200)
committerFrédéric Péters <fpeters@0d.be>
Sat, 26 Aug 2023 16:41:07 +0000 (18:41 +0200)
emissions/views.py

index 91840a8154353cb042539ae8f56fd2bc8c5c5704..c8345e28b229028881594f99061ee4c58b8105ce 100644 (file)
@@ -221,7 +221,12 @@ class EpisodeCreateView(CreateView):
         initial = super().get_initial()
         initial['emission'] = Emission.objects.get(slug=self.kwargs.get('emission_slug'))
         initial['duration'] = initial['emission'].get_next_planned_duration()
-        initial['first_diffusion'] = initial['emission'].get_next_planned_date()
+        since = datetime.datetime.today()
+        while True:
+            initial['first_diffusion'] = initial['emission'].get_next_planned_date(since=since)
+            if not Diffusion.objects.filter(datetime=initial['first_diffusion']).exists():
+                break
+            since = initial['first_diffusion'] + datetime.timedelta(hours=1)
         for i, schedule in enumerate(
             Schedule.objects.filter(emission=initial['emission'], rerun=True).order_by('datetime')
         ):