Skip to content

Commit 9841ced

Browse files
continue fixing
1 parent 4761474 commit 9841ced

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -315,16 +315,23 @@ async def _get_project(
315315
.group_by(project_to_groups.c.project_uuid)
316316
).subquery("access_rights_subquery")
317317

318+
_workbench_subquery = _build_workbench_subquery()
319+
318320
query = (
319321
sa.select(
320322
*PROJECT_DB_COLS,
321-
_build_workbench_subquery().c.workbench,
323+
sa.func.coalesce(_workbench_subquery.c.workbench, "{}").label(
324+
"workbench"
325+
),
322326
users.c.primary_gid.label("trashed_by_primary_gid"),
323327
access_rights_subquery.c.access_rights,
324328
)
325329
.select_from(
326-
projects.join(access_rights_subquery, isouter=True).outerjoin(
327-
users, projects.c.trashed_by == users.c.id
330+
projects.join(access_rights_subquery, isouter=True)
331+
.outerjoin(users, projects.c.trashed_by == users.c.id)
332+
.outerjoin(
333+
_workbench_subquery,
334+
projects.c.uuid == _workbench_subquery.c.project_uuid,
328335
)
329336
)
330337
.where(

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,8 @@ def _reraise_if_not_unique_uuid_error(err: UniqueViolation):
184184
assert row # nosec
185185

186186
selected_values = ProjectDict(row.items())
187-
if workbench:
188-
selected_values["workbench"] = workbench
187+
# if workbench:
188+
selected_values["workbench"] = workbench
189189
project_index = selected_values.pop("id")
190190

191191
except UniqueViolation as err:
@@ -1097,13 +1097,19 @@ async def _update_project_workbench(
10971097
# update timestamps
10981098
new_project_data["lastChangeDate"] = now_str()
10991099

1100+
# After moving workbench from project DB table to project_nodes table:
1101+
workbench = new_project_data.pop("workbench")
1102+
# TODO: UPDATE project_nodes table
1103+
11001104
result = await db_connection.execute(
11011105
projects.update()
11021106
.values(**convert_to_db_names(new_project_data))
11031107
.where(projects.c.id == current_project[projects.c.id.key])
11041108
.returning(literal_column("*"))
11051109
)
1110+
11061111
project = await result.fetchone()
1112+
11071113
assert project # nosec
11081114
if product_name:
11091115
await self.upsert_project_linked_product(
@@ -1115,7 +1121,9 @@ async def _update_project_workbench(
11151121
db_connection, project_id=project[projects.c.id]
11161122
)
11171123
return (
1118-
convert_to_schema_names(project, user_email, tags=tags),
1124+
convert_to_schema_names(
1125+
project, user_email, tags=tags, workbench=workbench
1126+
),
11191127
changed_entries,
11201128
)
11211129
msg = "linter unhappy without this"

0 commit comments

Comments
 (0)