def setvalue(self, value): strvalue = value if value in [None, "", NULL]: value = DateWidget.DEFAULTDATE self._is_valid = value.isValid() elif isinstance(value, basestring): value = QDateTime.fromString(strvalue, Qt.ISODate) if not value or (value and value.date().year() < 0): value = QDateTime.fromString(strvalue, Qt.SystemLocaleShortDate) self._is_valid = value.isValid() if not self._is_valid: raise ValueError("Unable to parse date string {}".format(strvalue)) if isinstance(value, QDate): value = QDateTime(value) self._is_valid = value.isValid() if hasattr(self.datewidget, 'setDate'): self.datewidget.setDate(value.date()) if hasattr(self.datewidget, 'setTime'): self.datewidget.setTime(value.time()) self.set_date(value)
def getTimelineOptions(self, appdef): layers = appdef["Layers"] times = set() for layer in layers: if layer.timeInfo is not None: if isinstance(layer.timeInfo[0], basestring): features = layer.layer.getFeatures() for feature in features: for field in layer.timeInfo: try: value = feature[field] if isinstance(value, QDate): t = QDateTime() t.setDate(value) else: t = QDateTime.fromString( unicode(value), Qt.ISODate) if t.isValid(): times.add(t.toMSecsSinceEpoch()) except: pass else: times.add(layer.timeInfo[0]) times.add(layer.timeInfo[1]) if times: return [min(times), max(times)] else: return [0, 1]
def getTimelineOptions(self, appdef): layers = appdef["Layers"] times = set() for layer in layers: if layer.timeInfo is not None: if isinstance(layer.timeInfo[0], basestring): features = layer.layer.getFeatures() for feature in features: for field in layer.timeInfo: try: value = feature[field] if isinstance(value, QDate): t = QDateTime() t.setDate(value) else: t = QDateTime.fromString(unicode(value), Qt.ISODate) if t.isValid(): times.add(t.toMSecsSinceEpoch()) except: pass else: times.add(layer.timeInfo[0]) times.add(layer.timeInfo[1]) if times: return [min(times), max(times)] else: return [0,1]