From bca95c4d45f3508de18f6a3c061a232f61f47f8d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <henrik@trineo.org>
Date: Tue, 23 Nov 2021 18:16:12 +0100
Subject: [PATCH] WIP: send mails to responsible people

---
 integrationtests/create_analysis.py                   |  7 +++++--
 .../serverside/examples/example_script.py             | 11 ++++++++---
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/integrationtests/create_analysis.py b/integrationtests/create_analysis.py
index 40abc072..1b7aa0d2 100644
--- a/integrationtests/create_analysis.py
+++ b/integrationtests/create_analysis.py
@@ -52,9 +52,12 @@ def main():
                     )
     da.add_property("date", "2020-01-01")
     da.add_property("identifier", "TEST")
-    da.add_property("responsible", db.execute_query(
+    only = db.execute_query(
                         "FIND RECORD Person WITH firstname=Only",
-                        unique=True))
+                        unique=True)
+    only.add_property(db.Property("Email").retrieve().id, "only@example.com")
+    only.update()
+    da.add_property("responsible", only)
     da.insert()
 
 
diff --git a/src/caosadvancedtools/serverside/examples/example_script.py b/src/caosadvancedtools/serverside/examples/example_script.py
index d06d25c9..63d2bf99 100755
--- a/src/caosadvancedtools/serverside/examples/example_script.py
+++ b/src/caosadvancedtools/serverside/examples/example_script.py
@@ -47,7 +47,7 @@ logger = logging.getLogger(__name__)
 guard.set_level(level=UPDATE)
 
 
-def send_mail(self, changes):
+def send_mail(self, changes, receipient):
     """ calls sendmail in order to send a mail to the curator about pending
     changes
 
@@ -64,7 +64,7 @@ The following changes where done automatically.
     """.format(changes="\n".join(changes))
     try:
         fro = caosdb_config["advancedtools"]["automated_updates.from_mail"]
-        to = caosdb_config["advancedtools"]["automated_updates.to_mail"]
+        to = receipient
     except KeyError:
         logger.error("Server Configuration is missing a setting for "
                      "sending mails. The administrator should check "
@@ -141,7 +141,12 @@ def main(args):
     )
 
     if len(to_be_updated) > 0:
-        send_mail(to_be_updated)
+        people = db.execute_query("FIND RECORD Person WHICH IS REFERENCEED BY "
+                                  "{}".format(dataAnalysisRecord.id))
+        for person in people:
+            if person.get_property("Email") is not None:
+                send_mail(to_be_updated, receipient=person.get_property(
+                    "Email"))
 
     # TODO (must) what should be done with the old file? Removed if not referenced?
 
-- 
GitLab