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
Example #2
0
 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
Example #3
0
 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)
Example #4
0
 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
Example #5
0
 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
Example #6
0
    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
Example #7
0
 def GetValue(self):
     return date.parseTimeDelta(self._entry.GetValue())
 def GetValue(self):
     return date.parseTimeDelta(self.__timeDeltaCtrl.GetValue())
 def GetValue(self):
     return date.parseTimeDelta(self._entry.GetValue())
Example #10
0
 def GetValue(self):
     return date.parseTimeDelta(self.__timeDeltaCtrl.GetValue())