Improve calendar event display
This commit is contained in:
		
							parent
							
								
									3acad3649d
								
							
						
					
					
						commit
						ab83956558
					
				| 
						 | 
					@ -657,11 +657,41 @@ def build_events_for_calendar(events: list[Event]) -> list[dict[str, typing.Any]
 | 
				
			||||||
    """Build list of events for FullCalendar."""
 | 
					    """Build list of events for FullCalendar."""
 | 
				
			||||||
    items: list[dict[str, typing.Any]] = []
 | 
					    items: list[dict[str, typing.Any]] = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    one_day = timedelta(days=1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for e in events:
 | 
					    for e in events:
 | 
				
			||||||
 | 
					        if e.name == "accommodation":
 | 
				
			||||||
 | 
					            assert e.title and e.end_date
 | 
				
			||||||
 | 
					            item = {
 | 
				
			||||||
 | 
					                "allDay": True,
 | 
				
			||||||
 | 
					                "title": e.display_title,
 | 
				
			||||||
 | 
					                "start": e.as_date.isoformat(),
 | 
				
			||||||
 | 
					                "end": (e.end_as_date + one_day).isoformat(),
 | 
				
			||||||
 | 
					                "url": e.url,
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            items.append(item)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            item = {
 | 
				
			||||||
 | 
					                "allDay": False,
 | 
				
			||||||
 | 
					                "title": "checkin: " + e.title,
 | 
				
			||||||
 | 
					                "start": e.date.isoformat(),
 | 
				
			||||||
 | 
					                "url": e.url,
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            items.append(item)
 | 
				
			||||||
 | 
					            item = {
 | 
				
			||||||
 | 
					                "allDay": False,
 | 
				
			||||||
 | 
					                "title": "checkout: " + e.title,
 | 
				
			||||||
 | 
					                "start": e.end_date.isoformat(),
 | 
				
			||||||
 | 
					                "url": e.url,
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            items.append(item)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if e.has_time:
 | 
					        if e.has_time:
 | 
				
			||||||
            end = e.end_date or e.date + timedelta(hours=1)
 | 
					            end = e.end_date or e.date + timedelta(hours=1)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            end = (e.end_as_date if e.end_date else e.as_date) + timedelta(days=1)
 | 
					            end = (e.end_as_date if e.end_date else e.as_date) + one_day
 | 
				
			||||||
        item = {
 | 
					        item = {
 | 
				
			||||||
            "allDay": not e.has_time,
 | 
					            "allDay": not e.has_time,
 | 
				
			||||||
            "title": e.display_title,
 | 
					            "title": e.display_title,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -88,4 +88,4 @@ class Event:
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def display_title(self) -> str:
 | 
					    def display_title(self) -> str:
 | 
				
			||||||
        """Name for display."""
 | 
					        """Name for display."""
 | 
				
			||||||
        return self.name + ": " + self.title if self.title else self.name
 | 
					        return self.title or self.name
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue