Beispiel #1
0
    def get_referenced_objects(self):
        """Get referenced objects from cover object.

        :returns: a set of objects referenced
        :rtype: set of objects
        """
        refs = set()
        for tile_uuid in self.list_tiles():
            tile = self.get_tile(tile_uuid)
            uuid = tile.data.get('uuid', None)
            if uuid is not None:
                refs |= set([uuidToObject(uuid)])
            if IListTile.providedBy(tile):
                uuids = tile.data.get('uuids', [])
                if uuids is None:
                    continue
                for uuid in uuids:
                    refs |= set([uuidToObject(uuid)])
            elif IRichTextTile.providedBy(tile):
                value = tile.data.get('text')
                if value is None:
                    continue
                value = value.raw
                links = extractLinks(value)
                refs |= getObjectsFromLinks(self, links)
        return refs
Beispiel #2
0
    def get_referenced_objects(self):
        """Get referenced objects from cover object.

        :returns: a set of objects referenced
        :rtype: set of objects
        """
        refs = set()
        for tile_uuid in self.list_tiles():
            tile = self.get_tile(tile_uuid)
            uuid = tile.data.get('uuid', None)
            if uuid is not None:
                refs |= set([uuidToObject(uuid)])
            if IListTile.providedBy(tile):
                uuids = tile.data.get('uuids', [])
                if uuids is None:
                    continue
                for uuid in uuids:
                    refs |= set([uuidToObject(uuid)])
            elif IRichTextTile.providedBy(tile):
                value = tile.data.get('text')
                if value is None:
                    continue
                value = value.raw
                links = extractLinks(value)
                refs |= getObjectsFromLinks(self, links)
        return refs
Beispiel #3
0
    def render(self):
        """Render a tile after removing an object from it."""
        if not all((self.tile_type, self.tile_id, self.uuid)):
            raise BadRequest('Invalid parameters')

        path = '{0}/{1}'.format(self.tile_type, self.tile_id)
        tile = self.context.restrictedTraverse(path)
        if IListTile.providedBy(tile):
            tile.remove_item(self.uuid)
            return tile()
Beispiel #4
0
    def render(self):
        """Render a tile after removing an object from it."""
        if not all((self.tile_type, self.tile_id, self.uuid)):
            raise BadRequest('Invalid parameters')

        path = '{0}/{1}'.format(self.tile_type, self.tile_id)
        tile = self.context.restrictedTraverse(path)
        if IListTile.providedBy(tile):
            tile.remove_item(self.uuid)
            return tile()
Beispiel #5
0
 def render(self):
     """Render a tile after removing an object from it."""
     tile_type = self.request.form.get('tile-type')
     tile_id = self.request.form.get('tile-id')
     uuid = self.request.form.get('uuid')
     if tile_type and tile_id and uuid:
         tile = self.context.restrictedTraverse('{0}/{1}'.format(tile_type, tile_id))
         if IListTile.providedBy(tile):
             tile.remove_item(uuid)
             # reinstantiate the tile to update its content on AJAX calls
             tile = self.context.restrictedTraverse('{0}/{1}'.format(tile_type, tile_id))
             return tile()
     else:
         raise BadRequest('Invalid parameters')
Beispiel #6
0
 def _move_selected_content(self, origin_tile, target_tile, obj):
     """Move selected content from one tile to another tile"""
     target_tile.populate_with_object(obj)
     if IListTile.providedBy(origin_tile):
         uuid = IUUID(obj)
         origin_tile.remove_item(uuid)
     else:
         origin_dmgr = ITileDataManager(origin_tile)
         origin_data = origin_dmgr.get()
         target_dmgr = ITileDataManager(target_tile)
         target_data = target_dmgr.get()
         for k, v in origin_data.iteritems():
             if k in target_data and not k.startswith('uuid') and v is not None:
                 target_data[k] = v
         target_dmgr.set(target_data)
         origin_dmgr.delete()
Beispiel #7
0
 def _move_selected_content(self, origin_tile, target_tile, obj):
     """Move selected content from one tile to another tile"""
     target_tile.populate_with_object(obj)
     if IListTile.providedBy(origin_tile):
         uuid = IUUID(obj)
         origin_tile.remove_item(uuid)
     else:
         origin_dmgr = ITileDataManager(origin_tile)
         origin_data = origin_dmgr.get()
         target_dmgr = ITileDataManager(target_tile)
         target_data = target_dmgr.get()
         for k, v in origin_data.iteritems():
             if k in target_data and not k.startswith(
                     'uuid') and v is not None:
                 target_data[k] = v
         target_dmgr.set(target_data)
         origin_dmgr.delete()
Beispiel #8
0
 def get_has_subitem(self, tile_type, tile_id):
     """Return if tile has subitems (inherited from IListTile)."""
     tile = self.context.restrictedTraverse('{0}/{1}'.format(str(tile_type), str(tile_id)))
     return IListTile.providedBy(tile)