response = super().form_valid(form)
if not form.instance.duration:
form.instance.compute_duration()
- if form.instance.is_too_short():
- messages.warning(
- self.request,
- _('The sound file duration does not match the expected duration (too short).'),
- )
- if form.instance.is_too_long():
- messages.warning(
- self.request,
- _('The sound file duration does not match the expected duration (too long).'),
- )
+ now = datetime.datetime.now()
+ if not form.instance.fragment:
+ diffusions = Diffusion.objects.filter(episode=form.instance.episode_id)
+ if any(x for x in diffusions if x.datetime > now):
+ if form.instance.is_too_short():
+ messages.warning(
+ self.request,
+ _('The sound file duration does not match the expected duration (too short).'),
+ )
+ if form.instance.is_too_long():
+ messages.warning(
+ self.request,
+ _('The sound file duration does not match the expected duration (too long).'),
+ )
form.instance.save()
return response