From 0f6ce553236c1009f560a405b7a40a30e63d11d9 Mon Sep 17 00:00:00 2001 From: Herman Snevajs Date: Mon, 11 Nov 2024 17:14:46 +0100 Subject: [PATCH 1/3] Flush to DB right after project is created --- server/mergin/sync/public_api_controller.py | 1 + server/mergin/tests/test_project_controller.py | 2 +- server/mergin/tests/utils.py | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/server/mergin/sync/public_api_controller.py b/server/mergin/sync/public_api_controller.py index 217cb6cf..d37d1ad3 100644 --- a/server/mergin/sync/public_api_controller.py +++ b/server/mergin/sync/public_api_controller.py @@ -193,6 +193,7 @@ def add_project(namespace): # noqa: E501 p = Project(**request.json, creator=current_user, workspace=workspace) p.updated = datetime.utcnow() + db.session.flush() pa = ProjectAccess(p, public=request.json.get("public", False)) template_name = request.json.get("template", None) diff --git a/server/mergin/tests/test_project_controller.py b/server/mergin/tests/test_project_controller.py index 216f4b48..f0f3b64d 100644 --- a/server/mergin/tests/test_project_controller.py +++ b/server/mergin/tests/test_project_controller.py @@ -37,7 +37,7 @@ ProjectFilePath, ) from ..sync.files import ChangesSchema -from ..sync.schemas import ProjectListSchema, ProjectSchema +from ..sync.schemas import ProjectListSchema from ..sync.utils import generate_checksum, is_versioned_file from ..auth.models import User, UserProfile diff --git a/server/mergin/tests/utils.py b/server/mergin/tests/utils.py index 4f5a9642..0128553d 100644 --- a/server/mergin/tests/utils.py +++ b/server/mergin/tests/utils.py @@ -78,7 +78,7 @@ def create_project(name, workspace, user, **kwargs): p = Project(**project_params, **kwargs) p.updated = datetime.utcnow() - db.session.add(p) + db.session.flush() public = kwargs.get("public", False) pa = ProjectAccess(p, public) From 199c316136abcd08dc83989c0cdeb4c229b9c33a Mon Sep 17 00:00:00 2001 From: Herman Snevajs Date: Tue, 12 Nov 2024 13:02:21 +0100 Subject: [PATCH 2/3] cleanup --- server/mergin/sync/models.py | 1 - server/mergin/sync/public_api_controller.py | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/server/mergin/sync/models.py b/server/mergin/sync/models.py index 0ba08cbd..0d65c8bf 100644 --- a/server/mergin/sync/models.py +++ b/server/mergin/sync/models.py @@ -24,7 +24,6 @@ from .files import ( File, - UploadFile, UploadChanges, ChangesSchema, ProjectFile, diff --git a/server/mergin/sync/public_api_controller.py b/server/mergin/sync/public_api_controller.py index d37d1ad3..c90db507 100644 --- a/server/mergin/sync/public_api_controller.py +++ b/server/mergin/sync/public_api_controller.py @@ -193,6 +193,7 @@ def add_project(namespace): # noqa: E501 p = Project(**request.json, creator=current_user, workspace=workspace) p.updated = datetime.utcnow() + db.session.add(p) db.session.flush() pa = ProjectAccess(p, public=request.json.get("public", False)) @@ -229,7 +230,6 @@ def add_project(namespace): # noqa: E501 get_device_id(request), ) - db.session.add(p) db.session.add(pa) db.session.add(version) db.session.commit() @@ -1182,6 +1182,7 @@ def clone_project(namespace, project_name): # noqa: E501 workspace=ws, ) p.updated = datetime.utcnow() + db.session.add(p) pa = ProjectAccess(p, public=False) try: @@ -1207,7 +1208,6 @@ def clone_project(namespace, project_name): # noqa: E501 user_agent, device_id, ) - db.session.add(p) db.session.add(pa) db.session.add(project_version) db.session.commit() From 598d4ce2b9480f0c4b0c53bb003cb58f3414b331 Mon Sep 17 00:00:00 2001 From: Herman Snevajs Date: Tue, 12 Nov 2024 13:57:01 +0100 Subject: [PATCH 3/3] we don't need flush in the controller --- server/mergin/sync/public_api_controller.py | 1 - 1 file changed, 1 deletion(-) diff --git a/server/mergin/sync/public_api_controller.py b/server/mergin/sync/public_api_controller.py index c90db507..66367b73 100644 --- a/server/mergin/sync/public_api_controller.py +++ b/server/mergin/sync/public_api_controller.py @@ -194,7 +194,6 @@ def add_project(namespace): # noqa: E501 p = Project(**request.json, creator=current_user, workspace=workspace) p.updated = datetime.utcnow() db.session.add(p) - db.session.flush() pa = ProjectAccess(p, public=request.json.get("public", False)) template_name = request.json.get("template", None)