@@ -89,9 +89,9 @@ class DayInCalendar:
 | 
			
		||||
 | 
			
		||||
    def _add_event_internal(self, event):
 | 
			
		||||
        from .models import Category
 | 
			
		||||
        from copy import deepcopy
 | 
			
		||||
        from copy import copy
 | 
			
		||||
        # copy event
 | 
			
		||||
        local_event = deepcopy(event)
 | 
			
		||||
        local_event = copy(event)
 | 
			
		||||
 | 
			
		||||
        # set values
 | 
			
		||||
        if local_event.start_day != self.date:
 | 
			
		||||
@@ -264,7 +264,7 @@ class CalendarList:
 | 
			
		||||
                    | Q(recurrence_dtend__lt=startdatetime)
 | 
			
		||||
                )
 | 
			
		||||
            )
 | 
			
		||||
            | (Q(start_day__lte=self.c_firstdate) & (Q(end_day__isnull=True) | Q(end_day__gte=self.c_firstdate)))
 | 
			
		||||
            | (Q(start_day__lte=self.c_lastdate) & ((Q(end_day__isnull=True) & Q(start_day__gte=self.c_firstdate)) | Q(end_day__gte=self.c_firstdate)))
 | 
			
		||||
        ).filter(
 | 
			
		||||
            Q(other_versions__isnull=True) |
 | 
			
		||||
            Q(other_versions__representative=F('pk')) |
 | 
			
		||||
@@ -283,10 +283,18 @@ class CalendarList:
 | 
			
		||||
            lastdate = timezone.make_aware(lastdate, timezone.get_default_timezone())
 | 
			
		||||
 | 
			
		||||
        for e in self.events:
 | 
			
		||||
            for e_rec in e.get_recurrences_between(firstdate, lastdate):
 | 
			
		||||
                end = e_rec.start_day if e_rec.end_day is None else e_rec.end_day
 | 
			
		||||
                for d in daterange(max(e_rec.start_day, self.firstdate), min(end, self.lastdate)):
 | 
			
		||||
                    self.calendar_days[d.__str__()].add_event(e_rec)
 | 
			
		||||
            if e.recurrences is None:
 | 
			
		||||
                if e.end_day is None:
 | 
			
		||||
                    if e.start_day >= self.firstdate and e.start_day < self.lastdate:
 | 
			
		||||
                        self.calendar_days[e.start_day.__str__()].add_event(e)
 | 
			
		||||
                else:
 | 
			
		||||
                    for d in daterange(max(e.start_day, self.firstdate), min(e.end_day, self.lastdate)):
 | 
			
		||||
                        self.calendar_days[d.__str__()].add_event(e)
 | 
			
		||||
            else:
 | 
			
		||||
                for e_rec in e.get_recurrences_between(firstdate, lastdate):
 | 
			
		||||
                    end = e_rec.start_day if e_rec.end_day is None else e_rec.end_day
 | 
			
		||||
                    for d in daterange(max(e_rec.start_day, self.firstdate), min(end, self.lastdate)):
 | 
			
		||||
                        self.calendar_days[d.__str__()].add_event(e_rec)
 | 
			
		||||
 | 
			
		||||
    def create_calendar_days(self):
 | 
			
		||||
        # create daylist
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user