From affb81377822defd24d3a78cd6234c3c3399acad Mon Sep 17 00:00:00 2001
From: Lauri Himanen <lauri.himanen@gmail.com>
Date: Tue, 9 Feb 2021 10:34:03 +0200
Subject: [PATCH] Fixed issue in normalizer order and workflow access.

---
 nomad/normalizing/__init__.py                  | 2 +-
 nomad/normalizing/encyclopedia/encyclopedia.py | 6 +++---
 nomad/normalizing/normalizer.py                | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/nomad/normalizing/__init__.py b/nomad/normalizing/__init__.py
index 43af92b1e1..c9f104e034 100644
--- a/nomad/normalizing/__init__.py
+++ b/nomad/normalizing/__init__.py
@@ -54,6 +54,6 @@ normalizers: Iterable[Type[Normalizer]] = [
     # FhiAimsBaseNormalizer,
     DosNormalizer,
     BandStructureNormalizer,
-    EncyclopediaNormalizer,
     WorkflowNormalizer,
+    EncyclopediaNormalizer,
 ]
diff --git a/nomad/normalizing/encyclopedia/encyclopedia.py b/nomad/normalizing/encyclopedia/encyclopedia.py
index 440dcd28b0..ddd2a89686 100644
--- a/nomad/normalizing/encyclopedia/encyclopedia.py
+++ b/nomad/normalizing/encyclopedia/encyclopedia.py
@@ -50,7 +50,7 @@ class EncyclopediaNormalizer(Normalizer):
         # Primarily try to determine the calculation type from workflow
         # information
         try:
-            workflow = self.section_run.section_workflow
+            workflow = self.entry_archive.section_workflow
             workflow_map = {
                 "molecular_dynamics": calc_enums.molecular_dynamics,
                 "geometry_optimization": calc_enums.geometry_optimization,
@@ -58,8 +58,8 @@ class EncyclopediaNormalizer(Normalizer):
             }
             workflow_enum = workflow_map.get(workflow.workflow_type)
             if workflow_enum is not None:
-                calc.calculation_type = calc_type
-                return calc_type
+                calc.calculation_type = workflow_enum
+                return workflow_enum
         except Exception:
             pass
 
diff --git a/nomad/normalizing/normalizer.py b/nomad/normalizing/normalizer.py
index b7d9469a69..b4692f4cef 100644
--- a/nomad/normalizing/normalizer.py
+++ b/nomad/normalizing/normalizer.py
@@ -95,7 +95,7 @@ class SystemBasedNormalizer(Normalizer, metaclass=ABCMeta):
 
         # Try to find workflow information and select the representative system
         # based on it
-        workflow = self.section_run.section_workflow
+        workflow = self.entry_archive.section_workflow
         if workflow:
             try:
                 iscc = workflow.calculation_result_ref
-- 
GitLab