forked from rc/aircox
fix conflict issue
This commit is contained in:
@ -639,8 +639,11 @@ class Diffusion(models.Model):
|
||||
if station:
|
||||
filter_args['program__station'] = station
|
||||
|
||||
if queryset is None:
|
||||
queryset = cl.objects
|
||||
|
||||
if now:
|
||||
return cl.objects.filter(
|
||||
return queryset.filter(
|
||||
models.Q(start__lte = date,
|
||||
end__gte = date) |
|
||||
models.Q(start__gte = date),
|
||||
@ -648,18 +651,17 @@ class Diffusion(models.Model):
|
||||
).order_by('start')
|
||||
|
||||
if next:
|
||||
return cl.objects.filter(
|
||||
return queryset.filter(
|
||||
start__gte = date,
|
||||
**filter_args
|
||||
).order_by('start')
|
||||
|
||||
if prev:
|
||||
return cl.objects.filter(
|
||||
return queryset.filter(
|
||||
end__lte = date,
|
||||
**filter_args
|
||||
).order_by('-start')
|
||||
|
||||
|
||||
def is_date_in_my_range(self, date):
|
||||
"""
|
||||
Return true if the given date is in the diffusion's start-end
|
||||
@ -672,10 +674,10 @@ class Diffusion(models.Model):
|
||||
Return a list of conflictual diffusions, based on the scheduled duration.
|
||||
"""
|
||||
r = Diffusion.objects.filter(
|
||||
models.Q(start__lte = self.start,
|
||||
end__gte = self.start) |
|
||||
models.Q(start__gte = self.start,
|
||||
start__lte = self.end)
|
||||
models.Q(start__lt = self.start,
|
||||
end__gt = self.start) |
|
||||
models.Q(start__gt = self.start,
|
||||
start__lt = self.end)
|
||||
)
|
||||
return r
|
||||
|
||||
|
Reference in New Issue
Block a user