diff --git a/src/brovski-adress-etiketten-verwaltung.py b/src/brovski-adress-etiketten-verwaltung.py index 71e1423..aeb6c7c 100644 --- a/src/brovski-adress-etiketten-verwaltung.py +++ b/src/brovski-adress-etiketten-verwaltung.py @@ -8,6 +8,7 @@ from tkinter import ttk from config import Config from connector import JSONConnector +from model import Model from windows import SettingsWindow, EditRecord, show_error @@ -36,7 +37,7 @@ class Application: self.filter_active = tk.BooleanVar(value=False) # model connector - self.model = JSONConnector() + self.model = Model(JSONConnector()) # init paths to json and csv file self.json_file_name = "brovski-adress-etiketten-verwaltung.json" diff --git a/src/connector.py b/src/connector.py index 436ea86..f3f4c9f 100644 --- a/src/connector.py +++ b/src/connector.py @@ -29,6 +29,10 @@ class Connector(ABC): def create_new(self, values: dict) -> int: pass + @abstractmethod + def get_all_sorted_by(self, field: str, reverse: bool = False) -> list: + pass + class JSONConnector(Connector): def __init__(self): @@ -78,5 +82,5 @@ class JSONConnector(Connector): return next_id def _write_to_file(self, data): - with open(self.json_file, "w") as f: - json.dump(data, f, indent=4) + with open(self.json_file, "w", encoding="UTF-8") as f: + json.dump(data, f, indent=4, ensure_ascii=False) diff --git a/src/model.py b/src/model.py new file mode 100644 index 0000000..1c7164c --- /dev/null +++ b/src/model.py @@ -0,0 +1,24 @@ +from connector import JSONConnector, Connector + + +class Model: + def __init__(self, connector: Connector): + self.connector = connector + + def get_all(self): + return self.connector.get_all() + + def get_all_sorted_by(self, field: str, reverse: bool = False): + return self.connector.get_all_sorted_by(field=field, reverse=reverse) + + def get_by_id(self, record_id: int): + return self.connector.get_by_id(record_id) + + def delete_by_id(self, record_id: int): + self.connector.delete_by_id(record_id) + + def update_record(self, new_record: dict): + self.connector.update_record(new_record) + + def create_new(self, record: dict): + self.connector.create_new(record) \ No newline at end of file