Skip to content
Snippets Groups Projects
Commit 768a11ae authored by Anders H. Rebner's avatar Anders H. Rebner
Browse files

#95 funksjonene read_from_dialog og create_tables er endret

parent 16c7e9f4
No related branches found
No related tags found
1 merge request!74#95 Forhåndsavtalte koder
Pipeline #83391 failed
...@@ -120,10 +120,10 @@ class PredefinedCodesModule(ModuleBase, QWidget, metaclass=Meta): ...@@ -120,10 +120,10 @@ class PredefinedCodesModule(ModuleBase, QWidget, metaclass=Meta):
dialog.exec_() dialog.exec_()
# Read dialog-input # Read dialog-input
self.categories, expressions = self.read_from_dialog(dialog) categories_and_expressions = self.read_from_dialog(dialog)
# Create tables and set layout # Create tables and set layout
self.create_tables(self.categories, expressions) self.create_tables(categories_and_expressions)
self.create_and_set_layout() self.create_and_set_layout()
def read_from_dialog(self, dialog): def read_from_dialog(self, dialog):
...@@ -136,48 +136,48 @@ class PredefinedCodesModule(ModuleBase, QWidget, metaclass=Meta): ...@@ -136,48 +136,48 @@ class PredefinedCodesModule(ModuleBase, QWidget, metaclass=Meta):
Returns Returns
------- -------
tuple dict
Containing two lists: one containing categories, the other With categories as keys and list of expressions as values.
containing all expressions.
""" """
self.headline = QLabel(dialog.edit_headline.text()) self.headline = QLabel(dialog.edit_headline.text())
self.warning_word = QLabel(dialog.edit_warning_word.text()) self.warning_word = QLabel(dialog.edit_warning_word.text())
self.maximum_column_height = dialog.edit_column_height.value() 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()): 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 # Create dict containing categories and their expressions
all_expressions = [] categories_and_expressions = {}
for category in categories: for category in self.categories:
# Get expressions in category
expressions = self.database.get_codebook_expressions_in_category( expressions = self.database.get_codebook_expressions_in_category(
category, small=True category, small=True
) )
# Randomly sort expressions # Add expressions sorted randomly
all_expressions.append(sample(expressions, len(expressions))) categories_and_expressions[category] = sample(
return categories, all_expressions expressions, len(expressions)
)
def create_tables(self, categories, expressions): return categories_and_expressions
def create_tables(self, categories_and_expressions):
"""Create PredefinedCodesTable-objects. """Create PredefinedCodesTable-objects.
Parameters Parameters
---------- ----------
categories : list categories_and_expressions : dict
Containing categories (string). With categories as keys and list of expressions as values.
expressions : list
Containing list of expressions (string) in each category.
expressions[i] is a list of expressions from categories[i].
""" """
# Delete previous tables # Delete previous tables
del self.tables[:] del self.tables[:]
# Create new tables # Create new tables
for i, category in enumerate(categories): for i, category in enumerate(categories_and_expressions.keys()):
headline = " " + ALPHABET[i] + " " + category headline = " " + ALPHABET[i] + " " + category
table = PredefinedCodesTable(headline, expressions[i]) table = PredefinedCodesTable(
headline, categories_and_expressions[category]
)
self.tables.append(table) self.tables.append(table)
def create_tables_from_data(self, data): def create_tables_from_data(self, data):
...@@ -413,9 +413,9 @@ class PredefinedCodesModule(ModuleBase, QWidget, metaclass=Meta): ...@@ -413,9 +413,9 @@ class PredefinedCodesModule(ModuleBase, QWidget, metaclass=Meta):
# If user accepted, read dialog, create tables and set a # If user accepted, read dialog, create tables and set a
# new table-layout # new table-layout
if dialog_code == QDialog.DialogCode.Accepted: 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() self.new_table_layout()
super().keyPressEvent(event) super().keyPressEvent(event)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment