Skip to content

Commit a5f0f8a

Browse files
committed
Improve _rest_getDecidedMeetingDate
1 parent 57a2933 commit a5f0f8a

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed

CHANGES.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ Changelog
44
2.0.0b3 (unreleased)
55
--------------------
66

7-
- Nothing changed yet.
7+
- Improve `_rest_getDecidedMeetingDate` to make only one request.
8+
[aduchene]
89

910

1011
2.0.0b2 (2024-10-16)

src/imio/pm/wsclient/browser/settings.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -419,24 +419,22 @@ def _rest_getDecidedMeetingDate(self,
419419
It returns a datetime object if a meeting has been found, or None otherwise.
420420
TODO: handle decided_states correctly, fetching decided states from PloneMeeting configuration
421421
"""
422-
brains = self._rest_searchItems(data)
423-
if not brains:
422+
query = {
423+
'extra_include': 'meeting,linked_items',
424+
'extra_include_linked_items_mode': 'every_successors',
425+
'extra_include_linked_items_extra_include': 'meeting',
426+
}
427+
query.update(data)
428+
items = self._rest_searchItems(query)
429+
if not items:
424430
return # Item has been deleted or has not been sent to PloneMeeting
425-
item = self._rest_getItemInfos(
426-
{"UID": brains[0]['UID'], "showExtraInfos": True,
427-
'extra_include': 'meeting,linked_items',
428-
'extra_include_meeting_additional_values': '*',
429-
'extra_include_linked_items_mode': 'every_successors'}
430-
)[0]
431+
item = items[0]
431432
if item_portal_type == item["@type"] and item['review_state'] in decided_states:
432433
return datetime.strptime(item['extra_include_meeting']['date'], "%Y-%m-%dT%H:%M:%S")
433434
elif item['extra_include_linked_items']:
434435
for linked_item in item['extra_include_linked_items']:
435436
if item_portal_type == linked_item["@type"] and linked_item['review_state'] in decided_states:
436-
item = self._rest_getItemInfos(
437-
{"UID": linked_item['UID'], "showExtraInfos": True, 'extra_include': 'meeting'}
438-
)[0]
439-
return datetime.strptime(item['extra_include_meeting']['date'], "%Y-%m-%dT%H:%M:%S")
437+
return datetime.strptime(linked_item['extra_include_meeting']['date'], "%Y-%m-%dT%H:%M:%S")
440438

441439

442440
def _rest_getItemTemplate(self, data):

0 commit comments

Comments
 (0)