mark items as owned and unowned

This commit is contained in:
BarsTiger
2022-08-09 22:50:19 +03:00
parent f5c0f677cb
commit 8045bbc6b7
8 changed files with 55 additions and 14 deletions

View File

@@ -1,2 +1,3 @@
from .manager import * from .manager import *
from .accounts import * from .accounts import *
from .owning import *

View File

@@ -1,5 +1,6 @@
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 modules.config import Config from modules.config import Config
@@ -17,3 +18,4 @@ def fill_accounts(ui: Ui_MainWindow):
def set_current_profile(ui: Ui_MainWindow): def set_current_profile(ui: Ui_MainWindow):
if ui.accounts_list.currentItem(): if ui.accounts_list.currentItem():
Config.update("profile", ui.accounts_list.currentItem().text()) Config.update("profile", ui.accounts_list.currentItem().text())
items_list.refill_list(ui)

View File

@@ -0,0 +1,14 @@
from gui.gui import Ui_MainWindow
from gui.modules.core import items_list
from modules.database import Database
def on_change_owning_clicked(ui: Ui_MainWindow):
if items_list.selected_item(ui) not in Database.get_profile().owned_items:
Database.set_owned(items_list.selected_item(ui))
ui.own_button.setText("Mark this item as unowned")
items_list.refill_list(ui)
else:
Database.set_unowned(items_list.selected_item(ui))
ui.own_button.setText("Mark this item as owned")
items_list.refill_list(ui)

View File

@@ -6,6 +6,12 @@ from PyQt5 import QtWidgets, QtGui
from gui.modules.handlers import fill_info from gui.modules.handlers import fill_info
def selected_item(ui: Ui_MainWindow):
if ui.items_list.currentItem():
return ui.items_list.currentItem().text() \
.removesuffix(' - ' + ui.items_list.currentItem().text().split(' - ')[-1]).replace("", "")
def refill_list(ui: Ui_MainWindow): def refill_list(ui: Ui_MainWindow):
ui.items_list.clear() ui.items_list.clear()
if Database.get().items: if Database.get().items:
@@ -24,14 +30,14 @@ def refill_list(ui: Ui_MainWindow):
continue continue
if (not ui.filter_show_owned_items_check.isChecked()) and item.item_name in \ if (not ui.filter_show_owned_items_check.isChecked()) and item.item_name in \
Database.get().profiles[Config.get().profile].owned_items: Database.get_profile().owned_items:
continue continue
list_item = QtWidgets.QListWidgetItem() list_item = QtWidgets.QListWidgetItem()
if Config.get().profile: if Config.get().profile:
ui.own_button.setEnabled(True) ui.own_button.setEnabled(True)
if item.item_name in Database.get().profiles[Config.get().profile].owned_items: if item.item_name in Database.get_profile().owned_items:
ui.own_button.setText("Mark this item as unowned") ui.own_button.setText("Mark this item as unowned")
else: else:
ui.own_button.setText("Mark this item as owned") ui.own_button.setText("Mark this item as owned")
@@ -39,9 +45,11 @@ def refill_list(ui: Ui_MainWindow):
ui.own_button.setEnabled(False) ui.own_button.setEnabled(False)
ui.own_button.setText("Select profile first") ui.own_button.setText("Select profile first")
list_item.setText(f'' list_item.setText(
f'{"" if Config.get().profile and item.item_name in Database.get().profiles[Config.get().profile].owned_items else ""}' f''
f'{item.item_name} - ${"{:,}".format(item.price)}') f'{"" if Config.get().profile and item.item_name in Database.get_profile().owned_items else ""}'
f'{item.item_name} - ${"{:,}".format(item.price)}'
)
pixmap = QtGui.QPixmap() pixmap = QtGui.QPixmap()
try: try:
pixmap.loadFromData(requests.get(item.image).content) pixmap.loadFromData(requests.get(item.image).content)

View File

@@ -3,14 +3,12 @@ from PyQt5 import QtWidgets, QtGui, QtCore
from gui.gui import Ui_MainWindow from gui.gui import Ui_MainWindow
from modules.database import Database from modules.database import Database
from modules.config import Config from modules.config import Config
from gui.modules.core import items_list
def on_item_click(ui: Ui_MainWindow, mode: str): def on_item_click(ui: Ui_MainWindow, mode: str):
if ui.items_list.currentItem(): if ui.items_list.currentItem():
item = Database.get().items[ item = Database.get().items[items_list.selected_item(ui)]
ui.items_list.currentItem().text().removesuffix(' - ' + ui.items_list.currentItem().text().split(' - ')[-1])
.replace("", "")
]
pixmap = QtGui.QPixmap() pixmap = QtGui.QPixmap()
try: try:
@@ -23,7 +21,7 @@ def on_item_click(ui: Ui_MainWindow, mode: str):
if Config.get().profile: if Config.get().profile:
ui.own_button.setEnabled(True) ui.own_button.setEnabled(True)
if item.item_name in Database.get().profiles[Config.get().profile].owned_items: if item.item_name in Database.get_profile().owned_items:
ui.own_button.setText("Mark this item as unowned") ui.own_button.setText("Mark this item as unowned")
else: else:
ui.own_button.setText("Mark this item as owned") ui.own_button.setText("Mark this item as owned")

View File

@@ -7,10 +7,7 @@ from gui.modules.filters.menu import refill_filters
def on_rm_click(ui: Ui_MainWindow): def on_rm_click(ui: Ui_MainWindow):
from gui.modules.handlers import fill_info from gui.modules.handlers import fill_info
if ui.items_list.currentItem(): if ui.items_list.currentItem():
Database.remove_item( Database.remove_item(items_list.selected_item(ui))
ui.items_list.currentItem().text().removesuffix(' - ' + ui.items_list.currentItem().text().split(' - ')[-1])
.replace("", "")
)
items_list.refill_list(ui) items_list.refill_list(ui)
refill_filters(ui) refill_filters(ui)
fill_info.on_item_click(ui, 'close') fill_info.on_item_click(ui, 'close')

View File

@@ -30,4 +30,6 @@ def register_handlers(ui: Ui_MainWindow):
ui.accept_account_name.clicked.connect(lambda: account.manager.create_account(ui)) ui.accept_account_name.clicked.connect(lambda: account.manager.create_account(ui))
ui.use_this_account_button.clicked.connect(lambda: account.accounts.set_current_profile(ui)) ui.use_this_account_button.clicked.connect(lambda: account.accounts.set_current_profile(ui))
ui.own_button.clicked.connect(lambda: account.owning.on_change_owning_clicked(ui))
on_add_click.register_add_handlers(ui) on_add_click.register_add_handlers(ui)

View File

@@ -16,6 +16,10 @@ class Database:
json.dump(default_database, f, indent=4) json.dump(default_database, f, indent=4)
return DatabaseModel.from_dict(default_database) return DatabaseModel.from_dict(default_database)
@staticmethod
def get_profile():
return Database.get().profiles[Config.get().profile]
@staticmethod @staticmethod
def write(db: DatabaseModel): def write(db: DatabaseModel):
with open(Config.get().database, 'w') as f: with open(Config.get().database, 'w') as f:
@@ -48,3 +52,18 @@ class Database:
db.profiles.pop(profile_name) db.profiles.pop(profile_name)
Database.write(db) Database.write(db)
@staticmethod
def set_owned(item_name: str):
db = Database.get()
db.profiles[Config.get().profile].owned_items.append(item_name)
Database.write(db)
@staticmethod
def set_unowned(item_name: str):
db = Database.get()
if item_name in db.profiles[Config.get().profile].owned_items:
db.profiles[Config.get().profile].owned_items.remove(item_name)
Database.write(db)