Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
 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
Esempio n. 4
0
 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)