From 854f774f37aa4c21c2e71eccfd6e57e896832911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Tue, 22 Sep 2015 21:16:56 +0200 Subject: [PATCH] Permet l'utilisation de datetimes avec generalizedTimeFormat --- attributs.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/attributs.py b/attributs.py index beb7020..d98a3dc 100644 --- a/attributs.py +++ b/attributs.py @@ -47,7 +47,8 @@ import random import string from unicodedata import normalize from crans_utils import format_tel, format_mac, mailexist, validate_name, ip4_of_rid, ip6_of_mac, fetch_cert_info -from crans_utils import to_generalized_time_format, from_generalized_time_format +from crans_utils import to_generalized_time_format, from_generalized_time_format, datetime_from_generalized_time_format +from crans_utils import datetime_to_generalized_time_format import itertools if '/usr/scripts' not in sys.path: @@ -655,6 +656,8 @@ class generalizedTimeFormat(Attr): elif isinstance(othertime, unicode) or isinstance(othertime, str): resource = generalizedTimeFormat(othertime, conn=None, Parent=None) return self._stamp == resource._stamp + elif isinstance(othertime, datetime.datetime): + return self._datetime == othertime else: return False @@ -671,6 +674,8 @@ class generalizedTimeFormat(Attr): elif isinstance(othertime, unicode) or isinstance(othertime, str): resource = generalizedTimeFormat(othertime, conn=None, Parent=None) return self._stamp < resource._stamp + elif isinstance(othertime, datetime.datetime): + return self._datetime < othertime else: return False @@ -688,12 +693,19 @@ class generalizedTimeFormat(Attr): if not ('Z' in gtf or '+' in gtf or '-' in gtf): self._stamp = gtf self.value = to_generalized_time_format(float(gtf)) + self._datetime = datetime_from_generalized_time_format(self.value) else: self._stamp = from_generalized_time_format(gtf) + self._datetime = datetime_from_generalized_time_format(gtf) self.value = gtf elif isinstance(gtf, float): self._stamp = gtf self.value = to_generalized_time_format(gtf) + self._datetime = datetime_from_generalized_time_format(self.value) + elif isinstance(gtf, datetime.datetime): + self._datetime = gtf + self.value = datetime_to_generalized_time_format(gtf) + self._stamp = from_generalized_time_format(self.value) @crans_attribute class debutAdhesion(generalizedTimeFormat):