Fix staging file delete view
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
@@ -19,7 +19,8 @@ from .literals import (
|
||||
)
|
||||
from .permissions import (
|
||||
permission_sources_create, permission_sources_delete,
|
||||
permission_sources_edit, permission_sources_view
|
||||
permission_sources_edit, permission_sources_view,
|
||||
permission_staging_file_delete
|
||||
)
|
||||
|
||||
|
||||
@@ -113,9 +114,9 @@ link_source_logs = Link(
|
||||
)
|
||||
link_staging_file_delete = Link(
|
||||
keep_query=True, kwargs={
|
||||
'staging_file_pk': 'source.pk',
|
||||
'staging_folder_id': 'source.pk',
|
||||
'encoded_filename': 'object.encoded_filename'
|
||||
}, permissions=(permission_document_new_version, permission_document_create),
|
||||
}, permissions=(permission_staging_file_delete,),
|
||||
tags='dangerous', text=_('Delete'), view='sources:staging_file_delete'
|
||||
)
|
||||
link_upload_version = Link(
|
||||
|
||||
@@ -200,7 +200,6 @@ class StagingFolderViewTestCase(GenericViewTestCase):
|
||||
self.temporary_directory = mkdtemp()
|
||||
shutil.copy(TEST_SMALL_DOCUMENT_PATH, self.temporary_directory)
|
||||
self.filename = os.path.basename(TEST_SMALL_DOCUMENT_PATH)
|
||||
self.login_user()
|
||||
|
||||
def tearDown(self):
|
||||
fs_cleanup(self.temporary_directory)
|
||||
@@ -233,7 +232,7 @@ class StagingFolderViewTestCase(GenericViewTestCase):
|
||||
response = self._request_staging_file_delete_view(
|
||||
staging_file=staging_file
|
||||
)
|
||||
self.assertEqual(response.status_code, 403)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
self.assertEqual(len(list(self.staging_folder.get_files())), 1)
|
||||
|
||||
def test_staging_folder_delete_with_permission(self):
|
||||
@@ -252,10 +251,6 @@ class StagingFolderViewTestCase(GenericViewTestCase):
|
||||
|
||||
|
||||
class SourcesViewsTestCase(GenericViewTestCase):
|
||||
def setUp(self):
|
||||
super(SourcesViewsTestCase, self).setUp()
|
||||
self.login_user()
|
||||
|
||||
def _create_web_source(self):
|
||||
self.source = WebFormSource.objects.create(
|
||||
enabled=True, label=TEST_SOURCE_LABEL,
|
||||
|
||||
@@ -210,9 +210,10 @@ class SourceLogView(SingleObjectListView):
|
||||
)
|
||||
|
||||
|
||||
class StagingFileDeleteView(SingleObjectDeleteView):
|
||||
object_permission = permission_staging_file_delete
|
||||
object_permission_related = 'staging_folder'
|
||||
class StagingFileDeleteView(ExternalObjectMixin, SingleObjectDeleteView):
|
||||
external_object_class = StagingFolderSource
|
||||
external_object_pk_url_kwarg = 'staging_folder_id'
|
||||
external_object_permission = permission_staging_file_delete
|
||||
|
||||
def get_extra_context(self):
|
||||
return {
|
||||
@@ -228,9 +229,7 @@ class StagingFileDeleteView(SingleObjectDeleteView):
|
||||
)
|
||||
|
||||
def get_source(self):
|
||||
return get_object_or_404(
|
||||
klass=StagingFolderSource, pk=self.kwargs['staging_folder_id']
|
||||
)
|
||||
return self.get_external_object()
|
||||
|
||||
|
||||
class UploadBaseView(ListModeMixin, MultiFormView):
|
||||
|
||||
Reference in New Issue
Block a user