From 20a5369266e9422d77f67c73ede5acaf858ca95d Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 28 Oct 2019 20:05:41 -0400 Subject: [PATCH 01/12] Fix typo Signed-off-by: Roberto Rosario --- docs/chapters/ocr_backend.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/chapters/ocr_backend.rst b/docs/chapters/ocr_backend.rst index a08eaba30b..24cdc70cdb 100644 --- a/docs/chapters/ocr_backend.rst +++ b/docs/chapters/ocr_backend.rst @@ -4,7 +4,7 @@ OCR backend Mayan EDMS ships an OCR backend that uses the FLOSS engine Tesseract (https://github.com/tesseract-ocr/tesseract/), but it can -use other engines. To support other engines crate a wrapper that subclasses the +use other engines. To support other engines create a wrapper that subclasses the ``OCRBackendBase`` class defined in mayan/apps/ocr/classes. This subclass should expose the ``execute`` method. For an example of how the Tesseract backend is implemented take a look at the file ``mayan/apps/ocr/backends/tesseract.py`` From 61f398a3b9a6f48a98b0ec14164b97fcea2dedfe Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 28 Oct 2019 01:08:49 -0400 Subject: [PATCH 02/12] Update book text Signed-off-by: Roberto Rosario --- README.md | 4 +--- README.rst | 3 +-- mayan/apps/appearance/templates/appearance/about.html | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 37026453b4..d0e1338656 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@

Book

-The pre-release version of the book "Exploring Mayan EDMS" available now at a discounted price! +The final version of the book "Exploring Mayan EDMS" available now!

@@ -53,8 +53,6 @@ The pre-release version of the book "Exploring Mayan EDMS" available now at a di

-Limited quantities. Buyers of the pre-release will get the full version for free when it is ready. - The link is https://sellfy.com/p/um2fkx/

Installation

diff --git a/README.rst b/README.rst index 25498d500c..24ba5ad195 100644 --- a/README.rst +++ b/README.rst @@ -25,14 +25,13 @@ at: https://docs.mayan-edms.com/topics/installation.html .. _Docker: https://www.docker.com/ -The pre-release version of the book "Exploring Mayan EDMS" available now at a discounted price! +The final version of the book "Exploring Mayan EDMS" available now! .. image:: https://camo.githubusercontent.com/89d2fe787507c9247aa7bb406e2682b53eb7a5f9/68747470733a2f2f64313273776274773731397934732e636c6f756466726f6e742e6e65742f696d616765732f76365270785734302f615030714b4c6a6b50694175585a6859754234352f774441554c417a4679782e6a7065673f773d353438 :align: center :width: 300 :target: https://sellfy.com/p/um2fkx/ -Limited quantities. Buyers of the pre-release will get the full version for free when it is ready. Click the image or visit: https://sellfy.com/p/um2fkx/ Hardware requirements diff --git a/mayan/apps/appearance/templates/appearance/about.html b/mayan/apps/appearance/templates/appearance/about.html index 183955fc3f..47776295c2 100644 --- a/mayan/apps/appearance/templates/appearance/about.html +++ b/mayan/apps/appearance/templates/appearance/about.html @@ -125,7 +125,7 @@

{% blocktrans with icon_social_paypal as icon_social_paypal%} - Besides donations you can also support the project by purchasing a copy of the book "Exploring Mayan EDMS" by Roberto Rosario.
The book is available on pre-release format at a discounted price for a limited time. + Besides donations you can also support the project by purchasing a copy of the book "Exploring Mayan EDMS" by Roberto Rosario. {% endblocktrans %}

From 6b4392a35c702e4605e4ea74b381f0fdb40a9bcc Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 28 Oct 2019 03:32:36 -0400 Subject: [PATCH 03/12] Update platform command and test for Python 2 & 3 Signed-off-by: Roberto Rosario --- .../apps/platform/management/commands/platformtemplate.py | 7 +++++-- mayan/apps/platform/tests/test_management_commands.py | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mayan/apps/platform/management/commands/platformtemplate.py b/mayan/apps/platform/management/commands/platformtemplate.py index f830c4177b..b0fa5ceb48 100644 --- a/mayan/apps/platform/management/commands/platformtemplate.py +++ b/mayan/apps/platform/management/commands/platformtemplate.py @@ -40,8 +40,11 @@ class Command(management.BaseCommand): ) exit(1) else: + # Python 2 & 3 way to convert from SafeString to unicode self.stdout.write( - template().render( - context_string=options.get('context') + '{}'.format( + template().render( + context_string=options.get('context') + ) ) ) diff --git a/mayan/apps/platform/tests/test_management_commands.py b/mayan/apps/platform/tests/test_management_commands.py index aaae5a364f..bf83def325 100644 --- a/mayan/apps/platform/tests/test_management_commands.py +++ b/mayan/apps/platform/tests/test_management_commands.py @@ -1,6 +1,6 @@ from __future__ import unicode_literals -from io import BytesIO +from django.utils.six import StringIO from django.core import management from django.test import TestCase @@ -38,7 +38,7 @@ PlatformTemplate.register(klass=TestPlatformTemplate) class PlatformTemplateManagementCommandTestCase(TestCase): def test_platform_template_simple(self): - output = BytesIO() + output = StringIO() args = (TEST_TEMPLATE_NAME,) options = { 'stdout': output @@ -47,7 +47,7 @@ class PlatformTemplateManagementCommandTestCase(TestCase): self.assertEqual(output.getvalue(), TEST_TEMPLATE_STRING_RENDER) def test_platform_template_context(self): - output = BytesIO() + output = StringIO() args = ( TEST_TEMPLATE_NAME, '--context', 'test_template_variable: {}'.format( From d9cb3536648aea8e593aa6a124f8cd10e75420a1 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 28 Oct 2019 03:35:16 -0400 Subject: [PATCH 04/12] Fix failing user management test mixin import Signed-off-by: Roberto Rosario --- mayan/apps/user_management/tests/test_events.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mayan/apps/user_management/tests/test_events.py b/mayan/apps/user_management/tests/test_events.py index 245c407eea..f8557c7e79 100644 --- a/mayan/apps/user_management/tests/test_events.py +++ b/mayan/apps/user_management/tests/test_events.py @@ -16,8 +16,8 @@ from ..events import ( ) from .mixins import ( - GroupAPITestMixin, GroupTestMixin, GroupViewTestMixin, UserAPITestMixin, - UserViewTestMixin + GroupAPIViewTestMixin, GroupTestMixin, GroupViewTestMixin, + UserAPIViewTestMixin, UserViewTestMixin ) @@ -56,7 +56,8 @@ class GroupEventsViewTestCase( class GroupEventsAPITestCase( - GroupAPITestMixin, GroupTestMixin, GroupViewTestMixin, BaseAPITestCase + GroupAPIViewTestMixin, GroupTestMixin, GroupViewTestMixin, + BaseAPITestCase ): def test_group_create_event_from_api_view(self): self.grant_permission( @@ -135,7 +136,7 @@ class UserEventsTestCase(GenericViewTestCase): class UserEventsViewTestCase( - UserAPITestMixin, UserViewTestMixin, GenericViewTestCase + UserAPIViewTestMixin, UserViewTestMixin, GenericViewTestCase ): def test_user_create_event_from_view(self): self.grant_permission( @@ -171,7 +172,7 @@ class UserEventsViewTestCase( class UserEventsAPITestCase( - UserAPITestMixin, UserViewTestMixin, BaseAPITestCase + UserAPIViewTestMixin, UserViewTestMixin, BaseAPITestCase ): def test_user_create_event_from_api_view(self): self.grant_permission( From de499ab6bd29202a6dea9e4acfc9693c7b288006 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 28 Oct 2019 19:57:28 -0400 Subject: [PATCH 05/12] Fix import order Signed-off-by: Roberto Rosario --- mayan/apps/navigation/classes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mayan/apps/navigation/classes.py b/mayan/apps/navigation/classes.py index 1cc9b1c3af..f2dc8a172f 100644 --- a/mayan/apps/navigation/classes.py +++ b/mayan/apps/navigation/classes.py @@ -11,7 +11,7 @@ from django.core.exceptions import ( FieldDoesNotExist, ImproperlyConfigured, PermissionDenied ) from django.db.models.constants import LOOKUP_SEP -from django.template import RequestContext, VariableDoesNotExist, Variable +from django.template import RequestContext, Variable, VariableDoesNotExist from django.template.defaulttags import URLNode from django.urls import resolve, reverse from django.utils.encoding import force_str, force_text From 4dd5a63d870c5caf37bfb6b8fea2014f3a39072b Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 28 Oct 2019 19:57:41 -0400 Subject: [PATCH 06/12] Add workflow runtime link tests Signed-off-by: Roberto Rosario --- .../apps/document_states/tests/test_links.py | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 mayan/apps/document_states/tests/test_links.py diff --git a/mayan/apps/document_states/tests/test_links.py b/mayan/apps/document_states/tests/test_links.py new file mode 100644 index 0000000000..9de4b7a390 --- /dev/null +++ b/mayan/apps/document_states/tests/test_links.py @@ -0,0 +1,142 @@ +from __future__ import unicode_literals + +from django.urls import reverse + +from mayan.apps.documents.tests.base import GenericDocumentViewTestCase + +from ..links import ( + link_workflow_runtime_proxy_document_list, + link_workflow_runtime_proxy_list, + link_workflow_runtime_proxy_state_document_list, + link_workflow_runtime_proxy_state_list, +) +from ..permissions import permission_workflow_view + +from .mixins import WorkflowTestMixin + + +class WorkflowRuntimeProxyLinkTestCase( + WorkflowTestMixin, GenericDocumentViewTestCase +): + def _resolve_test_link(self, test_object=None): + self.add_test_view(test_object=test_object) + context = self.get_test_view() + self.resolved_test_link = self.test_link.resolve(context=context) + + def test_workflow_runtime_proxy_document_list_link_no_permission(self): + self.test_link = link_workflow_runtime_proxy_document_list + + self._create_test_workflow(add_document_type=True) + + self._resolve_test_link(test_object=self.test_workflow) + + self.assertEqual(self.resolved_test_link, None) + + def test_workflow_runtime_proxy_document_list_link_with_access(self): + self.test_link = link_workflow_runtime_proxy_document_list + + self._create_test_workflow(add_document_type=True) + + self.grant_access( + obj=self.test_workflow, permission=permission_workflow_view + ) + + self._resolve_test_link(test_object=self.test_workflow) + + self.assertNotEqual(self.resolved_test_link, None) + self.assertEqual( + self.resolved_test_link.url, + reverse( + viewname=self.test_link.view, kwargs={ + 'pk': self.test_workflow.pk + } + ) + ) + + def test_workflow_runtime_proxy_link_no_permission(self): + self.test_link = link_workflow_runtime_proxy_list + + self._create_test_workflow(add_document_type=True) + + self._resolve_test_link() + self.assertEqual(self.resolved_test_link, None) + + def test_workflow_runtime_proxy_link_with_access(self): + self.test_link = link_workflow_runtime_proxy_list + + self._create_test_workflow(add_document_type=True) + + self.grant_access( + obj=self.test_workflow, permission=permission_workflow_view + ) + + self._resolve_test_link() + + self.assertNotEqual(self.resolved_test_link, None) + self.assertEqual( + self.resolved_test_link.url, + reverse( + viewname=self.test_link.view, + ) + ) + + def test_workflow_runtime_proxy_state_document_list_link_no_permission(self): + self.test_link = link_workflow_runtime_proxy_state_document_list + + self._create_test_workflow(add_document_type=True) + self._create_test_workflow_state() + + self._resolve_test_link(test_object=self.test_workflow_state) + + self.assertEqual(self.resolved_test_link, None) + + def test_workflow_runtime_proxy_state_document_list_link_with_access(self): + self.test_link = link_workflow_runtime_proxy_state_document_list + + self._create_test_workflow(add_document_type=True) + self._create_test_workflow_state() + + self.grant_access( + obj=self.test_workflow, permission=permission_workflow_view + ) + + self._resolve_test_link(test_object=self.test_workflow_state) + + self.assertNotEqual(self.resolved_test_link, None) + self.assertEqual( + self.resolved_test_link.url, + reverse( + viewname=self.test_link.view, kwargs={ + 'pk': self.test_workflow_state.pk + } + ) + ) + + def test_workflow_runtime_proxy_state_list_link_no_permission(self): + self.test_link = link_workflow_runtime_proxy_state_list + + self._create_test_workflow(add_document_type=True) + + self._resolve_test_link(test_object=self.test_workflow) + self.assertEqual(self.resolved_test_link, None) + + def test_workflow_runtime_proxy_state_list_link_with_access(self): + self.test_link = link_workflow_runtime_proxy_state_list + + self._create_test_workflow(add_document_type=True) + + self.grant_access( + obj=self.test_workflow, permission=permission_workflow_view + ) + + self._resolve_test_link(test_object=self.test_workflow) + + self.assertNotEqual(self.resolved_test_link, None) + self.assertEqual( + self.resolved_test_link.url, + reverse( + viewname=self.test_link.view, kwargs={ + 'pk': self.test_workflow.pk + } + ) + ) From 8f1d9bd48402257116789bdedee32196ecfe2252 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 28 Oct 2019 19:58:54 -0400 Subject: [PATCH 07/12] Update request code of get_cascade_condition Add alternate method to obtain the request from the context. Signed-off-by: Roberto Rosario --- mayan/apps/navigation/utils.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/mayan/apps/navigation/utils.py b/mayan/apps/navigation/utils.py index 9e907db01b..b110aec306 100644 --- a/mayan/apps/navigation/utils.py +++ b/mayan/apps/navigation/utils.py @@ -4,6 +4,7 @@ import logging from django.apps import apps from django.core.exceptions import PermissionDenied +from django.template import Variable, VariableDoesNotExist from django.urls import Resolver404, resolve from mayan.apps.permissions import Permission @@ -11,7 +12,9 @@ from mayan.apps.permissions import Permission logger = logging.getLogger(__name__) -def get_cascade_condition(app_label, model_name, object_permission, view_permission=None): +def get_cascade_condition( + app_label, model_name, object_permission, view_permission=None +): """ Return a function that first checks to see if the user has the view permission. If not, then filters the objects with the object permission @@ -25,10 +28,23 @@ def get_cascade_condition(app_label, model_name, object_permission, view_permiss ) Model = apps.get_model(app_label=app_label, model_name=model_name) + try: + request = context.request + except AttributeError: + # Simple request extraction failed. Might not be a view context. + # Try alternate method. + try: + request = Variable('request').resolve(context) + except VariableDoesNotExist: + # There is no request variable, most probable a 500 in a test + # view. Don't return any resolved links then. + logger.warning('No request variable, aborting cascade resolution') + return () + if view_permission: try: Permission.check_user_permissions( - permissions=(view_permission,), user=context.request.user + permissions=(view_permission,), user=request.user ) except PermissionDenied: pass @@ -36,7 +52,7 @@ def get_cascade_condition(app_label, model_name, object_permission, view_permiss return True queryset = AccessControlList.objects.restrict_queryset( - permission=object_permission, user=context.request.user, + permission=object_permission, user=request.user, queryset=Model.objects.all() ) return queryset.count() > 0 From 3bb84fa87420b7e0198463a46351e0542e62b850 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 28 Oct 2019 01:20:05 -0400 Subject: [PATCH 08/12] Improve sidebar workflow link activation Enable the sidebar workflow runtime link when the workflow view permission is granted to at least one workflow. Signed-off-by: Roberto Rosario --- HISTORY.rst | 2 ++ mayan/apps/document_states/links.py | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index dd580c084d..2de2dadab3 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -9,6 +9,8 @@ - Backport color log formatter from branch version/next. - Don't raise error checking AnonymousUser for permissions. Instead return always False. +- Enable the main menu workflow runtime link when the workflow view + permission is granted to at least one workflow. 3.2.8 (2019-10-01) ================== diff --git a/mayan/apps/document_states/links.py b/mayan/apps/document_states/links.py index 3d23efec95..430a283b6d 100644 --- a/mayan/apps/document_states/links.py +++ b/mayan/apps/document_states/links.py @@ -4,6 +4,7 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.documents.permissions import permission_document_type_edit from mayan.apps.navigation.classes import Link +from mayan.apps.navigation.utils import get_cascade_condition from .permissions import ( permission_workflow_create, permission_workflow_delete, @@ -171,8 +172,10 @@ link_workflow_runtime_proxy_document_list = Link( view='document_states:workflow_document_list', ) link_workflow_runtime_proxy_list = Link( - icon_class_path='mayan.apps.document_states.icons.icon_workflow_runtime_proxy_list', - permissions=(permission_workflow_view,), + condition=get_cascade_condition( + app_label='document_states', model_name='WorkflowRuntimeProxy', + object_permission=permission_workflow_view, + ), icon_class_path='mayan.apps.document_states.icons.icon_workflow_runtime_proxy_list', text=_('Workflows'), view='document_states:workflow_list' ) link_workflow_runtime_proxy_state_document_list = Link( From 2edacc9a0675f99772bc4229d78636f0014148c6 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 28 Oct 2019 00:59:33 -0400 Subject: [PATCH 09/12] Make Postgres container wait delay configurable Signed-off-by: Roberto Rosario --- HISTORY.rst | 1 + contrib/scripts/install/docker.sh | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 2de2dadab3..c94d32f0b9 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -11,6 +11,7 @@ Instead return always False. - Enable the main menu workflow runtime link when the workflow view permission is granted to at least one workflow. +- Make Postgres container wait delay configurable. 3.2.8 (2019-10-01) ================== diff --git a/contrib/scripts/install/docker.sh b/contrib/scripts/install/docker.sh index 8e851725ca..e1c611d029 100755 --- a/contrib/scripts/install/docker.sh +++ b/contrib/scripts/install/docker.sh @@ -20,6 +20,7 @@ set -e : ${DOCKER_POSTGRES_CONTAINER:=mayan-edms-postgres} : ${DOCKER_POSTGRES_VOLUME:=/docker-volumes/mayan-edms/postgres} : ${DOCKER_POSTGRES_PORT:=5432} +: ${DOCKER_POSTGRES_DELAY:=10} : ${DOCKER_MAYAN_IMAGE:=mayanedms/mayanedms:latest} : ${DOCKER_MAYAN_CONTAINER:=mayan-edms} : ${DOCKER_MAYAN_VOLUME:=/docker-volumes/mayan-edms/media} @@ -51,6 +52,7 @@ echo "DOCKER_POSTGRES_IMAGE: $DOCKER_POSTGRES_IMAGE" echo "DOCKER_POSTGRES_CONTAINER: $DOCKER_POSTGRES_CONTAINER" echo "DOCKER_POSTGRES_VOLUME: $DOCKER_POSTGRES_VOLUME" echo "DOCKER_POSTGRES_PORT: $DOCKER_POSTGRES_PORT" +echo "DOCKER_POSTGRES_DELAY: $DOCKER_POSTGRES_DELAY" echo "DOCKER_MAYAN_IMAGE: $DOCKER_MAYAN_IMAGE" echo "DOCKER_MAYAN_CONTAINER: $DOCKER_MAYAN_CONTAINER" echo "DOCKER_MAYAN_VOLUME: $DOCKER_MAYAN_VOLUME" @@ -106,8 +108,8 @@ docker run -d \ $DOCKER_POSTGRES_IMAGE >/dev/null echo "Done" -echo -n "* Waiting for the PostgreSQL container to be ready (10 seconds)..." -sleep 10 +echo -n "* Waiting for the PostgreSQL container to be ready (${DOCKER_POSTGRES_DELAY} seconds)..." +sleep $DOCKER_POSTGRES_DELAY echo "Done" echo -n "* Deploying Mayan EDMS container..." From 9c400a61848269fac34984da5cab9490d4ce8c62 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 29 Oct 2019 00:03:41 -0400 Subject: [PATCH 10/12] Update dependency versions Signed-off-by: Roberto Rosario --- HISTORY.rst | 7 +++++++ mayan/__init__.py | 2 +- mayan/apps/common/dependencies.py | 14 +++++++------- mayan/apps/converter/dependencies.py | 2 +- requirements/base.txt | 10 +++++----- requirements/common.txt | 2 +- requirements/development.txt | 4 ++-- setup.py | 12 ++++++------ 8 files changed, 30 insertions(+), 23 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index c94d32f0b9..35cda5027c 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -12,6 +12,13 @@ - Enable the main menu workflow runtime link when the workflow view permission is granted to at least one workflow. - Make Postgres container wait delay configurable. +- Update Django to version 1.11.25. +- Update PyYAML to version 5.1.2. +- Update celery to version 3.1.26.post2. +- Update django-celery to version 3.2.2. +- Update pathlib2 to version 2.3.5. +- Update whitenoise to version 4.1.4. +- Update Pillow to version 6.2.1. 3.2.8 (2019-10-01) ================== diff --git a/mayan/__init__.py b/mayan/__init__.py index 4dffd359e1..f85d46980c 100644 --- a/mayan/__init__.py +++ b/mayan/__init__.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals __title__ = 'Mayan EDMS' __version__ = '3.2.8' __build__ = 0x030208 -__build_string__ = 'v3.2.8_Tue Oct 1 13:31:40 2019 -0400' +__build_string__ = 'v3.2.8-20-g2edacc9a06_Mon Oct 28 23:12:39 2019 -0400' __django_version__ = '1.11' __author__ = 'Roberto Rosario' __author_email__ = 'roberto.rosario@mayan-edms.com' diff --git a/mayan/apps/common/dependencies.py b/mayan/apps/common/dependencies.py index 97bfb1b0d4..b7182a5630 100644 --- a/mayan/apps/common/dependencies.py +++ b/mayan/apps/common/dependencies.py @@ -36,7 +36,7 @@ PythonDependency( ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ''', module=__name__, name='django', version_string='==1.11.24' + ''', module=__name__, name='django', version_string='==1.11.25' ) PythonDependency( copyright_text=''' @@ -59,7 +59,7 @@ PythonDependency( LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ''', module=__name__, name='PyYAML', version_string='==5.1.1' + ''', module=__name__, name='PyYAML', version_string='==5.1.2' ) PythonDependency( copyright_text=''' @@ -117,7 +117,7 @@ PythonDependency( Celery under the GPL license. The BSD license, unlike the GPL, let you distribute a modified version without making your changes open source. - ''', module=__name__, name='celery', version_string='==3.1.24' + ''', module=__name__, name='celery', version_string='==3.1.26.post2' ) PythonDependency( copyright_text=''' @@ -318,7 +318,7 @@ PythonDependency( module=__name__, name='mock', version_string='==2.0.0' ) PythonDependency( - module=__name__, name='pathlib2', version_string='==2.3.4' + module=__name__, name='pathlib2', version_string='==2.3.5' ) PythonDependency( copyright_text=''' @@ -376,7 +376,7 @@ PythonDependency( ''', module=__name__, name='sh', version_string='==1.12.14' ) PythonDependency( - module=__name__, name='whitenoise', version_string='==4.1.2' + module=__name__, name='whitenoise', version_string='==4.1.4' ) PythonDependency( @@ -399,12 +399,12 @@ PythonDependency( PythonDependency( environment=environment_development, help_text=_( 'Provides style checking.' - ), module=__name__, name='flake8', version_string='==3.7.7' + ), module=__name__, name='flake8', version_string='==3.7.9' ) PythonDependency( environment=environment_development, help_text=_( 'Command line environment with autocompletion.' - ), module=__name__, name='ipython', version_string='==5.5.0' + ), module=__name__, name='ipython', version_string='==5.8.0' ) PythonDependency( environment=environment_development, help_text=_( diff --git a/mayan/apps/converter/dependencies.py b/mayan/apps/converter/dependencies.py index 7cc4960a3c..050f7d8570 100644 --- a/mayan/apps/converter/dependencies.py +++ b/mayan/apps/converter/dependencies.py @@ -24,7 +24,7 @@ BinaryDependency( ) PythonDependency( copyright_attribute='PIL.__doc__', module=__name__, name='Pillow', - version_string='==6.0.0', + version_string='==6.2.1', ) PythonDependency( module=__name__, name='PyPDF2', version_string='==1.26.0' diff --git a/requirements/base.txt b/requirements/base.txt index 7919f51384..5621a05cf0 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,7 +1,7 @@ -Pillow==6.0.0 +Pillow==6.2.1 PyPDF2==1.26.0 -PyYAML==5.1.1 -celery==3.1.24 +PyYAML==5.1.2 +celery==3.1.26.post2 django-activity-stream==0.7.0 django-celery==3.2.1 django-colorful==1.3 @@ -29,7 +29,7 @@ graphviz==0.10.1 gunicorn==19.9.0 mock==2.0.0 node-semver==0.6.1 -pathlib2==2.3.4 +pathlib2==2.3.5 pycountry==18.12.8 pyocr==0.6 python-dateutil==2.8.0 @@ -39,4 +39,4 @@ pytz==2019.1 requests==2.21.0 sh==1.12.14 swagger-spec-validator==2.4.3 -whitenoise==4.1.2 +whitenoise==4.1.4 diff --git a/requirements/common.txt b/requirements/common.txt index 25d563b64e..ec1ad20b4c 100644 --- a/requirements/common.txt +++ b/requirements/common.txt @@ -1 +1 @@ -django==1.11.24 +django==1.11.25 diff --git a/requirements/development.txt b/requirements/development.txt index 8689376c36..c68cd54462 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -2,8 +2,8 @@ Werkzeug==0.15.4 django-debug-toolbar==1.11 django-extensions==2.1.9 django-rosetta==0.9.3 -flake8==3.7.7 -ipython==5.5.0 +flake8==3.7.9 +ipython==5.8.0 readme==0.7.1 safety==1.8.5 transifex-client==0.13.6 diff --git a/setup.py b/setup.py index 8b0516670d..ae7f89e7b5 100644 --- a/setup.py +++ b/setup.py @@ -56,11 +56,11 @@ def find_packages(directory): return packages install_requires = """ -django==1.11.24 -Pillow==6.0.0 +django==1.11.25 +Pillow==6.2.1 PyPDF2==1.26.0 -PyYAML==5.1.1 -celery==3.1.24 +PyYAML==5.1.2 +celery==3.1.26.post2 django-activity-stream==0.7.0 django-celery==3.2.1 django-colorful==1.3 @@ -88,7 +88,7 @@ graphviz==0.10.1 gunicorn==19.9.0 mock==2.0.0 node-semver==0.6.1 -pathlib2==2.3.4 +pathlib2==2.3.5 pycountry==18.12.8 pyocr==0.6 python-dateutil==2.8.0 @@ -98,7 +98,7 @@ pytz==2019.1 requests==2.21.0 sh==1.12.14 swagger-spec-validator==2.4.3 -whitenoise==4.1.2 +whitenoise==4.1.4 """.split() with open('README.rst') as f: From b69a5536e2c18570c9b8c2b7d21fad123d1daec5 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 29 Oct 2019 00:05:47 -0400 Subject: [PATCH 11/12] PEP8 cleanups Signed-off-by: Roberto Rosario --- mayan/apps/common/log.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mayan/apps/common/log.py b/mayan/apps/common/log.py index 453a134556..6aaaa44a1b 100644 --- a/mayan/apps/common/log.py +++ b/mayan/apps/common/log.py @@ -1,5 +1,5 @@ from __future__ import unicode_literals - + import logging from django.utils.termcolors import colorize @@ -20,4 +20,3 @@ class ColorFormatter(logging.Formatter): text=record.msg, **PALETTE.get(record.levelname, {}) ) return super(ColorFormatter, self).format(record) - From 3d0f1393649a0ea89f85d55bdc9fa65459c3e61e Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 28 Oct 2019 03:35:16 -0400 Subject: [PATCH 12/12] Fix failing user management test mixin import Signed-off-by: Roberto Rosario --- mayan/apps/user_management/tests/mixins.py | 4 ++-- mayan/apps/user_management/tests/test_api.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mayan/apps/user_management/tests/mixins.py b/mayan/apps/user_management/tests/mixins.py index 548df197e8..6e41c3e79e 100644 --- a/mayan/apps/user_management/tests/mixins.py +++ b/mayan/apps/user_management/tests/mixins.py @@ -12,7 +12,7 @@ from .literals import ( ) -class GroupAPITestMixin(object): +class GroupAPIViewTestMixin(object): def _request_test_group_create_api_view(self): result = self.post( viewname='rest_api:group-list', data={ @@ -91,7 +91,7 @@ class GroupViewTestMixin(object): ) -class UserAPITestMixin(object): +class UserAPIViewTestMixin(object): def _request_test_user_create_api_view(self): result = self.post( viewname='rest_api:user-list', data={ diff --git a/mayan/apps/user_management/tests/test_api.py b/mayan/apps/user_management/tests/test_api.py index 7ae2d4a947..d0985e0f1a 100644 --- a/mayan/apps/user_management/tests/test_api.py +++ b/mayan/apps/user_management/tests/test_api.py @@ -14,10 +14,10 @@ from ..permissions import ( permission_user_edit, permission_user_view ) -from .mixins import GroupAPITestMixin, GroupTestMixin, UserAPITestMixin +from .mixins import GroupAPIViewTestMixin, GroupTestMixin, UserAPIViewTestMixin -class GroupAPITestCase(GroupAPITestMixin, GroupTestMixin, BaseAPITestCase): +class GroupAPITestCase(GroupAPIViewTestMixin, GroupTestMixin, BaseAPITestCase): def test_group_create_no_permission(self): group_count = Group.objects.count() @@ -111,7 +111,7 @@ class GroupAPITestCase(GroupAPITestMixin, GroupTestMixin, BaseAPITestCase): self.assertNotEqual(self.test_group.name, group_name) -class UserAPITestCase(UserAPITestMixin, BaseAPITestCase): +class UserAPITestCase(UserAPIViewTestMixin, BaseAPITestCase): def test_user_create_api_view_no_permission(self): user_count = get_user_model().objects.count() @@ -200,7 +200,7 @@ class UserAPITestCase(UserAPITestMixin, BaseAPITestCase): self.assertNotEqual(self.test_user.username, user_username) -class UserGroupAPITestCase(GroupTestMixin, UserAPITestMixin, BaseAPITestCase): +class UserGroupAPITestCase(GroupTestMixin, UserAPIViewTestMixin, BaseAPITestCase): def test_user_create_with_group_api_view_no_permission(self): self._create_test_group()