mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 04:37:06 +00:00
Fix bug in caldav and avoid unnecessary copy of dataclass (#72922)
This commit is contained in:
parent
d3b1896a06
commit
8c50c7fbd4
@ -1,7 +1,6 @@
|
|||||||
"""Support for WebDav Calendar."""
|
"""Support for WebDav Calendar."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import copy
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
@ -143,15 +142,13 @@ class WebDavCalendarEntity(CalendarEntity):
|
|||||||
def update(self):
|
def update(self):
|
||||||
"""Update event data."""
|
"""Update event data."""
|
||||||
self.data.update()
|
self.data.update()
|
||||||
event = copy.deepcopy(self.data.event)
|
self._event = self.data.event
|
||||||
if event is None:
|
|
||||||
self._event = event
|
|
||||||
return
|
|
||||||
(summary, offset) = extract_offset(event.summary, OFFSET)
|
|
||||||
event.summary = summary
|
|
||||||
self._event = event
|
|
||||||
self._attr_extra_state_attributes = {
|
self._attr_extra_state_attributes = {
|
||||||
"offset_reached": is_offset_reached(event.start_datetime_local, offset)
|
"offset_reached": is_offset_reached(
|
||||||
|
self._event.start_datetime_local, self.data.offset
|
||||||
|
)
|
||||||
|
if self._event
|
||||||
|
else False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -165,6 +162,7 @@ class WebDavCalendarData:
|
|||||||
self.include_all_day = include_all_day
|
self.include_all_day = include_all_day
|
||||||
self.search = search
|
self.search = search
|
||||||
self.event = None
|
self.event = None
|
||||||
|
self.offset = None
|
||||||
|
|
||||||
async def async_get_events(
|
async def async_get_events(
|
||||||
self, hass: HomeAssistant, start_date: datetime, end_date: datetime
|
self, hass: HomeAssistant, start_date: datetime, end_date: datetime
|
||||||
@ -264,13 +262,15 @@ class WebDavCalendarData:
|
|||||||
return
|
return
|
||||||
|
|
||||||
# Populate the entity attributes with the event values
|
# Populate the entity attributes with the event values
|
||||||
|
(summary, offset) = extract_offset(vevent.summary.value, OFFSET)
|
||||||
self.event = CalendarEvent(
|
self.event = CalendarEvent(
|
||||||
summary=vevent.summary.value,
|
summary=summary,
|
||||||
start=vevent.dtstart.value,
|
start=vevent.dtstart.value,
|
||||||
end=self.get_end_date(vevent),
|
end=self.get_end_date(vevent),
|
||||||
location=self.get_attr_value(vevent, "location"),
|
location=self.get_attr_value(vevent, "location"),
|
||||||
description=self.get_attr_value(vevent, "description"),
|
description=self.get_attr_value(vevent, "description"),
|
||||||
)
|
)
|
||||||
|
self.offset = offset
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def is_matching(vevent, search):
|
def is_matching(vevent, search):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user