adding item

This commit is contained in:
BarsTiger
2022-08-05 23:01:21 +03:00
parent e85db18b9f
commit e01fb0efd1
11 changed files with 166 additions and 11 deletions

View File

@@ -0,0 +1,57 @@
from gui.gui import Ui_MainWindow
from gui.modules.adding_item.write_item import add_item_if_can
from data import common
def on_add_button_click(ui: Ui_MainWindow):
sender_page = ui.content.currentWidget()
ui.content.setCurrentWidget(ui.add_page)
ui.adding_item_main_layout.setCurrentIndex(0)
ui.new_item_finish_label.setText("Fill all fields first")
ui.new_item_name_box.clear()
ui.new_item_price_box.setValue(0)
ui.new_item_class_box.clear()
ui.new_item_type_box.clear()
ui.new_item_type_box.addItem("Other")
ui.new_item_shop_box.clear()
ui.new_item_image_box.clear()
ui.new_item_class_box.addItems(common.items_class)
ui.new_item_class_box.setCurrentIndex(len(common.items_class) - 1)
ui.new_item_class_box.currentIndexChanged.connect(
lambda: (
ui.new_item_type_box.clear(),
ui.new_item_type_box.addItems(
common.vehicle_type if ui.new_item_class_box.currentText() == "Vehicle"
else common.property_type if ui.new_item_class_box.currentText() == "Property"
else ["Other"]
)
)
)
ui.new_item_shop_box.addItems(common.shop_sites)
ui.new_item_shop_box.setCurrentIndex(len(common.shop_sites) - 1)
ui.next_adding_item_button.clicked.connect(
lambda: (
ui.adding_item_main_layout.setCurrentIndex(
(lambda x: x if x <= ui.adding_item_main_layout.count() else ui.adding_item_main_layout.count())
(ui.adding_item_main_layout.currentIndex() + 1)),
ui.new_item_finish_label.setText("Item registered. Press exit button on left side" if
ui.new_item_name_box.text() != "" and
ui.new_item_price_box.value() != 0
else "Fill all fields first! (Image is not required)"
),
add_item_if_can(ui)
)
)
ui.back_adding_item_button.clicked.connect(
lambda: ui.adding_item_main_layout.setCurrentIndex(
(lambda x: x if x >= 0 else 0)(ui.adding_item_main_layout.currentIndex() - 1)
)
)
ui.cancel_adding_item_button.clicked.connect(lambda: ui.content.setCurrentWidget(sender_page))

View File

@@ -0,0 +1,17 @@
from modules.database import Database
from modules.database.model import Item
from gui.gui import Ui_MainWindow
def add_item_if_can(ui: Ui_MainWindow):
if {"", 0} & {ui.new_item_name_box.text(), ui.new_item_price_box.value()}:
return
Database.add_item(Item(
ui.new_item_name_box.text(),
ui.new_item_class_box.currentText(),
ui.new_item_type_box.currentText(),
ui.new_item_shop_box.currentText(),
ui.new_item_price_box.value(),
ui.new_item_image_box.text() if ui.new_item_image_box.text() != "" else None
))

View File

@@ -14,8 +14,12 @@ def refill_list(ui: Ui_MainWindow):
list_item = QtWidgets.QListWidgetItem()
list_item.setText(f'{item.item_name} - ${"{:,}".format(item.price)}')
pixmap = QtGui.QPixmap()
pixmap.loadFromData(requests.get(item.image).content)
list_item.setIcon(QtGui.QIcon(pixmap))
try:
pixmap.loadFromData(requests.get(item.image).content)
list_item.setIcon(QtGui.QIcon(pixmap))
except Exception as e:
print(f"Failed to load {item.image}, {e}")
ui.items_list.addItem(list_item)
else:

View File

@@ -11,8 +11,12 @@ def on_item_click(ui: Ui_MainWindow, mode: str):
]
pixmap = QtGui.QPixmap()
pixmap.loadFromData(requests.get(item.image).content)
ui.properties_image.setPixmap(pixmap)
try:
pixmap.loadFromData(requests.get(item.image).content)
ui.properties_image.setPixmap(pixmap)
except Exception as e:
ui.properties_image.clear()
print(f"Failed to load {item.image}, {e}")
ui.properties_name.setText(item.item_name)
ui.properties_price.setText(f'${"{:,}".format(item.price)}')

View File

@@ -1,6 +1,7 @@
from gui.gui import Ui_MainWindow
from gui.modules.handlers import fill_info
from gui.modules.handlers import on_item_remove
from gui.modules.adding_item import on_add_click
def register_handlers(ui: Ui_MainWindow):
@@ -8,3 +9,5 @@ def register_handlers(ui: Ui_MainWindow):
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.add_item_button.clicked.connect(lambda: on_add_click.on_add_button_click(ui))

View File

@@ -5,6 +5,7 @@ from PyQt5.QtWidgets import QMainWindow
from modules.config import Config
from gui.modules.core import items_list
from modules.database import Database
from modules.database.model import Item
def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
@@ -18,3 +19,4 @@ def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
GlobalBlur(MainWindow.winId(), acrylic=True)
items_list.refill_list(ui)
Database.add_item(Item("aa", "aa", "aa", "aa", 10, "aa"))