def _parse_task_node(self, task_node): '''Recursively parse the node and return a task instance. ''' planned_start_datetime_attribute_name = 'startdate' if self.tskversion() <= 33 else 'plannedstartdate' kwargs = self.__parse_base_composite_attributes(task_node, self.__parse_task_nodes) kwargs.update(dict( plannedStartDateTime=date.parseDateTime(task_node.attrib.get(planned_start_datetime_attribute_name, ''), *self.defaultStartTime), dueDateTime=parseAndAdjustDateTime(task_node.attrib.get('duedate', ''), *self.defaultEndTime), actualStartDateTime=date.parseDateTime(task_node.attrib.get('actualstartdate', ''), *self.defaultStartTime), completionDateTime=date.parseDateTime(task_node.attrib.get('completiondate', ''), *self.defaultEndTime), percentageComplete=self.__parse_int_attribute(task_node, 'percentageComplete'), budget=date.parseTimeDelta(task_node.attrib.get('budget', '')), priority=self.__parse_int_attribute(task_node, 'priority'), hourlyFee=float(task_node.attrib.get('hourlyFee', '0')), fixedFee=float(task_node.attrib.get('fixedFee', '0')), reminder=self.__parse_datetime(task_node.attrib.get('reminder', '')), reminderBeforeSnooze=self.__parse_datetime(task_node.attrib.get('reminderBeforeSnooze', '')), # Ignore prerequisites for now, they'll be resolved later prerequisites=[], shouldMarkCompletedWhenAllChildrenCompleted=self.__parse_boolean(task_node.attrib.get('shouldMarkCompletedWhenAllChildrenCompleted', '')), efforts=self.__parse_effort_nodes(task_node), notes=self.__parse_note_nodes(task_node), recurrence=self.__parse_recurrence(task_node))) self.__prerequisites[kwargs['id']] = [id_ for id_ in task_node.attrib.get('prerequisites', '').split(' ') if id_] if self.__tskversion > 20: kwargs['attachments'] = self.__parse_attachments(task_node) return self.__save_modification_datetime(task.Task(**kwargs)) # pylint: disable=W0142
def _parseTaskNode(self, taskNode): class DummyPrerequisite(object): def __init__(self, id): self.id = id def __getattr__(self, attr): ''' Ignore all method calls. ''' return lambda *args, **kwargs: None kwargs = self._parseBaseCompositeAttributes(taskNode, self._parseTaskNodes) kwargs.update(dict( startDateTime=date.parseDateTime(taskNode.attrib.get('startdate', ''), *self.defaultStartTime), dueDateTime=date.parseDateTime(taskNode.attrib.get('duedate', ''), *self.defaultEndTime), completionDateTime=date.parseDateTime(taskNode.attrib.get('completiondate', ''), *self.defaultEndTime), percentageComplete=int(taskNode.attrib.get('percentageComplete','0')), budget=date.parseTimeDelta(taskNode.attrib.get('budget', '')), priority=int(taskNode.attrib.get('priority', '0')), hourlyFee=float(taskNode.attrib.get('hourlyFee', '0')), fixedFee=float(taskNode.attrib.get('fixedFee', '0')), reminder=self._parseDateTime(taskNode.attrib.get('reminder', '')), # Here we just add the ids, they will be converted to object references later on: prerequisites=[DummyPrerequisite(id) for id in taskNode.attrib.get('prerequisites', '').split(' ') if id], shouldMarkCompletedWhenAllChildrenCompleted= \ self._parseBoolean(taskNode.attrib.get('shouldMarkCompletedWhenAllChildrenCompleted', '')), efforts=self._parseEffortNodes(taskNode), notes=self._parseNoteNodes(taskNode), recurrence=self._parseRecurrence(taskNode))) if self.__tskversion > 20: kwargs['attachments'] = self._parseAttachmentNodes(taskNode) return task.Task(**kwargs) # pylint: disable-msg=W0142
def __parseTaskNode(self, taskNode): kwargs = dict(subject=taskNode.getAttribute('subject'), description=self.__parseDescription(taskNode), id=taskNode.getAttribute('id'), startDate=date.parseDate(taskNode.getAttribute('startdate')), dueDate=date.parseDate(taskNode.getAttribute('duedate')), completionDate=date.parseDate(taskNode.getAttribute('completiondate')), recurrence=taskNode.getAttribute('recurrence'), recurrenceCount=self.__parseInteger(taskNode.getAttribute('recurrenceCount')), maxRecurrenceCount=self.__parseInteger(taskNode.getAttribute('maxRecurrenceCount')), budget=date.parseTimeDelta(taskNode.getAttribute('budget')), priority=self.__parseInteger(taskNode.getAttribute('priority')), hourlyFee=self.__parseFloat(taskNode.getAttribute('hourlyFee')), fixedFee=self.__parseFloat(taskNode.getAttribute('fixedFee')), reminder=self.__parseDateTime(taskNode.getAttribute('reminder')), attachments=self.__parseAttachmentNodes(taskNode.childNodes), shouldMarkCompletedWhenAllChildrenCompleted= \ self.__parseBoolean(taskNode.getAttribute('shouldMarkCompletedWhenAllChildrenCompleted')), children=self.__parseTaskNodes(taskNode.childNodes), efforts=self.__parseEffortNodes(taskNode.childNodes)) if self.__tskversion <= 13: kwargs['categories'] = self.__parseCategoryNodesWithinTaskNode(taskNode.childNodes) else: kwargs['categories'] = [] return task.Task(**kwargs)
def _parse_task_node(self, task_node): """Recursively parse the node and return a task instance. """ planned_start_datetime_attribute_name = "startdate" if self.tskversion() <= 33 else "plannedstartdate" kwargs = self.__parse_base_composite_attributes(task_node, self.__parse_task_nodes) kwargs.update( dict( plannedStartDateTime=date.parseDateTime( task_node.attrib.get(planned_start_datetime_attribute_name, ""), *self.defaultStartTime ), dueDateTime=parseAndAdjustDateTime(task_node.attrib.get("duedate", ""), *self.defaultEndTime), actualStartDateTime=date.parseDateTime( task_node.attrib.get("actualstartdate", ""), *self.defaultStartTime ), completionDateTime=date.parseDateTime(task_node.attrib.get("completiondate", ""), *self.defaultEndTime), percentageComplete=self.__parse_int_attribute(task_node, "percentageComplete"), budget=date.parseTimeDelta(task_node.attrib.get("budget", "")), priority=self.__parse_int_attribute(task_node, "priority"), hourlyFee=float(task_node.attrib.get("hourlyFee", "0")), fixedFee=float(task_node.attrib.get("fixedFee", "0")), reminder=self.__parse_datetime(task_node.attrib.get("reminder", "")), reminderBeforeSnooze=self.__parse_datetime(task_node.attrib.get("reminderBeforeSnooze", "")), # Ignore prerequisites for now, they'll be resolved later prerequisites=[], shouldMarkCompletedWhenAllChildrenCompleted=self.__parse_boolean( task_node.attrib.get("shouldMarkCompletedWhenAllChildrenCompleted", "") ), efforts=self.__parse_effort_nodes(task_node), notes=self.__parse_note_nodes(task_node), recurrence=self.__parse_recurrence(task_node), ) ) self.__prerequisites[kwargs["id"]] = [ id_ for id_ in task_node.attrib.get("prerequisites", "").split(" ") if id_ ] if self.__tskversion > 20: kwargs["attachments"] = self.__parse_attachments(task_node) return self.__save_modification_datetime(task.Task(**kwargs)) # pylint: disable=W0142
def GetValue(self): return date.parseTimeDelta(self._entry.GetValue())
def GetValue(self): return date.parseTimeDelta(self.__timeDeltaCtrl.GetValue())