def delete(self): """ Remove the persistent data associated with the tile and notify the cover object was modified. """ logger.debug('Deleting tile %s', self.id) data_mgr = ITileDataManager(self) data_mgr.delete() notify(ObjectModifiedEvent(self.context))
def _move_all_content(self, origin_tile, target_tile): """Move all content from one tile to another tile""" # copy data origin_dmgr = ITileDataManager(origin_tile) origin_data = origin_dmgr.get() if origin_data.get('uuids', None) is None: return target_dmgr = ITileDataManager(target_tile) target_dmgr.set(origin_dmgr.get()) # remove origin tile origin_dmgr.delete()
def _move_all_content(self, origin_tile, target_tile): """Move all content from one tile to another tile""" # copy data origin_dmgr = ITileDataManager(origin_tile) origin_data = origin_dmgr.get() if origin_data.get('uuids', None) is None: return target_dmgr = ITileDataManager(target_tile) target_dmgr.set(origin_dmgr.get()) # remove origin tile origin_dmgr.delete()
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()
def __call__(self): template = self.template if 'form.submitted' not in self.request: return template.render(self) annotations = IAnnotations(self.context) current_tiles = annotations.get('current_tiles', {}) tile_id = self.request.get('wid', None) if tile_id in current_tiles: widget_type = current_tiles[tile_id]['type'] # Let's remove all traces of the value stored in the tile widget_uri = '@@{0}/{1}'.format(widget_type, tile_id) tile = self.context.restrictedTraverse(widget_uri) dataManager = ITileDataManager(tile) dataManager.delete()
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()
def __call__(self): template = self.template if 'form.submitted' not in self.request: return template.render(self) annotations = IAnnotations(self.context) current_tiles = annotations.get('current_tiles', {}) tile_id = self.request.get('wid', None) if tile_id in current_tiles: widget_type = current_tiles[tile_id]['type'] # Let's remove all traces of the value stored in the tile widget_uri = '@@{0}/{1}'.format(widget_type, tile_id) tile = self.context.restrictedTraverse(widget_uri) dataManager = ITileDataManager(tile) dataManager.delete()
def delete_tile(self): meta_data_manager = self.get_meta_data_manager() meta_data = meta_data_manager.get() idx = int(self.request.get('idx')) tiles = meta_data['tiles'] tile_data = tiles[idx] tile_type = tile_data['type'] tile = self.get_tile(tile_type, tile_data['id']) dataManager = ITileDataManager(tile) dataManager.delete() notify(ObjectRemovedEvent(tile)) tiles.remove(tile_data) meta_data_manager.set(meta_data)
def handleDelete(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return typeName = self.tileType.__name__ # Traverse to the tile about to be removed tile = self.context.restrictedTraverse( "@@%s/%s" % (typeName, self.tileId,) ) # Look up the URL - we need to do this before we've deleted the data to # correctly account for transient tiles tileURL = absoluteURL(tile, self.request) dataManager = ITileDataManager(tile) dataManager.delete() # PATCH # key = "{}/{}".format(typeName, self.tileId) if key in dataManager.storage.keys(): # this is a not persistent tile and we need to force deletion dataManager.storage[key] = {} # END OF PATCH # notify(ObjectRemovedEvent(tile, self.context, self.tileId)) logger.debug(u"Tile deleted at {0}".format(tileURL)) # Skip form rendering for AJAX requests if self.request.get("HTTP_X_REQUESTED_WITH") == "XMLHttpRequest": IStatusMessage(self.request).addStatusMessage( _(u"Tile deleted at ${url}", mapping={"url": tileURL}), type=u"info", ) self.template = lambda: u"" return try: url = self.nextURL(tile) except NotImplementedError: url = self.context.absolute_url() self.request.response.redirect(url)
def delete(self): """ Remove the persistent data associated with the tile and notify the cover object was modified. """ logger.debug("Deleting tile {0}".format(self.id)) data_mgr = ITileDataManager(self) data_mgr.delete() # Remove permission data permissions = getMultiAdapter((self.context, self.request, self), ITilesPermissions) permissions.delete() # Remove configuration data configuration = getMultiAdapter((self.context, self.request, self), ITilesConfigurationScreen) configuration.delete() notify(ObjectModifiedEvent(self.context))
def delete(self): """ Remove the persistent data associated with the tile and notify the cover object was modified. """ logger.debug('Deleting tile {0}'.format(self.id)) data_mgr = ITileDataManager(self) data_mgr.delete() # Remove permission data permissions = getMultiAdapter( (self.context, self.request, self), ITilesPermissions) permissions.delete() # Remove configuration data configuration = getMultiAdapter( (self.context, self.request, self), ITilesConfigurationScreen) configuration.delete() notify(ObjectModifiedEvent(self.context))
def __call__(self): # Set up draft information if required currentDraft = ICurrentDraftManagement(self.request) currentDraft.mark() self.request['disable_border'] = True confirm = self.request.form.get('confirm', False) self.tileTypeName = self.request.form.get('type', None) self.tileId = self.request.form.get('id', None) self.deleted = False if confirm and self.tileTypeName and self.tileId: tileType = getUtility(ITileType, name=self.tileTypeName) if not checkPermission(tileType.add_permission, self.context): raise Unauthorized("You are not allowed to modify this " + \ "tile type") tile = self.context.restrictedTraverse( '@@%s/%s' % (self.tileTypeName, self.tileId,)) dm = ITileDataManager(tile) dm.delete() notify(ObjectRemovedEvent(tile, self.context, self.tileId)) self.deleted = True elif 'form.button.Ok' in self.request.form: self.request.response.redirect( self.context.absolute_url() + '/view') return '' return self.index()
def handleDelete(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return typeName = self.tileType.__name__ # Traverse to a new tile in the context, with no data tile = self.context.restrictedTraverse( '@@%s/%s' % (typeName, self.tileId,)) # Look up the URL - we need to do this before we've deletd the data to # correctly account for transient tiles tileURL = absoluteURL(tile, self.request) dataManager = ITileDataManager(tile) dataManager.delete() notify(ObjectRemovedEvent(tile)) logger.debug(u"Tile deleted at {0}".format(tileURL)) # Skip form rendering for AJAX requests if self.request.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest': IStatusMessage(self.request).addStatusMessage( _(u"Tile deleted at ${url}", mapping={'url': tileURL}), type=u'info' ) self.template = lambda: u'' return try: url = self.nextURL(tile) except NotImplementedError: url = self.context.absolute_url() self.request.response.redirect(url)
def delete(self): data_mgr = ITileDataManager(self) data_mgr.delete()
def delete(self): data_mgr = ITileDataManager(self) data_mgr.delete()
def delete(self): data_mgr = ITileDataManager(self) data_mgr.delete() logger.debug('tile %s deleted', self.id)