Commit e9f88611 authored by Romain Courteaud's avatar Romain Courteaud Committed by Rafael Monnerat

Reduce number of JOIN

parent e0bc63b1
...@@ -116,31 +116,36 @@ class AcknowledgementTool(BaseTool): ...@@ -116,31 +116,36 @@ class AcknowledgementTool(BaseTool):
document_list = [] document_list = []
if user_name is not None: if user_name is not None:
portal = self.getPortalObject() portal = self.getPortalObject()
now = DateTime() person_value = portal.ERP5Site_getAuthenticatedMemberPersonValue(
# First look at all event that define the current user as destination user_name=user_name)
all_document_list = [x for x in \ if person_value is None:
self.portal_catalog(portal_type = portal_type, raise ValueError('No user found')
simulation_state = self.getPortalTransitInventoryStateList(), else:
# start_date = {'query':now,'range':'max'}, now = DateTime()
# stop_date = {'query':now,'range':'min'}, # First look at all event that define the current user as destination
default_destination_reference=user_name)] all_document_list = [x for x in \
# Now we can look directly at acknowledgement document not approved yet self.portal_catalog(portal_type = portal_type,
# so not in a final state simulation_state = self.getPortalTransitInventoryStateList(),
final_state_list = self.getPortalCurrentInventoryStateList() # start_date = {'query':now,'range':'max'},
query = NegatedQuery(Query(simulation_state=final_state_list)) # stop_date = {'query':now,'range':'min'},
all_document_list.extend([x for x in \ default_destination_uid=person_value.getUid())]
self.portal_catalog(portal_type = portal_type, # Now we can look directly at acknowledgement document not approved yet
query=query, # so not in a final state
# start_date = {'query':now,'range':'max'}, final_state_list = self.getPortalCurrentInventoryStateList()
# stop_date = {'query':now,'range':'min'}, query = NegatedQuery(Query(simulation_state=final_state_list))
destination_reference=user_name)]) all_document_list.extend([x for x in \
for document in all_document_list: self.portal_catalog(portal_type = portal_type,
# We filter manually on dates until a good solution is found for query=query,
# searching by dates on the catalog # start_date = {'query':now,'range':'max'},
if (document.getStartDate() < now < (document.getStopDate()+1)): # stop_date = {'query':now,'range':'min'},
acknowledged = document.isAcknowledged(user_name=user_name) default_destination_uid=person_value.getUid())])
if not acknowledged: for document in all_document_list:
document_list.append(document.getRelativeUrl()) # We filter manually on dates until a good solution is found for
# searching by dates on the catalog
if (document.getStartDate() < now < (document.getStopDate()+1)):
acknowledged = document.isAcknowledged(user_name=user_name)
if not acknowledged:
document_list.append(document.getRelativeUrl())
else: else:
raise ValueError('No user name given') raise ValueError('No user name given')
return document_list return document_list
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment