Source code for app.model.orm.workspace
from typing import List
from datetime import datetime
import sqlalchemy as sql
from sqlalchemy.orm import (
Mapped,
mapped_column,
relationship,
)
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy_utc.sqltypes import UtcDateTime
from app.model.orm.orm_base import OrmBase
[docs]
class Workspace(OrmBase):
"""
A space where users can upload data that is not linked to a study.
The actual data instances are in `WorkspaceEntry` records. This is a
container for them that is linked to a specific user with a specific name.
It can be made public or kept private (the default).
"""
[docs]
entries: Mapped[List['WorkspaceEntry']] = relationship(
back_populates="workspace",
cascade='all, delete-orphan',
order_by='WorkspaceEntry.id',
)
[docs]
modelingResults: Mapped[List['ModelingResult']] = relationship(
secondary='WorkspaceEntries',
viewonly=True,
)
@property
@property
@hybrid_property