Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[project]
name = "welearn-database"
version = "1.5.3.dev1"
version = "1.5.4.dev1"

description = "All stuff related to relationnal database from the WeLearn project"
authors = [
{name = "Théo",email = "theo.nardin@cri-paris.org"}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
"""track_document_last_state

Revision ID: 0310ff0bda4f
Revises: d22d6324c256
Create Date: 2026-09-23 11:48:30.473174

"""

from typing import Sequence, Union

import sqlalchemy as sa
from alembic import op

# revision identifiers, used by Alembic.
revision: str = "0310ff0bda4f"
down_revision: Union[str, None] = "d22d6324c256"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
op.execute("""
CREATE OR REPLACE VIEW document_related.track_document_latest_state
AS SELECT DISTINCT ON (ps.document_id) ps.id,
ps.document_id,
wd.corpus_id,
wd.lang,
ps.title,
ps.created_at,
ps.operation_order
FROM document_related.process_state ps
JOIN document_related.welearn_document wd ON ps.document_id = wd.id
ORDER BY ps.document_id, ps.operation_order DESC;
""")


def downgrade() -> None:
op.execute("DROP VIEW IF EXISTS document_related.track_document_latest_state;")
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
"""cleaned_document_state

Revision ID: d22d6324c256
Revises: 5d46d7920342
Create Date: 2026-09-23 11:18:46.784209

"""

from typing import Sequence, Union

import sqlalchemy as sa
from alembic import op

from welearn_database.data.enumeration import Step

# revision identifiers, used by Alembic.
revision: str = "d22d6324c256"
down_revision: Union[str, None] = "5d46d7920342"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
op.execute(
f"""ALTER TYPE document_related.step ADD VALUE '{Step.DOCUMENT_CLEANED.value}'"""
)


def downgrade() -> None:
pass
1 change: 1 addition & 0 deletions welearn_database/data/enumeration.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class Step(Enum):
DOCUMENT_IS_INVALID = "document_is_invalid"
KEPT_FOR_TRACE = "kept_for_trace"
DOCUMENT_IS_IRRETRIEVABLE = "document_is_irretrievable"
DOCUMENT_CLEANED = "document_cleaned"


class Counter(Enum):
Expand Down
18 changes: 18 additions & 0 deletions welearn_database/data/models/document_related.py
Original file line number Diff line number Diff line change
Expand Up @@ -563,3 +563,21 @@ class QtyDocumentPerCorpus(Base):

source_name: Mapped[str] = mapped_column(primary_key=True)
count: Mapped[int]


class TrackDocumentLatestState(Base):
__tablename__ = "track_document_latest_state"
__table_args__ = {"schema": schema_name}
__read_only__ = True

id: Mapped[UUID] = mapped_column(
primary_key=True,
type_=types.Uuid,
)
document_id: Mapped[UUID] = mapped_column(
type_=types.Uuid,
)
lang: Mapped[str]
title: Mapped[str]
created_at: Mapped[datetime] = mapped_column()
operation_order: Mapped[int]
Loading