Skip to content
Snippets Groups Projects
Commit db41e9fb authored by Charlotte Hausman's avatar Charlotte Hausman
Browse files

Merge branch 'performance-improvements-for-active-requests-page' into 'main'

Add hide_files parameter to CapabilityRequest.__json__

See merge request !1410
parents 2a309443 5b1c773e
No related branches found
No related tags found
2 merge requests!1431pick up recent patches to 2.8.2,!1410Add hide_files parameter to CapabilityRequest.__json__
Pipeline #10792 canceled
......@@ -1329,10 +1329,13 @@ class CapabilityRequest(JSONSerializable):
)
# Pyramid support method: must accept a "request" argument that is unused by us
def __json__(self, request=None) -> dict:
def __json__(self, request=None, **kwargs) -> dict:
# Calculate state to ensure it's up-to-date
self.determine_state()
# are we loading files?
hide_files = 'hide_files' in kwargs and kwargs['hide_files']
return {
"type": self.__class__.__name__,
"id": self.id,
......@@ -1344,7 +1347,7 @@ class CapabilityRequest(JSONSerializable):
"ingested": self.ingested,
"created_at": self.created_at.isoformat(),
"updated_at": self.updated_at.isoformat(),
"versions": [v.__json__() for v in self.versions],
"versions": [v.__json__(hide_files=hide_files) for v in self.versions],
"status_url": self.status_url,
"system_messages": self.system_messages,
}
......@@ -1400,7 +1403,8 @@ class CapabilityVersion(JSONSerializable):
return self.executions[-1] if len(self.executions) else None
# Pyramid support method: must accept a "request" argument that is unused by us
def __json__(self, request=None) -> dict:
def __json__(self, request=None, **kwargs) -> dict:
hide_files = 'hide_files' in kwargs and kwargs['hide_files']
return {
"type": self.__class__.__name__,
"capability_request_id": self.capability_request_id,
......@@ -1410,7 +1414,7 @@ class CapabilityVersion(JSONSerializable):
"parameters": self.parameters,
"workflow_metadata": self.workflow_metadata,
"sealed": self.sealed,
"files": [file.__json__() for file in self.files],
"files": [file.__json__() for file in self.files] if not hide_files else [],
"capability_name": self.capability.name if self.capability else None,
"status_url": self.request.status_url,
"internal_notes": self.internal_notes,
......
......@@ -28,7 +28,7 @@ from typing import Dict, List, Optional
import transaction
from sqlalchemy import desc, text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import Session
from sqlalchemy.orm import Session, selectinload, defer
from workspaces.capability.enums import CapabilityRequestState, QueueState
from workspaces.capability.helpers_interfaces import ParameterIF
......@@ -378,6 +378,7 @@ class CapabilityInfo:
"""
default_query = (
self.session.query(CapabilityRequest)
.options(selectinload(CapabilityRequest.versions))
.filter_by(capability_name=capability_name)
.filter(CapabilityRequest.state != "Complete")
.filter(CapabilityRequest.sealed == False)
......@@ -400,7 +401,7 @@ class CapabilityInfo:
json_list = []
for request in active_list:
json_list.append(request.__json__())
json_list.append(request.__json__(hide_files=True))
return {"active_requests": json_list}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment