filters system

This commit is contained in:
BarsTiger
2022-08-06 18:50:12 +03:00
parent a81eb2e295
commit eb3f494bd3
7 changed files with 26 additions and 4 deletions

View File

@@ -1,6 +1,7 @@
from modules.database import Database from modules.database import Database
from modules.database.model import Item from modules.database.model import Item
from gui.modules.core import items_list from gui.modules.core import items_list
from gui.modules.filters.menu import refill_filters
from gui.gui import Ui_MainWindow from gui.gui import Ui_MainWindow
@@ -21,3 +22,4 @@ def add_item_if_can(ui: Ui_MainWindow):
)) ))
items_list.refill_list(ui) items_list.refill_list(ui)
refill_filters(ui)

View File

@@ -2,7 +2,7 @@ import requests
from gui.gui import Ui_MainWindow from gui.gui import Ui_MainWindow
from modules.database import Database from modules.database import Database
from PyQt5 import QtWidgets, QtGui from PyQt5 import QtWidgets, QtGui
from gui.modules.filters.menu import refill_filters from gui.modules.handlers import fill_info
def refill_list(ui: Ui_MainWindow): def refill_list(ui: Ui_MainWindow):
@@ -10,9 +10,18 @@ def refill_list(ui: Ui_MainWindow):
if Database.get().items: if Database.get().items:
ui.logo_if_empty.hide() ui.logo_if_empty.hide()
ui.items_list.show() ui.items_list.show()
refill_filters(ui)
for item in Database.get().items: for item in Database.get().items:
item = Database.get().items[item] item = Database.get().items[item]
if not ui.filter_min_price_box.value() <= item.price <= ui.filter_max_price_box.value():
continue
if not (ui.filter_type_box.currentText() == 'All' or item.item_type == ui.filter_type_box.currentText()):
continue
if not (ui.filter_class_box.currentText() == 'All' or item.item_class == ui.filter_class_box.currentText()):
continue
list_item = QtWidgets.QListWidgetItem() list_item = QtWidgets.QListWidgetItem()
list_item.setText(f'{item.item_name} - ${"{:,}".format(item.price)}') list_item.setText(f'{item.item_name} - ${"{:,}".format(item.price)}')
pixmap = QtGui.QPixmap() pixmap = QtGui.QPixmap()
@@ -24,6 +33,8 @@ def refill_list(ui: Ui_MainWindow):
ui.items_list.addItem(list_item) ui.items_list.addItem(list_item)
fill_info.on_item_click(ui, 'close')
else: else:
ui.logo_if_empty.show() ui.logo_if_empty.show()
ui.items_list.hide() ui.items_list.hide()

View File

@@ -31,6 +31,9 @@ def refill_types(ui: Ui_MainWindow):
if type_ in string_db: if type_ in string_db:
ui.filter_type_box.addItem(type_) ui.filter_type_box.addItem(type_)
case 'Other':
ui.filter_type_box.addItem('Other')
def refill_filters(ui: Ui_MainWindow): def refill_filters(ui: Ui_MainWindow):
ui.filter_class_box.clear() ui.filter_class_box.clear()

View File

@@ -27,7 +27,7 @@ def on_item_click(ui: Ui_MainWindow, mode: str):
Ui_MainWindow.animation = QtCore.QPropertyAnimation(ui.item_properties_lay, b"minimumWidth") Ui_MainWindow.animation = QtCore.QPropertyAnimation(ui.item_properties_lay, b"minimumWidth")
Ui_MainWindow.animation.setDuration(300) Ui_MainWindow.animation.setDuration(300)
if width == 0: if width == 0 and mode != 'close':
Ui_MainWindow.animation.setStartValue(0) Ui_MainWindow.animation.setStartValue(0)
Ui_MainWindow.animation.setEndValue(480) Ui_MainWindow.animation.setEndValue(480)

View File

@@ -1,6 +1,7 @@
from gui.gui import Ui_MainWindow from gui.gui import Ui_MainWindow
from modules.database import Database from modules.database import Database
from gui.modules.core import items_list from gui.modules.core import items_list
from gui.modules.filters.menu import refill_filters
def on_rm_click(ui: Ui_MainWindow): def on_rm_click(ui: Ui_MainWindow):
@@ -10,4 +11,5 @@ def on_rm_click(ui: Ui_MainWindow):
ui.items_list.currentItem().text().removesuffix(' - ' + ui.items_list.currentItem().text().split(' - ')[-1]) ui.items_list.currentItem().text().removesuffix(' - ' + ui.items_list.currentItem().text().split(' - ')[-1])
) )
items_list.refill_list(ui) items_list.refill_list(ui)
refill_filters(ui)
fill_info.on_item_click(ui, 'close') fill_info.on_item_click(ui, 'close')

View File

@@ -3,10 +3,11 @@ from gui.modules.handlers import fill_info
from gui.modules.handlers import on_item_remove from gui.modules.handlers import on_item_remove
from gui.modules.adding_item import on_add_click from gui.modules.adding_item import on_add_click
from gui.modules.filters import menu from gui.modules.filters import menu
from gui.modules.core import items_list
def register_handlers(ui: Ui_MainWindow): def register_handlers(ui: Ui_MainWindow):
ui.items_list.currentItemChanged.connect(lambda: fill_info.on_item_click(ui, 'open')) ui.items_list.itemClicked.connect(lambda: fill_info.on_item_click(ui, 'open'))
ui.items_list.itemDoubleClicked.connect(lambda: fill_info.on_item_click(ui, 'close')) ui.items_list.itemDoubleClicked.connect(lambda: fill_info.on_item_click(ui, 'close'))
ui.delete_item_button.clicked.connect(lambda: on_item_remove.on_rm_click(ui)) ui.delete_item_button.clicked.connect(lambda: on_item_remove.on_rm_click(ui))
@@ -16,5 +17,6 @@ def register_handlers(ui: Ui_MainWindow):
ui.open_filter_button.clicked.connect(lambda: menu.on_open_close_click(ui)) ui.open_filter_button.clicked.connect(lambda: menu.on_open_close_click(ui))
ui.filter_class_box.currentIndexChanged.connect(lambda: menu.refill_types(ui)) ui.filter_class_box.currentIndexChanged.connect(lambda: menu.refill_types(ui))
ui.filters_apply_button.clicked.connect(lambda: items_list.refill_list(ui))
on_add_click.register_add_handlers(ui) on_add_click.register_add_handlers(ui)

View File

@@ -5,6 +5,7 @@ from PyQt5.QtWidgets import QMainWindow
from modules.config import Config from modules.config import Config
from gui.modules.core import items_list from gui.modules.core import items_list
from gui.modules.handlers.register import register_handlers from gui.modules.handlers.register import register_handlers
from gui.modules.filters.menu import refill_filters
def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow): def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
@@ -17,6 +18,7 @@ def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
if 'acrylic' in Config.get().theme: if 'acrylic' in Config.get().theme:
GlobalBlur(MainWindow.winId(), acrylic=True) GlobalBlur(MainWindow.winId(), acrylic=True)
refill_filters(ui)
items_list.refill_list(ui) items_list.refill_list(ui)
register_handlers(ui) register_handlers(ui)