From 994d6e4b1349149c83ee3faeee4529540bd8dde6 Mon Sep 17 00:00:00 2001 From: Lev Rusanov <30170278+JDM170@users.noreply.github.com> Date: Sun, 12 Feb 2023 13:14:45 +0700 Subject: [PATCH] Update module_second Signed-off-by: Lev Rusanov <30170278+JDM170@users.noreply.github.com> --- module_second/script.py | 152 +++++++++++++++++++++++++++------------- 1 file changed, 103 insertions(+), 49 deletions(-) diff --git a/module_second/script.py b/module_second/script.py index ae24210..692459d 100644 --- a/module_second/script.py +++ b/module_second/script.py @@ -54,12 +54,37 @@ class SecondWindow(QDialog, Ui_SecondWindow): self.ui.garage_size.addItem("Medium") self.ui.garage_size.addItem("Big") - # Dealers and agencies properties - self.da_array = { - self.ui.dealer_add: [self.ui.dealer_edit, "unlocked_dealers:", "Dealership", self.dealers, - self.check_dealers], - self.ui.agency_add: [self.ui.agency_edit, "unlocked_recruitments:", "Recruitment agency", - self.agencies, self.check_agencies], + # Dealers and agencies properties for 'ADD' button + self.add_da_dict = { + self.ui.dealer_add: [ + self.ui.dealer_edit, + "unlocked_dealers:", + self.dealers, + "Dealership", + self.check_dealers + ], + self.ui.agency_add: [ + self.ui.agency_edit, + "unlocked_recruitments:", + self.agencies, + "Recruitment agency", + self.check_agencies + ], + } + # Dealers and agencies properties for 'ADD ALL' button + self.add_all_da_dict = { + self.ui.dealer_add_all: [ + self.dealers, + "unlocked_dealers:", + "All dealerships unlocked.", + self.check_dealers + ], + self.ui.agency_add_all: [ + self.agencies, + "unlocked_recruitments:", + "All recruitment agencies unlocked.", + self.check_agencies + ], } # Connecting buttons @@ -69,10 +94,12 @@ class SecondWindow(QDialog, Ui_SecondWindow): self.ui.headquarter_change.clicked.connect(self.change_headquarter) self.ui.city_add.clicked.connect(self.add_city) self.ui.city_add_all.clicked.connect(self.add_all_cities) - self.ui.dealer_add.clicked.connect(self.da_clicked) - self.ui.dealer_add_all.clicked.connect(self.add_all_dealers) - self.ui.agency_add.clicked.connect(self.da_clicked) - self.ui.agency_add_all.clicked.connect(self.add_all_agencies) + self.ui.dealer_add.clicked.connect(self.add_da_clicked) + self.ui.agency_add.clicked.connect(self.add_da_clicked) + # self.ui.dealer_add_all.clicked.connect(self.add_all_dealers) + # self.ui.agency_add_all.clicked.connect(self.add_all_agencies) + self.ui.dealer_add_all.clicked.connect(self.add_all_da_clicked) + self.ui.agency_add_all.clicked.connect(self.add_all_da_clicked) if self.owns: self.fill_list(self.dealers, self.dealers_file) @@ -91,6 +118,16 @@ class SecondWindow(QDialog, Ui_SecondWindow): garages.append(city) return garages + @staticmethod + def add_vehicles_and_drivers(start_line, garage_size): + # vehicles_array = util.search_line_in_unit("vehicles:", start_line) + # drivers_array = util.search_line_in_unit("drivers:", start_line) + vehicles_array = util.search_line("vehicles:", start=start_line) + drivers_array = util.search_line("drivers:", start=start_line) + for i in range(1, garage_size + 1): + util.add_array_value(vehicles_array, "null") + util.add_array_value(drivers_array + i, "null") + @staticmethod def all_cities(): cities = [] @@ -122,7 +159,7 @@ class SecondWindow(QDialog, Ui_SecondWindow): def add_garage(self): garage = self.ui.garage_edit.text().lower() - if garage is "": + if garage == "": QMessageBox.critical(self, "Error", "Enter city name!") return self.ui.garage_edit.setText("") @@ -131,11 +168,12 @@ class SecondWindow(QDialog, Ui_SecondWindow): if util.get_value(current_status) == "0": new_status, size = self.check_garage_size() util.set_value(current_status, new_status) - vehicles_array = util.search_line_in_unit("vehicles:", reg_garage) - drivers_array = util.search_line_in_unit("drivers:", reg_garage) - for i in range(1, size+1): - util.add_array_value(vehicles_array, "null") - util.add_array_value(drivers_array+i, "null") + # vehicles_array = util.search_line_in_unit("vehicles:", reg_garage) + # drivers_array = util.search_line_in_unit("drivers:", reg_garage) + # for i in range(1, size + 1): + # util.add_array_value(vehicles_array, "null") + # util.add_array_value(drivers_array + i, "null") + self.add_vehicles_and_drivers(reg_garage, size) QMessageBox.information(self, "Success", "Garage in \"{}\" successfully unlocked.".format(garage)) else: QMessageBox.critical(self, "Error", "Garage in \"{}\" already unlocked.".format(garage)) @@ -148,16 +186,17 @@ class SecondWindow(QDialog, Ui_SecondWindow): current_status = util.search_line("status:", start=current_garage) if util.get_value(current_status) == "0": util.set_value(current_status, new_status) - vehicles_array = util.search_line("vehicles:", start=current_garage) - drivers_array = util.search_line("drivers:", start=current_garage) - for i in range(1, size+1): - util.add_array_value(vehicles_array, "null") - util.add_array_value(drivers_array+i, "null") + # vehicles_array = util.search_line("vehicles:", start=current_garage) + # drivers_array = util.search_line("drivers:", start=current_garage) + # for i in range(1, size + 1): + # util.add_array_value(vehicles_array, "null") + # util.add_array_value(drivers_array + i, "null") + self.add_vehicles_and_drivers(current_garage, size) QMessageBox.information(self, "Success", "All garages successfully unlocked.") def change_headquarter(self): hq = self.ui.headquarter_edit.text().lower() - if hq is "": + if hq == "": QMessageBox.critical(self, "Error", "Enter city name!") return if util.get_value(util.search_line("hq_city:")) == hq: @@ -181,7 +220,7 @@ class SecondWindow(QDialog, Ui_SecondWindow): def add_city(self): city = self.ui.city_edit.text().lower() - if city is "": + if city == "": QMessageBox.critical(self, "Error", "Enter city name!") return self.ui.city_edit.setText("") @@ -212,14 +251,14 @@ class SecondWindow(QDialog, Ui_SecondWindow): self.ui.dealerships_text.append(dealer) self.ui.dealerships_text.scrollToAnchor(visited_dealers[0]) - def add_all_dealers(self): - all_cities = self.all_cities() - visited_dealers = util.get_array_items(util.search_line("unlocked_dealers:")) - for dealer in self.dealers: - if dealer in all_cities and dealer not in visited_dealers: - util.add_array_value(util.search_line("unlocked_dealers:"), dealer) - QMessageBox.information(self, "Success", "All dealerships unlocked.") - self.check_dealers() + # def add_all_dealers(self): + # all_cities = self.all_cities() + # visited_dealers = util.get_array_items(util.search_line("unlocked_dealers:")) + # for dealer in self.dealers: + # if dealer in all_cities and dealer not in visited_dealers: + # util.add_array_value(util.search_line("unlocked_dealers:"), dealer) + # QMessageBox.information(self, "Success", "All dealerships unlocked.") + # self.check_dealers() def check_agencies(self): self.ui.agencies_text.clear() @@ -231,31 +270,46 @@ class SecondWindow(QDialog, Ui_SecondWindow): self.ui.agencies_text.append(agency) self.ui.agencies_text.scrollToAnchor(visited_agencies[0]) - def add_all_agencies(self): - all_cities = self.all_cities() - visited_agencies = util.get_array_items(util.search_line("unlocked_recruitments:")) - for agency in self.agencies: - if agency in all_cities and agency not in visited_agencies: - util.add_array_value(util.search_line("unlocked_recruitments:"), agency) - QMessageBox.information(self, "Success", "All recruitment agencies unlocked.") - self.check_agencies() + # def add_all_agencies(self): + # all_cities = self.all_cities() + # visited_agencies = util.get_array_items(util.search_line("unlocked_recruitments:")) + # for agency in self.agencies: + # if agency in all_cities and agency not in visited_agencies: + # util.add_array_value(util.search_line("unlocked_recruitments:"), agency) + # QMessageBox.information(self, "Success", "All recruitment agencies unlocked.") + # self.check_agencies() - def da_clicked(self): - da_arr = self.da_array.get(self.sender()) + def add_da_clicked(self): + da_arr = self.add_da_dict.get(self.sender()) if da_arr is None: return - edit, file_var, message_var = da_arr[0], da_arr[1], da_arr[2] + edit, line_to_search, city_list, message_variable, check_func = da_arr city_element = edit.text().lower() if not city_element: QMessageBox.critical(self, "Error", "Enter city name!") return edit.setText("") - if city_element not in da_arr[3]: - QMessageBox.critical(self, "Error", "There is no {} in that city.".format(message_var.lower())) - elif city_element in util.get_array_items(util.search_line(file_var)): - QMessageBox.information(self, "Info", "{} in \"{}\" is already unlocked.".format(message_var, city_element)) + if city_element not in city_list: + QMessageBox.critical(self, "Error", "There is no {} in that city.".format(message_variable.lower())) + elif city_element in util.get_array_items(util.search_line(line_to_search)): + QMessageBox.information(self, "Info", "{} in \"{}\" is already unlocked.".format(message_variable, + city_element)) else: - util.add_array_value(util.search_line(file_var), city_element) + util.add_array_value(util.search_line(line_to_search), city_element) QMessageBox.information(self, "Success", "{} in \"{}\" successfully unlocked." - "".format(message_var, city_element)) - da_arr[4]() + "".format(message_variable, city_element)) + check_func() + + def add_all_da_clicked(self): + da_arr = self.add_all_da_dict.get(self.sender()) + if da_arr is None: + return + city_list, line_to_search, success_message, check_func = da_arr + all_cities = self.all_cities() + array_line = util.search_line(line_to_search) + visited = util.get_array_items(array_line) + for element in city_list: + if element in all_cities and not element not in visited: + util.add_array_value(array_line, element) + QMessageBox.information(self, "Success", success_message) + check_func()