Skip to content
Snippets Groups Projects
Commit 57183471 authored by Thomas Holene Løkkeborg's avatar Thomas Holene Løkkeborg
Browse files

Merge branch 'modul-vedlegg-import' into 'master'

#132 Felles funksjon for modul-konstruksjon ved SOI-import

See merge request !69
parents 9875c45d 561189cf
No related branches found
No related tags found
1 merge request!69#132 Felles funksjon for modul-konstruksjon ved SOI-import
Pipeline #82660 passed
......@@ -235,9 +235,53 @@ 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.")
# Create dict for modules with instantiated widget(s)
# Construct modules and attachments
modules = construct_modules_from_serialized(serialized["modules"])
attachments = construct_modules_from_serialized(serialized["attachments"])
# 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_from_serialized(serialized_modules):
"""Instantiate modules from serialized format.
Parameters
----------
serialized_modules : list
Containing dicts with serialized modules or attachment-modules.
Returns
-------
list
Containing dicts with instantiated modules or attachment-modules.
Raises
------
TypeError
If type of module is not recognized.
"""
modules = []
for module in serialized["modules"]:
for module in serialized_modules:
module_type = module["type"]
if module_type == "TableModule":
......@@ -275,44 +319,7 @@ def construct_soi_from_serialized(serialized, compressed=False):
"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