diff --git a/mayan/apps/acls/tests/test_links.py b/mayan/apps/acls/tests/test_links.py index 231ad6e78d..78d3821685 100644 --- a/mayan/apps/acls/tests/test_links.py +++ b/mayan/apps/acls/tests/test_links.py @@ -14,12 +14,7 @@ from ..permissions import permission_acl_edit, permission_acl_view class ACLsLinksTestCase(GenericDocumentViewTestCase): def test_document_acl_create_link(self): - acl = AccessControlList.objects.create( - content_object=self.document, role=self.role - ) - - acl.permissions.add(permission_acl_edit.stored_permission) - self.login_user() + self.grant_access(obj=self.document, permission=permission_acl_edit) self.add_test_view(test_object=self.document) context = self.get_test_view() @@ -39,12 +34,7 @@ class ACLsLinksTestCase(GenericDocumentViewTestCase): ) def test_document_acl_delete_link(self): - acl = AccessControlList.objects.create( - content_object=self.document, role=self.role - ) - - acl.permissions.add(permission_acl_edit.stored_permission) - self.login_user() + self.grant_access(obj=self.document, permission=permission_acl_edit) self.add_test_view(test_object=acl) context = self.get_test_view() @@ -53,16 +43,13 @@ class ACLsLinksTestCase(GenericDocumentViewTestCase): self.assertNotEqual(resolved_link, None) self.assertEqual( - resolved_link.url, reverse(viewname='acls:acl_delete', kwargs={'acl_pk': acl.pk}) + resolved_link.url, reverse( + viewname='acls:acl_delete', kwargs={'acl_id': acl.pk} + ) ) def test_document_acl_edit_link(self): - acl = AccessControlList.objects.create( - content_object=self.document, role=self.role - ) - - acl.permissions.add(permission_acl_edit.stored_permission) - self.login_user() + self.grant_access(obj=self.document, permission=permission_acl_edit) self.add_test_view(test_object=acl) context = self.get_test_view() @@ -71,16 +58,13 @@ class ACLsLinksTestCase(GenericDocumentViewTestCase): self.assertNotEqual(resolved_link, None) self.assertEqual( - resolved_link.url, reverse(viewname='acls:acl_permissions', kwargs={'acl_pk': acl.pk}) + resolved_link.url, reverse( + viewname='acls:acl_permissions', kwargs={'acl_id': acl.pk} + ) ) def test_document_acl_list_link(self): - acl = AccessControlList.objects.create( - content_object=self.document, role=self.role - ) - - acl.permissions.add(permission_acl_view.stored_permission) - self.login_user() + self.grant_access(obj=self.document, permission=permission_acl_view) self.add_test_view(test_object=self.document) context = self.get_test_view() diff --git a/mayan/apps/acls/views.py b/mayan/apps/acls/views.py index 7e0b7b37b1..b92b7d5f16 100644 --- a/mayan/apps/acls/views.py +++ b/mayan/apps/acls/views.py @@ -132,7 +132,7 @@ class ACLListView(ContentTypeViewMixin, ExternalObjectMixin, SingleObjectListVie ), } - def get_object_list(self): + def get_source_queryset(self): return self.get_external_object().acls.all() diff --git a/mayan/apps/cabinets/apps.py b/mayan/apps/cabinets/apps.py index 4f1d6c4514..3328fcf0e8 100644 --- a/mayan/apps/cabinets/apps.py +++ b/mayan/apps/cabinets/apps.py @@ -75,9 +75,9 @@ class CabinetsApp(MayanAppConfig): permission_cabinet_remove_document ) ) - ModelPermission.register_inheritance( - model=Cabinet, related='get_root', - ) + #ModelPermission.register_inheritance( + # model=Cabinet, related='get_root', + #) SourceColumn( func=lambda context: widget_document_cabinets( diff --git a/mayan/apps/cabinets/views.py b/mayan/apps/cabinets/views.py index c61febaf0f..531db9f063 100644 --- a/mayan/apps/cabinets/views.py +++ b/mayan/apps/cabinets/views.py @@ -64,7 +64,7 @@ class CabinetChildAddView(SingleObjectCreateView): cabinet = super(CabinetChildAddView, self).get_object(*args, **kwargs) AccessControlList.objects.check_access( - permissions=permission_cabinet_edit, obj=cabinet.get_root(), + obj=cabinet.get_root(), permission=permission_cabinet_edit, user=self.request.user, raise_404=True ) @@ -146,7 +146,7 @@ class CabinetDetailView(DocumentListView): permission_object = cabinet.get_root() AccessControlList.objects.check_access( - permissions=permission_cabinet_view, obj=permission_object, + obj=permission_object, permission=permission_cabinet_view, user=self.request.user, raise_404=True ) @@ -187,7 +187,7 @@ class CabinetListView(SingleObjectListView): 'no_results_title': _('No cabinets available'), } - def get_object_list(self): + def get_source_queryset(self): # Add explicit ordering of root nodes since the queryset returned # is not affected by the model's order Meta option. return Cabinet.objects.root_nodes().order_by('label') @@ -200,8 +200,8 @@ class DocumentCabinetListView(CabinetListView): ) AccessControlList.objects.check_access( - permissions=permission_document_view, user=request.user, - obj=self.document, raise_404=True + obj=self.document, permission=permission_document_view, + user=request.user, raise_404=True ) return super(DocumentCabinetListView, self).dispatch( @@ -227,7 +227,7 @@ class DocumentCabinetListView(CabinetListView): 'title': _('Cabinets containing document: %s') % self.document, } - def get_object_list(self): + def get_source_queryset(self): return self.document.get_cabinets().all() @@ -295,7 +295,7 @@ class DocumentAddToCabinetView(MultipleObjectFormActionView): for cabinet in form.cleaned_data['cabinets']: AccessControlList.objects.check_access( - obj=cabinet, permissions=permission_cabinet_add_document, + obj=cabinet, permission=permission_cabinet_add_document, user=self.request.user, raise_404=True ) if cabinet in cabinet_membership: @@ -383,7 +383,7 @@ class DocumentRemoveFromCabinetView(MultipleObjectFormActionView): for cabinet in form.cleaned_data['cabinets']: AccessControlList.objects.check_access( - obj=cabinet, permissions=permission_cabinet_remove_document, + obj=cabinet, permission=permission_cabinet_remove_document, user=self.request.user, raise_404=True ) diff --git a/mayan/apps/converter/views.py b/mayan/apps/converter/views.py index 8aa4b5089c..3a728db467 100644 --- a/mayan/apps/converter/views.py +++ b/mayan/apps/converter/views.py @@ -37,8 +37,8 @@ class TransformationDeleteView(SingleObjectDeleteView): ) AccessControlList.objects.check_access( - permissions=permission_transformation_delete, - obj=self.transformation.content_object, user=request.user + obj=self.transformation.content_object, + permission=permission_transformation_delete, user=request.user ) return super(TransformationDeleteView, self).dispatch( @@ -93,8 +93,8 @@ class TransformationCreateView(SingleObjectCreateView): raise Http404 AccessControlList.objects.check_access( - permissions=permission_transformation_create, - obj=self.content_object, user=request.user + obj=self.content_object, permission=permission_transformation_create, + user=request.user ) return super(TransformationCreateView, self).dispatch( @@ -149,7 +149,7 @@ class TransformationEditView(SingleObjectEditView): AccessControlList.objects.check_access( obj=self.transformation.content_object, - permissions=permission_transformation_edit, user=request.user + permission=permission_transformation_edit, user=request.user ) return super(TransformationEditView, self).dispatch( @@ -206,7 +206,7 @@ class TransformationListView(SingleObjectListView): AccessControlList.objects.check_access( obj=self.content_object, - permissions=permission_transformation_view, + permission=permission_transformation_view, user=request.user ) @@ -235,5 +235,5 @@ class TransformationListView(SingleObjectListView): 'title': _('Transformations for: %s') % self.content_object, } - def get_object_list(self): + def get_source_queryset(self): return Transformation.objects.get_for_model(obj=self.content_object) diff --git a/mayan/apps/document_comments/tests/test_api.py b/mayan/apps/document_comments/tests/test_api.py index 15ef08722a..231313593c 100644 --- a/mayan/apps/document_comments/tests/test_api.py +++ b/mayan/apps/document_comments/tests/test_api.py @@ -19,7 +19,7 @@ class CommentAPITestCase(CommentsTestMixin, DocumentTestMixin, BaseAPITestCase): def _request_api_comment_create_view(self): return self.post( viewname='rest_api:comment-list', - kwargs={'document_pk': self.document.pk}, data={ + kwargs={'document_id': self.document.pk}, data={ 'comment': TEST_COMMENT_TEXT } ) @@ -40,8 +40,8 @@ class CommentAPITestCase(CommentsTestMixin, DocumentTestMixin, BaseAPITestCase): def _request_api_comment_delete_view(self): return self.delete( viewname='rest_api:comment-detail', kwargs={ - 'document_pk': self.document.pk, - 'comment_pk': self.test_comment.pk + 'document_id': self.document.pk, + 'comment_id': self.test_comment.pk } ) @@ -63,8 +63,8 @@ class CommentAPITestCase(CommentsTestMixin, DocumentTestMixin, BaseAPITestCase): def _request_api_comment_detail_view(self): return self.get( viewname='rest_api:comment-detail', kwargs={ - 'document_pk': self.document.pk, - 'comment_pk': self.test_comment.pk + 'document_id': self.document.pk, + 'comment_id': self.test_comment.pk } ) @@ -85,7 +85,7 @@ class CommentAPITestCase(CommentsTestMixin, DocumentTestMixin, BaseAPITestCase): def _request_api_comment_list_view(self): return self.get( viewname='rest_api:comment-list', - kwargs={'document_pk': self.document.pk} + kwargs={'document_id': self.document.pk} ) def test_comment_list_view_no_access(self): diff --git a/mayan/apps/document_comments/views.py b/mayan/apps/document_comments/views.py index f009630156..0881e2b4e1 100644 --- a/mayan/apps/document_comments/views.py +++ b/mayan/apps/document_comments/views.py @@ -100,5 +100,5 @@ class DocumentCommentListView(ExternalObjectMixin, SingleObjectListView): 'title': _('Comments for document: %s') % self.get_document(), } - def get_object_list(self): + def get_source_queryset(self): return self.get_document().comments.all() diff --git a/mayan/apps/document_indexing/tests/test_views.py b/mayan/apps/document_indexing/tests/test_views.py index a38fb13e0e..56fcd49c6f 100644 --- a/mayan/apps/document_indexing/tests/test_views.py +++ b/mayan/apps/document_indexing/tests/test_views.py @@ -56,7 +56,7 @@ class IndexViewTestCase(GenericDocumentViewTestCase): ) response = self._request_index_delete_view(index=index) - self.assertEqual(response.status_code, 403) + self.assertEqual(response.status_code, 404) self.assertEqual(Index.objects.count(), 1) def test_index_delete_view_with_permission(self): @@ -88,7 +88,7 @@ class IndexViewTestCase(GenericDocumentViewTestCase): ) response = self._request_index_edit_view(index=index) - self.assertEqual(response.status_code, 403) + self.assertEqual(response.status_code, 404) index = Index.objects.get(pk=index.pk) self.assertEqual(index.label, TEST_INDEX_LABEL) diff --git a/mayan/apps/document_indexing/views.py b/mayan/apps/document_indexing/views.py index 3729798e6d..0de438b29d 100644 --- a/mayan/apps/document_indexing/views.py +++ b/mayan/apps/document_indexing/views.py @@ -103,8 +103,8 @@ class SetupIndexDocumentTypesView(AssignRemoveView): def get_document_queryset(self): return AccessControlList.objects.restrict_queryset( - permission_document_view, queryset=DocumentType.objects.all(), - user=self.request.user + permission=permission_document_view, + queryset=DocumentType.objects.all(), user=self.request.user ) def get_extra_context(self): @@ -153,7 +153,7 @@ class SetupIndexTreeTemplateListView(SingleObjectListView): def get_index(self): return get_object_or_404(klass=Index, pk=self.kwargs['index_pk']) - def get_object_list(self): + def get_source_queryset(self): return self.get_index().template_root.get_descendants( include_self=True ) @@ -166,7 +166,7 @@ class TemplateNodeCreateView(SingleObjectCreateView): def dispatch(self, request, *args, **kwargs): AccessControlList.objects.check_access( obj=self.get_parent_node().index, - permissions=permission_document_indexing_edit, user=request.user + permission=permission_document_indexing_edit, user=request.user ) return super( @@ -254,7 +254,7 @@ class IndexListView(SingleObjectListView): 'title': _('Indexes'), } - def get_object_list(self): + def get_source_queryset(self): queryset = IndexInstance.objects.filter(enabled=True) return queryset.filter( node_templates__index_instance_nodes__isnull=False @@ -271,7 +271,7 @@ class IndexInstanceNodeView(DocumentListView): AccessControlList.objects.check_access( obj=self.index_instance_node.index(), - permissions=permission_document_indexing_instance_view, + permission=permission_document_indexing_instance_view, user=request.user ) @@ -317,10 +317,10 @@ class IndexInstanceNodeView(DocumentListView): return context - def get_object_list(self): + def get_source_queryset(self): if self.index_instance_node: if self.index_instance_node.index_template_node.link_documents: - return super(IndexInstanceNodeView, self).get_object_list() + return super(IndexInstanceNodeView, self).get_source_queryset() else: self.object_permission = None return self.index_instance_node.get_children().order_by( @@ -339,7 +339,7 @@ class DocumentIndexNodeListView(SingleObjectListView): def dispatch(self, request, *args, **kwargs): AccessControlList.objects.check_access( - obj=self.get_document(), permissions=permission_document_view, + obj=self.get_document(), permission=permission_document_view, user=request.user ) @@ -370,7 +370,7 @@ class DocumentIndexNodeListView(SingleObjectListView): ) % self.get_document(), } - def get_object_list(self): + def get_source_queryset(self): return DocumentIndexInstanceNode.objects.get_for( document=self.get_document() ) diff --git a/mayan/apps/document_signatures/views.py b/mayan/apps/document_signatures/views.py index e77f4aa261..571343db07 100644 --- a/mayan/apps/document_signatures/views.py +++ b/mayan/apps/document_signatures/views.py @@ -217,7 +217,7 @@ class DocumentVersionSignatureDeleteView(SingleObjectDeleteView): kwargs={'document_version_id': self.get_object().document_version.pk} ) - def get_object_list(self): + def get_source_queryset(self): return SignatureBaseModel.objects.select_subclasses() @@ -236,7 +236,7 @@ class DocumentVersionSignatureDetailView(SingleObjectDetailView): ) % self.get_object(), } - def get_object_list(self): + def get_source_queryset(self): return SignatureBaseModel.objects.select_subclasses() @@ -251,7 +251,7 @@ class DocumentVersionSignatureDownloadView(SingleObjectDownloadView): signature.signature_file, name=force_text(signature) ) - def get_object_list(self): + def get_source_queryset(self): return SignatureBaseModel.objects.select_subclasses() @@ -297,7 +297,7 @@ class DocumentVersionSignatureListView(ExternalObjectMixin, SingleObjectListView ) % self.get_document_version(), } - def get_object_list(self): + def get_source_queryset(self): return self.get_document_version().signatures.all() diff --git a/mayan/apps/document_states/views/workflow_instance_views.py b/mayan/apps/document_states/views/workflow_instance_views.py index c40ba0c344..18ef1f2ce0 100644 --- a/mayan/apps/document_states/views/workflow_instance_views.py +++ b/mayan/apps/document_states/views/workflow_instance_views.py @@ -26,8 +26,8 @@ __all__ = ( class DocumentWorkflowInstanceListView(SingleObjectListView): def dispatch(self, request, *args, **kwargs): AccessControlList.objects.check_access( - permissions=permission_workflow_view, user=request.user, - obj=self.get_document() + obj=self.get_document(), permission=permission_workflow_view, + user=request.user, ) return super( @@ -63,8 +63,8 @@ class DocumentWorkflowInstanceListView(SingleObjectListView): class WorkflowInstanceDetailView(SingleObjectListView): def dispatch(self, request, *args, **kwargs): AccessControlList.objects.check_access( - permissions=permission_workflow_view, user=request.user, - obj=self.get_workflow_instance().document + obj=self.get_workflow_instance().document, + permission=permission_workflow_view, user=request.user ) return super( diff --git a/mayan/apps/documents/tests/test_document_views.py b/mayan/apps/documents/tests/test_document_views.py index 189900c18b..24712d2555 100644 --- a/mayan/apps/documents/tests/test_document_views.py +++ b/mayan/apps/documents/tests/test_document_views.py @@ -80,7 +80,7 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): document_type=document_type_2 ) - self.assertEqual(response.status_code, 302) + self.assertEqual(response.status_code, 404) self.assertEqual( Document.objects.get(pk=self.document.pk).document_type, @@ -136,7 +136,7 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): document_type=document_type_2 ) - self.assertEqual(response.status_code, 302) + self.assertEqual(response.status_code, 404) self.assertEqual( Document.objects.first().document_type, self.document_type @@ -300,7 +300,7 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.assertEqual(self.document.pages.count(), 0) response = self._request_document_multiple_update_page_count_view() - self.assertEqual(response.status_code, 302) + self.assertEqual(response.status_code, 404) self.assertEqual(self.document.pages.count(), 0) def test_document_multiple_update_page_count_view_with_permission(self): @@ -394,7 +394,7 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): self.grant_permission(permission=permission_document_view) response = self._request_document_multiple_transformations_clear() - self.assertEqual(response.status_code, 302) + self.assertEqual(response.status_code, 404) self.assertQuerysetEqual( Transformation.objects.get_for_model(document_page), (repr(transformation),) diff --git a/mayan/apps/dynamic_search/views.py b/mayan/apps/dynamic_search/views.py index 5a475ce8ea..42d091bf17 100644 --- a/mayan/apps/dynamic_search/views.py +++ b/mayan/apps/dynamic_search/views.py @@ -51,7 +51,7 @@ class ResultsView(SearchModelMixin, SingleObjectListView): query_string=self.request.GET ) - def get_object_list(self): + def get_source_queryset(self): self.search_model = self.get_search_model() if self.request.GET: diff --git a/mayan/apps/file_metadata/views.py b/mayan/apps/file_metadata/views.py index 7d87259270..7afdf6ee65 100644 --- a/mayan/apps/file_metadata/views.py +++ b/mayan/apps/file_metadata/views.py @@ -54,7 +54,7 @@ class DocumentDriverListView(SingleObjectListView): ) return document - def get_object_list(self): + def get_source_queryset(self): return self.get_object().latest_version.file_metadata_drivers.all() @@ -84,7 +84,7 @@ class DocumentVersionDriverEntryFileMetadataListView(SingleObjectListView): ) return document_version_driver_entry - def get_object_list(self): + def get_source_queryset(self): return self.get_object().entries.all() diff --git a/mayan/apps/linking/apps.py b/mayan/apps/linking/apps.py index d22d6de8c8..05890f0d6a 100644 --- a/mayan/apps/linking/apps.py +++ b/mayan/apps/linking/apps.py @@ -44,9 +44,9 @@ class LinkingApp(MayanAppConfig): app_label='documents', model_name='Document' ) - ResolvedSmartLink = self.get_model('ResolvedSmartLink') - SmartLink = self.get_model('SmartLink') - SmartLinkCondition = self.get_model('SmartLinkCondition') + ResolvedSmartLink = self.get_model(model_name='ResolvedSmartLink') + SmartLink = self.get_model(model_name='SmartLink') + SmartLinkCondition = self.get_model(model_name='SmartLinkCondition') ModelPermission.register( model=SmartLink, permissions=( diff --git a/mayan/apps/linking/views.py b/mayan/apps/linking/views.py index 238b1c729b..76b4d864e7 100644 --- a/mayan/apps/linking/views.py +++ b/mayan/apps/linking/views.py @@ -40,12 +40,12 @@ class ResolvedSmartLinkView(DocumentListView): ) AccessControlList.objects.check_access( - obj=self.document, permissions=permission_document_view, + obj=self.document, permission=permission_document_view, user=request.user ) AccessControlList.objects.check_access( - obj=self.smart_link, permissions=permission_smart_link_view, + obj=self.smart_link, permission=permission_smart_link_view, user=request.user ) @@ -63,7 +63,7 @@ class ResolvedSmartLinkView(DocumentListView): try: AccessControlList.objects.check_access( - obj=self.smart_link, permissions=permission_smart_link_edit, + obj=self.smart_link, permission=permission_smart_link_edit, user=self.request.user ) except PermissionDenied: @@ -163,12 +163,12 @@ class SmartLinkListView(SingleObjectListView): 'title': _('Smart links'), } - def get_object_list(self): - return self.get_smart_link_queryset() - def get_smart_link_queryset(self): return SmartLink.objects.all() + def get_source_queryset(self): + return self.get_smart_link_queryset() + class DocumentSmartLinkListView(SmartLinkListView): def dispatch(self, request, *args, **kwargs): @@ -177,7 +177,7 @@ class DocumentSmartLinkListView(SmartLinkListView): ) AccessControlList.objects.check_access( - obj=self.document, permissions=permission_document_view, + obj=self.document, permission=permission_document_view, user=request.user ) @@ -268,21 +268,21 @@ class SmartLinkConditionListView(SingleObjectListView): ) % self.get_smart_link(), } - def get_object_list(self): - return self.get_smart_link().conditions.all() - def get_smart_link(self): return get_object_or_404( klass=SmartLink, pk=self.kwargs['smart_link_id'] ) + def get_source_queryset(self): + return self.get_smart_link().conditions.all() + class SmartLinkConditionCreateView(SingleObjectCreateView): form_class = SmartLinkConditionForm def dispatch(self, request, *args, **kwargs): AccessControlList.objects.check_access( - obj=self.get_smart_link(), permissions=permission_smart_link_edit, + obj=self.get_smart_link(), permission=permission_smart_link_edit, user=request.user ) @@ -323,7 +323,7 @@ class SmartLinkConditionEditView(SingleObjectEditView): def dispatch(self, request, *args, **kwargs): AccessControlList.objects.check_access( obj=self.get_object().smart_link, - permissions=permission_smart_link_edit, user=request.user + permission=permission_smart_link_edit, user=request.user ) return super( @@ -351,7 +351,7 @@ class SmartLinkConditionDeleteView(SingleObjectDeleteView): def dispatch(self, request, *args, **kwargs): AccessControlList.objects.check_access( obj=self.get_object().smart_link, - permissions=permission_smart_link_edit, user=request.user + permission=permission_smart_link_edit, user=request.user ) return super( diff --git a/mayan/apps/mailer/links.py b/mayan/apps/mailer/links.py index e9acd5831f..f3220583d0 100644 --- a/mayan/apps/mailer/links.py +++ b/mayan/apps/mailer/links.py @@ -18,12 +18,13 @@ from .permissions import ( ) link_document_send = Link( - args='resolved_object.pk', icon_class=icon_document_send, + icon_class=icon_document_send, kwargs={'document_id': 'resolved_object.pk'}, permission=permission_mailing_send_document, text=_('Email document'), view='mailer:document_send' ) link_document_send_link = Link( - args='resolved_object.pk', icon_class=icon_document_send_link, + icon_class=icon_document_send_link, + kwargs={'document_id': 'resolved_object.pk'}, permission=permission_mailing_link, text=_('Email link'), view='mailer:document_send_link' ) @@ -46,17 +47,18 @@ link_user_mailer_create = Link( view='mailer:user_mailer_backend_selection' ) link_user_mailer_delete = Link( - args='resolved_object.pk', icon_class=icon_user_mailer_delete, + icon_class=icon_user_mailer_delete, + kwargs={'mailer_id': 'resolved_object.pk'}, permission=permission_user_mailer_delete, tags='dangerous', text=_('Delete'), view='mailer:user_mailer_delete' ) link_user_mailer_edit = Link( - args='object.pk', icon_class=icon_user_mailer_edit, + icon_class=icon_user_mailer_edit, kwargs={'mailer_id': 'object.pk'}, permission=permission_user_mailer_edit, text=_('Edit'), view='mailer:user_mailer_edit' ) link_user_mailer_log_list = Link( - args='object.pk', permission=permission_user_mailer_view, + permission=permission_user_mailer_view, kwargs={'mailer_id': 'object.pk'}, text=_('Log'), view='mailer:user_mailer_log' ) link_user_mailer_list = Link( @@ -70,7 +72,7 @@ link_user_mailer_setup = Link( text=_('Mailing profiles'), view='mailer:user_mailer_list' ) link_user_mailer_test = Link( - args='object.pk', icon_class=icon_user_mailer_test, + icon_class=icon_user_mailer_test, kwargs={'mailer_id': 'object.pk'}, permission=permission_user_mailer_use, text=_('Test'), view='mailer:user_mailer_test' ) diff --git a/mayan/apps/mailer/tests/mixins.py b/mayan/apps/mailer/tests/mixins.py index dfa50ead6f..79ad156eb2 100644 --- a/mayan/apps/mailer/tests/mixins.py +++ b/mayan/apps/mailer/tests/mixins.py @@ -37,13 +37,13 @@ class MailerTestMixin(object): def _request_user_mailer_delete(self): return self.post( viewname='mailer:user_mailer_delete', - kwargs={'mailer_pk': self.user_mailer.pk} + kwargs={'mailer_id': self.user_mailer.pk} ) def _request_user_mailer_edit(self): return self.post( viewname='mailer:user_mailer_edit', - kwargs={'mailer_pk': self.user_mailer.pk}, + kwargs={'mailer_id': self.user_mailer.pk}, data={ 'label': TEST_USER_MAILER_LABEL_EDITED } @@ -55,7 +55,7 @@ class MailerTestMixin(object): def _request_user_mailer_test(self): return self.post( viewname='mailer:user_mailer_test', - kwargs={'mailer_pk': self.user_mailer.pk}, + kwargs={'mailer_id': self.user_mailer.pk}, data={ 'email': getattr( self, 'test_email_address', TEST_EMAIL_ADDRESS diff --git a/mayan/apps/mailer/tests/test_views.py b/mayan/apps/mailer/tests/test_views.py index 01ad745069..2906567e64 100644 --- a/mayan/apps/mailer/tests/test_views.py +++ b/mayan/apps/mailer/tests/test_views.py @@ -190,7 +190,7 @@ class DocumentViewsTestCase(MailerTestMixin, GenericDocumentViewTestCase): def _request_document_link_send(self): return self.post( viewname='mailer:document_send_link', - kwargs={'document_pk': self.document.pk}, + kwargs={'document_id': self.document.pk}, data={ 'email': getattr( self, 'test_email_address', TEST_EMAIL_ADDRESS @@ -202,7 +202,7 @@ class DocumentViewsTestCase(MailerTestMixin, GenericDocumentViewTestCase): def _request_document_send(self): return self.post( viewname='mailer:document_send', - kwargs={'document_pk': self.document.pk}, + kwargs={'document_id': self.document.pk}, data={ 'email': getattr( self, 'test_email_address', TEST_EMAIL_ADDRESS diff --git a/mayan/apps/mailer/urls.py b/mayan/apps/mailer/urls.py index 490d88d573..915d0f7798 100644 --- a/mayan/apps/mailer/urls.py +++ b/mayan/apps/mailer/urls.py @@ -11,7 +11,7 @@ from .views import ( urlpatterns = [ url( - regex=r'^documents/(?P\d+)/send/link/$', + regex=r'^documents/(?P\d+)/send/link/$', name='document_send_link', view=MailDocumentLinkView.as_view() ), url( @@ -20,7 +20,7 @@ urlpatterns = [ view=MailDocumentLinkView.as_view() ), url( - regex=r'^documents/(?P\d+)/send/$', name='document_send', + regex=r'^documents/(?P\d+)/send/$', name='document_send', view=MailDocumentView.as_view() ), url( @@ -41,19 +41,19 @@ urlpatterns = [ name='user_mailer_create', view=UserMailingCreateView.as_view() ), url( - regex=r'^user_mailers/(?P\d+)/delete/$', + regex=r'^user_mailers/(?P\d+)/delete/$', name='user_mailer_delete', view=UserMailingDeleteView.as_view() ), url( - regex=r'^user_mailers/(?P\d+)/edit/$', + regex=r'^user_mailers/(?P\d+)/edit/$', name='user_mailer_edit', view=UserMailingEditView.as_view() ), url( - regex=r'^user_mailers/(?P\d+)/log/$', + regex=r'^user_mailers/(?P\d+)/log/$', name='user_mailer_log', view=UserMailerLogEntryListView.as_view() ), url( - regex=r'^user_mailers/(?P\d+)/test/$', + regex=r'^user_mailers/(?P\d+)/test/$', name='user_mailer_test', view=UserMailerTestView.as_view() ), url( diff --git a/mayan/apps/mailer/views.py b/mayan/apps/mailer/views.py index d4e12ef807..e32d5a810b 100644 --- a/mayan/apps/mailer/views.py +++ b/mayan/apps/mailer/views.py @@ -47,7 +47,7 @@ class MailDocumentView(MultipleObjectFormActionView): form_class = DocumentMailForm model = Document object_permission = permission_mailing_send_document - pk_url_kwarg = 'document_pk' + pk_url_kwarg = 'document_id' success_message = _('%(count)d document queued for email delivery') success_message_plural = _( '%(count)d documents queued for email delivery' @@ -63,9 +63,9 @@ class MailDocumentView(MultipleObjectFormActionView): 'submit_icon_class': icon_mail_document_submit, 'submit_label': _('Send'), 'title': ungettext( - self.title, - self.title_plural, - queryset.count() + singular=self.title, + plural=self.title_plural, + number=queryset.count() ) } @@ -87,8 +87,8 @@ class MailDocumentView(MultipleObjectFormActionView): def object_action(self, form, instance): AccessControlList.objects.check_access( - permissions=permission_user_mailer_use, user=self.request.user, - obj=form.cleaned_data['user_mailer'] + obj=form.cleaned_data['user_mailer'], + permission=permission_user_mailer_use, user=self.request.user ) task_send_document.apply_async( @@ -126,7 +126,7 @@ class UserMailerBackendSelectionView(FormView): def form_valid(self, form): backend = form.cleaned_data['backend'] return HttpResponseRedirect( - reverse( + redirect_to=reverse( viewname='mailer:user_mailer_create', kwargs={ 'class_path': backend } @@ -172,7 +172,7 @@ class UserMailingCreateView(SingleObjectDynamicFormCreateView): class UserMailingDeleteView(SingleObjectDeleteView): model = UserMailer object_permission = permission_user_mailer_delete - pk_url_kwarg = 'mailer_pk' + pk_url_kwarg = 'mailer_id' post_action_redirect = reverse_lazy(viewname='mailer:user_mailer_list') def get_extra_context(self): @@ -185,7 +185,7 @@ class UserMailingEditView(SingleObjectDynamicFormEditView): form_class = UserMailerDynamicForm model = UserMailer object_permission = permission_user_mailer_edit - pk_url_kwarg = 'mailer_pk' + pk_url_kwarg = 'mailer_id' def get_extra_context(self): return { @@ -217,11 +217,11 @@ class UserMailerLogEntryListView(SingleObjectListView): ) % self.get_user_mailer(), } - def get_object_list(self): + def get_source_queryset(self): return self.get_user_mailer().error_log.all() def get_user_mailer(self): - return get_object_or_404(klass=UserMailer, pk=self.kwargs['mailer_pk']) + return get_object_or_404(klass=UserMailer, pk=self.kwargs['mailer_id']) class UserMailerListView(SingleObjectListView): @@ -260,15 +260,15 @@ class UserMailerTestView(FormView): obj.test(to=form.cleaned_data['email']) except Exception as exception: messages.error( - request=self.request, message=_( + message=_( 'Error sending test message; %s.' - ) % exception + ) % exception, request=self.request ) else: messages.success( - request=self.request, message=_( + message=_( 'Successfully sent test message.' - ) + ), request=self.request ) return super(UserMailerTestView, self).form_valid(form=form) @@ -283,7 +283,7 @@ class UserMailerTestView(FormView): def get_object(self): return get_object_or_404( - klass=self.get_queryset(), pk=self.kwargs['mailer_pk'] + klass=self.get_queryset(), pk=self.kwargs['mailer_id'] ) def get_queryset(self): diff --git a/mayan/apps/metadata/tests/test_events.py b/mayan/apps/metadata/tests/test_events.py index 6c1611433a..75d8e30ecf 100644 --- a/mayan/apps/metadata/tests/test_events.py +++ b/mayan/apps/metadata/tests/test_events.py @@ -17,8 +17,6 @@ from .mixins import MetadataTestsMixin class MetadataTypeEventsTestCase(MetadataTestsMixin, GenericDocumentViewTestCase): def test_metadata_type_create_event_no_permissions(self): - self.login_user() - Action.objects.all().delete() response = self._request_metadata_type_create_view() @@ -26,8 +24,6 @@ class MetadataTypeEventsTestCase(MetadataTestsMixin, GenericDocumentViewTestCase self.assertEqual(Action.objects.count(), 0) def test_metadata_type_create_event_with_permissions(self): - self.login_user() - Action.objects.all().delete() self.grant_permission(permission=permission_metadata_type_create) @@ -47,19 +43,15 @@ class MetadataTypeEventsTestCase(MetadataTestsMixin, GenericDocumentViewTestCase def test_metadata_type_edit_event_no_permissions(self): self._create_metadata_type() - self.login_user() - Action.objects.all().delete() response = self._request_metadata_type_edit_view() - self.assertEqual(response.status_code, 403) + self.assertEqual(response.status_code, 404) self.assertEqual(Action.objects.count(), 0) def test_metadata_type_edit_event_with_access(self): self._create_metadata_type() - self.login_user() - Action.objects.all().delete() self.grant_access( diff --git a/mayan/apps/metadata/tests/test_views.py b/mayan/apps/metadata/tests/test_views.py index b76afbbdf4..f483319b92 100644 --- a/mayan/apps/metadata/tests/test_views.py +++ b/mayan/apps/metadata/tests/test_views.py @@ -163,7 +163,7 @@ class DocumentMetadataTestCase(MetadataTestsMixin, GenericDocumentViewTestCase): ) response = self._request_post_document_document_metadata_remove_view() - self.assertEqual(response.status_code, 302) + self.assertEqual(response.status_code, 404) self.assertEqual(len(self.document.metadata.all()), 1) diff --git a/mayan/apps/permissions/tests/test_views.py b/mayan/apps/permissions/tests/test_views.py index 2ec8ecfe2a..a4a6252999 100644 --- a/mayan/apps/permissions/tests/test_views.py +++ b/mayan/apps/permissions/tests/test_views.py @@ -49,10 +49,10 @@ class PermissionsViewsTestCase(GroupTestMixin, RoleTestMixin, GenericViewTestCas kwargs={'role_id': self.test_role.pk} ) - def test_role_delete_view_no_access(self): + def test_role_delete_view_no_permission(self): self._create_test_role() response = self._request_role_delete_view() - self.assertEqual(response.status_code, 403) + self.assertEqual(response.status_code, 404) self.assertEqual(Role.objects.count(), 2) self.assertTrue( TEST_ROLE_LABEL in Role.objects.values_list('label', flat=True) @@ -76,11 +76,11 @@ class PermissionsViewsTestCase(GroupTestMixin, RoleTestMixin, GenericViewTestCas } ) - def test_role_edit_view_no_access(self): + def test_role_edit_view_no_permission(self): self._create_test_role() response = self._request_role_edit_view() - self.assertEqual(response.status_code, 403) + self.assertEqual(response.status_code, 404) self.test_role.refresh_from_db() self.assertEqual(Role.objects.count(), 2) @@ -100,7 +100,7 @@ class PermissionsViewsTestCase(GroupTestMixin, RoleTestMixin, GenericViewTestCas def _request_role_list_view(self): return self.get(viewname='permissions:role_list') - def test_role_list_view_no_access(self): + def test_role_list_view_no_permission(self): self._create_test_role() response = self._request_role_list_view() self.assertEqual(response.status_code, 200) @@ -141,7 +141,7 @@ class PermissionsViewsTestCase(GroupTestMixin, RoleTestMixin, GenericViewTestCas kwargs={'role_id': self.test_role.pk} ) - def test_role_groups_view_no_access(self): + def test_role_groups_view_no_permission(self): self._create_test_role() response = self._request_role_groups_view() self.assertEqual(response.status_code, 403) @@ -158,7 +158,7 @@ class PermissionsViewsTestCase(GroupTestMixin, RoleTestMixin, GenericViewTestCas kwargs={'group_id': self.test_group.pk} ) - def test_group_roles_view_no_access(self): + def test_group_roles_view_no_permission(self): self._create_test_group() response = self._request_group_roles_view() self.assertEqual(response.status_code, 403) diff --git a/mayan/apps/sources/views.py b/mayan/apps/sources/views.py index 14a02249fe..dc309c5338 100644 --- a/mayan/apps/sources/views.py +++ b/mayan/apps/sources/views.py @@ -146,7 +146,7 @@ class SourceEditView(SingleObjectEditView): class SourceListView(SingleObjectListView): - queryset = Source.objects.select_subclasses() + source_queryset = Source.objects.select_subclasses() view_permission = permission_sources_view def get_extra_context(self): @@ -201,14 +201,14 @@ class SourceLogView(SingleObjectListView): 'title': _('Log entries for source: %s') % self.get_source(), } - def get_object_list(self): - return self.get_source().logs.all() - def get_source(self): return get_object_or_404( klass=Source.objects.select_subclasses(), pk=self.kwargs['source_id'] ) + def get_source_queryset(self): + return self.get_source().logs.all() + class StagingFileDeleteView(ExternalObjectMixin, SingleObjectDeleteView): external_object_class = StagingFolderSource diff --git a/mayan/apps/tags/models.py b/mayan/apps/tags/models.py index 5f2e6ec88b..1662fc1c27 100644 --- a/mayan/apps/tags/models.py +++ b/mayan/apps/tags/models.py @@ -55,7 +55,7 @@ class Tag(models.Model): def get_absolute_url(self): return reverse( - viewname='tags:tag_tagged_item_list', kwargs={ + viewname='tags:tag_document_list', kwargs={ 'tag_id': self.pk } )