From 2c7fa1c85edd2083633743feff2064616f2f7458 Mon Sep 17 00:00:00 2001
From: osmala <ossi.laine@utu.fi>
Date: Fri, 22 May 2020 14:57:26 +0300
Subject: [PATCH] Fixed bug in randomized data exporting

---
 app/routes.py | 16 +++++++++++++++-
 app/utils.py  | 12 ++++++++----
 plot_image.py |  4 ++++
 3 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/app/routes.py b/app/routes.py
index b0cf9be..13550ad 100644
--- a/app/routes.py
+++ b/app/routes.py
@@ -427,9 +427,23 @@ def download_csv():
                     .order_by(embody_answer.page_idpage) \
                     .all()
 
+                pages_and_questions = {}
+                for p in pages:
+                    questions_list = [(p.idpage, a.idembody) for a in embody_questions]
+                    pages_and_questions[p.idpage] = questions_list
+
+                _questions = [
+                    item for sublist in pages_and_questions.values() for item in sublist]
+
+                _embody_answers = map_answers_to_questions(embody_answers, _questions)
+
                 answers_list = []
 
-                for answer_data in embody_answers:
+                for answer_data in _embody_answers:
+
+                    if not answer_data:
+                        answers_list.append('')
+                        continue
 
                     try:
                         coordinates = json.loads(answer_data.coordinates)
diff --git a/app/utils.py b/app/utils.py
index 9810803..2087e85 100644
--- a/app/utils.py
+++ b/app/utils.py
@@ -41,10 +41,14 @@ def get_values_from_list_of_answers(page_question, answers):
     page_id = page_question[0]
     question_id = page_question[1]
     for _answer in answers:
-        if _answer.question_idquestion == question_id and \
-                _answer.page_idpage == page_id:
-            return int(_answer.answer)
-
+        try:
+            if _answer.question_idquestion == question_id and \
+                    _answer.page_idpage == page_id:
+                return int(_answer.answer)
+        except AttributeError:
+            if _answer.embody_question_idembody == question_id and \
+                    _answer.page_idpage == page_id:
+                return _answer
     return None
 
 
diff --git a/plot_image.py b/plot_image.py
index a636ff4..bc72339 100644
--- a/plot_image.py
+++ b/plot_image.py
@@ -106,6 +106,10 @@ if __name__ == '__main__':
             except NameError:
                 print(
                     "Column didn't contain image data. Try again with different column number.")
+            except SyntaxError:
+                continue
+            except IndexError:
+                continue
 
             np_array = np.transpose(np_array)
             images.append(np_array)
-- 
GitLab