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

#132 Felles funksjon for modul-konstruksjon

parent 9875c45d
No related branches found
No related tags found
1 merge request!69#132 Felles funksjon for modul-konstruksjon ved SOI-import
Pipeline #82640 failed
......@@ -235,9 +235,41 @@ def construct_soi_from_serialized(serialized, compressed=False):
if not SERIALIZED_SOI_SCHEMA.is_valid(serialized):
raise ValueError("Serialized SOI does not have correct format.")
modules = construct_modules(serialized)
attachments = construct_modules(serialized, is_modules=False)
# Create SOI
soi = SOI(
serialized["title"],
serialized["description"],
serialized["version"],
serialized["date"],
serialized["valid"]["from_date"],
serialized["valid"]["to_date"],
serialized["icon"],
serialized["classification"],
serialized["orientation"],
serialized["placement_strategy"],
serialized["algorithm_bin"],
serialized["algorithm_pack"],
serialized["algorithm_sort"],
modules,
attachments,
)
return soi
def construct_modules(serialized, is_modules=True):
"""..."""
# Create dict for modules with instantiated widget(s)
modules = []
for module in serialized["modules"]:
if is_modules:
serialized_modules = serialized["modules"]
else:
serialized_modules = serialized["attachments"]
for module in serialized_modules:
module_type = module["type"]
if module_type == "TableModule":
......@@ -268,51 +300,14 @@ def construct_soi_from_serialized(serialized, compressed=False):
size = module["size"]
data = module["data"]
modules.append(
{"widget": FreeTextModule(size, data), "meta": module["meta"]}
{"widget": FreeTextModule(size, data), "meta": module["meta"],}
)
else:
raise TypeError(
"Module-type '{}' is not recognized.".format(module_type)
)
# Create dict for attachments with instantiated widget(s)
attachments = []
for attachment in serialized["attachments"]:
module_type = attachment["type"]
if module_type == "TableModule":
size = attachment["size"]
data = attachment["data"]
attachments.append(
{
"widget": TableModule(size, data),
"meta": attachment["meta"],
}
)
else:
raise TypeError(
"Module-type '{}' is not recognized.".format(module_type)
)
# Create SOI
soi = SOI(
serialized["title"],
serialized["description"],
serialized["version"],
serialized["date"],
serialized["valid"]["from_date"],
serialized["valid"]["to_date"],
serialized["icon"],
serialized["classification"],
serialized["orientation"],
serialized["placement_strategy"],
serialized["algorithm_bin"],
serialized["algorithm_pack"],
serialized["algorithm_sort"],
modules,
attachments,
)
return soi
return modules
def generate_soi_filename(soi):
......
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