From 768a11ae5fe37dba37f94d79c3e5bcd9ce9863f9 Mon Sep 17 00:00:00 2001 From: "Anders H. Rebner" <anderhre@stud.ntnu.no> Date: Sat, 25 Apr 2020 17:41:36 +0200 Subject: [PATCH] #95 funksjonene read_from_dialog og create_tables er endret --- soitool/modules/module_predefined_codes.py | 52 +++++++++++----------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/soitool/modules/module_predefined_codes.py b/soitool/modules/module_predefined_codes.py index 725d9ac..2b16384 100644 --- a/soitool/modules/module_predefined_codes.py +++ b/soitool/modules/module_predefined_codes.py @@ -120,10 +120,10 @@ class PredefinedCodesModule(ModuleBase, QWidget, metaclass=Meta): dialog.exec_() # Read dialog-input - self.categories, expressions = self.read_from_dialog(dialog) + categories_and_expressions = self.read_from_dialog(dialog) # Create tables and set layout - self.create_tables(self.categories, expressions) + self.create_tables(categories_and_expressions) self.create_and_set_layout() def read_from_dialog(self, dialog): @@ -136,48 +136,48 @@ class PredefinedCodesModule(ModuleBase, QWidget, metaclass=Meta): Returns ------- - tuple - Containing two lists: one containing categories, the other - containing all expressions. + dict + With categories as keys and list of expressions as values. """ self.headline = QLabel(dialog.edit_headline.text()) self.warning_word = QLabel(dialog.edit_warning_word.text()) self.maximum_column_height = dialog.edit_column_height.value() - categories = [] + # Read categories in order + self.categories.clear() for i in range(dialog.list_category_order.count()): - categories.append(dialog.list_category_order.item(i).text()) + self.categories.append(dialog.list_category_order.item(i).text()) - # Get expressions for all categories from database - all_expressions = [] - for category in categories: - # Get expressions in category + # Create dict containing categories and their expressions + categories_and_expressions = {} + for category in self.categories: expressions = self.database.get_codebook_expressions_in_category( category, small=True ) - # Randomly sort expressions - all_expressions.append(sample(expressions, len(expressions))) - return categories, all_expressions + # Add expressions sorted randomly + categories_and_expressions[category] = sample( + expressions, len(expressions) + ) - def create_tables(self, categories, expressions): + return categories_and_expressions + + def create_tables(self, categories_and_expressions): """Create PredefinedCodesTable-objects. - + Parameters ---------- - categories : list - Containing categories (string). - expressions : list - Containing list of expressions (string) in each category. - expressions[i] is a list of expressions from categories[i]. + categories_and_expressions : dict + With categories as keys and list of expressions as values. """ # Delete previous tables del self.tables[:] # Create new tables - for i, category in enumerate(categories): + for i, category in enumerate(categories_and_expressions.keys()): headline = " " + ALPHABET[i] + " " + category - table = PredefinedCodesTable(headline, expressions[i]) - + table = PredefinedCodesTable( + headline, categories_and_expressions[category] + ) self.tables.append(table) def create_tables_from_data(self, data): @@ -413,9 +413,9 @@ class PredefinedCodesModule(ModuleBase, QWidget, metaclass=Meta): # If user accepted, read dialog, create tables and set a # new table-layout if dialog_code == QDialog.DialogCode.Accepted: - self.categories, expressions = self.read_from_dialog(dialog) + categories_and_expressions = self.read_from_dialog(dialog) - self.create_tables(self.categories, expressions) + self.create_tables(categories_and_expressions) self.new_table_layout() super().keyPressEvent(event) -- GitLab