Skip to content

Commit

Permalink
pretty good searching draft
Browse files Browse the repository at this point in the history
  • Loading branch information
ciur committed Aug 3, 2023
1 parent 0736e8b commit e8675fa
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 10 deletions.
9 changes: 5 additions & 4 deletions papermerge/core/schemas/documents.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
from uuid import UUID

from django.db.models.manager import BaseManager
from pydantic import BaseModel, FieldValidationInfo, field_validator
from pydantic import BaseModel, Field, FieldValidationInfo, field_validator
from typing_extensions import Annotated

from papermerge.core.types import OCRStatusEnum

Expand All @@ -15,8 +16,8 @@ class Page(BaseModel):
text: str = ''
lang: str
document_version_id: UUID
svg_url: Optional[str] = None
jpg_url: Optional[str] = None
svg_url: Annotated[Optional[str], Field(validate_default=True)] = None
jpg_url: Annotated[Optional[str], Field(validate_default=True)] = None

@field_validator("svg_url", mode='before')
@classmethod
Expand All @@ -25,7 +26,7 @@ def svg_url_value(cls, value, info: FieldValidationInfo) -> str:

@field_validator("jpg_url", mode='before')
@classmethod
def jpg_url_value(cls, value, info: FieldValidationInfo):
def jpg_url_value(cls, value, info: FieldValidationInfo) -> str:
return f"/api/pages/{info.data['id']}/jpg"

class Config:
Expand Down
2 changes: 2 additions & 0 deletions papermerge/search/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,6 @@ class IndexEntity(Schema):

def __str__(self):
return f'IndexEntity(id={self.id}, title={self.title}, '\
f'document_id={self.document_id},' \
f'document_version_id={self.document_version_id},' \
f'type={self.entity_type})'
3 changes: 2 additions & 1 deletion papermerge/test/baker_recipes.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
from model_bakery.recipe import Recipe

from papermerge.core.models import (BaseTreeNode, Document, DocumentVersion,
Folder, Tag, User)
Folder, Page, Tag, User)

folder_recipe = Recipe(Folder)
user_recipe = Recipe(User)
document_version_recipe = Recipe(DocumentVersion)
page_recipe = Recipe(Page)
node_recipe = Recipe(BaseTreeNode)

# By default, creates document with 2 versions
Expand Down
6 changes: 3 additions & 3 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions tests/core/schemas/test_page.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import pytest

from papermerge.core.schemas.documents import Page as PyPage
from papermerge.test.baker_recipes import page_recipe


@pytest.mark.django_db
def test_pypage_model_validation():
page = page_recipe.make()
pypage = PyPage.model_validate(page)

assert pypage.jpg_url == f"/api/pages/{page.id}/jpg"
assert pypage.svg_url == f"/api/pages/{page.id}/svg"
2 changes: 1 addition & 1 deletion ui/src/components/viewer/pages_panel/pages_panel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ type Args = {
export function PagesPanel({pages}: Args) {
return (
<div className='pages-panel flex-grow-1'>
{pages.map(page => <Page page={page} />)}
{pages.map(page => <Page key={page.id} page={page} />)}
</div>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export function ThumbnailsPanel({pages, visible}: Args) {

return (
<div className={css_class_nanme}>
{pages.map(page => <PageThumbnail page={page} />)}
{pages.map(page => <PageThumbnail key={page.id} page={page} />)}
</div>
);
}

0 comments on commit e8675fa

Please sign in to comment.