From 91aecccf143c2bcc8b54e80095c2fd07c94fde1d Mon Sep 17 00:00:00 2001 From: Eugen Ciur Date: Sun, 7 Jan 2024 10:06:17 +0100 Subject: [PATCH] alost works! --- papermerge/core/db/doc_ver.py | 7 ++++--- papermerge/core/db/models.py | 26 +++++++++++++++++++------- papermerge/core/db/pages.py | 7 ++++--- papermerge/core/routers/thumbnails.py | 3 ++- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/papermerge/core/db/doc_ver.py b/papermerge/core/db/doc_ver.py index 3350a2c79..71ce9cb38 100644 --- a/papermerge/core/db/doc_ver.py +++ b/papermerge/core/db/doc_ver.py @@ -18,9 +18,10 @@ def get_last_doc_ver( """ with Session(engine) as session: # noqa stmt = select(DocumentVersion).where( - document_id=doc_id, - user_id=user_id - ) + DocumentVersion.document_id == doc_id + ).order_by( + DocumentVersion.number.desc() + ).limit(1) db_doc_ver = session.scalars(stmt).one() model_doc_ver = schemas.DocumentVersion.model_validate(db_doc_ver) diff --git a/papermerge/core/db/models.py b/papermerge/core/db/models.py index e9d1344f1..8f49b9e16 100644 --- a/papermerge/core/db/models.py +++ b/papermerge/core/db/models.py @@ -7,13 +7,7 @@ class Base(DeclarativeBase): - created_at: Mapped[datetime] = mapped_column( - insert_default=func.now() - ) - updated_at: Mapped[datetime] = mapped_column( - insert_default=func.now(), - onupdate=func.now() - ) + pass class User(Base): @@ -30,6 +24,13 @@ class User(Base): ) home_folder_id: Mapped[UUID] = mapped_column(ForeignKey("Node.id")) inbox_folder_id: Mapped[UUID] = mapped_column(ForeignKey("Node.id")) + created_at: Mapped[datetime] = mapped_column( + insert_default=func.now() + ) + updated_at: Mapped[datetime] = mapped_column( + insert_default=func.now(), + onupdate=func.now() + ) CType = Literal["document", "folder"] @@ -49,6 +50,13 @@ class Node(Base): ) user_id: Mapped[UUID] = mapped_column(ForeignKey("core_user.id")) parent_id: Mapped[UUID] = mapped_column(ForeignKey("node.id")) + created_at: Mapped[datetime] = mapped_column( + insert_default=func.now() + ) + updated_at: Mapped[datetime] = mapped_column( + insert_default=func.now(), + onupdate=func.now() + ) __mapper_args__ = { "polymorphic_identity": "node", @@ -97,12 +105,16 @@ class DocumentVersion(Base): ForeignKey("core_document.basetreenode_ptr_id") ) + lang: Mapped[str] + short_description: Mapped[str] + class Page(Base): __tablename__ = "core_page" id: Mapped[UUID] = mapped_column(primary_key=True) number: Mapped[int] + lang: Mapped[str] document_version_id: Mapped[UUID] = mapped_column( ForeignKey("core_documentversion.id") ) diff --git a/papermerge/core/db/pages.py b/papermerge/core/db/pages.py index c2c13098c..85bc2bb95 100644 --- a/papermerge/core/db/pages.py +++ b/papermerge/core/db/pages.py @@ -18,9 +18,10 @@ def get_first_page( """ with Session(engine) as session: # noqa stmt = select(Page).where( - document_version_id=doc_ver_id, - user_id=user_id - ) + Page.document_version_id == doc_ver_id + ).order_by( + Page.number.asc() + ).limit(1) db_page = session.scalars(stmt).one() db_model = schemas.Page.model_validate(db_page) diff --git a/papermerge/core/routers/thumbnails.py b/papermerge/core/routers/thumbnails.py index f3f433743..7c7666131 100644 --- a/papermerge/core/routers/thumbnails.py +++ b/papermerge/core/routers/thumbnails.py @@ -65,6 +65,7 @@ def retrieve_document_thumbnail( ) last_version = doc.versions.last() + first_page = last_version.pages.first() if first_page is None: @@ -105,7 +106,7 @@ def retrieve_document_thumbnail2( document_id: uuid.UUID, size: int = DEFAULT_THUMBNAIL_SIZE, user: schemas.User = Depends(get_current_user), - engine: db.Engine = db.get_engine() + engine: db.Engine = Depends(db.get_engine) ): """Retrieves thumbnail of the document last version's first page""" try: