From 1ce9f6fc0d076ed607231b1514c2e429f44d3ab7 Mon Sep 17 00:00:00 2001 From: Herman Snevajs Date: Thu, 7 Nov 2024 11:12:26 +0100 Subject: [PATCH 1/3] Send ProjectVersion created signal when creating project in tests --- server/mergin/sync/public_api_controller.py | 1 - server/mergin/tests/utils.py | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/mergin/sync/public_api_controller.py b/server/mergin/sync/public_api_controller.py index 7a3b1833..aaf76ea1 100644 --- a/server/mergin/sync/public_api_controller.py +++ b/server/mergin/sync/public_api_controller.py @@ -12,7 +12,6 @@ from typing import Dict from urllib.parse import quote import uuid -from time import time from datetime import datetime import psycopg2 from blinker import signal diff --git a/server/mergin/tests/utils.py b/server/mergin/tests/utils.py index 121acf2f..610ad106 100644 --- a/server/mergin/tests/utils.py +++ b/server/mergin/tests/utils.py @@ -10,7 +10,6 @@ from dataclasses import asdict from datetime import datetime -import pysqlite3 from flask import url_for, current_app import os from dateutil.tz import tzlocal @@ -21,6 +20,7 @@ from ..sync.models import Project, ProjectAccess, ProjectVersion, FileHistory from ..sync.files import UploadChanges, ChangesSchema from ..sync.workspace import GlobalWorkspace +from ..sync.public_api_controller import project_version_created from .. import db from . import json_headers, DEFAULT_USER, test_project, test_project_dir, TMP_DIR @@ -88,6 +88,7 @@ def create_project(name, workspace, user, **kwargs): pv = ProjectVersion(p, 0, user.id, changes, "127.0.0.1") db.session.add(pv) db.session.commit() + project_version_created.send(pv) os.makedirs(p.storage.project_dir, exist_ok=True) return p From e1eb0c86095a8bf7317601fd161d91e5c7e9c614 Mon Sep 17 00:00:00 2001 From: Herman Snevajs Date: Mon, 11 Nov 2024 14:50:35 +0100 Subject: [PATCH 2/3] cleanup unused imports --- server/mergin/sync/private_api_controller.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/mergin/sync/private_api_controller.py b/server/mergin/sync/private_api_controller.py index c6122166..5bac41bd 100644 --- a/server/mergin/sync/private_api_controller.py +++ b/server/mergin/sync/private_api_controller.py @@ -6,20 +6,19 @@ from flask import render_template, request, current_app, jsonify, abort from flask_login import current_user from sqlalchemy.orm import defer -from sqlalchemy import text, and_, desc, asc +from sqlalchemy import text from .. import db from ..auth import auth_required from ..auth.models import User, UserProfile from .forms import AccessPermissionForm -from .models import Project, AccessRequest, ProjectRole, RequestStatus, ProjectVersion +from .models import Project, AccessRequest, ProjectRole, RequestStatus from .schemas import ( ProjectListSchema, ProjectAccessRequestSchema, AdminProjectSchema, ProjectAccessSchema, ProjectAccessDetailSchema, - ProjectVersionListSchema, ) from .permissions import ( require_project_by_uuid, From 489e8b0e0303d0fec7b53a4448d906bd5c356c02 Mon Sep 17 00:00:00 2001 From: Herman Snevajs Date: Mon, 11 Nov 2024 14:51:15 +0100 Subject: [PATCH 3/3] send project_version.created signal on pv init --- server/mergin/sync/models.py | 3 +++ server/mergin/sync/public_api_controller.py | 5 ----- server/mergin/tests/utils.py | 2 -- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/server/mergin/sync/models.py b/server/mergin/sync/models.py index 83febbbd..0ba08cbd 100644 --- a/server/mergin/sync/models.py +++ b/server/mergin/sync/models.py @@ -36,6 +36,7 @@ Storages = {"local": DiskStorage} project_deleted = signal("project_deleted") +project_version_created = signal("project_version_created") class PushChangeType(Enum): @@ -809,6 +810,8 @@ def __init__( self.project_size = self.project.disk_usage db.session.flush() + project_version_created.send(self) + @staticmethod def from_v_name(name: str) -> int: """Parsed version name as integer (v5 -> 5)""" diff --git a/server/mergin/sync/public_api_controller.py b/server/mergin/sync/public_api_controller.py index aaf76ea1..217cb6cf 100644 --- a/server/mergin/sync/public_api_controller.py +++ b/server/mergin/sync/public_api_controller.py @@ -86,7 +86,6 @@ from ..utils import format_time_delta push_triggered = signal("push_triggered") -project_version_created = signal("project_version_created") def parse_project_access_update_request(access: Dict) -> Dict: @@ -233,7 +232,6 @@ def add_project(namespace): # noqa: E501 db.session.add(pa) db.session.add(version) db.session.commit() - project_version_created.send(version) return NoContent, 200 @@ -872,7 +870,6 @@ def project_push(namespace, project_name): f"A project version {ProjectVersion.to_v_name(next_version)} for project: {project.id} created. " f"Transaction id: {upload.id}. No upload." ) - project_version_created.send(pv) return jsonify(ProjectSchema().dump(project)), 200 except IntegrityError as err: db.session.rollback() @@ -1082,7 +1079,6 @@ def push_finish(transaction_id): logging.info( f"Push finished for project: {project.id}, project version: {v_next_version}, transaction id: {transaction_id}." ) - project_version_created.send(pv) except (psycopg2.Error, FileNotFoundError, DataSyncError, IntegrityError) as err: db.session.rollback() logging.exception( @@ -1214,7 +1210,6 @@ def clone_project(namespace, project_name): # noqa: E501 db.session.add(pa) db.session.add(project_version) db.session.commit() - project_version_created.send(project_version) return NoContent, 200 diff --git a/server/mergin/tests/utils.py b/server/mergin/tests/utils.py index 5b69cb53..4f5a9642 100644 --- a/server/mergin/tests/utils.py +++ b/server/mergin/tests/utils.py @@ -20,7 +20,6 @@ from ..sync.models import Project, ProjectAccess, ProjectVersion, FileHistory from ..sync.files import UploadChanges, ChangesSchema from ..sync.workspace import GlobalWorkspace -from ..sync.public_api_controller import project_version_created from .. import db from . import json_headers, DEFAULT_USER, test_project, test_project_dir, TMP_DIR @@ -88,7 +87,6 @@ def create_project(name, workspace, user, **kwargs): pv = ProjectVersion(p, 0, user.id, changes, "127.0.0.1") db.session.add(pv) db.session.commit() - project_version_created.send(pv) os.makedirs(p.storage.project_dir, exist_ok=True) return p