def fix_child_mappings(self):
        dossier_brains = self.catalog(object_provides=IDossierMarker.__identifier__)
        for brain in dossier_brains:
            obj = brain.getObject()

            if ITemplateDossier.providedBy(obj):
                continue
            if obj.id in self.ignored_ids:
                continue

            self._fix_wrong_mappings(obj)

        for obj in self.objs_to_reindex:
            obj.reindexObject(idxs=['reference'])
            if ITask.providedBy(obj):
                obj.get_sql_object().sync_with(obj)
    def check_if_dossier_refnums_are_complete(self):
        check_result = 'PASSED'
        catalog = self.site.portal_catalog
        dossier_brains = catalog(object_provides=IDossierMarker.__identifier__)

        for brain in dossier_brains:
            dossier = brain.getObject()
            sep = self.helper.get_repo_dossier_separator(obj=dossier)
            url = dossier.absolute_url()

            if dossier.id in self.ignored_ids:
                continue
            if ITemplateDossier.providedBy(dossier):
                continue

            refNumb = getAdapter(dossier, IReferenceNumber)
            obj_refnum = refNumb.get_number()
            refnum_parts = obj_refnum.split(sep)
            if '/desktop/' in url:
                # Dossiers in Desktop position have a custom reference number
                continue

            if not len(refnum_parts) == 2:
                check_result = 'FAILED'
                self.log("WARNING: Something's wrong with "
                         "refnum '%s' for object '%s'"
                    % (obj_refnum, url))
                continue

            right_part = refnum_parts[1].strip()
            left_part = refnum_parts[0].strip()
            if right_part.endswith('.') or right_part.startswith('.') \
                or left_part.endswith('.') or left_part.startswith('.'):
                check_result = 'FAILED'
                self.log("WARNING: refnum '%s' for object '%s' is "
                         "incomplete!" % (obj_refnum, url))
                continue

        return check_result
 def test_factory(self):
     fti = queryUtility(IDexterityFTI,
                        name='opengever.dossier.templatedossier')
     factory = fti.factory
     new_object = createObject(factory)
     self.failUnless(ITemplateDossier.providedBy(new_object))
 def test_adding(self):
     portal = self.layer['portal']
     self.grant('Contributor')
     portal.invokeFactory('opengever.dossier.templatedossier', 'templatedossier')
     d1 = portal['templatedossier']
     self.failUnless(ITemplateDossier.providedBy(d1))