Ejemplo n.º 1
0
    def storage_key(self):

        context_id = util.get_storage_key(self.context)
        if not context_id:
            context_id = util.new_storage_key(self.context)
        field_id = self.field.__name__
        return '{}/{}.xml'.format(util.get_storage_path(self.context), field_id)
Ejemplo n.º 2
0
 def storage_key(self):
     context_id = util.get_storage_key(self.context)
     if not context_id:
         context_id = util.new_storage_key(self.context)
     field_id = self.field.__name__
     return '{}/{}{}'.format(util.get_storage_path(self.context), field_id,
                             self.suffix)
Ejemplo n.º 3
0
    def unlock(self):

        storage_path = get_storage_path(self.context)
        LM = LockManager(self.context)
        path = '{}/xml_content.xml'.format(storage_path)
        LM.unlock(path, token=None)
        return 'unlocked'
Ejemplo n.º 4
0
    def unlock(self):

        storage_path = get_storage_path(self.context)
        LM = LockManager(self.context)
        path = '{}/xml_content.xml'.format(storage_path)
        LM.unlock(path, token=None)
        return 'unlocked'
Ejemplo n.º 5
0
    def lock(self):

        storage_path = get_storage_path(self.context)

        LM = LockManager(self.context)
        path = '{}/xml_content.xml'.format(storage_path)
        lock_info = LM.lock(path, mode='shared')
        return lock_info
Ejemplo n.º 6
0
    def lock(self):

        storage_path = get_storage_path(self.context)

        LM = LockManager(self.context)
        path = '{}/xml_content.xml'.format(storage_path)
        lock_info = LM.lock(path, mode='shared')
        return lock_info
Ejemplo n.º 7
0
    def info(self):

        if not util.is_xml_content(self.context):
            return

        storage_path = get_storage_path(self.context)
        path = '{}/xml_content.xml'.format(storage_path)
        LM = LockManager(self.context)

        try:
            lock_info = LM.get_lock(path)
        except Exception as e:
            lock_info = None

        return dict(lock_info=lock_info,
                    storage_key=util.get_storage_key(self.context),
                    storage_path=util.get_storage_path(self.context))
def copied_handler(obj, event):
    """ Copy XML resources to new object """

    # original and copied Dexterity object
    copied = event.object
    original = event.original

    # Is this Dexterity content object related to XML resources?
    if not util.is_xml_content(copied):
        return

    # create a new storage id
    if util.get_storage_key(original) == util.get_storage_key(copied):
        util.new_storage_key(copied)

        # an copy over XML content from original content object
        handle = getUtility(IConnectorHandle).get_handle()
        storage_dir_original = util.get_storage_path(original)
        storage_dir_copied = util.get_storage_path(copied)
        storage_dir_copied_parent = util.get_storage_path_parent(copied)
        handle.makedir(storage_dir_copied_parent, True, True)
        handle.copydir(storage_dir_original, storage_dir_copied)
Ejemplo n.º 9
0
def copied_handler(obj, event):
    """ Copy XML resources to new object """

    # original and copied Dexterity object
    copied = event.object
    original = event.original

    # Is this Dexterity content object related to XML resources?
    if not util.is_xml_content(copied):
        return

    # create a new storage id
    if util.get_storage_key(original) == util.get_storage_key(copied):
        util.new_storage_key(copied)

        # an copy over XML content from original content object
        handle = getUtility(IWebdavHandle).webdav_handle()
        storage_dir_original = util.get_storage_path(original)
        storage_dir_copied = util.get_storage_path(copied)
        storage_dir_copied_parent = util.get_storage_path_parent(copied)
        handle.makedir(storage_dir_copied_parent, True, True)
        handle.copydir(storage_dir_original, storage_dir_copied)
def removal_handler(obj, event):
    """ Remove related XML content if a Dexterity content object
        is being deleted.
    """

    if not util.is_xml_content(event.object):
        return

    handle = getUtility(IConnectorHandle).get_handle()
    storage_dir = util.get_storage_path(event.object)
    storage_parent_dir = util.get_storage_path_parent(event.object)
    if handle.exists(storage_dir):
        handle.removedir(storage_dir, False, True)
    if handle.exists(storage_parent_dir) and handle.isdirempty(storage_parent_dir):
        handle.removedir(storage_parent_dir, False, True)
Ejemplo n.º 11
0
def removal_handler(obj, event):
    """ Remove related XML content if a Dexterity content object
        is being deleted.
    """

    if not util.is_xml_content(event.object):
        return

    handle = getUtility(IWebdavHandle).webdav_handle()
    storage_dir = util.get_storage_path(event.object)
    storage_parent_dir = util.get_storage_path_parent(event.object)
    if handle.exists(storage_dir):
        handle.removedir(storage_dir, False, True)
    if handle.exists(storage_parent_dir) and handle.isdirempty(storage_parent_dir):
        handle.removedir(storage_parent_dir, False, True)
Ejemplo n.º 12
0
def version_handler(obj, event):
    """ Copy XML resources to new object """

    # Is this Dexterity content object related to XML resources?
    if not util.is_xml_content(event.object):
        return

    registry = getUtility(IRegistry)
    settings = registry.forInterface(IWebdavSettings)
    if not settings.versioning_enabled:
        return

    context = event.object
    handle = getUtility(IWebdavHandle).webdav_handle()
    storage_path = util.get_storage_path(context)

    for field in get_all_xml_fields(context):
        content = xml_get(context, field.getName())
        print field
        print content
Ejemplo n.º 13
0
def version_handler(obj, event):
    """ Copy XML resources to new object """

    # Is this Dexterity content object related to XML resources?
    if not util.is_xml_content(event.object):
        return

    return
    registry = getUtility(IRegistry)
    settings = registry.forInterface(IWebdavSettings)
    if not settings.versioning_enabled:
        return

    context = event.object
    handle = getUtility(IWebdavHandle).webdav_handle()
    storage_path = util.get_storage_path(context)

    for field in get_all_xml_fields(context):
        content = xml_get(context, field.getName())
        print field
        print content
Ejemplo n.º 14
0
 def info(self):
     if not util.is_xml_content(self.context):
         return
     return dict(storage_key=util.get_storage_key(self.context),
                 storage_path=util.get_storage_path(self.context))
Ejemplo n.º 15
0
 def info(self):
     if not util.is_xml_content(self.context):
         return
     return dict(storage_key=util.get_storage_key(self.context),
                 storage_path=util.get_storage_path(self.context))