Skip to content
Snippets Groups Projects
Commit d62fae77 authored by Nathan Hertz's avatar Nathan Hertz Committed by Nathan Hertz
Browse files

Made some CapabilityRequest schema modifications in preparation for the

views
parent 7de31fa6
No related branches found
No related tags found
1 merge request!89WS-31: Viewing and creating capability requests
This commit is part of merge request !89. Comments created here will be created in the context of that merge request.
from __future__ import annotations from __future__ import annotations
import json import json
from typing import Tuple from typing import Dict, Tuple
import sqlalchemy as sa import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from workspaces.capability.enums import CapabilityEventType, CapabilityStepType from workspaces.capability.enums import (
CapabilityEventType,
CapabilityRequestState,
CapabilityStepType,
)
from workspaces.capability.helpers import CapabilitySequence, CapabilityStep from workspaces.capability.helpers import CapabilitySequence, CapabilityStep
from workspaces.capability.helpers_interfaces import CapabilitySequenceIF, ParameterIF from workspaces.capability.helpers_interfaces import CapabilitySequenceIF, ParameterIF
from workspaces.capability.schema_interfaces import ( from workspaces.capability.schema_interfaces import (
...@@ -116,7 +120,7 @@ class Capability(Base, CapabilityIF): ...@@ -116,7 +120,7 @@ class Capability(Base, CapabilityIF):
self.requests.append(request) self.requests.append(request)
return request return request
def to_dict(self): def to_dict(self) -> Dict[str, str]:
return { return {
"name": self.name, "name": self.name,
"max_jobs": self.max_jobs, "max_jobs": self.max_jobs,
...@@ -124,13 +128,13 @@ class Capability(Base, CapabilityIF): ...@@ -124,13 +128,13 @@ class Capability(Base, CapabilityIF):
"enabled": self.enabled, "enabled": self.enabled,
} }
def __str__(self): def __str__(self) -> str:
return ( return (
f"Capability: {self.name}, max concurrent jobs of {self.max_jobs}" f"Capability: {self.name}, max concurrent jobs of {self.max_jobs}"
f"\nSequence: {self.steps}" f"\nSequence: {self.steps}"
) )
def __json__(self): def __json__(self) -> str:
return json.dumps(self.to_dict()) return json.dumps(self.to_dict())
...@@ -152,19 +156,20 @@ class CapabilityRequest(Base, CapabilityRequestIF): ...@@ -152,19 +156,20 @@ class CapabilityRequest(Base, CapabilityRequestIF):
versions = relationship("CapabilityVersion", back_populates="request") versions = relationship("CapabilityVersion", back_populates="request")
capability = relationship(Capability, back_populates="requests") capability = relationship(Capability, back_populates="requests")
def update_status(self, status: str): def update_state(self, state: CapabilityRequestState):
# TODO: create field in table self.state = state.name
self.status = status
def __str__(self): def __str__(self):
return f"CapabilityRequest object: {self.__dict__}" return f"CapabilityRequest object: {self.__dict__}"
def __json__(self, request) -> dict: def __json__(self) -> str:
return dict( return json.dumps(
id=self.id, {
capability_name=self.capability_name, "id": self.id,
state=self.state, "capability_name": self.capability_name,
parameters=self.parameters, "state": self.state,
"parameters": self.parameters,
}
) )
......
...@@ -27,7 +27,7 @@ class CapabilityRequestIF: ...@@ -27,7 +27,7 @@ class CapabilityRequestIF:
future_products: str future_products: str
versions: List[CapabilityVersionIF] versions: List[CapabilityVersionIF]
def __json__(self, request: CapabilityRequestIF) -> dict: def __json__(self) -> str:
raise NotImplementedError raise NotImplementedError
......
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