]> git.0d.be Git - django-panik-emissions.git/commitdiff
prefill new episode with duration from schedule (instead of default)
authorFrédéric Péters <fpeters@0d.be>
Sun, 29 Mar 2020 13:37:52 +0000 (15:37 +0200)
committerFrédéric Péters <fpeters@0d.be>
Sun, 29 Mar 2020 13:37:52 +0000 (15:37 +0200)
emissions/models.py
emissions/views.py

index dfc6a44ab0c0a8f1afa38b9df21f911bb0c36379..cca07713fee2c220c76a70d8f6ac556f1c1e5d8d 100644 (file)
@@ -178,7 +178,7 @@ class Emission(models.Model):
     def get_sorted_newsitems(self):
         return self.newsitem_set.select_related().order_by('-date')
 
     def get_sorted_newsitems(self):
         return self.newsitem_set.select_related().order_by('-date')
 
-    def get_next_planned_date(self, since=None):
+    def get_next_planned_date_and_schedule(self, since=None):
         schedules = self.schedule_set.filter(rerun=False)
         if not schedules:
             return None
         schedules = self.schedule_set.filter(rerun=False)
         if not schedules:
             return None
@@ -186,10 +186,19 @@ class Emission(models.Model):
             since = datetime.datetime.today()
         possible_dates = []
         for schedule in schedules:
             since = datetime.datetime.today()
         possible_dates = []
         for schedule in schedules:
-            possible_dates.append(schedule.get_next_planned_date(since))
+            possible_dates.append((schedule.get_next_planned_date(since), schedule))
         possible_dates.sort()
         return possible_dates[0]
 
         possible_dates.sort()
         return possible_dates[0]
 
+    def get_next_planned_date(self, since=None):
+        result = self.get_next_planned_date_and_schedule(since=since)
+        return result[0] if result else None
+
+    def get_next_planned_duration(self, since=None):
+        result = self.get_next_planned_date_and_schedule(since=since)
+        if not result:
+            return None
+        return result[1].duration or self.duration
 
 @python_2_unicode_compatible
 class Schedule(models.Model, WeekdayMixin):
 
 @python_2_unicode_compatible
 class Schedule(models.Model, WeekdayMixin):
index de183ab29836bb969df6914fbb8700468264ba1c..36f580626e3e1c4256c3e6d2d30688b7496ced13 100644 (file)
@@ -176,7 +176,7 @@ class EpisodeCreateView(CreateView):
     def get_initial(self):
         initial = super(EpisodeCreateView, self).get_initial()
         initial['emission'] = Emission.objects.get(slug=self.kwargs.get('emission_slug'))
     def get_initial(self):
         initial = super(EpisodeCreateView, self).get_initial()
         initial['emission'] = Emission.objects.get(slug=self.kwargs.get('emission_slug'))
-        initial['duration'] = initial['emission'].duration
+        initial['duration'] = initial['emission'].get_next_planned_duration()
         initial['first_diffusion'] = initial['emission'].get_next_planned_date()
         for i, schedule in enumerate(
                 Schedule.objects.filter(emission=initial['emission'],
         initial['first_diffusion'] = initial['emission'].get_next_planned_date()
         for i, schedule in enumerate(
                 Schedule.objects.filter(emission=initial['emission'],