Esempio n. 1
0
 def createCategory(self, name):
     if ' -> ' in name:
         parentName, childName = name.rsplit(' -> ', 1)
         parent = self.categoryList.findCategoryByName(parentName)
         if not parent:
             parent = self.createCategory(parentName)
         newCategory = Category(subject=childName)
         parent.addChild(newCategory)
         newCategory.setParent(parent)
     else:
         newCategory = Category(subject=name)
     self.categoryList.append(newCategory)
     return newCategory
    def setUp(self):
        self.monitor = ChangeMonitor()
        self.monitor.monitorClass(CategorizableCompositeObject)

        self.obj = CategorizableCompositeObject(subject=u'Object')
        self.list = ObservableList()
        self.monitor.monitorCollection(self.list)
        self.list.append(self.obj)

        self.cat1 = Category(subject=u'Cat #1')
        self.cat2 = Category(subject=u'Cat #2')
        self.catList = ObservableList()
        self.catList.append(self.cat1)
        self.catList.append(self.cat2)
Esempio n. 3
0
    def doResolveConflict(self, task, local, result):
        resolved = self.callback.resolveTaskConflict(result, local, task)

        if resolved.has_key('subject'):
            local.setSubject(resolved['subject'])
        if resolved.has_key('description'):
            local.setDescription(resolved['description'])
        if resolved.has_key('startDateTime'):
            local.setStartDateTime(resolved['startDateTime'])
        if resolved.has_key('dueDateTime'):
            local.setDueDateTime(resolved['dueDateTime'])
        if resolved.has_key('priority'):
            local.setPriority(resolved['priority'])
        if resolved.has_key('completionDateTime'):
            local.setCompletionDateTime(resolved['completionDateTime'])
        if resolved.has_key('categories'):
            # Ahah,      tricky       part.      This      is      why
            # callback.resolvedXXXConflict return dictionaries instead
            # of Task object.

            for category in local.categories().copy():
                category.removeCategorizable(local)
                local.removeCategory(category)

            for category in resolved['categories'].split(','):
                categoryObject = self.categoryList.findCategoryByName(category)
                if categoryObject is None:
                    categoryObject = Category(category)
                    self.categoryList.extend([categoryObject])
                local.addCategory(categoryObject)

            for category in local.categories():
                category.addCategorizable(local)

        return local
Esempio n. 4
0
    def _parseObject(self, item):
        parser = ical.VCalendarParser()
        parser.parse(map(lambda x: x.rstrip('\r'), item.data.split('\n')))

        categories = parser.tasks[0].pop('categories', [])

        kwargs = dict([(k, v) for k, v in parser.tasks[0].items() if k in inspect.getargspec(Task.__init__)[0]])
        task = Task(**kwargs)

        for category in categories:
            categoryObject = self.categoryList.findCategoryByName(category)
            if categoryObject is None:
                categoryObject = Category(category)
                self.categoryList.extend([categoryObject])
            task.addCategory(categoryObject)

        return task
Esempio n. 5
0
    def handleNewObject(self, args):
        if self.version < 3:
            name = args
            parentId = None
        else:
            name, parentId = args
            self.disp().log(_('New category (parent: %s)'), parentId)

        if parentId is None or not self.categoryMap.has_key(parentId):
            category = Category(name)
        else:
            category = self.categoryMap[parentId].newChild(name)

        self.disp().window.addIPhoneCategory(category)

        self.categoryMap[category.id()] = category
        self.pack('s', category.id())
Esempio n. 6
0
    def handleNewObject(self, args):
        if self.version < 3:
            name = args
            parentId = None
        else:
            name, parentId = args

        if parentId is None:
            category = Category(name)
        else:
            category = self.categoryMap[parentId].newChild(name)

        self.disp().window.addIPhoneCategory(category)

        self.pack('s', category.id())
        self.categoryMap[category.id()] = category

        self.count += 1
        self.ui.SetProgress(self.count, self.total)
Esempio n. 7
0
    def _parseObject(self, item):
        parser = ical.VCalendarParser()
        parser.parse(
            map(lambda x: x.rstrip('\r'),
                item.data.strip().split('\n')))
        categories = parser.notes[0].pop('categories', [])

        kwargs = dict([(k, v) for k, v in parser.notes[0].items()
                       if k in ['subject', 'description', 'id']])
        note = Note(**kwargs)

        for category in categories:
            categoryObject = self.categoryList.findCategoryByName(category)
            if categoryObject is None:
                categoryObject = Category(category)
                self.categoryList.extend([categoryObject])
            note.addCategory(categoryObject)

        return note
Esempio n. 8
0
    def _parseObject(self, item):
        # Horde doesn't seem to give a f**k about the supported types we send it.
        if item.dataType == 'text/plain':
            lines = map(lambda x: x.rstrip('\r'), item.data.split('\n'))
            kwargs = dict(subject=lines[0], description='\n'.join(lines[1:])) if lines else dict()
            categories = list()
        else:
            parser = ical.VCalendarParser()
            parser.parse(map(lambda x: x.rstrip('\r'), item.data.strip().split('\n')))
            categories = parser.notes[0].pop('categories', [])

            kwargs = dict([(k, v) for k, v in parser.notes[0].items() if k in ['subject', 'description', 'id']])

        note = Note(**kwargs)
        for category in categories:
            categoryObject = self.categoryList.findCategoryByName(category)
            if categoryObject is None:
                categoryObject = Category(category)
                self.categoryList.extend([categoryObject])
            note.addCategory(categoryObject)
        return note