From 742a3693b4869a4b7148d44ac8284036c8ae849f Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Mon, 15 Aug 2022 18:55:22 +0200
Subject: [PATCH] WIP: timezone

---
 .gitlab-ci.yml                | 2 +-
 src/caosdb/common/models.py   | 6 ++++++
 src/caosdb/common/timezone.py | 6 ++++++
 3 files changed, 13 insertions(+), 1 deletion(-)
 create mode 100644 src/caosdb/common/timezone.py

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8b15e764..1c2df9cc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,7 +21,7 @@
 # along with this program. If not, see <https://www.gnu.org/licenses/>.
 
 variables:
-  DEPLOY_REF: dev
+  DEPLOY_REF: f-timezone
   CI_REGISTRY_IMAGE: $CI_REGISTRY/caosdb/src/caosdb-pylib/testenv:latest
   # When using dind, it's wise to use the overlayfs driver for
   # improved performance.
diff --git a/src/caosdb/common/models.py b/src/caosdb/common/models.py
index f974060f..7000ede9 100644
--- a/src/caosdb/common/models.py
+++ b/src/caosdb/common/models.py
@@ -51,6 +51,7 @@ from caosdb.common.datatype import (BOOLEAN, DATETIME, DOUBLE, INTEGER, TEXT,
                                     is_list_datatype, is_reference)
 from caosdb.common.state import State
 from caosdb.common.utils import uuid, xml2str
+from caosdb.common.timezone import TimeZone
 from caosdb.common.versioning import Version
 from caosdb.configuration import get_config
 from caosdb.connection.connection import get_connection
@@ -4327,6 +4328,8 @@ class Info():
 
             if isinstance(m, UserInfo):
                 self.user_info = m
+            elif isinstance(m, TimeZone):
+                self.time_zone = m
             else:
                 self.messages.append(m)
 
@@ -4460,6 +4463,9 @@ def _parse_single_xml_element(elem):
         return Permissions(xml=elem)
     elif elem.tag == "UserInfo":
         return UserInfo(xml=elem)
+    elif elem.tag == "TimeZone":
+        return TimeZone(zone_id=elem.get("id"), offset=elem.get("offset"),
+                        display_name=elem.text.strip())
     else:
         return Message(type=elem.tag, code=elem.get(
             "code"), description=elem.get("description"), body=elem.text)
diff --git a/src/caosdb/common/timezone.py b/src/caosdb/common/timezone.py
new file mode 100644
index 00000000..3fd51b65
--- /dev/null
+++ b/src/caosdb/common/timezone.py
@@ -0,0 +1,6 @@
+class TimeZone():
+
+    def __init__(self, zone_id, offset, display_name):
+        self.zone_id = zone_id
+        self.offset = offset
+        self.display_name = display_name
-- 
GitLab