Skip to content

Commit 8a8bb93

Browse files
committed
extra project col
1 parent 361613f commit 8a8bb93

File tree

5 files changed

+20
-13
lines changed

5 files changed

+20
-13
lines changed

packages/models-library/src/models_library/projects.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ class Project(BaseProjectModel):
190190
default=None,
191191
alias="trashedAt",
192192
)
193+
trashed_explicitly: bool = Field(default=False, alias="trashedExplicitly")
193194

194195
class Config:
195196
description = "Document that stores metadata, pipeline and UI setup of a study"

services/web/server/src/simcore_service_webserver/projects/_crud_api_read.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ async def list_projects( # pylint: disable=too-many-arguments
115115
# attrs
116116
filter_by_project_type=ProjectTypeAPI.to_project_type_db(project_type),
117117
filter_by_services=user_available_services,
118-
trashed=trashed,
119-
hidden=show_hidden,
118+
filter_trashed=trashed,
119+
filter_hidden=show_hidden,
120120
# composed attrs
121121
search=search,
122122
# pagination

services/web/server/src/simcore_service_webserver/projects/_trash_api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ async def _schedule():
120120
product_name=product_name,
121121
project_uuid=project_id,
122122
project_patch=ProjectPatchExtended(
123-
trashed_at=arrow.utcnow().datetime, hidden=not explicit
123+
trashed_at=arrow.utcnow().datetime, trashed_explicitly=not explicit
124124
),
125125
)
126126

@@ -138,5 +138,5 @@ async def untrash_project(
138138
user_id=user_id,
139139
product_name=product_name,
140140
project_uuid=project_id,
141-
project_patch=ProjectPatchExtended(trashed_at=None, hidden=False),
141+
project_patch=ProjectPatchExtended(trashed_at=None, trashed_explicitly=False),
142142
)

services/web/server/src/simcore_service_webserver/projects/db.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -363,8 +363,8 @@ async def list_projects( # pylint: disable=too-many-arguments
363363
filter_by_project_type: ProjectType | None = None,
364364
filter_by_services: list[dict] | None = None,
365365
published: bool | None = False,
366-
hidden: bool | None = False,
367-
trashed: bool | None = False,
366+
filter_hidden: bool | None = False,
367+
filter_trashed: bool | None = False,
368368
# pagination
369369
offset: int | None = 0,
370370
limit: int | None = None,
@@ -442,16 +442,21 @@ async def list_projects( # pylint: disable=too-many-arguments
442442
projects.c.type == filter_by_project_type.value
443443
)
444444

445-
if hidden is not None:
446-
attributes_filters.append(projects.c.hidden.is_(hidden))
445+
if filter_hidden is not None:
446+
attributes_filters.append(projects.c.hidden.is_(filter_hidden))
447447

448448
if published is not None:
449449
attributes_filters.append(projects.c.published.is_(published))
450450

451-
if trashed is not None:
451+
if filter_trashed is not None:
452452
attributes_filters.append(
453-
projects.c.trashed_at.is_not(None)
454-
if trashed
453+
# marked explicitly as trashed
454+
(
455+
projects.c.trashed_at.is_not(None)
456+
& projects.c.trashed_explicitly.is_(True)
457+
)
458+
if filter_trashed
459+
# not marked as trashed
455460
else projects.c.trashed_at.is_(None)
456461
)
457462
query = query.where(sa.and_(*attributes_filters))

services/web/server/src/simcore_service_webserver/projects/models.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ class ProjectDB(BaseModel):
5353
hidden: bool
5454
workspace_id: WorkspaceID | None
5555
trashed_at: datetime | None
56+
trashed_explicitly: bool = False
5657

5758
class Config:
5859
orm_mode = True
@@ -101,8 +102,8 @@ class Config:
101102

102103
class ProjectPatchExtended(ProjectPatch):
103104
# Only used internally
104-
trashed_at: datetime | None = None
105-
hidden: bool | None = None
105+
trashed_at: datetime | None
106+
trashed_explicitly: bool
106107

107108
class Config:
108109
allow_population_by_field_name = True

0 commit comments

Comments
 (0)