|
38 | 38 | set_bbds, |
39 | 39 | set_total, |
40 | 40 | detect_attr_changes, |
| 41 | + has_delivery_window_end, |
| 42 | + has_edit_datetime, |
41 | 43 | ) |
42 | 44 |
|
43 | 45 | PLATFORMS = [Platform.SENSOR] |
@@ -157,17 +159,22 @@ def _handle_coordinator_update(self) -> None: |
157 | 159 | # Switch between orders depending on delivery datetime or output None |
158 | 160 | order = ocado_data.get("next") |
159 | 161 | if (order is None): |
| 162 | + # I don't think this will ever fire |
160 | 163 | order = ocado_data.get("upcoming") |
161 | | - if order is not None: |
162 | | - if order.delivery_window_end < now: |
| 164 | + if has_delivery_window_end(order): |
| 165 | + if order.delivery_window_end < now: # type: ignore |
163 | 166 | order = None |
164 | | - if order is not None: |
| 167 | + else: |
| 168 | + order = None |
| 169 | + if has_delivery_window_end(order): |
165 | 170 | # If the delivery datetime is in the past check upcoming |
166 | | - if (order.delivery_window_end < now): |
| 171 | + if (order.delivery_window_end < now): # type: ignore |
167 | 172 | order = ocado_data.get("upcoming") |
168 | | - if order is not None: |
169 | | - if (order.delivery_window_end < now): |
| 173 | + if has_delivery_window_end(order): |
| 174 | + if (order.delivery_window_end < now): # type: ignore |
170 | 175 | order = None |
| 176 | + else: |
| 177 | + order = None |
171 | 178 | if order is not None: |
172 | 179 | result = set_order(self, order, now) # type: ignore |
173 | 180 | _LOGGER.debug("Set_order returned %s", result) |
@@ -270,18 +277,18 @@ def _handle_coordinator_update(self) -> None: |
270 | 277 | order = ocado_data.get("next") |
271 | 278 | if (order is None): |
272 | 279 | order = ocado_data.get("upcoming") |
273 | | - if order is not None: |
274 | | - if order.edit_datetime < now: |
| 280 | + if has_edit_datetime(order): |
| 281 | + if order.edit_datetime < now: # type: ignore |
275 | 282 | order = None |
276 | 283 | else: |
277 | 284 | order = None |
278 | | - if order is not None: |
| 285 | + if has_edit_datetime(order): |
279 | 286 | # If the edit datetime is in the past check upcoming |
280 | | - if (order.edit_datetime < now): |
| 287 | + if (order.edit_datetime < now): # type: ignore |
281 | 288 | order = ocado_data.get("upcoming") |
282 | | - if order is not None: |
| 289 | + if has_edit_datetime(order): |
283 | 290 | # If the edit datetime is in the past return empty |
284 | | - if order.edit_datetime < now: |
| 291 | + if order.edit_datetime < now: # type: ignore |
285 | 292 | self._attr_state = None |
286 | 293 | self._attr_icon = "mdi:help-circle" |
287 | 294 | self._hass_custom_attributes = { |
|
0 commit comments