def enable_quota_subsystem(self):
        """Enable quota sub-system.
        """
        if self._quota_enabled:
            return False
        root = self.get_root()

        # Setup metadata for quota
        schema = os.path.join(os.path.dirname(__file__), 'schema')

        collection = root.service_metadata.getCollection()
        if 'silva-quota' in collection.objectIds():
            collection.manage_delObjects(['silva-quota'])

        xml_file = os.path.join(schema, 'silva-quota.xml')
        with open(xml_file, 'r') as fh:
            collection.importSet(fh)

        setids = ('silva-quota', )
        types = [
            c['name']
            for c in extensionRegistry.get_contents(requires=[IPublication])
        ]
        root.service_metadata.addTypesMapping(types, setids)
        root.service_metadata.initializeMetadata()

        root.used_space = compute_used_space(root)
        self._quota_enabled = True
        self._quota_verify = True
        return True
    def enable_quota_subsystem(self):
        """Enable quota sub-system.
        """
        if self._quota_enabled:
            return False
        root = self.get_root()

        # Setup metadata for quota
        schema = os.path.join(os.path.dirname(__file__), 'schema')

        collection = root.service_metadata.getCollection()
        if 'silva-quota' in collection.objectIds():
            collection.manage_delObjects(['silva-quota'])

        xml_file = os.path.join(schema, 'silva-quota.xml')
        with open(xml_file, 'r') as fh:
            collection.importSet(fh)

        setids = ('silva-quota',)
        types = [c['name'] for c in extensionRegistry.get_contents(requires=[IPublication])]
        root.service_metadata.addTypesMapping(types, setids)
        root.service_metadata.initializeMetadata()

        root.used_space = compute_used_space(root)
        self._quota_enabled = True
        self._quota_verify = True
        return True
Example #3
0
    def _prepare_query(self, meta_types=None, public_only=True):
        """private method preparing the common fields for a catalog query.

        Return: dict holding the query parameters
        """
        query = {}
        query['path'] = map(lambda s: "/".join(s), self._get_sources_path())
        if public_only:
            query['publication_status'] = 'public'
        service = getUtility(IServiceNews)
        query['subjects'] = {
            'query': self._collect_subjects(service),
            'operator': 'or'}
        query['target_audiences'] = {
            'query': self._collect_target_audiences(service),
            'operator': 'or'}
        if not meta_types:
            meta_types = map(
                operator.itemgetter('name'),
                extensionRegistry.get_contents(
                    **self.get_allowed_types()))
        query['meta_type'] = meta_types
        query['sort_on'] = 'sort_index'
        query['sort_order'] = 'descending'
        return query
Example #4
0
def configure_metadata(service, event):
    # load up the default metadata
    schema = os.path.join(os.path.dirname(__file__), 'schema')

    metadata_sets_types = [
        (('silva-content', 'silva-extra', 'silva-settings'),
         ('Silva Folder', 'Silva File', 'Silva Image', 'Silva Root',
          'Silva Publication', 'Silva Indexer', 'Silva AutoTOC',
          'Silva Link Version')),
        (('silva-layout', ), ('Silva Root', 'Silva Publication'))
    ]

    collection = service.getCollection()
    ids = collection.objectIds()
    for metadata_sets, types in metadata_sets_types:
        for metadata_set in metadata_sets:
            if metadata_set in ids:
                collection.manage_delObjects([metadata_set])
            xml_file = os.path.join(schema, "%s.xml" % metadata_set)
            with open(xml_file, 'r') as fh:
                collection.importSet(fh)
        service.addTypesMapping(types, metadata_sets)

    service.addTypesMapping(('Silva Ghost Folder', 'Silva Ghost Version'),
                            ('', ))

    if 'silva-quota' in ids:
        # If you reconfigure the site, refresh the silva-quota
        # metadata set if required.
        collection.manage_delObjects(['silva-quota'])
        xml_file = os.path.join(schema, 'silva-quota.xml')
        with open(xml_file, 'r') as fh:
            collection.importSet(fh)
        service.addTypesMapping([
            c['name']
            for c in extensionRegistry.get_contents(requires=[IPublication])
        ], ('silva-quota', ))

    service.initializeMetadata()

    # Set the default skin
    root = service.get_root()
    current_skin = service.getMetadataValue(root, 'silva-layout', 'skin')
    if not current_skin:
        binding = service.getMetadata(root)
        binding.setValues('silva-layout', {'skin': 'Standard Issue'})
Example #5
0
def configure_metadata(service, event):
    # load up the default metadata
    schema = os.path.join(os.path.dirname(__file__), 'schema')

    metadata_sets_types = [
        (('silva-content', 'silva-extra', 'silva-settings'),
         ('Silva Folder', 'Silva File', 'Silva Image', 'Silva Root',
          'Silva Publication', 'Silva Indexer', 'Silva AutoTOC',
          'Silva Link Version')),
        (('silva-layout',),
         ('Silva Root', 'Silva Publication'))]

    collection = service.getCollection()
    ids = collection.objectIds()
    for metadata_sets, types in metadata_sets_types:
        for metadata_set in metadata_sets:
            if metadata_set in ids:
                collection.manage_delObjects([metadata_set])
            xml_file = os.path.join(schema, "%s.xml" % metadata_set)
            with open(xml_file, 'r') as fh:
                collection.importSet(fh)
        service.addTypesMapping(types, metadata_sets)

    service.addTypesMapping(
        ('Silva Ghost Folder', 'Silva Ghost Version'),
        ('', ))

    if 'silva-quota' in ids:
        # If you reconfigure the site, refresh the silva-quota
        # metadata set if required.
        collection.manage_delObjects(['silva-quota'])
        xml_file = os.path.join(schema, 'silva-quota.xml')
        with open(xml_file, 'r') as fh:
            collection.importSet(fh)
        service.addTypesMapping(
            [c['name'] for c in extensionRegistry.get_contents(requires=[IPublication])],
            ('silva-quota',))

    service.initializeMetadata()

    # Set the default skin
    root = service.get_root()
    current_skin = service.getMetadataValue(root, 'silva-layout', 'skin')
    if not current_skin:
        binding = service.getMetadata(root)
        binding.setValues('silva-layout', {'skin': 'Standard Issue'})
Example #6
0
 def getContentTypes(self):
     if not hasattr(aq_base(self), '_v_content_types'):
         self._v_content_types = list(
             map(operator.itemgetter('name'),
                 extensionRegistry.get_contents()))
     return self._v_content_types
 def getContentTypes(self):
     if not hasattr(aq_base(self), '_v_content_types'):
         self._v_content_types = map(
             operator.itemgetter('name'), extensionRegistry.get_contents())
     return self._v_content_types