def remove(self, folder, progress=None, **kwargs): """ Delete a profile recursively. :param profile: The profile document to delete. :type folder: dict :param progress: A progress context to record progress on. :type progress: girderformindlogger.utility.progress.ProgressContext or None. """ # Remove the contents underneath this folder recursively. from girderformindlogger.models.upload import Upload # self.clean(folder, progress, **kwargs) # Delete pending uploads into this folder uploadModel = Upload() uploads = uploadModel.find({ 'appletId': folder['_id'], 'parentType': 'profile' }) for upload in uploads: uploadModel.remove(upload, progress=progress, **kwargs) uploads.close() # Delete this folder AccessControlledModel.remove(self, folder, progress=progress, **kwargs) if progress: progress.update(increment=1, message='Deleted profile %s' % folder['name'])
def remove(self, item, **kwargs): """ Delete an item, and all references to it in the database. :param item: The item document to delete. :type item: dict """ from girderformindlogger.models.file import File from girderformindlogger.models.upload import Upload # Delete all files in this item fileModel = File() files = fileModel.find({'itemId': item['_id']}) for file in files: fileKwargs = kwargs.copy() fileKwargs.pop('updateItemSize', None) fileModel.remove(file, updateItemSize=False, **fileKwargs) # Delete pending uploads into this item uploadModel = Upload() uploads = uploadModel.find({ 'parentId': item['_id'], 'parentType': 'item' }) for upload in uploads: uploadModel.remove(upload, **kwargs) # Delete the item itself Model.remove(self, item)