From d9da55845802f24aa756a03365474dee7c130b36 Mon Sep 17 00:00:00 2001 From: Jann Stute Date: Sat, 30 Nov 2024 12:07:08 +0100 Subject: [PATCH] Revert changes to search_tags in favor of changes from #604 --- tagstudio/src/core/library/alchemy/library.py | 12 ++++++------ tagstudio/src/qt/modals/tag_database.py | 5 ++--- tagstudio/src/qt/modals/tag_search.py | 12 +++--------- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/tagstudio/src/core/library/alchemy/library.py b/tagstudio/src/core/library/alchemy/library.py index 9ed63a55..17fc3492 100644 --- a/tagstudio/src/core/library/alchemy/library.py +++ b/tagstudio/src/core/library/alchemy/library.py @@ -38,7 +38,7 @@ from ...constants import ( ) from ...enums import LibraryPrefs from .db import make_tables -from .enums import FieldTypeEnum, FilterState, TagColor, TagFilterState +from .enums import FieldTypeEnum, FilterState, TagColor from .fields import ( BaseField, DatetimeField, @@ -489,7 +489,7 @@ class Library: def search_tags( self, - filter_state: TagFilterState, + name: str, ) -> list[Tag]: """Return a list of Tag records matching the query.""" with Session(self.engine) as session: @@ -499,11 +499,11 @@ class Library: selectinload(Tag.aliases), ) - if filter_state.search: + if name: query = query.where( or_( - Tag.name.icontains(filter_state.search), - Tag.shorthand.icontains(filter_state.search), + Tag.name.icontains(name), + Tag.shorthand.icontains(name), ) ) @@ -513,7 +513,7 @@ class Library: logger.info( "searching tags", - search=filter_state, + search=name, statement=str(query), results=len(res), ) diff --git a/tagstudio/src/qt/modals/tag_database.py b/tagstudio/src/qt/modals/tag_database.py index bc86b87f..1452e642 100644 --- a/tagstudio/src/qt/modals/tag_database.py +++ b/tagstudio/src/qt/modals/tag_database.py @@ -12,7 +12,6 @@ from PySide6.QtWidgets import ( QWidget, ) from src.core.library import Library, Tag -from src.core.library.alchemy.enums import TagFilterState from src.qt.modals.build_tag import BuildTagPanel from src.qt.widgets.panel import PanelModal, PanelWidget from src.qt.widgets.tag import TagWidget @@ -70,9 +69,9 @@ class TagDatabasePanel(PanelWidget): while self.scroll_layout.itemAt(0): self.scroll_layout.takeAt(0).widget().deleteLater() - tags = self.lib.search_tags(TagFilterState(search=query, page_size=self.tag_limit)) + tags_results = self.lib.search_tags(name=query) - for tag in tags: + for tag in tags_results: container = QWidget() row = QHBoxLayout(container) row.setContentsMargins(0, 0, 0, 0) diff --git a/tagstudio/src/qt/modals/tag_search.py b/tagstudio/src/qt/modals/tag_search.py index 02ce2d20..943d7589 100644 --- a/tagstudio/src/qt/modals/tag_search.py +++ b/tagstudio/src/qt/modals/tag_search.py @@ -17,7 +17,6 @@ from PySide6.QtWidgets import ( QWidget, ) from src.core.library import Library -from src.core.library.alchemy.enums import TagFilterState from src.core.palette import ColorType, get_tag_color from src.qt.widgets.panel import PanelWidget from src.qt.widgets.tag import TagWidget @@ -73,18 +72,13 @@ class TagSearchPanel(PanelWidget): self.search_field.setFocus() self.parentWidget().hide() - def update_tags(self, name: str | None = None): + def update_tags(self, query: str | None = None): while self.scroll_layout.count(): self.scroll_layout.takeAt(0).widget().deleteLater() - found_tags = self.lib.search_tags( - TagFilterState( - search=name, - page_size=self.tag_limit, - ) - ) + tag_results = self.lib.search_tags(name=query) - for tag in found_tags: + for tag in tag_results: if self.exclude is not None and tag.id in self.exclude: continue c = QWidget()