def edit_file_delete(request, code): """Deletes specified code or revision from system (Marks deleted) @param request: is a Django request object @param code is a DMS Object() code for view interactions""" # Decision of where to go back after or instead of removal return_url = reverse('mdtui-home') if 'edit_return' in request.session: return_url = request.session['edit_return'] if request.method == 'POST': revision = request.POST.get('revision', False) if revision: return_url = reverse('mdtui-edit-revisions', kwargs={'code': code}) processor = DocumentProcessor() processor.read(code, {'user': request.user, 'only_metadata': True}) if not processor.errors: # Selecting to delete (Mark deleted) revision or whole document options = {'user': request.user} if revision: options['mark_revision_deleted'] = revision else: options['mark_deleted'] = True processor.delete(code, options) if not processor.errors: request.session['cleanup_caches'] = True return HttpResponseRedirect(return_url) return HttpResponseRedirect(return_url)
def delete(self, request, code, suggested_format=None): # FIXME: should return 404 if file not found, 400 if no docrule exists. revision, hashcode, extra = self._get_info(request) processor = DocumentProcessor() options = { 'revision': revision, 'extension': suggested_format, 'user': request.user, } log.debug('FileHandler.delete attempt with %s' % options) processor.delete(code, options) if len(processor.errors) > 0: log.error('Manager Errors encountered %s' % processor.errors) return rc.BAD_REQUEST log.info('FileHandler.delete request fulfilled for code: %s, format: %s, rev: %s, hash: %s.' % (code, suggested_format, revision, hashcode)) return rc.DELETED
def delete(self, request, code, suggested_format=None): # FIXME: should return 404 if file not found, 400 if no docrule exists. revision, hashcode, extra = self._get_info(request) processor = DocumentProcessor() options = { 'revision': revision, 'extension': suggested_format, 'user': request.user, } log.debug('FileHandler.delete attempt with %s' % options) processor.delete(code, options) if len(processor.errors) > 0: log.error('Manager Errors encountered %s' % processor.errors) return Response(status=status.HTTP_400_BAD_REQUEST) log.info( 'FileHandler.delete request fulfilled for code: %s, format: %s, rev: %s, hash: %s.' % (code, suggested_format, revision, hashcode)) return Response(status=status.HTTP_204_NO_CONTENT)