mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 13:32:15 +00:00
Improved how events are selected for display on web-calendar
This commit is contained in:
@@ -224,6 +224,15 @@ class EventManager(models.Manager):
|
||||
).order_by('start_date', 'end_date', 'start_time', 'end_time', 'meet_at').select_related('person', 'organisation', 'venue', 'mic')
|
||||
return events
|
||||
|
||||
def events_in_bounds(self, start, end):
|
||||
events = self.filter(
|
||||
(models.Q(start_date__gte=start.date(), start_date__lte=end.date())) | # Start date in bounds
|
||||
(models.Q(end_date__gte=start.date(), end_date__lte=end.date())) | # End date in bounds
|
||||
(models.Q(access_at__gte=start, access_at__lte=end)) | # Access at in bounds
|
||||
(models.Q(meet_at__gte=start, meet_at__lte=end)) # Meet at in bounds
|
||||
).order_by('start_date', 'end_date', 'start_time', 'end_time', 'meet_at').select_related('person', 'organisation', 'venue', 'mic')
|
||||
return events
|
||||
|
||||
def rig_count(self):
|
||||
event_count = self.filter(
|
||||
(models.Q(start_date__gte=datetime.date.today(), end_date__isnull=True, dry_hire=False,
|
||||
|
||||
@@ -300,10 +300,9 @@ class SecureAPIRequest(generic.View):
|
||||
# Probably a calendar request
|
||||
start_datetime = datetime.datetime.strptime( start, "%Y-%m-%dT%H:%M:%SZ" )
|
||||
end_datetime = datetime.datetime.strptime( end, "%Y-%m-%dT%H:%M:%SZ" )
|
||||
all_objects = self.models[model].objects
|
||||
objects = self.models[model].objects.events_in_bounds(start_datetime,end_datetime)
|
||||
|
||||
results = []
|
||||
filter = Q(start_date__lte=end_datetime) & Q(start_date__gte=start_datetime)
|
||||
objects = all_objects.filter(filter).select_related('person', 'organisation', 'venue', 'mic').order_by('-start_date')
|
||||
for item in objects:
|
||||
data = {
|
||||
'pk': item.pk,
|
||||
|
||||
Reference in New Issue
Block a user