Compare commits

...
2408 Commits
Author SHA1 Message Date
matthias eed753a383 tesseract deu but restored else
continuous-integration/drone/push Build is passing
2019-12-30 11:27:53 +01:00
matthias 6a67e34f10 debian 10 of course
continuous-integration/drone/push Build is failing
2019-12-30 11:23:42 +01:00
matthias b1596aeb89 debian 11 try
continuous-integration/drone/push Build is failing
2019-12-30 11:21:19 +01:00
matthias 7c373df062 updated
continuous-integration/drone/push Build is failing
2019-12-30 11:01:37 +01:00
matthias 1cee2c1a55 Merge tag 'v3.3.6'
continuous-integration/drone/push Build is failing
Version 3.3.6
2019-12-30 10:44:44 +01:00
Roberto Rosario fa899aa48d Bump version to 3.3.6
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 22:54:03 -04:00
Roberto Rosario 52011aca74 Add sources migration to add related name
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 22:52:20 -04:00
Roberto Rosario 4f9f0ee00d Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 22:51:28 -04:00
Roberto Rosario a78e47e276 Update PyPI address used for new version check
Avoid SSL errors from reusing the old address (pypi.python.org/pypi)
certificate.

GitLab issue #717. Thanks to Jordan Wages (@wagesj45) for the report.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 22:47:19 -04:00
Roberto Rosario 1a548a6df8 Update changelog and add release notes for 3.3.6
Add credit to Checkmarx SCA AppSec team for the research and
notification of reappearance of CVE-2018-16405 and GitLab
issue #494.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 17:43:10 -04:00
Roberto Rosario f335b7d773 Fix typo in deploying chapter
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 17:42:51 -04:00
Roberto Rosario bbcb0da836 Add macro for GitLab merge requests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 17:42:07 -04:00
Roberto Rosario 42c6ce97ce Update py-amqp version
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 17:41:51 -04:00
Roberto Rosario 8a803f1a5e Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 03:15:07 -04:00
Roberto Rosario bccd542233 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 03:12:57 -04:00
Roberto Rosario 9d25665043 Merge branch 'versions/micro' into 'versions/micro'
Settings: Display overridden instead of overrided

See merge request mayan-edms/mayan-edms!65
2019-12-18 04:23:39 +00:00
Roberto Rosario b78089cc4f Reapply fix for issue #494
Avoid exploit of cross site scripting in login view.
Thanks to Lokesh (@lokesh1095) for the report and solution.
GitLab issue #494.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-18 00:20:34 -04:00
Roberto Rosario 31bee80fa2 Improve the test view mixin
Allow test views to be public. Allow configurate test view template.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-17 23:57:20 -04:00
Roberto Rosario c374c15972 Add test for issue #494
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-17 21:06:38 -04:00
Rob b8c8994f32 Settings: Display overridden instead of overrided
Signed-off-by: Rob de Canha-Knight <rob@rob-knight.com>
2019-12-17 23:13:23 +00:00
Roberto Rosario bf726245ff Add missing character in docker installation step
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-17 13:49:52 -04:00
Roberto Rosario 63d0144591 Add transaction handling to the interval sources
Adds transaction handling to the delete and save methods.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-17 01:37:12 -04:00
Roberto Rosario 675c1e5a30 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-17 01:34:43 -04:00
Roberto Rosario 4f1ecebcac Delete periodic task on document type delete
Closes Gitlab issue #715. Thanks to Rob de Canha-Knight (@rssfed23)
for the report and research.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-17 01:27:55 -04:00
Roberto Rosario 8b1c5eb868 Add test for GitLab issue #715
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-17 01:14:48 -04:00
Roberto Rosario 52804e6095 Update ZipArchive to work with badly coded files
Update the ZipArchive class to work with badly encoded filenames.

GitLab issue #651. Thanks to Fabian (@ruffy91) for the report.

Squashed commit of the following:
    Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>

commit 8ded3d09af16ea9457cbeef89ac4c72b3dde1fb5
Merge: 7889ff64d9 778c48d11d
Author: Roberto Rosario <roberto.rosario@mayan-edms.com>
Date:   Mon Dec 16 04:25:57 2019 -0400

    Merge branch 'versions/micro' into features/compressed_files_refactor

commit 7889ff64d9
Author: Roberto Rosario <roberto.rosario@mayan-edms.com>
Date:   Tue Oct 1 00:20:50 2019 -0400

    Document zip file encoding issues

    Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-16 04:37:30 -04:00
Roberto Rosario 778c48d11d Update Redis lock to support Redis version < 5.0
Update the Redis lock connection intialization so that is works with
Redis versions < 5.0.

GitLab issue #709. Rob de Canha-Knight (@rssfed23) for the report
and debug information.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-16 04:20:17 -04:00
Roberto Rosario ef514d5310 Update test method name
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-15 23:09:02 -04:00
Roberto Rosario 6c828eaf94 Fix document orientaton detection
GitLab issue #713. Thanks to Rob de Canha-Knight (@rssfed23)
for the report and debug information.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-15 23:06:35 -04:00
Roberto Rosario 9a4f3f0332 Merge branch 'synque/mayan-edms-master' into merges/community 2019-12-15 05:34:18 -04:00
Roberto Rosario 5dc357c6a6 Merge branch 'O2Graphics/mayan-edms-fix-PDF-page-count' into merges/community 2019-12-15 05:30:43 -04:00
Roberto Rosario 7cbc6f9b40 Merge branch 'O2Graphics/mayan-edms-fix-BSD-paths' into merges/community 2019-12-15 05:26:12 -04:00
Roberto Rosario c99db3da08 Make list toolbar sticky HTML element
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-15 05:16:19 -04:00
Roberto Rosario 1153661ff5 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-13 05:04:42 -04:00
Roberto Rosario 48c37661f8 Bump version to 3.3.5
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-13 05:02:14 -04:00
Roberto Rosario 3a1ca76e5b Remove django-downloadview from dependencies
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-13 05:01:01 -04:00
Roberto Rosario f2884607f5 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-13 04:59:41 -04:00
Roberto Rosario 2f4dc2b837 Add release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-13 04:57:55 -04:00
Roberto Rosario 1201481ab4 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-13 04:07:00 -04:00
Roberto Rosario 53c57658e6 Update contributing file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-13 01:15:33 -04:00
Roberto Rosario 1136ae57a4 Increase some file sizes
- Add or improve field help texts.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-12 20:45:23 -04:00
Roberto Rosario ac1ad7a81b Add missing icons
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-12 20:42:35 -04:00
Roberto Rosario a7b31fc171 Refactor and implement download code natively
- Use modified port of Django 2.2 FileResponse.
- Remove Django DownloadView library.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-12 19:39:44 -04:00
Roberto Rosario 826f7fddf2 Improve setting migration tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-12 19:37:25 -04:00
Roberto Rosario a8562ef2e7 Normalize quote used in {% include %}
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-12 19:37:15 -04:00
Roberto Rosario 3c5811dacb Include attrs.html in form instance template
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-12 19:37:07 -04:00
Roberto Rosario 16e95ffc42 Add transformation metaclass in a way compatible
Use Django's with_metaclass to Work with Python 2 and Python 3.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-11 16:28:42 -04:00
Roberto Rosario 8cfb457cf1 Fix failing tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-11 01:45:42 -04:00
Roberto Rosario 856a24e9db Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-11 01:33:07 -04:00
Roberto Rosario 062b28c871 Add the ID and the URL to the checkout serializer
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 23:07:25 -04:00
Roberto Rosario 888715c3cf Add migrations for the help text changes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 22:34:13 -04:00
Roberto Rosario 9d5c4c017d Use TemplateField for smart links
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 22:33:20 -04:00
Roberto Rosario 0b4c8242ee Use TemplateField for the web link template
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 22:32:21 -04:00
Roberto Rosario 913e57a010 Show the available variable in the help text
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 22:31:08 -04:00
Roberto Rosario 1ee449d894 Exclude smart link setup columns and links
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 22:10:38 -04:00
Roberto Rosario 2b8ac4b5fe Don't show setup links for resolved links
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 22:03:26 -04:00
Roberto Rosario 88d29ecfc0 Update TemplateField to concatenate help texts
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 20:47:59 -04:00
Roberto Rosario a7cf6b5664 Update migrations to accept migrated settings
- Unify all conditional YAML load under utils.smart_yaml_load.
- Update all setting migrations to use the smart setting test
  mixin to create the test config file.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 19:57:14 -04:00
Roberto Rosario 9e9db800ad Unify the creation of the test config file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 19:26:05 -04:00
Carsten Neubert a96b7b98fb Make build stage names lowercase 2019-12-10 21:45:42 +00:00
Roberto Rosario 51b400ed30 Update instances of "weblink" to "web link"
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-10 00:37:59 -04:00
Roberto Rosario b6bc79ec88 Add librabbitmq to the removal list
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 23:21:23 -04:00
O2 Graphics f895459d1f Fix page count on some PDF files, and fix a Python 3 incompatibility 2019-12-09 20:27:03 +01:00
O2 Graphics 4312b38af5 Improve the executables paths on FreeBSD/OpenBSD 2019-12-09 20:11:59 +01:00
O2 Graphics e11e6f4724 Merge pull request #1 from mayan-edms/master
Update to last version
2019-12-09 20:00:33 +01:00
Roberto Rosario 9450040388 Pin kombu and django-timezone-field versions
GitLab issues #698 and #699.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 13:10:22 -04:00
Roberto Rosario 10372daede Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 01:59:29 -04:00
Roberto Rosario 0da5fa83dd Bump version to 3.3.4
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 01:58:31 -04:00
Roberto Rosario cdb9094083 Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 01:57:12 -04:00
Roberto Rosario 7cda344f40 Add a volume to the staging Redis container
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 01:41:19 -04:00
Roberto Rosario 68342b481b Darken content area when opening the mobile menu
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 01:09:56 -04:00
Roberto Rosario 3af04e8c42 Make setting text translatable
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 01:09:28 -04:00
Roberto Rosario 2a64308185 Add a volume to the staging RabbitMQ container
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 01:08:36 -04:00
Roberto Rosario 4b980fed1e Make setting string translatable
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 01:07:38 -04:00
Roberto Rosario 639108d6e6 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 01:02:30 -04:00
Roberto Rosario 4e664a6f92 Switch from librabbitmq to py-amqp
Closes GitLab issue #699. Thanks to  Rob de Canha-Knight
(@rssfed23) for the report, research, and debug.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 00:29:00 -04:00
Roberto Rosario 4e65a436c7 Fix evaluation priority of the bootstrap settings
Closes GitLab issue #702. Thanks to Kevin Pawsey (@kevinpawsey) for
the report and the help debuging the issue.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-09 00:21:15 -04:00
Roberto Rosario d345f8e838 Fix docker-runtest-all target
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-08 18:54:25 -04:00
Roberto Rosario d6cb42147d Add icons to the smart settings links
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-08 18:44:11 -04:00
Roberto Rosario 84bad05807 Make setting overriding more clear
Add better text explanation. Change the column to a check mark widget.
Helps GitLab issue #702.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-08 14:54:48 -04:00
Roberto Rosario 15b4df54bf Don't use attribute name if there is no help text
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-08 14:51:23 -04:00
Roberto Rosario 242a5c1d41 Add test for GitLab issue #702
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-08 14:35:54 -04:00
Roberto Rosario 948445c5d0 Support staging containers using RabbitMQ
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-08 03:02:49 -04:00
Roberto Rosario 0fa38a2833 Update devpi-server version to 5.3.1
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-08 03:00:46 -04:00
Roberto Rosario a71db0b908 Add locking to the file metadata task
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-08 02:59:39 -04:00
Roberto Rosario 27b18c3fc6 Update metaclass passing to work on Python 3
Fixes transformation labels in view titles.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-07 19:17:58 -04:00
Roberto Rosario edf7a71931 Update the gunicorn worker class to synchronous
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-07 19:07:03 -04:00
Roberto Rosario e5e2e80a8c Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 06:33:39 -04:00
Roberto Rosario af2d524287 Bump version to 3.3.3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 06:32:40 -04:00
Roberto Rosario 7b2b189233 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 06:32:00 -04:00
Roberto Rosario 13788e121d Add release notes for version 3.3.3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 06:05:36 -04:00
Roberto Rosario af1ee3ae1a Mark missing indexing text as translatable
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 05:59:12 -04:00
Roberto Rosario 4afdac2b00 Add missing transformation view message display
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 05:58:31 -04:00
Roberto Rosario 40bd1b297c Auto create transformations without arguments
These are created directly from the selection form view.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 05:48:58 -04:00
Roberto Rosario c3d9208aa3 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 05:16:55 -04:00
Roberto Rosario 2cdcba73f9 Fix transformation label display in create view
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 05:15:43 -04:00
Roberto Rosario 2313c35e59 Remove supervisor environment variable expansion
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 04:47:42 -04:00
Roberto Rosario 4418ad458e Don't exit if the branch to delete doesn't exist
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 04:47:04 -04:00
Roberto Rosario 0e8bdec1d0 Fix version number
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 03:22:06 -04:00
Roberto Rosario 1da655129d Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 01:53:47 -04:00
Roberto Rosario 9471b80fa5 Avoid running Mayan as root
This change avoid creating a lock file in the /tmp folder that
is owned by the root user.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 01:48:15 -04:00
Roberto Rosario 8a4413abce Bump version to 3.3.2
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 01:44:09 -04:00
Roberto Rosario 6dbbef3476 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 01:43:27 -04:00
Roberto Rosario 34668c0786 Update documentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-05 00:48:06 -04:00
Roberto Rosario 971f99c89a Add remaining setting migration tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-04 23:29:42 -04:00
Roberto Rosario d2f3601770 Add document signature setting migration test
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-04 23:23:52 -04:00
Roberto Rosario 7a9333e44e Add documents app setting migration tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-04 23:21:22 -04:00
Roberto Rosario 8ff6eeec1f Add OCR app setting migrations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-04 23:14:19 -04:00
Roberto Rosario c21e33243c Fix sources app setting migrations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-04 23:09:35 -04:00
Roberto Rosario aa3495ff18 Improve setting migration method matching
Avoid executing a migrations for settings with similar but
shorter names.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-04 23:05:50 -04:00
Roberto Rosario 5070a4fcd6 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-04 00:53:04 -04:00
Roberto Rosario bd2f6eb035 Bump version to 3.3.1
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-04 00:51:09 -04:00
Roberto Rosario 2bdfb67eb5 Add 3.3.1 release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-04 00:49:12 -04:00
Roberto Rosario 2d3b5b88df Change document parsing error list permission
The required permission changed from "View document parsed content"
to "Parse document". This way only users with the access to affect
the parsed content are the only ones that can view what errors
occurred during parsing.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-04 00:14:50 -04:00
Roberto Rosario 02e2c1dd01 Remove body spacer HTML and JavaScript
Not needed with the new UI.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 23:49:08 -04:00
Roberto Rosario 14df823568 Update Django to version 1.11.26
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 23:25:29 -04:00
Roberto Rosario d240183073 Hide multi item selection text on mobile screens
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 23:23:17 -04:00
Roberto Rosario 3db4ad4fd0 Fix username color on mobile screens
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 23:22:40 -04:00
Roberto Rosario 196e2b5871 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 19:53:18 -04:00
Roberto Rosario 22d271bd3b Add sources settings migrations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 18:11:35 -04:00
Roberto Rosario 4cc2522be6 Savesettings command fixes
Don't error out when saving a config if no previous config exists.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 18:10:19 -04:00
Roberto Rosario 2eac1b1c7d Get setting namespace info from config file
Instead of trying to get it from the Django setting file.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 18:07:43 -04:00
Roberto Rosario 9b5a7c9936 Add preparestatic command
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 17:31:47 -04:00
Roberto Rosario 2a80facf64 Update Celery broker environment variable
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 17:29:16 -04:00
Roberto Rosario f61a90ece0 Add GitLab release targets to the documentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 03:23:18 -04:00
Roberto Rosario 5c15398ca8 Capture exception of Django import on doc build
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 03:14:12 -04:00
Roberto Rosario b3e45eac3a Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 02:36:07 -04:00
Roberto Rosario 0087ad2adc Bump version to 3.3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 02:34:15 -04:00
Roberto Rosario 6b983c66a1 Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 02:29:38 -04:00
Roberto Rosario 063d327254 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 02:28:33 -04:00
Roberto Rosario 9ba003b01b Enable main menu in small devices
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-12-03 01:05:26 -04:00
Roberto Rosario bc5f5de629 Merge remote-tracking branch 'origin/versions/micro' into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 23:18:50 -04:00
Roberto Rosario 266551c9f3 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 23:17:28 -04:00
Roberto Rosario 75d98221b4 Merge branch 'versions/micro' 2019-11-30 23:16:14 -04:00
Roberto Rosario 124d46c9bb Fix off-by-one error in document statistics
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 23:15:33 -04:00
Roberto Rosario 6553e68e1b Style cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 23:07:14 -04:00
Roberto Rosario c3b45c3d61 Add missing migrations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 21:47:51 -04:00
Roberto Rosario cb8e67d648 Merge remote-tracking branch 'origin/master' into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 18:06:29 -04:00
Roberto Rosario 8d55e7d6e9 Merge branch 'patch-1' into 'master'
Add Mayan port variable

See merge request mayan-edms/mayan-edms!61
2019-11-30 22:04:06 +00:00
Roberto Rosario 147318e906 Add substitutions for common URLs
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 17:14:42 -04:00
Roberto Rosario 22d6164781 Restructure the development chapter
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 16:59:59 -04:00
Roberto Rosario 242330ebaf Tweak the language of the release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 16:55:03 -04:00
Sergios Kefalas e6acd6eb67 Fix also readiness check 2019-11-30 09:30:54 +00:00
Sergios Kefalas 23fbc4166a Add Mayan port variable 2019-11-30 09:19:54 +00:00
Roberto Rosario 6faf30244a Update version 3.3 release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 03:01:15 -04:00
Roberto Rosario d68f8f7349 Fix settings global name
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-30 02:10:58 -04:00
Roberto Rosario 3c8eee05c3 Update installation numbering format
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-29 20:32:56 -04:00
Roberto Rosario 0262cb1324 Move entires from the FAQ to troubleshooting
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-29 20:16:31 -04:00
Roberto Rosario c11fcbe9f9 Remove unused djangodocs extension
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-29 20:12:27 -04:00
Roberto Rosario c8701d58c8 Patch footer documentation template
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-29 20:09:46 -04:00
Roberto Rosario 29c06e3f37 Merge remote-tracking branch 'origin/versions/micro' into versions/minor 2019-11-29 19:21:57 -04:00
Roberto Rosario 1cbfb8671c Move funding file to its own folder
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-29 19:02:51 -04:00
Roberto Rosario 28469c7adf Add GitHub funding option
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-29 19:00:02 -04:00
Roberto Rosario 40b040abe8 Minor documentation fixes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-29 14:32:37 -04:00
Roberto Rosario c9be1bccd2 Restructure documentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-29 14:25:11 -04:00
Roberto Rosario 5493c33257 Merge remote-tracking branch 'origin/versions/micro' into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 14:05:15 -04:00
Roberto Rosario 88a96d0150 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 12:36:07 -04:00
Roberto Rosario f54caa1ed0 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 12:35:09 -04:00
Roberto Rosario 6567ef2238 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 11:44:07 -04:00
Roberto Rosario 3b8f376e95 Point releases to the latest
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 11:40:13 -04:00
Roberto Rosario b87db445dd Bump version to 3.2.11
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 11:39:30 -04:00
Roberto Rosario d196f36951 Add 3.2.11 release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 11:37:58 -04:00
Roberto Rosario f4ace36522 Fix test imports
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 02:41:44 -04:00
Roberto Rosario fc3a8f13c6 Merge remote-tracking branch 'origin/versions/micro' into merges/micro_to_minor 2019-11-28 02:24:18 -04:00
Roberto Rosario 85f7167fd4 Style cleanup
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 02:11:58 -04:00
Roberto Rosario e421dbf543 Improve supervisord upgrade instructions
Forum topic 880.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 01:47:07 -04:00
Roberto Rosario 2d2cc4f75c Fix document check in via the API
- Closes GitLab issue #688. Thanks to inam ul haq (@inam.sys)
  for the report.
- Improve existing tests and add additional check in override tests.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-28 01:13:24 -04:00
Roberto Rosario 2119683246 Fix API example
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-27 11:31:16 -04:00
Roberto Rosario 64f02aa771 Merge remote-tracking branch 'origin/versions/micro' into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-27 04:05:06 -04:00
Roberto Rosario 620c23a92e Remove circular index create ACL permission
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-27 03:54:43 -04:00
Roberto Rosario 6687b1e61e Fix reverse inheritance permissions
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-27 03:51:12 -04:00
Roberto Rosario 4ea1a208eb Remove TODO remarks
Converted to entries in the ticket system.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-23 12:58:54 -04:00
Roberto Rosario c9746b5813 Skip redis lock tests for now
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-23 03:32:55 -04:00
Roberto Rosario 5a0f54864e Add document index reset
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-23 02:38:04 -04:00
Roberto Rosario 6d94227224 Update statistics migration to rename duplicates
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-23 02:01:08 -04:00
Roberto Rosario 88ab66749e Self-heal statistics results model
Happens when multiple results are created using the
same slug value. Forum topic 1404.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-23 02:00:22 -04:00
Roberto Rosario a9fdd3e654 Make the statistics slug field unique
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-23 01:59:28 -04:00
Roberto Rosario 9576d5ce17 Update statistics migration to rename duplicates
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-22 21:23:35 -04:00
Roberto Rosario 6ec2fd9e01 Merge remote-tracking branch 'origin/versions/micro' into versions/minor 2019-11-21 02:32:38 -04:00
Roberto Rosario f3d01a01b2 Import the settings if running from inside Django
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 02:31:55 -04:00
Roberto Rosario 31321f8073 Merge remote-tracking branch 'origin/versions/micro' into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 02:25:03 -04:00
Roberto Rosario 5defe44420 Allow Python 3 detection when not using Django
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 02:24:03 -04:00
Roberto Rosario a83358069c Merge remote-tracking branch 'origin/versions/micro' into merges/micro_to_minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 02:20:30 -04:00
Roberto Rosario ae134ae409 Fix documentation requirements generation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 02:17:17 -04:00
Roberto Rosario 2d5ec1a3cc Add target to make releases easier
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 02:11:49 -04:00
Roberto Rosario 96b257a7b8 Remove unused import
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 02:06:56 -04:00
Roberto Rosario 3177a7a096 Add pathlib2 to documentation requirements
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 02:06:22 -04:00
Roberto Rosario fc69f41fd0 Style cleanup
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 02:05:57 -04:00
Roberto Rosario f0e04fc069 Add missing db.transaction import
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 01:54:22 -04:00
Roberto Rosario b0729ea714 Update patch_files to work with Python 2 and 3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 01:52:57 -04:00
Roberto Rosario b5c4c61b3f Add file patching tests to the storages app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 01:46:51 -04:00
Roberto Rosario 3f41d5274b Organize dependencies tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 01:46:41 -04:00
Roberto Rosario 86399a5ee2 Add book link to the documentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 01:46:31 -04:00
Roberto Rosario a36c2a6590 Move the file patching code
Moved from the Dependency class to a generalized utility of the
storages app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 01:46:16 -04:00
Roberto Rosario 1e0fa2cdb1 Add file patching tests to the storages app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 00:40:51 -04:00
Roberto Rosario 3c70e7d3e6 Organize dependencies tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 00:40:05 -04:00
Roberto Rosario f92058d1b0 Add book link to the documentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-21 00:38:03 -04:00
Roberto Rosario 4b383b4951 Move the file patching code
Moved from the Dependency class to a generalized utility of the
storages app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 17:33:42 -04:00
Roberto Rosario 45c8fefdc4 Add sphinx sitemap extension
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 14:27:54 -04:00
Roberto Rosario 9205c40e9b Automate documentation building dependencies
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 14:27:11 -04:00
Roberto Rosario 9981be60da Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 14:26:05 -04:00
Roberto Rosario 3705457526 Update FAQ entry about the LDAP file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 14:25:25 -04:00
Roberto Rosario a031e9d582 Update example LDAP authentication settings file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 14:24:35 -04:00
Roberto Rosario e9ab253757 Add sphinx sitemap extension
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 14:22:07 -04:00
Roberto Rosario 3bb07d6dcf Automate documentation building dependencies
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 14:08:00 -04:00
Roberto Rosario 448176111b Add Redis based distributed lock backend
- RedisLock backend requires one argument: "redis_url".
  Example: redis://127.0.0.1:6379/0

- Add the setting LOCK_MANAGER_BACKEND_ARGUMENTS.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 04:40:02 -04:00
Roberto Rosario 97bd91f83e Fix version number in changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 00:35:14 -04:00
Roberto Rosario 3b9245c029 Merge remote-tracking branch 'origin/versions/micro' into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 00:32:42 -04:00
Roberto Rosario 8c390f6ed7 Update FAQ entry about the LDAP file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 00:31:57 -04:00
Roberto Rosario af70f881eb Update example LDAP authentication settings file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-20 00:29:09 -04:00
Roberto Rosario b5b3312d39 Backport transaction handling to document model events
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-19 14:24:36 -04:00
Roberto Rosario 6b2aeaf421 Merge remote-tracking branch 'origin/versions/micro' into merges/micro_to_minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-19 03:38:37 -04:00
Roberto Rosario b6414e4e92 Copy translation files from versions/micro
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-19 03:30:50 -04:00
Roberto Rosario 8ee9ac239d Add the mysql client in the correct stage
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-19 03:03:21 -04:00
Roberto Rosario 529c567ffb Add the mysql-client package for GitLab CI
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-19 02:32:35 -04:00
Roberto Rosario f2016a87cb Fix package name typo
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-19 02:04:34 -04:00
Roberto Rosario 17232d6001 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-19 01:50:07 -04:00
Roberto Rosario 128cf09a04 Add missing GitLab CI Ubuntu MySQL package
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-19 01:24:37 -04:00
Roberto Rosario ce87a8f8d5 Remove build status from README files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 23:48:21 -04:00
Roberto Rosario 5f72e91935 Update release steps
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 23:45:58 -04:00
Roberto Rosario e8da9610db Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 23:42:38 -04:00
Roberto Rosario b0373eaca1 Bump version to 3.2.10
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 23:41:35 -04:00
Roberto Rosario 507b6957c7 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 23:41:09 -04:00
Roberto Rosario 23211847a3 Update language translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 23:04:12 -04:00
Roberto Rosario 3137b5a50a Update changelog and release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 22:33:16 -04:00
Roberto Rosario 67ea431cca Speed up some tests
Use the small test document.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 22:19:30 -04:00
Roberto Rosario f55bf1b52e Improve document signatures tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 20:59:47 -04:00
Roberto Rosario 3b756c4393 Merge remote-tracking branch 'origin/versions/micro' into merges/micro_to_minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 17:33:07 -04:00
Roberto Rosario 35aafc3f70 Expand custom Python setting section
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 17:13:27 -04:00
Roberto Rosario cd5da60063 Automate paths in documentation
Paths are now configure in docs/conf.py to ensure
consistency and avoid human error.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 16:44:07 -04:00
Roberto Rosario 91aec4e3f2 Fix typo
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 16:01:53 -04:00
Roberto Rosario 34a9ce6e42 Update OCR API submit URL
Change OCR API submit URL from documents/{pk}/submit
to documents/{pk}/ocr/submit.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 02:22:29 -04:00
Roberto Rosario bdc6740131 Remove null statement
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 02:21:00 -04:00
Roberto Rosario e281607ca6 Add document type change API endpoint
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 02:20:48 -04:00
Roberto Rosario cd72a3bab4 Fix failing tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 01:11:31 -04:00
Roberto Rosario 327c795cf4 Add setting migrations to apps
Add setting migrations for the common, converter, documents,
file metadata, and document signatures app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 00:54:02 -04:00
Roberto Rosario fa8fddb349 Add support for setting migrations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-18 00:27:33 -04:00
Roberto Rosario c75033f676 Remove star imports
Remove from the documents.views and permissions.tests modules.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-17 02:36:59 -04:00
Roberto Rosario 971e5c0ae7 Prefix dispatch_uid with the app name
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-17 02:19:16 -04:00
Roberto Rosario f1c704e3e1 Complete prefixing template tags with app names
Additionally remove unused template tags.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-17 01:59:17 -04:00
Roberto Rosario 820e997165 Merge remote-tracking branch 'origin/versions/micro' into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-16 22:51:48 -04:00
Roberto Rosario 07e2ca8c11 Update deployment instructions for Python 3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-16 22:40:34 -04:00
Roberto Rosario ec86d7679a Add exiftool to deployment installation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-16 21:40:39 -04:00
Roberto Rosario 707950ad30 Cleanup test models when tests ends
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-16 21:22:40 -04:00
Roberto Rosario a8097e1869 Adjust margin of JavaScript server error banner
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-16 13:55:17 -04:00
Roberto Rosario 3b0f04add5 Remove database conversion chapter
This command has been removed.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-16 13:48:28 -04:00
Roberto Rosario 16d9c7d074 Update docs and template to use 2 Redis databases
Switch default installation to use two Redis databases. One for
the message broker, and the other to store task results.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-16 13:45:36 -04:00
Roberto Rosario fbcd424474 Add MediaBootstrapSetting class
Used for settings that depend on the value
of the MEDIA_ROOT setting.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-16 02:47:36 -04:00
Roberto Rosario 76be58dcfa Allow passing the queue list to run_worker
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-16 01:39:03 -04:00
Roberto Rosario abff91c9f9 Add "run_command" Docker entrypoint option.
Used to run arbitrary Mayan management commands.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-16 01:18:29 -04:00
Roberto Rosario 04647bb09c Self-heal statistics results model
Happens when multiple results are created using the
same slug value. Forum topic 1404.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 22:42:11 -04:00
Roberto Rosario 3562494b9e Make the statistics slug field unique
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 22:36:35 -04:00
Roberto Rosario 31e98eec99 Support running specific tests in Docker
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 21:49:15 -04:00
Roberto Rosario ccb59dd1a3 Remove outdated contrib scripts
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 21:46:50 -04:00
Roberto Rosario 3951c6c522 Use Python 3 to run Docker tests
The Docker image now uses Python 3.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 20:24:40 -04:00
Roberto Rosario 3ecbec36aa Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 19:03:20 -04:00
Roberto Rosario e2af72dab7 Show placeholder label on invalid action classes
Instead of throwing an error a sample label of
"Unknown action type" will be used and allow users to
delete the unknown state action.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 19:02:54 -04:00
Roberto Rosario 302a90ff9d Add workflow action to sign documents
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 19:02:01 -04:00
Roberto Rosario 3b72eac8ae Show placeholder label on invalid action classes
Instead of throwing an error a sample label of
"Unknown action type" will be used and allow users to
delete the unknown state action.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 18:49:02 -04:00
Roberto Rosario 27d3661017 Use timezone aware date for document statistics
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 17:57:58 -04:00
Roberto Rosario 491badc877 Use timezone aware date for document statistics
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 17:56:45 -04:00
Roberto Rosario 4bc27d33e2 Set CELERY_TASK_ALWAYS_EAGER to True in dev
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 04:24:06 -04:00
Roberto Rosario c14a98b78e Add supervisor configuration reread step changes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 02:46:09 -04:00
Roberto Rosario ecb1e1b0b3 Add supervisor configuration reread step changes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 02:44:53 -04:00
Roberto Rosario 7b96ccfe10 Add missing config file load cache line
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 02:33:51 -04:00
Roberto Rosario 72758735c1 Fix Docker BROKER_URL environment variable
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 02:30:03 -04:00
Roberto Rosario bf1155abb3 Add devpi makefile targets
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 01:38:43 -04:00
Roberto Rosario 9eb483a052 Add Makefile phony targets
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-15 01:38:25 -04:00
Roberto Rosario 3e954db2f7 Fix sources app logging
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-14 23:53:04 -04:00
Roberto Rosario 783e017470 Fix sources app logging
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-14 23:52:36 -04:00
Roberto Rosario 34c3443cf1 Improve tag app test organization
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-14 23:02:00 -04:00
Roberto Rosario 3f505007fa Fix Docker makefile multiline indentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-14 22:48:37 -04:00
Roberto Rosario bb26df8052 Fix Docker makefile multiline indentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-14 22:46:24 -04:00
Roberto Rosario a308024992 Fix workflow action tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-14 00:49:43 -04:00
Roberto Rosario 6473412eca Fix default user for document delete event
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-14 00:40:34 -04:00
Roberto Rosario fe9bc35d9b Organize autoadmin app tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-14 00:40:17 -04:00
Roberto Rosario c3793699c5 Refactor the initial setting bootstrap code
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-14 00:40:05 -04:00
Roberto Rosario 4a1607afad Add back support for individual database settings
Added for compatibility with version 3.2 settings.

These are now a fallback if the new 'DATABASES'
setting is not specified.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-12 15:18:27 -04:00
Roberto Rosario 2e231dad62 Organize smart settings view tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-12 13:54:43 -04:00
Roberto Rosario fac5072c68 Add transaction handling to document model events
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-12 13:48:31 -04:00
Roberto Rosario 8d8fc76962 Add document trashed event
Closes GitLab issue #608. Thanks to Vikas Kedia (@vikaskedia)
for the report.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-12 13:46:00 -04:00
Roberto Rosario 77cae991f4 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-12 01:45:04 -04:00
Roberto Rosario 54dc9469dd Use TemplateField for Index expression field
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-12 01:35:35 -04:00
Roberto Rosario ec7c3ef41f Improve TemplateWidget JavaScript
Move widget initialization from form to field.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-12 01:31:22 -04:00
Roberto Rosario ba7284a9ae Move TemplateField JS code to a Media class
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-12 01:14:37 -04:00
Roberto Rosario 1a9be24ada Revert "Improve workflow field help text"
There are migrations in version 3.3 before this one.

This reverts commit 1c39b3c84d.
2019-11-12 00:42:59 -04:00
Roberto Rosario 6d8cb8f537 Merge remote-tracking branch 'origin/versions/micro' into merges/micro_to_minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-12 00:42:12 -04:00
Roberto Rosario e593dcb5d8 Add missing Event class cache invalidation
Needed when calling the refresh() method. Otherwise
null StoredEvent instances will be returned.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-12 00:23:18 -04:00
Roberto Rosario a60c2fa94c Add 3.2.10 release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 19:25:32 -04:00
Roberto Rosario 41214fa90e Fix NamedMultiWidget issue on Python 3
Affects document checkout form

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 19:21:16 -04:00
Roberto Rosario f030bae926 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 19:20:01 -04:00
Roberto Rosario 1c39b3c84d Improve workflow field help text
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 19:19:08 -04:00
Roberto Rosario 774d09479c Add missing ModelProperty label entires
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 19:17:33 -04:00
Roberto Rosario f0755a4cd9 Backport tests improvements
- Test mixin improvements for django_gpg
- Detached and embedded signatures and signing tests for
  the document signatures app.
- Improved mixins in both.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 19:16:05 -04:00
Roberto Rosario 00ab715829 Fix import order
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 18:55:01 -04:00
Roberto Rosario 588ab4c728 Add document checkout view get test
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 18:44:25 -04:00
Roberto Rosario 03e4978106 Add target to run specific tests in debug mode
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 18:38:50 -04:00
Roberto Rosario 05ceeca8ff Allow multitle expected_content_types in tests
Some tests return 'text/html' or 'text/html; charset=utf-8'
which are essentially the same if they are tested in debug mode.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 18:37:32 -04:00
Roberto Rosario 8ce4d5fb30 Add target to run all tests in debug mode
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 18:36:04 -04:00
Roberto Rosario 15dc4e8489 Organize global substitution code
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 18:33:26 -04:00
Roberto Rosario 680a4875f5 Clean up docs config module
- Add substitution for the Mayan EDMS container image version.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 18:33:07 -04:00
Roberto Rosario 7ff9bcb707 Add support for auto importing dependecies
- No need to use: from .dependencies import *  # NOQA

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 18:31:31 -04:00
Roberto Rosario 08158838b4 Fix NamedMultiWidget issue on Python 3
Affects document checkout form

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 03:00:17 -04:00
Roberto Rosario 466f15e154 Move template sandbox to its own app
Improve UI for the sandbox template textarea.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 02:59:26 -04:00
Roberto Rosario 81b1564535 Add target to run specific tests in debug mode
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 02:25:44 -04:00
Roberto Rosario 5305762636 Add missing ModelProperty label entires
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 02:23:16 -04:00
Roberto Rosario b0677a8bda Allow multitle expected_content_types in tests
Some tests return 'text/html' or 'text/html; charset=utf-8'
which are essentially the same if they are tested in debug mode.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 02:20:58 -04:00
Roberto Rosario 6bd672a756 Add target to run all tests in debug mode
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 02:14:00 -04:00
Roberto Rosario 5af821e155 Add document checkout view get test
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-11 02:12:04 -04:00
Roberto Rosario 04f5952ee6 Add suppor for auto importing dependecies
- No need to use: from .dependencies import *  # NOQA

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-10 16:53:29 -04:00
Roberto Rosario cdb1815f49 Add the document template sandbox feature
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-10 03:35:56 -04:00
Roberto Rosario cf154c46f4 Update form subtemplate button
Will show "Submit" for forms without an instance
and "Save" for forms with an instance. Should be better
than the older behavior of just testing for a template
object.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-10 03:34:07 -04:00
Roberto Rosario bfd4db5d35 Add a query dict argument to common.http.URL
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-10 03:33:27 -04:00
Roberto Rosario 55851d37d6 Fix typo
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-10 01:01:35 -04:00
Roberto Rosario 178d631a1b Organize global substitution code
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-10 01:01:17 -04:00
Roberto Rosario fa7bc455b9 Clean up docs config module
- Add substitution for the Mayan EDMS container image version.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-10 00:43:46 -04:00
Roberto Rosario 1030fd67c9 Update Docker targets to one switch per line
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-10 00:43:18 -04:00
Roberto Rosario e5c8512104 Remove environment variables from Makefile
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-10 00:42:18 -04:00
Roberto Rosario d2621c1b70 Update docker chapter
- Add step numbers.
- Add Redis container steps.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-10 00:41:32 -04:00
Roberto Rosario e8aed0e246 Update source language files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-09 23:43:53 -04:00
Roberto Rosario da45be77ec Fix app name
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-09 23:34:02 -04:00
Roberto Rosario d76ec6ffba Add type support to the HTTP POST action timeout
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-09 02:17:15 -04:00
Roberto Rosario 39fe18c332 Add support for proxy model permission inheritance
Proxy models now get the permission inheritance from their base model.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-09 02:04:54 -04:00
Roberto Rosario 49017cb3d9 Improve common _create_test_model()
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-09 02:02:17 -04:00
Roberto Rosario 8bf4c7539b Improve TestModelTestMixin
- Allow specifying a base model.
- Fix passing the dynamic Meta class to the test model.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 20:43:13 -04:00
Roberto Rosario 60dfb71028 Improve workflow runtime link tests
User actual runtime model instance as object for link
resolution.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 19:49:33 -04:00
Roberto Rosario ef6abb0af0 Add workflow proxy view tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 19:37:16 -04:00
Roberto Rosario f19fd582a1 Use external object mixin in workflow proxy views
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 19:36:24 -04:00
Roberto Rosario dc6b37125f Improve workflow field help text
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 19:32:39 -04:00
Roberto Rosario 5e1301b092 Add Docker maintenance command example
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 17:26:01 -04:00
Roberto Rosario 8a212df440 Increase DjangoSMTP password field size to 192
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 17:25:31 -04:00
Roberto Rosario c981cf05df Add extra step to push checklist
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 15:10:17 -04:00
Roberto Rosario 58a8678833 Allow numbers in makefile targets
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 15:07:12 -04:00
Roberto Rosario 8b5f0e9e82 Merge remote-tracking branch 'origin/versions/micro' into versions/minor 2019-11-08 01:11:32 -04:00
Roberto Rosario f631114cb1 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 00:19:39 -04:00
Roberto Rosario 6e1bcae0fe Add fields to the workflow HTTP POST action
Add username, password, and headers fields.
Update the timeout field to support templates.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 00:18:36 -04:00
Roberto Rosario e91232f722 Add TestServerTestCaseMixin
Allows performing mocked HTTP requests.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 00:14:39 -04:00
Roberto Rosario 1615e584ce Rename workflow test module
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-08 00:12:01 -04:00
Roberto Rosario 894db8eb19 Patch Sphinx Include to support substitutions
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-07 04:37:52 -04:00
Roberto Rosario ffb7be6267 Remove explict Docker image version from docs
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-07 02:47:28 -04:00
Roberto Rosario 656ba26139 Merge branch 'versions/micro' 2019-11-07 02:44:10 -04:00
Roberto Rosario 89bdfc5975 Add debug when loading env config file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-07 01:39:04 -04:00
Roberto Rosario fe9d015d0c Add and improve document signatures app tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-05 01:52:32 -04:00
Roberto Rosario f73dd28c92 Update signature API to support uploads
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-05 01:36:00 -04:00
Roberto Rosario 7d4f11b74b Embedded signatures cannot be deleted
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-04 23:43:05 -04:00
Roberto Rosario 3d03d0cd67 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-04 19:50:01 -04:00
Roberto Rosario 0167ff24b8 Add first set of document signatures API views
Add list, create, detail and edit API views for detached and embedded
signatures.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-04 19:46:32 -04:00
Roberto Rosario d12fa430dc Code style cleanup
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-04 00:12:01 -04:00
Roberto Rosario dca13b675a Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-04 00:11:52 -04:00
Roberto Rosario eda3a38e7b Update label and icon of the document sign form
Label updated from "Save" to "Sign".

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-04 00:11:05 -04:00
Roberto Rosario 82e6887b7f Finish spliting duplicated document views
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 23:57:34 -04:00
Roberto Rosario e703d2df10 Split duplicated document views
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 23:38:05 -04:00
Roberto Rosario 72b92c3924 Add staging folder "no results" template
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 23:23:11 -04:00
Roberto Rosario 07950fa8f3 Merge remote-tracking branch 'origin/versions/micro' into versions/minor 2019-11-03 23:13:12 -04:00
Roberto Rosario ee426282db Add missing closed issued to release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 23:12:46 -04:00
Roberto Rosario 0fdb59b811 Fix typo
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 21:31:43 -04:00
Roberto Rosario 52e7559938 Update format of v3.2.9 release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 21:26:59 -04:00
Roberto Rosario c77b677e41 Fix release push command
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 20:05:04 -04:00
Roberto Rosario f1b9ae5ec6 Merge remote-tracking branch 'origin/versions/micro' into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 19:55:54 -04:00
Roberto Rosario 2f9062f31a Update releases chapter of documentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 19:18:45 -04:00
Roberto Rosario 7df930ae4c Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 19:12:09 -04:00
Roberto Rosario 3bd1fb4e90 Bump version to 3.2.9
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 19:11:09 -04:00
Roberto Rosario ac0e74572e Prepare release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 19:06:44 -04:00
Roberto Rosario 31b1f72b95 Move django_gpg app mock objects to mocks.py
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 18:42:00 -04:00
Roberto Rosario 274937feee Move remaining mocked objects to mocks.py module
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-03 18:36:33 -04:00
Roberto Rosario 565e60a26c Switch CI to mysqlclient
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-02 03:17:16 -04:00
Roberto Rosario 308928ad82 Merge remote-tracking branch 'origin/versions/micro' into versions/minor 2019-11-02 03:16:35 -04:00
Roberto Rosario a275fb9480 Switch the Docker image to mysqlclient
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-02 03:16:12 -04:00
Roberto Rosario dcc19e9ffd Switch CI to mysql-python like the Docker image
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-02 03:15:22 -04:00
Roberto Rosario b544dc8c83 Merge remote-tracking branch 'origin/versions/micro' into merges/micro_to_minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-02 02:59:39 -04:00
Roberto Rosario 1252263f93 Add top level config.env file
Update the following elements to use the top level config
environment file:
- CI
- Makefile
- Docker makefile
- Documenation

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-02 02:15:05 -04:00
Roberto Rosario 0ab9c18733 Add docker install script release checklist step
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-02 02:11:35 -04:00
Roberto Rosario aa608c6094 Add exception handling to latest version check
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-01 21:41:06 -04:00
Roberto Rosario f650a623b5 Add book link in the about menu
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-01 21:40:14 -04:00
Roberto Rosario 734b7c25e1 Update change log
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-01 21:30:10 -04:00
Roberto Rosario e14685e3e7 Rename instances of the IMAP server variable
Renamed from mailbox to server for clarity.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-01 21:23:51 -04:00
Roberto Rosario a507bc89b7 Add extra logging to the IMAP email source
GitLab issue #682. Thanks to Patrick Hütter (@PatrickHuetter)
for the report.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-11-01 21:21:24 -04:00
Roberto Rosario f9fa3344d0 Add savesettings command
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-31 13:42:04 -04:00
Roberto Rosario 9d883e455e Add version attribute to namespaces
Also dump the version of all the namespaces as
children of SMART_SETTINGS_NAMESPACES.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-31 13:41:32 -04:00
Roberto Rosario 1ca91e7ec5 Add cache invalidation test case mixins
Add PermissionTestCaseMixin and SmartSettingTestCaseMixin
to better organize cache invalidation of both apps for
tests.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-31 12:57:40 -04:00
Roberto Rosario 75d20d1b57 Backport Docker composer makefile targets
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-31 12:52:35 -04:00
Roberto Rosario 834697a01e Merge remote-tracking branch 'origin/versions/micro' into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-30 20:28:36 -04:00
Roberto Rosario 1e4088c819 Use Docker Alpine variants
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-30 20:02:50 -04:00
Roberto Rosario 6dda918bb3 Improve duplicated document list view logic
Don't show documents with trashed duplicates.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-30 20:01:16 -04:00
Roberto Rosario 58c64955cc Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-30 20:00:47 -04:00
Roberto Rosario 743c586e31 Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-30 03:11:28 -04:00
Roberto Rosario 360b3e7c78 Fix repeated argument in Docker instructions
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-30 02:56:53 -04:00
Roberto Rosario 9496fffda6 Add target to launch a production staging image
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-30 02:55:19 -04:00
Roberto Rosario c91bab7b1f Fix MAYAN_GUNICORN_TIMEOUT Docker image setting
GitLab issue #671. Thanks to Lennart Sauerbeck (@lennart_s)
for the report.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-30 02:45:56 -04:00
Roberto Rosario 6dff3564dc Update docker compose file
- Update Mayan EDMS image version to 3.3.
- Fix typos.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-30 01:07:47 -04:00
Roberto Rosario 475b93a664 Bump version to 3.2.9
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-30 00:40:49 -04:00
Roberto Rosario da7feed2ef Return st_nlink of 1 for mirrored index files
GitLab issue #676. Thanks to Ezio Vernacotola (@eziove) for the
report and solution.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-29 04:57:27 -04:00
Roberto Rosario c61acb55ca Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-29 04:44:31 -04:00
Roberto Rosario b9244ee62b Improve dependecies tests
Mute output during tests.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-29 02:57:27 -04:00
Roberto Rosario ca907c63f6 Move test mixin to its corresponding module
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-29 02:42:46 -04:00
Roberto Rosario 5850f2a905 Move Celery and Django Celery dependencies
Both moved to the task manager app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-29 02:36:11 -04:00
Roberto Rosario 5dd22f9cf0 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-29 00:51:03 -04:00
Roberto Rosario da7a3a02b5 Merge remote-tracking branch 'origin/versions/micro' into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-29 00:50:25 -04:00
Roberto Rosario 3d0f139364 Fix failing user management test mixin import
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-29 00:42:05 -04:00
Roberto Rosario b69a5536e2 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-29 00:05:47 -04:00
Roberto Rosario 9c400a6184 Update dependency versions
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-29 00:03:41 -04:00
Roberto Rosario 2edacc9a06 Make Postgres container wait delay configurable
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 23:12:39 -04:00
Roberto Rosario 3bb84fa874 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 <roberto.rosario@mayan-edms.com>
2019-10-28 23:10:30 -04:00
Roberto Rosario 8f1d9bd484 Update request code of get_cascade_condition
Add alternate method to obtain the request from the context.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 20:45:14 -04:00
Roberto Rosario 4dd5a63d87 Add workflow runtime link tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 20:44:29 -04:00
Roberto Rosario de499ab6bd Fix import order
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 20:44:02 -04:00
Roberto Rosario d9cb353664 Fix failing user management test mixin import
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 20:40:41 -04:00
Roberto Rosario 6b4392a35c Update platform command and test for Python 2 & 3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 20:40:09 -04:00
Roberto Rosario 61f398a3b9 Update book text
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 20:38:48 -04:00
Roberto Rosario 20a5369266 Fix typo
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 20:05:41 -04:00
Roberto Rosario 8e10607d63 Update request code of get_cascade_condition
Add alternate method to obtain the request from the context.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 19:58:54 -04:00
Roberto Rosario d66231b341 Update ModelPermission declaration order
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 19:58:08 -04:00
Roberto Rosario 2dc0032fc8 Add workflow runtime link tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 19:57:41 -04:00
Roberto Rosario 356f288d70 Fix import order
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 19:57:28 -04:00
Roberto Rosario 6e1236e8a0 Fix failing user management test mixin import
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 03:35:16 -04:00
Roberto Rosario c46b720e08 Update platform command and test for Python 2 & 3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 03:32:36 -04:00
Roberto Rosario 5640b2ac27 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 <roberto.rosario@mayan-edms.com>
2019-10-28 01:20:05 -04:00
Roberto Rosario eb9f905dc8 Update book text
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 01:08:49 -04:00
Roberto Rosario bb426a44fc Make Postgres container wait delay configurable
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 01:00:41 -04:00
Roberto Rosario e7fec358f3 Split document app links
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 00:54:57 -04:00
Roberto Rosario be25705db3 Move all sources mocks to the mocks.py module
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 00:11:44 -04:00
Roberto Rosario 1bb4689aed Merge remote-tracking branch 'origin/versions/micro' into merges/micro_to_minor
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 00:06:27 -04:00
Roberto Rosario deb363ee16 API updates
- Move all generic API classes definitions to the rest_api.generics
module.
- Update API status code on insufficient access for the apps:
indexes, parsing, documents, metadata, ocr, permission,
user management.
- Update API tests.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-28 00:01:11 -04:00
Roberto Rosario 491de98356 Don't raise error for AnonymousUser permissions
Instead return always False.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-27 20:12:40 -04:00
Roberto Rosario 7e5aad7714 Backport color log formatter
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-27 16:11:16 -04:00
Roberto Rosario 42cfef505c Add target to run all translations targets
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-27 16:03:16 -04:00
Roberto Rosario b2e8a63224 Update language translations files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-27 16:02:16 -04:00
Roberto Rosario 8ab9bf523f Fix platformtemplate command help message
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-27 14:53:17 -04:00
Roberto Rosario 115a3cca11 Add tests to the platform app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-27 14:52:19 -04:00
Roberto Rosario e35c5f6d22 Display message when testing a mailing profile
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-27 14:07:12 -04:00
Roberto Rosario 2a16a18984 Move IMAPMockServer to its own module
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-27 14:05:37 -04:00
Roberto Rosario c79a974746 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-24 19:30:59 -04:00
Roberto Rosario cebd43d8c7 Improve IMAPMockServer
Fix failing IMAP source tests.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-24 19:29:36 -04:00
Roberto Rosario 49b04acda0 Move sources app mock classes to their own module
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-24 16:10:18 -04:00
Roberto Rosario 7b03b83dd0 Rename variable mailbox to server for clarity
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-24 15:48:47 -04:00
Roberto Rosario 2a501c537a Cleanup documents test mixins
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-24 15:45:09 -04:00
Roberto Rosario 83f876cde9 Support simple search disabling
Add new new SEARCH_DISABLE_SIMPLE_SEARCH setting.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-24 15:24:48 -04:00
Roberto Rosario d79a24c6ba Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-24 15:08:23 -04:00
Roberto Rosario 4dea4129db IMAP source improvements
- Support multiple STORE commands. Defaults to +FLAGS (\Deleted)
  to conserve current behavior.
- Support custom search criteria. Defaults to NOT DELETED
  to converse current behavior.
- Support enabling/disabling IMAP expunge command
  after each message. Defaults to True to conserve
  current behavior.
- Increase functionality of the MockIMAPServer

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-24 04:02:25 -04:00
Roberto Rosario 1b6468522a Remove documents.tests.literas __all__ entry
The star import for this has been removed.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-22 13:14:37 -04:00
Roberto Rosario dc03a44513 Rename trashed document test mixin for clarity
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-22 13:13:53 -04:00
Roberto Rosario b827155840 Remove explicit expected_content_type
These are now handled by BaseAPITestCase.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-20 21:09:21 -04:00
Roberto Rosario 1074e6f645 Rename trashed documents test for clarity
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-16 20:13:22 -04:00
matthias 06c8f68684 debian 9.8 -- tesseract 4
continuous-integration/drone/push Build is passing
2019-10-14 21:56:36 +02:00
matthias f8bb22df86 added git
continuous-integration/drone/push Build encountered an error
2019-10-14 21:35:47 +02:00
matthias 6ea5a5bd56 use git python mysql
continuous-integration/drone/push Build is failing
2019-10-14 21:30:01 +02:00
matthias b341386101 try to fix it
continuous-integration/drone/push Build is failing
2019-10-14 21:24:41 +02:00
matthias 7b4cd7ed12 fixed path
continuous-integration/drone/push Build is failing
2019-10-14 21:17:16 +02:00
matthias 7663006e3c use mariadb path
continuous-integration/drone/push Build is failing
2019-10-14 21:13:55 +02:00
matthias e7159583a8 build mysql with fix
continuous-integration/drone/push Build is failing
2019-10-14 21:09:21 +02:00
matthias 6296101fe6 adde ddrone
continuous-integration/drone/push Build is failing
2019-10-14 20:56:18 +02:00
matthias 9a479ecfeb debian 10 2019-10-14 20:53:05 +02:00
Roberto Rosario 9e2ef57e00 Fix document view test mixin
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-13 16:09:54 -04:00
Roberto Rosario 756765ce4a Fix layer imports
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-13 15:40:50 -04:00
Roberto Rosario 53096b8bdd Allow "Execute document tools" permission via ACL
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-13 15:34:32 -04:00
Roberto Rosario 8aa2567a56 Document tests layout tweaks
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-13 15:28:41 -04:00
Roberto Rosario ce6e568001 Sort documents models methods
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-13 15:21:37 -04:00
Roberto Rosario d1f0e23c53 Test layout updates
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-11 11:21:05 -04:00
Roberto Rosario 3f33bdd9c2 Sources apps test updates
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-11 10:57:51 -04:00
Roberto Rosario b2390843ab Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-10 17:18:39 -04:00
Roberto Rosario fc14341d40 Update document version upload to use dropzone
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-10 17:17:09 -04:00
Roberto Rosario 57dd5b1bca Split source multiform template
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-10 17:17:01 -04:00
Roberto Rosario c731ab7050 Add kwargs and update string formatting
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-10 14:50:26 -04:00
Roberto Rosario bd0d298be3 New document version improvements from clients/bc
- Comment field help text.
- Remove create_document_form_form.
- Use static NewVersionForm.
- Update sources document upload and new version upload view names.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-10 14:34:50 -04:00
Roberto Rosario cc8147d002 Update requirements and setup
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-08 15:15:50 -04:00
Roberto Rosario 1b327b99f0 Update run_test Docker command name
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-08 15:15:08 -04:00
Roberto Rosario 7b3a83ee39 Update GitLab CI to use Python 3 and virtualenv
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-08 09:48:54 -04:00
Roberto Rosario 4659269349 Invalidate the layer cache in tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-08 09:45:28 -04:00
Roberto Rosario 517bb4e9a2 Move Makefile versions to variables
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-08 09:45:20 -04:00
Roberto Rosario 162cd256e7 Merge branch 'versions/minor' of gitlab.com:mayan-edms/mayan-edms into versions/minor 2019-10-07 16:43:15 -04:00
Roberto Rosario 339b7dd836 Add missing dependencies import
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-07 16:43:00 -04:00
Roberto Rosario 949c0ab285 Remove empty ine
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-07 10:43:52 -04:00
Roberto Rosario cb6cb4121f Fix typos
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-06 03:04:45 -04:00
Roberto Rosario 042727aaa9 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-05 15:09:46 -04:00
Roberto Rosario 5b304ea742 Bump version to 3.3 beta 1
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-05 15:08:53 -04:00
Roberto Rosario ce4413d539 Fix changelog format
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-05 03:31:51 -04:00
Roberto Rosario 547c31d216 Fix main menu active link highlight clear
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-05 03:28:11 -04:00
Roberto Rosario f4293a7c06 Add help text to indexing and metadata models
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-05 02:47:10 -04:00
Roberto Rosario 1779d482ac Don't add a placeholder help text for functions
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-05 02:45:54 -04:00
Roberto Rosario e0e4f238f6 Keep tooltip icon together with label
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-05 02:45:33 -04:00
Roberto Rosario fecfb37a84 Fix failing tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 23:42:15 -04:00
Roberto Rosario 3e2aaf391e Default the slow worker to 1 process
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 23:35:05 -04:00
Roberto Rosario 230fde0ab2 Update docker install to deploy a Redis container
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 23:34:43 -04:00
Roberto Rosario d9865af200 Update Docker deploy script
- Use alpine postgres version.
- Support Docker networks and make it the default.
- Delete the containers to allow the script to be idempotent.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 22:46:25 -04:00
Roberto Rosario 72f8fcf720 Update test imports
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 16:10:29 -04:00
Roberto Rosario 30668d9d0b Merge remote-tracking branch 'origin/versions/micro' into feature/merge_with_micro
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 15:31:32 -04:00
Roberto Rosario d5aab12b8d Update release chapter instructions
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 13:35:00 -04:00
Roberto Rosario 32313d2c31 Merge branch 'versions/micro' 2019-10-01 13:33:20 -04:00
Roberto Rosario ebc0a5f449 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 13:32:38 -04:00
Roberto Rosario 415d3bcd2f Bump version to 3.2.8
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 13:31:40 -04:00
Roberto Rosario b985f2ef05 Update changelog and release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 13:30:28 -04:00
Roberto Rosario 15c953815e Improve linking app tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-10-01 00:54:10 -04:00
Roberto Rosario 390e552c1f Update test according to new layout
Separate method making request from TestCase
and into separate TestMixins classes.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-30 09:35:52 -04:00
Roberto Rosario 9041f00caa Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-30 05:02:53 -04:00
Roberto Rosario b0163319eb Improve source tests layout
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-29 23:14:33 -04:00
Roberto Rosario 762cdc5b89 Add Chinese fonts to the Docker image
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-28 01:52:23 -04:00
Roberto Rosario 396cbb4b22 Add template comment
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-27 05:24:21 -04:00
Roberto Rosario 8b0cd93526 Tweak jstree CSS
Remove border radius and remove the column gutter.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-27 05:23:18 -04:00
Roberto Rosario f97ccb693b Add test GitLab issue #653
Tests opening zip files containing a non English named member.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-25 23:00:51 -04:00
Roberto Rosario c3b539ba19 Add MAYAN_GUNICORN_TIMEOUT documentatoin
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-25 22:17:50 -04:00
Roberto Rosario 80126f2326 Update translations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-25 00:07:42 -04:00
Roberto Rosario 00e3d40231 Merge branch 'versions/micro' of gitlab.com:mayan-edms/mayan-edms into versions/micro 2019-09-24 23:29:25 -04:00
Roberto Rosario 0953127420 Use mixin in tag workflow action test
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-24 23:29:02 -04:00
Roberto Rosario 02505ba855 Update format of the changelog file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-24 23:19:42 -04:00
Roberto Rosario 6fe41660bd Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-24 23:11:14 -04:00
Roberto Rosario 7695178992 Fix failing tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-24 17:17:21 -04:00
Roberto Rosario b03758ed8b Cleanup OCR app code and link registration
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-24 15:37:18 -04:00
Roberto Rosario d7818b64b0 Support deleting the parsed content of a document
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-24 15:36:32 -04:00
Roberto Rosario fb53726888 Update translations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-24 01:21:02 -04:00
Roberto Rosario 8da1a64410 Add recursive option to Docker entrypoint chown
GitLab issue #668. Thanks to John Wice (@brilthor)
for the report.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-24 00:24:35 -04:00
Roberto Rosario 62430bf341 Deregister workflow created event from workflows
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-24 00:16:41 -04:00
Roberto Rosario 792aa64829 Add OCR content deleted event
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-24 00:15:23 -04:00
Roberto Rosario e62e684107 Simplify DOCTYPE
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-23 23:49:47 -04:00
Roberto Rosario a3d63dce80 Increase maximum scale and enable user scalable
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-23 23:45:19 -04:00
Roberto Rosario 8adb342e24 Add alt attribute to most used img tags
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-23 23:36:06 -04:00
Roberto Rosario c9567d0c6d Add support for deleting the OCR content
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-23 16:31:04 -04:00
Roberto Rosario 907e2213e9 Update jQuery to version 3.4.1
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-23 15:49:58 -04:00
Roberto Rosario dea3bbdf09 Update Django to version 1.11.24
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-09-23 15:34:09 -04:00
Roberto Rosario 61c6562860 Tweaked the jstree component's appearance
Improve usage with long cabinet labels.
Thanks for forum user @briboe for the report.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-23 13:58:29 -04:00
Roberto Rosario 8322bd3a27 Rename workflow action test modules
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-23 13:23:19 -04:00
Roberto Rosario 11898a36fe Add initial release notes for version 3.2.8
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-23 13:20:16 -04:00
Roberto Rosario 2d97024d93 Add cabinet add and remove workflow actions
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-23 02:54:52 -04:00
Roberto Rosario d543a71909 Update document indexing URLs as per v3.3 layout
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-23 01:33:23 -04:00
Roberto Rosario c652a6c7f6 Merge branch 'versions/micro' of gitlab.com:mayan-edms/mayan-edms into versions/micro 2019-09-22 21:16:25 -04:00
Roberto Rosario 1bc3b58d4e Return empty queryset for non authenticated users
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-22 21:15:31 -04:00
Roberto Rosario 4e6e4789e3 Update translations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-22 21:15:10 -04:00
Roberto Rosario d1ba081fb7 Reorganize and speed up document API tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-22 20:34:37 -04:00
Roberto Rosario 03c63bcf80 Update git branches section
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-11 19:27:07 -04:00
Roberto Rosario f7789fa6da Clean up documentation configuation file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-08 19:38:01 -04:00
Roberto Rosario d190dbca03 Put file cache label column first
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-04 14:53:24 -04:00
Roberto Rosario 4384452423 Update file cache model
Index the name field. Add help texts for maximum size and current
size methods.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-04 14:53:19 -04:00
Roberto Rosario 0d263c2b76 Update translations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-04 03:00:06 -04:00
Roberto Rosario 76fef4f247 Enable web links app tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-30 05:23:14 -04:00
Roberto Rosario f5d0e4d560 Add missing line
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-30 05:23:05 -04:00
Roberto Rosario 4b3ab82ee2 Fix autoadmin tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-29 23:51:57 -04:00
Roberto Rosario f8eda67bd5 Add support for changing system messages position
GitLab issue #640. Thanks to Matthias Urhahn (@d4rken).

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-29 23:41:22 -04:00
Roberto Rosario 58bcf20a46 Remove tests * imports
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-29 23:10:28 -04:00
Roberto Rosario 49979dede5 Merge remote-tracking branch 'origin/versions/micro' into feature/merge_micro
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-29 00:07:18 -04:00
uhk 09f481f5f0 Unify all line endings to be Linux style.
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-28 23:51:59 -04:00
Roberto Rosario 27228093c0 Merge branch 'versions/micro' 2019-08-28 17:55:21 -04:00
Roberto Rosario b329ed7618 Update build number
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-28 17:32:09 -04:00
Roberto Rosario 373a712669 Bump version to 3.2.7
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-28 17:31:08 -04:00
Roberto Rosario 734ca02a95 Warning cleanup
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-28 17:29:56 -04:00
Roberto Rosario 04b19f8d2e Add book link
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-28 17:29:43 -04:00
Roberto Rosario fce0601d25 Set release date
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-28 17:20:31 -04:00
Roberto Rosario 54769bf22a Adjust body after new AJAX content
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-28 03:25:29 -04:00
Roberto Rosario 7dda3225b3 Update book links
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-27 22:44:11 -04:00
Roberto Rosario f303cdfe95 Update book links
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-27 22:43:53 -04:00
Roberto Rosario b5ac83767d Add center book image
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-27 22:36:24 -04:00
Roberto Rosario 3ad035adcb Add center book image
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-27 22:35:58 -04:00
Roberto Rosario e9231bc47c Add book link to readme
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-27 19:31:12 -04:00
Roberto Rosario 533e2e344c Add book link to readme
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-27 19:30:27 -04:00
Roberto Rosario 649ef8151c Don't show system alerts under floating elements
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-27 19:21:06 -04:00
Roberto Rosario 69c925ffd3 Unify all line endings to be Linux style
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-27 19:07:17 -04:00
Roberto Rosario 8e34bc02b3 Add automatic adjustment of HTML body padding
Closes GitLab issue #643. Thanks to Light Templar
(@LightTemplar) for the report.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-27 18:59:08 -04:00
Roberto Rosario a250919acc Merge remote-tracking branch 'origin/versions/micro' into features/micro_merge
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-25 23:48:12 -04:00
Roberto Rosario 38980e5f75 Rename test method names for clarity
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-25 22:06:34 -04:00
Roberto Rosario 666c3324e8 Synchronize language translations
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-25 21:55:14 -04:00
Roberto Rosario 5627a3d247 Merge branch 'versions/micro' of gitlab.com:mayan-edms/mayan-edms into versions/micro 2019-08-24 20:08:53 -04:00
Roberto Rosario cb7dbaf609 Backport individual index rebuild support
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-24 20:07:59 -04:00
Roberto Rosario 7cba63f403 Fix base test class mixin inheritance
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-24 15:53:55 -04:00
Roberto Rosario 2f6cfcbc4f Rename MAYAN_USER_GUID variable to MAYAN_USER_GID
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-23 03:42:22 -04:00
Roberto Rosario 2af136356d Update the Docker entrypoint UID and GUID code
Update the ownership of files when the UID of GUID are changed.
GitLab issue #650.

Allow changing the GID of the mayan user to existing values.
GitLab issue #652. Thanks to Fabian (@ruffy91) for both reports.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-23 03:37:40 -04:00
Roberto Rosario 7a8dad5a3c Increase mailing profile password field length
Increse from 48 to 128 characters. GitLab issue #657.
Thanks to sigsec (@sigsec) for the report.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-22 03:53:38 -04:00
Roberto Rosario 3a0226ac22 Fix document template column field.
GitLab issue #655. Thanks to Christian Wiegand (@christianwgd) for the
report.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-22 00:27:51 -04:00
Roberto Rosario cb14224fde Add extlinks entry to reference forum topics
Allow adding links to forum topics with ease in the
documentation.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-22 00:09:24 -04:00
Roberto Rosario e45443fdea Fix document cabinet list API view
Thanks for forum user "jere" for the report. Forum topic 1039.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-22 00:04:11 -04:00
Roberto Rosario b19b602a53 Add reference to GitLab issue #654
Thanks to Lucius Schaerer (@lschaer1) for the report.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 19:32:52 -04:00
Roberto Rosario ec2dde7483 Add internal_name field to workflow serializer
Fixes workflow API creation view.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 19:30:08 -04:00
Roberto Rosario c94ed44476 Remove redundant Celery queue declarations
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 14:06:32 -04:00
Roberto Rosario eff18b5823 Update changelog
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 13:53:26 -04:00
Roberto Rosario 30f3d11375 Disable pagination current page button
Current page button was clickable and would cause the
single page navigation to jump to the home view.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 13:51:16 -04:00
Roberto Rosario 871a800213 Add version 3.2.7 release notes
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 04:29:10 -04:00
Roberto Rosario e7faece342 Reorganize and improve checkouts tests
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 04:25:56 -04:00
Roberto Rosario 8bcd2c247f Rename checkout views and URLs for clarity
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 04:25:16 -04:00
Roberto Rosario 605e6356a7 Use NamedSplitWidget for the checkout form
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 04:24:53 -04:00
Roberto Rosario 9c202f7087 Add UserTestMixin to the base test class
Allows calling _create_test_users in tests.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 03:54:31 -04:00
Roberto Rosario c833b7a74c Add as_id_list helper for tests
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 03:54:05 -04:00
Roberto Rosario e002f317a4 Add NamedMultiWidget class
Works as Django's MultiWidget but instead of a list
of subwidgets, uses a dictionary of subwidgets with names
as the keys. The named nature is less error prone than Django's
index numbered subwidgets.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-08-21 03:52:07 -04:00
Roberto Rosario 6503d9474d Fix remaining tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 16:42:31 -04:00
Roberto Rosario e7734def58 Fix documents app failing tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 05:03:24 -04:00
Roberto Rosario f50d22b382 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 00:22:28 -04:00
Roberto Rosario ad37228466 Add converter layers, redactions app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 00:21:03 -04:00
Roberto Rosario 0917bd57b3 Add ACL filter support for case 6
Support inherited field of a related field that is Generic
Foreign Key.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 00:09:56 -04:00
Roberto Rosario 4dd270e75b Add mixins to retrieve content type object
Add ContentTypeViewMixin and ExternalContentTypeObjectMixin.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-05 00:27:15 -04:00
Roberto Rosario 3428c6aa20 Update ExternalObjectMixin
Call ModelPermission to select the proper manager for the queryset
when specifying just the model.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-05 00:23:45 -04:00
Roberto Rosario eb1fb8511b Move manager get code to ModelPermission class
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-05 00:20:06 -04:00
Roberto Rosario bdbc7ef086 Add rectangle drawing transformations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:55:58 -04:00
Roberto Rosario abea863184 Fix metadata widget overflow on long values
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:55:24 -04:00
Roberto Rosario d394583729 Remove HTML title anchor on disabled pages
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:54:51 -04:00
Roberto Rosario 4db59c0808 Disable page links on disabled pages
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:54:21 -04:00
Roberto Rosario 12f24316a1 Improve page navigation limit logic
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:53:35 -04:00
Roberto Rosario ef0843276b Support source column widget condition
- Add default HTML anchor widget for source columns that
  return and absolute URL.
- Fix CSS pointer behavior on list item panel headers.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:51:43 -04:00
Roberto Rosario e20102333e Update URLs for uniformity
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-30 04:46:21 -04:00
Roberto Rosario 4ecf075fd4 Add support for disabling document pages
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-30 03:11:20 -04:00
Roberto Rosario cc81a6905a Add kwargs
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-30 03:10:25 -04:00
Roberto Rosario 3c9454160f Support custom model managers for check_access()
Allow app to specify which model manager will be used
when creating the queryset that is passed to check_access.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-30 03:10:15 -04:00
Roberto Rosario 2e1600c334 Remove obsolete DocumentPageCachedImage manager
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-29 02:53:07 -04:00
Roberto Rosario 3e9f30cb91 Reduce the number of pager buttons
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-29 02:44:31 -04:00
Roberto Rosario a3a78f755d Display thousand commas in numeric dashboard
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-29 02:36:57 -04:00
Roberto Rosario 3988dedebf Add missing migrations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-28 22:36:51 -04:00
Roberto Rosario ff34c7d00a Add cabinet label help text
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-28 22:36:17 -04:00
Roberto Rosario fe2de33e98 Display column help text as a tooltip
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-28 22:35:52 -04:00
Roberto Rosario 3efd1bd89d Add web links app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-27 01:08:54 -04:00
Roberto Rosario ea516cbc23 Correct order of super in file caching test mixin
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-27 00:56:40 -04:00
Roberto Rosario 52ad3e7418 Update the URL class to work with Python 3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 23:23:18 -04:00
Roberto Rosario a001b4bbb3 Move new version block to its own test case
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 18:20:23 -04:00
Roberto Rosario 31ed0e1ac8 Clean non ASCII character in docstring
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 18:19:56 -04:00
Roberto Rosario 9ad82695d9 Add cleaning up of Python 3 files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 18:19:38 -04:00
Roberto Rosario 69af4dd6b3 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 18:03:13 -04:00
Roberto Rosario 1c7ceca432 Add file caching tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 15:49:07 -04:00
Roberto Rosario c05dcf5b05 Remove fs_cleanup file_descriptor argument
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 15:16:54 -04:00
Roberto Rosario 85b05dd6ec Add kwargs to fs_cleanup usage
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 15:16:37 -04:00
Roberto Rosario 9752584135 Rename file_descriptor usage to file_object
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 15:14:53 -04:00
Roberto Rosario fd0d5728a1 Improve toolbar display logic
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 02:34:01 -04:00
Roberto Rosario 88863fd6d0 Fix typo in Cache get_model
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 02:23:09 -04:00
Roberto Rosario 3a7025d9c4 Add exists method to cache file model
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 02:22:50 -04:00
Roberto Rosario 150c5d8cc2 Make cache columns sortable
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 02:22:34 -04:00
Roberto Rosario 93ba547350 Convert workflow previews app to use file caching
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 02:22:04 -04:00
Roberto Rosario f920dffc01 Remove document model cache invalidation
The cache invalidation is now handled by the file caching app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 01:33:41 -04:00
Roberto Rosario c2e99e6efb Purge cache partition before deleting them
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 01:33:14 -04:00
Roberto Rosario ff6674cc4a Fix workflow preview under Python 3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 01:24:55 -04:00
Roberto Rosario 669dfeb30a Use common app serialization util
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 01:21:01 -04:00
Roberto Rosario 6635bb4235 Tweak CSS to unify widths in plain template
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-25 20:36:47 -04:00
Roberto Rosario 88bc29e4d7 Update the file caching app
- Add view to list available caches.
- Add links to view and purge caches.
- Add permissions.
- Add events.
- Add purge task.
- Remove document image clear link and view.
  This is now handled by the file caching app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-25 02:24:33 -04:00
Roberto Rosario 9315776926 Add missing migrations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-25 00:52:21 -04:00
Roberto Rosario 40a306996c Update transformation tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-25 00:48:47 -04:00
Roberto Rosario 033cecd946 Move pagination navigation inside the toolbar
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-25 00:44:07 -04:00
Roberto Rosario ee63829e7f Update runserver targets to run nonthreaded
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 16:07:28 -04:00
Roberto Rosario e4bc007bba Unify lists header markup
Convert list headers into a separate template

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 16:06:45 -04:00
Roberto Rosario 84b329f661 Fix more test case method resolution
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 15:29:25 -04:00
Roberto Rosario 4c73239dde Fix http.URL class final URL generation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 03:20:57 -04:00
Roberto Rosario 2e12a6af41 Fix test case method resolution
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 02:58:29 -04:00
Roberto Rosario 3d7e6b6fbe Update GUID to GID in documentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 02:50:55 -04:00
Roberto Rosario 6f907d156a Remove task inspection from task manager app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 02:49:37 -04:00
Roberto Rosario fac77a2f73 Workaround for the OCR task-inside-task issue
Thanks to Jakob Haufe (@sur5r) for the solution.
https://gitlab.com/sur5r/mayan-edms/commit/2423254aa4fd85c4420b59f846c05b1a89f5ee99

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 02:25:49 -04:00
Jiri B 0c3b6e5388 I was shocked my PDFs were deleted from source directory thus this needs to be clarified. 2019-07-24 02:21:01 -04:00
Roberto Rosario c51f8d2135 Merge branch 'patch-1' into 'master'
Source watch folder files are removed when upload is completed

See merge request mayan-edms/mayan-edms!58
2019-07-24 06:19:52 +00:00
Roberto Rosario e652c7208c Move Celery dependencies to task_manager app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 02:17:37 -04:00
Roberto Rosario 53928b2ab6 Run EXIFTOOL always regardless of MIME type
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 01:57:20 -04:00
Roberto Rosario afc6b54520 Update release notes and changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 01:56:09 -04:00
Roberto Rosario 070355033e Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:41:44 -04:00
Roberto Rosario 0029d3074f Modify PYTHONPATH in-place
Avoid including a hard coded path.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:40:10 -04:00
Roberto Rosario 4558894faf Include devpi-server as a development dependency
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:39:42 -04:00
Roberto Rosario adeea6247f Update Docker stack file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:38:48 -04:00
Roberto Rosario 3563297d48 Update default Docker compose file
- Launch a Redis container.
- Include optional services examples.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:34:58 -04:00
Roberto Rosario 1e1b4dedf4 Update Docker make file
- Include PIP proxies.
- Add docker compose targets.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:22:30 -04:00
Roberto Rosario d65bbb718a Update Docker entrypoint
- Use bash instead of sh/dash to support argument slicing.
- Default Celery worker concurrency to 0 (auto).
- Set DJANGO_SETTINGS_MODULE environment variable to make it
  available to sub processes.
- Add entrypoint commands to run single workers, single gunicorn
  or single celery commands like "flower".
- Update Gunicorn to use sync workers.
- Add platform template to return queues for a worker.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:15:12 -04:00
Roberto Rosario 5352c6ac6f Update Docker image
- Remove Redis from the Docker image.
- Add Celery flower.
- Add Python 3 packages needed for in-container pip installs.
- Fix typos.
- Allow PIP proxying.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:12:11 -04:00
Roberto Rosario cb7d5bf82a Update djcelery imports
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-20 00:15:19 -04:00
Roberto Rosario 41a7d00e9e Fix setting typo
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-19 20:05:12 -04:00
Roberto Rosario 82d7339a64 Update documentation Docker chapter
Update to show the new MAYAN_DATABASES setting. Remove
settings that are not Docker exclusive.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-19 20:04:21 -04:00
Roberto Rosario e889021f43 Update command options
Match the rename of the installjavascript command rename
to installdependencies.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-19 20:02:40 -04:00
Roberto Rosario d3a53fb53a Remove unused SETTING_FILE_TEMPLATE
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-19 20:02:00 -04:00
Roberto Rosario b6565effb5 Support wildcard MIME type associations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-19 01:04:04 -04:00
Roberto Rosario cf43ef2f73 Fix setting import
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 05:19:40 -04:00
Roberto Rosario 6ca2845d19 Update requirement files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 04:44:00 -04:00
Roberto Rosario ab601f9180 Initial commit to support Celery 4.3.0
Merges 55e9b2263c from versions/next
with code from GitLab issue #594 and GitLab merge request !55.

Thanks to Jakob Haufe (@sur5r) and Jesaja Everling (@jeverling)
for much of the research and code updates.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 04:30:11 -04:00
Roberto Rosario 0b42567179 Remove direct Celery queue update
Queue updates are handled by the task manager app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 02:41:00 -04:00
Roberto Rosario 030ddd68e0 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 01:13:00 -04:00
Roberto Rosario 649571ebb1 Add kwargs
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 00:48:22 -04:00
Roberto Rosario b99bb88008 Update OCR manager to use document cache
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 00:47:28 -04:00
Roberto Rosario fd08a23339 Soften top bar shadow
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 16:21:24 -04:00
Roberto Rosario 917ec55ada Style tweaks
Enable dashboard widget icon shadows. Make block button text
shadow more pronounced.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 16:18:36 -04:00
Roberto Rosario ec4644b5c9 Fix typo on open method
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 01:28:55 -04:00
Roberto Rosario ff86c4c518 Unbind non applicable workflow runtime proxy links
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 01:28:31 -04:00
Roberto Rosario daebf2ddcc Don't react on paginator current page click
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 01:27:44 -04:00
Roberto Rosario 49a16acdf5 Backport panel selection and panel toolbar
Support selection by panel body clicking. Styling changes for highlighted panel.
Self-display multiple item action list. New select all button.
Fix fancybox click area on thumbnail display.
Remove the multi item form processing view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 01:24:57 -04:00
Roberto Rosario 8c064c953a Add file caching app
Convert document image cache to use file cache manager app.
Add setting DOCUMENTS_CACHE_MAXIMUM_SIZE defaults to 500 MB.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-15 01:33:32 -04:00
Roberto Rosario 3c7a23a5a9 Add support for setting post update callbacks
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-15 01:24:22 -04:00
Jiri B 01b2ad3ddc I was shocked my PDFs were deleted from source directory thus this needs to be clarified. 2019-07-14 10:15:35 +00:00
Roberto Rosario 6bcf35bef5 Add database conversion removal explanation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 05:17:15 -04:00
Roberto Rosario 7ef6102876 Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:52:34 -04:00
Roberto Rosario 4363bba0fe Remove encapsulate
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:50:37 -04:00
Roberto Rosario e2f2181ebb Complete multiple check in/out support
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:49:39 -04:00
Roberto Rosario d4f7e2cd16 Support creating multiple test users
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:49:09 -04:00
Roberto Rosario 058e36b4a9 Introspect proxy's parent only it is a model
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:48:00 -04:00
Roberto Rosario 1ddd5f26b1 Support menu inheritance
Proxy models will now inherit the menus from their parents.
Added to allow checked out documents to show multi item links
of their parents.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:40:48 -04:00
Roberto Rosario 44652d49fb Add test utility to return an id_list
Makes creating an id_list for testing from a list test instances
easier.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:39:48 -04:00
Roberto Rosario 119c1bde76 Add user test mixin to base test class
Allow tests to create test users.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:39:18 -04:00
Roberto Rosario ed227b4111 Emphasize source column labels
Use the same CSS style as the view's extra_columns.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:38:06 -04:00
Roberto Rosario c44090aca6 Initial commit to support multidocument checkouts
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 20:00:17 -04:00
Roberto Rosario 8a7da6a103 Update release notes closed issues
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 02:26:24 -04:00
Roberto Rosario 3e3b1f75a0 Remove django-environ
Work done in 9564db398f

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 02:02:45 -04:00
Roberto Rosario 1ab7b7b9b1 Backport FakeStorageSubclass from versions/next
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 01:56:06 -04:00
Roberto Rosario 3fab5c1427 Return empty dict if there is no config file
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 01:31:37 -04:00
Roberto Rosario 516c3aeb2c Add default for OCR backend argument setting
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 01:31:05 -04:00
Roberto Rosario 3ac1000b46 Merge remote-tracking branch 'origin/features/move_django_settings' into merge_features 2019-07-11 01:21:40 -04:00
Roberto Rosario 4adeefc978 Merge remote-tracking branch 'origin/features/move_yaml_code' into merge_features
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 01:21:23 -04:00
Roberto Rosario 8bc4b6a95e Move YAML code to its own module
Code now resides in common.serialization in the form
of two new functions: yaml_load and yaml_dump.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-10 19:35:42 -04:00
Roberto Rosario 37e85590e8 Move Django and Celery settings
Django settings now reside in the smart settings app.
Celery settings now reside in the task manager app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-10 19:02:22 -04:00
Roberto Rosario e371124bca Merge branch 'versions/micro' 2019-07-10 03:19:26 -04:00
Roberto Rosario 3621af7e7d Update build string
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 03:19:09 -04:00
Roberto Rosario 1e1e930e88 Bump version to 3.2.6
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 03:18:15 -04:00
Roberto Rosario d04f1eb9a5 Improve Setting check changed test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 03:17:04 -04:00
Roberto Rosario 6dde3e1ac3 PEP8 cleanup
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 03:14:12 -04:00
Roberto Rosario efb8a35ea4 Update changelog, add release notes for v3.2.6
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 03:08:16 -04:00
Roberto Rosario 25df502cb0 Merge branch 'versions/micro' 2019-07-10 02:51:47 -04:00
Giacomo Cariello 5c91ab2d73 Fix thumbnail generation issue (#637). 2019-07-10 02:51:11 -04:00
Roberto Rosario ea4f9d6c4e Merge branch 'master' into 'master'
Fix thumbnail generation issue (#637).

See merge request mayan-edms/mayan-edms!57
2019-07-10 06:49:13 +00:00
Roberto Rosario 6d0b7b1fc0 Speed up document indexing view tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 01:59:23 -04:00
Roberto Rosario 627e9cb1f0 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 01:47:35 -04:00
Roberto Rosario 4fcd60194e Add trashed date time label and position
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 01:47:01 -04:00
Roberto Rosario 644cd57a0f Fix document icon used in workflow runtime links
Links are using the document type instead of the document icon.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 01:44:37 -04:00
Roberto Rosario f6febdd221 Remove the smart settings app * import
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 01:40:13 -04:00
Roberto Rosario 78a0189e1c Add YAML env variables support to platform app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 00:34:09 -04:00
Roberto Rosario 91b0b2d9c3 Update smart setting's app URLs for uniformity
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:46:09 -04:00
Roberto Rosario 8a54deba3d Unify individual database configuration options
All database configuration is now done using MAYAN_DATABASES to
mirror Django way of doing database setup.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:45:30 -04:00
Roberto Rosario 22da1e0a78 Update import
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:43:39 -04:00
Roberto Rosario c9668d62e5 Move mailer defaults to the literals module
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:43:15 -04:00
Roberto Rosario 7a01a77c43 Remove smart_settings * import
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:42:57 -04:00
Roberto Rosario 9564db398f Backport configuration file improvements
Remove support for quoted entried. Support unquoted entries. Support
custom location for the config files.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:40:20 -04:00
Giacomo Cariello f46a32580d Fix thumbnail generation issue (#637). 2019-07-08 17:33:30 +02:00
Roberto Rosario 7faa24eb7b Remove database conversion command
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:42:11 -04:00
Roberto Rosario 51f278301b Sort list of apps
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:40:24 -04:00
Roberto Rosario 2cc35c3c61 Remove outdated contrib scripts
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:37:58 -04:00
Roberto Rosario 8c73fda1ae Rename installjavascript to installdependencies
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:35:14 -04:00
Roberto Rosario 8811c8269f Rename document states apps view and URLs.
Object layout: WorkflowTemplate, WorkflowInstance, WorkflowRuntimeProxy,
WorkflowTemplateState, WorkflowTemplateTransition.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:21:58 -04:00
Roberto Rosario f36f99c5fb Split workflow URL patterns
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 01:23:49 -04:00
Roberto Rosario 0e972eff06 Fix typos and PEP8 warnings
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 01:12:25 -04:00
Roberto Rosario 7913b5ddcc Sort dictionary entry
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 01:06:58 -04:00
Roberto Rosario 1c86ea5b5b Backport individual index rebuild support
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 01:03:39 -04:00
Roberto Rosario ec6a3bd960 Move AJAX spinner to the left of the top bar
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 00:43:14 -04:00
Roberto Rosario 080553c797 Add trashed date time label and position
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 00:38:47 -04:00
Roberto Rosario 08ee07e652 Remove duplicated trashed document previews
Side effect of source column inheritance added in
06c3ef6583.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 00:37:47 -04:00
Roberto Rosario d7d77fcb55 Backport workflow email action
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 00:27:29 -04:00
Roberto Rosario 929cc7d374 Encode settings YAML before hashing
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-07-06 17:16:04 -04:00
Roberto Rosario bb5324ef50 Encode settings YAML before hashing
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-07-06 17:14:44 -04:00
Roberto Rosario 4c212f6ea4 Backport workflow context and field support
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 04:13:26 -04:00
Roberto Rosario 941356ed69 Add a general use YAML validator
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 04:11:43 -04:00
Roberto Rosario 97804b255b Add and exclude Index instance columns
Exclude inherited columns from the Index models.
Add the label columns to Index instances.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 04:10:41 -04:00
Roberto Rosario 06c3ef6583 Add source column inheritance and exclusions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 04:09:44 -04:00
Roberto Rosario 6cd857e2bf Use Select2 widget for the document type selection form
This was committed in 109fcba795 without
adding the actual change.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 02:44:00 -04:00
Roberto Rosario fbb0f0b9bd Backport workflow preview refactor
GitLab issue #532.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 02:41:16 -04:00
Roberto Rosario 9e068c3e83 Add topbar shadow
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 02:01:48 -04:00
Roberto Rosario 72a3807354 Add vertical main menu
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 01:53:45 -04:00
Roberto Rosario 109fcba795 Use Select2 for the document type selection form
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 23:26:11 -04:00
Roberto Rosario 01380e0572 Merge branch 'versions/minor' of gitlab.com:mayan-edms/mayan-edms into versions/minor 2019-07-05 23:23:50 -04:00
Roberto Rosario 5146c6d202 Tweak setup buttom border and tag shadows
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 23:23:34 -04:00
Roberto Rosario 300bdbfc8a Tweak setup buttom border and tag shadows
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 21:34:20 -04:00
Roberto Rosario a0331e0236 Add support for icon shadows
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 21:26:45 -04:00
Roberto Rosario b405896a44 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 16:40:01 -04:00
Roberto Rosario fbe043b4eb Bump version to 3.2.5
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 16:39:17 -04:00
Roberto Rosario 3a8fade8f8 Disable test suit on master branch pushes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 16:38:20 -04:00
Roberto Rosario 3fb1e079b9 Code cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 16:35:43 -04:00
Roberto Rosario 40b44cba35 Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 16:33:34 -04:00
Roberto Rosario d5b1c02310 Update depedencies to their latest bug fix version
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 15:45:24 -04:00
Roberto Rosario 38c33b6703 Update Django to version 1.11.22
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 15:28:39 -04:00
Roberto Rosario 557a20d6cc Update translations
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-05 03:10:42 -04:00
Roberto Rosario 68a3483470 Merge branch 'pt-locale-msg' into 'master'
Pt locale msg

Translations for pt-PT

See merge request mayan-edms/mayan-edms!56
2019-07-05 05:18:26 +00:00
David Miguel 4de13f23b7 Pt locale msg 2019-07-05 05:18:26 +00:00
Roberto Rosario fba6d3b101 Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-05 01:02:53 -04:00
Roberto Rosario 7902074390 Add alert when settings are changed
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-05 00:58:50 -04:00
Roberto Rosario 3ce08cc9c0 Merge branch 'versions/minor' into features/setting_change_warning 2019-07-05 00:48:37 -04:00
Roberto Rosario 1ae5b8c420 Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-05 00:47:36 -04:00
Roberto Rosario 2af03eeca8 Fix cabinet and tags upload wizard steps
Steps were missing some entries. Closes GitLab issue #632.
Thanks to Matthias Urhahn (@d4rken) for the report.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-05 00:28:01 -04:00
Roberto Rosario b8345797d6 Merge branch 'versions/minor' into features/fix_cabinet_wizard 2019-07-04 01:34:55 -04:00
Roberto Rosario 1377ff0504 Add class method to detect setting changes
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-07-03 11:10:35 -04:00
Roberto Rosario 5aa3886867 Fix cabinet upload wizard step
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-07-02 21:24:12 -04:00
Roberto Rosario 1fe45e2613 Add data migration to the file metadata app
Synchronizes the document type settings model of existing
document types.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-02 14:47:12 -04:00
Roberto Rosario 68966e4ad0 Update troubleshooting topic
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-02 14:34:54 -04:00
Roberto Rosario a8fcc862f1 Don't register the create event to the instance
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-01 15:45:15 -04:00
Roberto Rosario f9e539f25c Don't error out if the settings are set to blank
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-01 01:13:02 -04:00
Roberto Rosario 96d631a395 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-29 02:51:45 -04:00
Roberto Rosario f5bbd484cd Bump version to 3.2.4
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-29 02:50:51 -04:00
Roberto Rosario 8b2690c785 Remove unused import
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-29 02:50:23 -04:00
Roberto Rosario 4cf28af5cf Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-29 02:48:52 -04:00
Roberto Rosario d48f2628a3 Add sources app metadata help text migration
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-29 02:48:23 -04:00
Roberto Rosario e3d2fef687 Update compiled translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-29 02:47:05 -04:00
Roberto Rosario 6eb105be94 Update source translation files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-29 02:21:29 -04:00
Roberto Rosario 24dcdfd328 Improve email metadata support
The feature can now work on emails with nested parts.
Also the metadata.yaml attachment no longer needs to be the
first attachment.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-29 02:12:54 -04:00
Roberto Rosario 305f4d1afd Reduce code used to set bulk metadata
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-29 02:10:22 -04:00
Roberto Rosario ff03186a2c Remove the INSTALLED_APPS setting
The INSTALLED APPS setting is now replaced by the
new COMMON_EXTRA_APPS and COMMON_DISABLED_APPS.

Exposing the INSTALLED_APPS setting had the side effect
of blocking new apps that were added in new versions.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-28 23:26:29 -04:00
Roberto Rosario 8141748677 Add redirection after trashing a document
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-28 23:05:54 -04:00
Roberto Rosario 26fdaf867f Update changelog and release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-28 23:04:17 -04:00
Roberto Rosario bf4e499c9d Fix IMAP4 store flags argument, GitLab issue #606
Python's documentation is incorrect, argument name is flag_list.
Closes GitLab issue #606. Thanks to Samuel Aebi (@samuelaebi)
for the report and debug information.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-28 22:29:05 -04:00
Roberto Rosario daef777173 Use polylines for the edge splines
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-28 15:49:25 -04:00
Roberto Rosario 0e8dbea244 Hightlight initial state
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-28 15:39:01 -04:00
Roberto Rosario 46eda1a20b Add actions to workflow preview
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-28 15:38:52 -04:00
Roberto Rosario d2c89caece Add transition form comment help text
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-28 15:38:42 -04:00
Roberto Rosario b03ea61fdb Merge branch features/user_management_dashboard_widgets
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-28 13:45:10 -04:00
Roberto Rosario 80065279cb Fix install typos and missing commands
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-28 11:46:49 -04:00
Roberto Rosario d636174c85 Add test case database connection check
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-27 11:52:11 -04:00
Roberto Rosario 22aa14282b [Fix] Change to relative imports
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-27 08:42:03 -04:00
Roberto Rosario bdde894765 [FIX] Remove tag create document registration
Make no sense to have the tag create event register to existing tags.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-27 08:41:14 -04:00
Roberto Rosario 4d7c0552bd Fix help text of the platformtemplate command
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-22 00:04:34 -04:00
Roberto Rosario 575e42357a Update 3.2.2 release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-21 14:43:04 -04:00
Roberto Rosario 487c250f3e Merge branch 'master' into versions/minor 2019-06-21 11:52:40 -04:00
Roberto Rosario 0ae214f2fd Support configurable GUnicorn timeouts
Defaults to current value of 120 seconds.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-21 11:51:01 -04:00
Roberto Rosario 037b942c4a Update release date of version 3.2.3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-21 11:48:01 -04:00
Roberto Rosario dcbf777429 Merge branch 'defect/628-positional-arguments-for-mailbox' into 'master'
Defect/628 positional arguments for mailbox

Closes #628

See merge request mayan-edms/mayan-edms!51
2019-06-21 13:35:23 +00:00
Jesaja Everling 0c5a0b54c1 Defect/628 positional arguments for mailbox 2019-06-21 13:35:23 +00:00
Roberto Rosario 0f5f8c0dd1 Update build number
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-21 00:03:53 -04:00
Roberto Rosario 2d875ff044 Bump version to 3.2.3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-21 00:01:37 -04:00
Roberto Rosario a77708ebe6 Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-06-20 23:52:00 -04:00
Roberto Rosario 440822896a Fix the Django SMTP backend username field name
Increase the Django STMP username. GitLab issue #625. Thanks to Jesaja
Everling (@jeverling) for the report and the research.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-20 23:42:16 -04:00
Roberto Rosario 6f4802ac6a Fix mailing profile log columns mappings
GitLab issue #626. Thanks to Jesaja Everling (@jeverling)
for the report.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-20 23:14:33 -04:00
Roberto Rosario c21a9afcfa Merge branch 'master' into versions/minor 2019-06-19 23:53:04 -04:00
Roberto Rosario 0494fa9e6a Merge branch 'defect/619-fix-poplib-initialization' into 'master'
Fix kwargs for poplib.POP3_SSL and poplib.POP3

Closes #619

See merge request mayan-edms/mayan-edms!50
2019-06-20 03:51:31 +00:00
Jesaja Everling e09bd48d65 Fix kwargs for poplib.POP3_SSL and poplib.POP3 2019-06-20 03:51:31 +00:00
Roberto Rosario 97887c4e9c Allow disabling the random primary key test mixin
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-19 23:05:01 -04:00
Roberto Rosario 90e884e502 Fix test permission use
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-19 10:22:56 -04:00
Roberto Rosario ea7b4e46ac Update build number
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-19 00:40:02 -04:00
Roberto Rosario e0d74d54b1 Update release data and bump version to 3.2.2
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-19 00:39:13 -04:00
Roberto Rosario fbd2b43b5e Update the task_check_interval_source reference
GitLab issue #617. Thanks to Lukas Gill (@lukkigi) for
the report and debug information.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-19 00:33:44 -04:00
Roberto Rosario 03e59ed964 Fix document parsing tool view typo
Closes GitLab issue #615. Thanks to Tyler Page (@iamtpage) for the
report.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-19 00:19:18 -04:00
Roberto Rosario c3b1c4e173 Fix document type change view
Closes GitLab issue #614. Thanks to Christoph Roeder (@brightdroid)
for the report.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-06-18 22:15:13 -04:00
Roberto Rosario 43260b87c5 Remove OpenBSD from OS list
GitLab issues #594, #612.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-16 15:09:49 -04:00
Roberto Rosario 5b78a7c60c Remove old Docker READMEs
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-15 05:13:54 -04:00
Roberto Rosario 2e5ee2740a Remove repeated documentation entry
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-15 04:53:40 -04:00
Roberto Rosario 85b8d281cc Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-15 04:53:23 -04:00
Roberto Rosario 69d33bef7c Fix workflow proxy no-result message
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-15 03:35:04 -04:00
Roberto Rosario 3f86dfc902 Fix typo
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-15 02:25:00 -04:00
Roberto Rosario 111250fd99 Update usage of "an user"
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-15 02:17:55 -04:00
Roberto Rosario f17d13d68f Delete backup config without raising exceptions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 03:29:21 -04:00
Roberto Rosario 1f5c81eaf5 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 03:02:29 -04:00
Roberto Rosario b4dafb20ad Bump version to 3.2.1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 03:01:40 -04:00
Roberto Rosario 70dab1fd30 Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 02:59:19 -04:00
Roberto Rosario bb3e010a93 Collapse sidebar on small screen
Display sidebar at the bottom of the screen on small displays.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 02:38:39 -04:00
Roberto Rosario 4b9043b882 Remove sidebar floar right
Fixes GitLab issue #600. Thanks to Frédéric Sheedy
(@fsheedy) for the report and debug information.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 02:36:59 -04:00
Roberto Rosario 727fe78d8b Add check for app references
Point users to release notes for details when app references are not updated.
GitLab issue #603. Thanks to Vikas Kedia (@vikaskedia) for the report.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 02:16:37 -04:00
Roberto Rosario 7650ef17c0 Use YAML SafeDumper to avoid adding YAML tags
Closes GitLab issue #599. Thanks to Frédéric Sheedy
(@fsheedy) for the report and debug information.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 01:42:15 -04:00
Roberto Rosario 9558c5e6dc Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 00:58:49 -04:00
Roberto Rosario cb1e90e19b Add PostgreSQL troubleshooting entry
MAYAN_DATABASE_CONN_MAX_AGE when used with Gunicorn and a microthreads
backend will have the reverse effect of exhausting the connections
faster as they are not shared between threads.

GitLab issues #523 and #602

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 00:49:30 -04:00
Roberto Rosario b5823358cb Remove repeated release notes entry
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 00:35:48 -04:00
Roberto Rosario dcc8b8b174 Fix sub cabinet creation view
Thanks to Frédéric Sheedy (@fsheedy) for the report.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 00:31:46 -04:00
Roberto Rosario 891861eaf5 Raise errors when DEBUG is True
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-14 00:20:14 -04:00
Roberto Rosario 8d0f14a40c Fix documentation formatting
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-13 12:15:28 -04:00
Roberto Rosario f53a3f7959 Fix docker version file path
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-13 04:12:54 -04:00
Roberto Rosario 1d5972da3b Update build string
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-13 02:43:03 -04:00
Roberto Rosario 8fe90ea7f1 Update release version of docs
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-13 02:42:00 -04:00
Roberto Rosario 037c2b6118 Bump version to 3.2
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-13 02:41:49 -04:00
Roberto Rosario 06307ff29c Remove unused import
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-13 02:39:41 -04:00
Roberto Rosario 0c37685302 Remove copyright date range
Copyright date ranges are not necessary. Berne Convention and all
copyright reciprocity pacts offer protection for at least 50 years
after the death of the author. Copyright is automatic for all countries
in the agreement and equally enforceable.
https://www.copyright.gov/circs/circ38a.pdf

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-13 02:33:13 -04:00
Roberto Rosario 4d52dbde39 Update documentation
Fix typos, expand and update FAQ.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-13 02:20:44 -04:00
Roberto Rosario 9836ca3ef3 Ignore documentation builds
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-13 02:19:23 -04:00
Roberto Rosario 538e0c6f3b Add watchfolder troubleshooting
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-12 03:55:53 -04:00
Roberto Rosario 0ced976b0c Update Docker watch folder chapter
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-12 03:45:11 -04:00
Roberto Rosario 7f43a8d5a3 Add support for locked files for watchfolder
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-12 03:40:13 -04:00
Roberto Rosario 0ae960d96c Add missing metadata app migration
Add migration to update the dotted path of the validators and parsers.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-12 01:28:09 -04:00
Roberto Rosario 2e80c6a00b Collect .html files, required by drf-yasg
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-12 01:16:36 -04:00
Roberto Rosario 590c76bf64 Fix text typos
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-12 00:51:21 -04:00
Roberto Rosario 41f86b35f2 Only patch the bootstrap CSS files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-11 05:26:59 -04:00
Roberto Rosario d70a1ef079 Open files using the Path object directly
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-11 05:26:27 -04:00
Roberto Rosario fa678b09bc Improve settings descriptions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-11 01:12:23 -04:00
Roberto Rosario fe3d2e85c2 Transform the UUID search field based on database
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-11 01:11:46 -04:00
Roberto Rosario 2ce0528712 Only search pages for documents not in trash
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 03:50:22 -04:00
Roberto Rosario e091c07ed6 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 03:43:45 -04:00
Roberto Rosario f66328139e Add document ACLs workflow actions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 03:43:39 -04:00
Roberto Rosario 505e0bd68b Use a queryset for the user search model
Avoid return super admin as search results.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 03:12:20 -04:00
Roberto Rosario 80ebe4ecce Support passing a queryset to the search model
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 03:11:56 -04:00
Roberto Rosario 0f9c226a1e Add sortable role label column
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 03:03:43 -04:00
Roberto Rosario 6789ecf1bb Switch page search to use the DocumentPage model
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 02:59:59 -04:00
Roberto Rosario a008607d40 Support search model list mode
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 02:59:33 -04:00
Roberto Rosario eb32820864 Support search model selection
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 02:30:37 -04:00
Roberto Rosario 3e48a422b7 Return sorted search models
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 02:28:33 -04:00
Roberto Rosario f6c5a4f9cf Add labels for user and group search models
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 02:27:59 -04:00
Roberto Rosario f160de4381 Allow passing search model via querystring
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 02:27:30 -04:00
Roberto Rosario 0d6462831a Deregister ephimeral models from ModelPermissions
Explictly delete the ephimeral models from ModelPermission
registry to avoid them being lookedup in a subsequent tests
where they don't exist.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-10 01:09:37 -04:00
Roberto Rosario 749208b5f8 Update patching code to work on Python 2.7
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-09 15:05:33 -04:00
Roberto Rosario 72ade29f77 Add Latvian translation
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-09 14:51:03 -04:00
Roberto Rosario 325fe3225a Update source translation files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-09 03:25:30 -04:00
Roberto Rosario 30f3a0563c Update build string
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-09 03:16:21 -04:00
Roberto Rosario 62fdec575f Bump version to 3.2rc1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-09 03:15:18 -04:00
Roberto Rosario 7407c67347 Improve access grant and remove action form
Sort content type list of the access grant and remove action.
Use select2 for the content type filed of the access
grant and remove action.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-09 03:12:17 -04:00
Roberto Rosario cbfab25c94 Fix access grant and revoke workflow actions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-09 03:04:36 -04:00
Roberto Rosario 2ae2dfd687 Add support for form media to DynamicFormMixin
Fix tag attach and remove action form media.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-09 02:30:13 -04:00
Roberto Rosario e5c92487de Improve the transition trigger list view
Display event type namespaces in the transition trigger view.
Sort events type list in the transition trigger view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-09 01:58:43 -04:00
Roberto Rosario 8c96567094 Disable hiding page navigation on idle
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-08 21:52:25 -04:00
Roberto Rosario d3041eb2d5 Improve workflow views titles
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-08 21:35:43 -04:00
Roberto Rosario 047f48d39f Rename the label and description field for clarity
Add the 'document' prefix to the field labels for clarirty.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-08 21:28:43 -04:00
Roberto Rosario 34d7ff6e01 Fix tag attach and remove workflow actions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-08 21:25:09 -04:00
Roberto Rosario c7474cae1b Add support for search field transformations
Add search transformation to the document UUID field
to remove dashes.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-08 20:52:59 -04:00
Roberto Rosario 74f333d16c Improve search negation logic
Only dashes at the start of terms and outside of quotes are now
interpreted as negation.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-08 20:47:20 -04:00
Roberto Rosario 6f6ddfbc82 Allow searching documents by UUID
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-08 17:41:53 -04:00
Roberto Rosario 2fcb36c568 Support Google Font dependencies
Allow downloading fonts from Google Font at install time.
Closes GitLab issue #595, thanks to Martin (@efelon) for the
report. Closes re-opened GitLab issue #343.
Remove included Lato font.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-08 17:36:58 -04:00
Roberto Rosario db5511127d Update HTTP workflow action to new requests API
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-04 16:00:19 -04:00
Roberto Rosario 807dd849c5 Add no-result for workflow instance detail view
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-03 20:48:54 -04:00
Roberto Rosario 602774a390 Add note about the new preparestatic command
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-03 20:37:18 -04:00
Roberto Rosario 0b044f1e21 Invert Action Object and Target columns
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-03 20:31:51 -04:00
Roberto Rosario 0440e1a838 Remove repeated EMAIL_TIMEOUT setting
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-06-03 20:29:41 -04:00
Roberto Rosario eac9940207 Remove duplicated auth_token_obtain view URL
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-31 00:40:46 -04:00
Roberto Rosario 65aa6a8f38 Remove list check from .check_user_permissions()
All callers are expected to pass the correct argument.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-31 00:33:23 -04:00
Roberto Rosario 39af4f9f8a Fix trashed document previews
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-31 00:24:14 -04:00
Roberto Rosario 33929576fc Allow passing a manager
Add a manager argument to check_access to avoid using the
the default manager blindly. Used for models with more than one
manager like the Document model.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-31 00:22:52 -04:00
Roberto Rosario 18b42a03c8 Put deletion policies units before periods
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-30 23:40:44 -04:00
Roberto Rosario d1f6a6b059 Update use of collectstatic to preparestatic
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-30 23:40:37 -04:00
Roberto Rosario 4252e37748 Fix text typo
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-28 16:38:19 -04:00
Roberto Rosario 6a2e039a83 Simplify locale profile view
Convert view to use SimpleView class.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-22 02:11:29 -04:00
Roberto Rosario d4a7592467 Sort tools and setup links
Simplify views by using self.request to resolver the menus.
Convert setup view to SimpleView to use get_extra_context.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-22 02:08:19 -04:00
Roberto Rosario 9edb9fff0a Expand config.yml update step
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-21 18:15:35 -04:00
Roberto Rosario 07e7b55686 Replace collectstatic with preparestatic
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-21 18:15:05 -04:00
Roberto Rosario 268fce138d Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-21 01:28:49 -04:00
Roberto Rosario 916ba688b1 Merge branch 'versions/minor' of gitlab.com:mayan-edms/mayan-edms into versions/minor 2019-05-21 00:57:41 -04:00
Roberto Rosario 4baeb6ce7e Code cleanups
PEP8 cleanups. Add keyword arguments.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-21 00:56:22 -04:00
Roberto Rosario fbe0e14b82 Rename mailer create link label
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-20 23:30:13 -04:00
Roberto Rosario 410e6a4a55 Improve mailer no-result template message
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-20 23:29:54 -04:00
Roberto Rosario 38a34cc98c Invert check out form expiration fields
Improve clarity by selecting first the unit then the quantity.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-20 23:24:56 -04:00
Roberto Rosario 90393e043e Move comment user label extraction to the model
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-20 23:22:58 -04:00
Roberto Rosario 9e3e0d9e64 Rename doc type policies to 'deletion policies'
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-20 01:21:24 -04:00
Roberto Rosario 818cf97d5b Split document type retention policies
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-20 01:19:53 -04:00
Roberto Rosario f649a77b2f Improve list markup
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-20 01:18:12 -04:00
Roberto Rosario 2ee2b2f5e0 Add new how to documentation sections
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-18 18:54:37 -04:00
Roberto Rosario 5619a6014e Documentation markup improvements
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-18 01:22:49 -04:00
Roberto Rosario 4851c9f6d7 Add quick labels chapter
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-18 01:11:06 -04:00
Roberto Rosario f002d8b38e Add custom CSS for :menuselection:
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-18 01:10:34 -04:00
Roberto Rosario 484f09db75 Rephrase workflow explanation
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-18 01:10:17 -04:00
Roberto Rosario 5b45769423 Fix typo
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-18 01:10:03 -04:00
Roberto Rosario 54c007b149 Documentation updates
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-17 17:44:45 -04:00
Roberto Rosario 3b518998c9 Add workflow diagram
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-17 17:44:29 -04:00
Roberto Rosario 0a21748b0c Change all uses of CONN_MAX_AGE to 0
Database connection when using gunicorn microthreads
are not shared by the microthreads and can exhaust the
number of open connections available.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-17 16:43:23 -04:00
Roberto Rosario edd6f4eb76 Improve deploying chapter
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-17 16:42:49 -04:00
Roberto Rosario f8258c078a Fix release notes spellings
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-17 14:56:17 -04:00
Roberto Rosario b2cefa79a5 Expand the troubleshooting topic
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-17 14:13:52 -04:00
Roberto Rosario ab5028887c Synchronize translation files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-17 02:57:43 -04:00
Roberto Rosario 4a03e2a47f Statitics and chart updates
Show last update date and time in list view and details view. Change color
scheme to match rest of project. Increase size of data points.
Improve responsive settings. Redirect to the current view after queueing.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-17 01:43:02 -04:00
Roberto Rosario c9809becba Allow resolving using a request or a context
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-17 00:44:32 -04:00
Roberto Rosario a1fa6aadfb Add no result template to the document page list
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-17 00:44:18 -04:00
Roberto Rosario c3991c3798 Add conditional install of psutil for ARM CPUs
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-16 20:51:21 -04:00
Roberto Rosario 66ac9eebee Fix make wheel target name
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-16 03:16:43 -04:00
Roberto Rosario 4f9c2314fa Bump version
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-16 02:24:08 -04:00
Roberto Rosario b2ddf0c6bb Update documentation
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-16 01:31:36 -04:00
Roberto Rosario ebc7886c81 Install all requirements for testing
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 21:35:23 -04:00
Roberto Rosario fbbc6bace9 Remove Ubuntu based Dockerfile
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 21:34:19 -04:00
Roberto Rosario 811c8075ca Skip test model tests when using MySQL
MySQL doesn't support schema changes inside an atomic block.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 21:19:57 -04:00
Roberto Rosario de7a7448ae Update requirement files and setup.py
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 16:11:54 -04:00
Roberto Rosario 7d725f8170 Add target to generate all requirements files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 16:11:35 -04:00
Roberto Rosario 8e32c5adae Add generatedependency command
This comment generated pip install requirement files.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 15:58:54 -04:00
Roberto Rosario 7339eb2a09 Add build dependency environment
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 15:58:31 -04:00
Roberto Rosario e5daea674f Use Python 3 compatible mysqlclient package
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 15:57:34 -04:00
Roberto Rosario 170434e71b Update the setup development target
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 15:53:50 -04:00
Roberto Rosario 54acf0f254 Add the checkdependencies command
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 14:56:31 -04:00
Roberto Rosario 76f320faf5 Ensure gnupg1 is used for gitlab testing
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 14:28:15 -04:00
Roberto Rosario 21e1a3c4ad Add missing exiftool and switch to ubuntu 18.04
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 14:00:59 -04:00
Roberto Rosario 0a9c01cb0f Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 03:06:49 -04:00
Roberto Rosario a5ab9f3ea6 Use COMMON_PROJECT_URL as host for document link
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 02:43:50 -04:00
Roberto Rosario 8586bd1909 Recreate fields from class, not from data
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 02:41:52 -04:00
Roberto Rosario 62f49e390a Show a null mailer for backend with invalid path
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 02:36:24 -04:00
Roberto Rosario dfb368e6dc Fix file metadata queue definition
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 02:07:34 -04:00
Roberto Rosario 7971b081a9 Add transaction handling
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 01:35:50 -04:00
Roberto Rosario 290dc847c4 Add target to install all development dependencies
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-15 01:33:31 -04:00
Roberto Rosario 1982c9920f Add cabinet created and edited events
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 21:03:15 -04:00
Roberto Rosario 1ae1804f5d Install and upgrade docs to use platform template
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 20:36:37 -04:00
Roberto Rosario e68928901e Add platform template environment support
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 20:14:46 -04:00
Roberto Rosario febc7cf4f7 Increase dropzone upload file size limit to 2GB
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 18:11:50 -04:00
Roberto Rosario ab97c95bab Add default icons for the confirm form buttons
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 18:02:04 -04:00
Roberto Rosario b28bdf5475 Add document statistics test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 17:48:53 -04:00
Roberto Rosario f041ae9966 Force evaluation of statistic data for Python 3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 17:48:27 -04:00
Roberto Rosario 2e632f658d Remove tasks literals
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 17:03:38 -04:00
Roberto Rosario 6ef9b04d57 Return task type instance to caller
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 17:03:13 -04:00
Roberto Rosario b687a7f519 Add missing statistics app icons
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 17:02:26 -04:00
Roberto Rosario ebf8cbdd62 Add task path validation
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 16:43:29 -04:00
Roberto Rosario d338da5491 Fix merge typo
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 02:36:29 -04:00
Roberto Rosario 2e2797bba5 Merge branch 'versions/minor' of gitlab.com:mayan-edms/mayan-edms into versions/minor
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 02:34:57 -04:00
Roberto Rosario 2b43aa8d40 Use context manager and reuse the converter page
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 02:31:58 -04:00
Roberto Rosario c59f35225c Use context manager to avoid open files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 02:31:02 -04:00
Roberto Rosario 3a623ee416 Initialize LibreOffice only on converter init
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 02:29:01 -04:00
Roberto Rosario 4e5c513529 Remove converter.to_pdf iterator
Remove the custom iterator to return the result of a conversion to PDF.
Instead returns a file object which can then be copied around
using shutil.copyfileobj.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 02:01:14 -04:00
Roberto Rosario 8b073c3151 Sort methods and fix method name typo
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 01:06:10 -04:00
Roberto Rosario 60c0c131ae Sort methods and fix method name typo
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 01:03:28 -04:00
Roberto Rosario f561eb2f57 Silence warning importing app URLs
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-14 00:08:56 -04:00
Roberto Rosario a0b4d38d19 Close version file object using a context manager
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 23:44:08 -04:00
Roberto Rosario a69e74ac90 Fix warning about missing on_delete
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 23:32:22 -04:00
Roberto Rosario d41fe1b701 Fix assertEquals warning
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 23:28:58 -04:00
Roberto Rosario 2f998ab4ce Don't use pidfile, supervisor handles that
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 21:26:31 -04:00
Roberto Rosario 92e12f3ec5 Remove unused gnome packages
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 13:40:08 -04:00
Roberto Rosario 78b0abf50c Run Docker test as the mayan user
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 13:36:59 -04:00
Roberto Rosario d003818cae Fix task manager tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 13:20:51 -04:00
Roberto Rosario 98157b7083 Add Docker runtime test dependencies
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 13:20:26 -04:00
Roberto Rosario d4130cd393 Make and install the sdist version instead
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 13:19:36 -04:00
Roberto Rosario f3a849c031 Add platform template files to the MANIFEST
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 13:18:25 -04:00
Roberto Rosario a38426d823 Finish platform app
Update Dockerfile to use platform template for supervisord.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-13 04:35:39 -04:00
Roberto Rosario 501acbfb0f Experimental platform app
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-05-13 02:52:31 -04:00
Roberto Rosario 082981e25f Allow setting the Docker user UID and GUID
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-05-12 19:05:58 -04:00
Roberto Rosario 03f128ff23 Fix tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-12 03:49:54 -04:00
Roberto Rosario f76b9e4f3f Move task registration to the CeleryQueue class
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-12 03:36:23 -04:00
Roberto Rosario 1acc352801 Create intermedia file cache folder
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-12 02:24:56 -04:00
Roberto Rosario 17030472f1 Add migration code for the removal of UUID_FUNCTION
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-12 02:15:51 -04:00
Roberto Rosario c7e9a4dc99 Add keyword arguments
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-12 02:09:26 -04:00
Roberto Rosario 0d53e74238 Improve smart settings tests
Use a test namepsace instead of a real one.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-12 01:51:05 -04:00
Roberto Rosario 4617afafb2 Replace get_object_list() with self.object_list
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-12 01:25:53 -04:00
Roberto Rosario 2d819e64c9 Fix failing tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-12 01:16:15 -04:00
Roberto Rosario 545366a477 Operate only on the filtered selection queryset
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-11 18:14:10 -04:00
Roberto Rosario 74ec939779 Fix optional metadata remove
Soleve issue of removing an optional document metadata
from a document that also contained existing required metadata.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-11 18:14:01 -04:00
Roberto Rosario aa94247c3d Add test for required metadata remove issue.
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-05-10 19:54:01 -04:00
Roberto Rosario c3594651d2 Lower Sphinx version for py2/3 compatibility
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-05-10 19:31:45 -04:00
Roberto Rosario 578c1b2f07 Convert metadata tests to use fixtures
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-05-10 19:31:20 -04:00
Roberto Rosario 7cf8cd2f28 Add test mixin to convert instances to dicts
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-05-10 19:30:33 -04:00
Roberto Rosario f6696771f9 Add makefile target argument hint
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-10 03:33:13 -04:00
Roberto Rosario eb79ebf6bb Update translation files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-10 03:32:54 -04:00
Roberto Rosario e89367f827 Exclude media, node_modules, and PO files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-10 01:46:59 -04:00
Roberto Rosario 40035ea39a Fix makefile help heading
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-10 01:46:09 -04:00
Roberto Rosario 8aa97c7fd7 Add Python 3 package targets
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-10 01:45:47 -04:00
Roberto Rosario 45ca7ea480 Show step of dependency installation
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-10 01:45:03 -04:00
Roberto Rosario bbf3ede2e6 Reference the external object directly
This object is placed in the view context by the mixin automatically.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-10 00:44:47 -04:00
Roberto Rosario c1612c8182 Add clean step to test targets
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-10 00:40:22 -04:00
Roberto Rosario 76b75af1c2 Add keyword arguments to CT get_for_model
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-10 00:39:20 -04:00
Roberto Rosario 680a7b6ae1 Remove Internet Explorer specific markup
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-09 22:33:03 -04:00
Roberto Rosario f73179a600 Add support for editing document comments
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-09 22:29:07 -04:00
Roberto Rosario cbd51c5f26 Update comments app
Add transaction handling. Add comment view link. Update views to
user ExternalObjectMixin. Add event tests.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-09 20:22:12 -04:00
Roberto Rosario fffcf4d3da Bump version to 3.2b1 (beta1)
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-09 16:37:30 -04:00
Roberto Rosario 72cdfe58c5 Merge branch 'versions/minor' into 'versions/minor'
Docker image improvements

See merge request mayan-edms/mayan-edms!46
2019-05-09 20:30:48 +00:00
Santiago f55979b1a6 As many RUN squashed as possible.
Image size down to 1.15GB, 14 layers.
Files and scripts move to a docker root fs instead of copied.
Debian slim 9.8.
Updated to Docker best practices.

Signed-off-by: Anderson Santiago <SantiagoGitlab@gmail.com>
2019-05-09 20:30:48 +00:00
Roberto Rosario f5aaff9ab1 Add automated help and organize makefile targets
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 23:08:57 -04:00
Roberto Rosario e6ccfb4b59 Install and serve static content from the image
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 22:52:46 -04:00
Roberto Rosario f6afec031d Allow skipping dependencies install during upgrade
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 19:18:04 -04:00
Roberto Rosario 33a2ca97ec Don't error out on unmet Python dependencies
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 19:15:40 -04:00
Roberto Rosario 7b69c2f76e Don't install dependencies automatically
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 19:10:19 -04:00
Roberto Rosario 6cc23fbfd0 Ignore VIM .swp file
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 19:04:38 -04:00
Roberto Rosario 648fcc32a9 Move quick label tests to the document type module
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 19:04:15 -04:00
Roberto Rosario de581cde5f Fix tag widget and add tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 18:59:16 -04:00
Roberto Rosario 1beb44d85d PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 18:15:39 -04:00
Roberto Rosario e5c1aa5606 Fix document list view and add tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 17:50:49 -04:00
Roberto Rosario 0b68463ed5 Require view permissions for tag and document
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-08 16:55:54 -04:00
Roberto Rosario d533e48f46 Separate list item content from menu with an hr
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 15:28:05 -04:00
Roberto Rosario 8e5b60e1c0 Backport document page view improvements
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 15:27:46 -04:00
Roberto Rosario 28114264c1 Remove last use of settings.LOGIN_REDIRECT_URL
Replace with common.settings_home_view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 13:32:47 -04:00
Roberto Rosario 6330e40036 Use get_object_list instead of get_queryset
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 03:17:52 -04:00
Roberto Rosario f69fcbcc82 Move password set views to the authentication app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 03:13:14 -04:00
Roberto Rosario 5e4518211f Remove related attribute of check_access
Remove filter_by_access. Replaced by restrict_queryset.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 02:26:50 -04:00
Roberto Rosario ddbb0d496a Add keyword arguments to reverse
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 01:57:33 -04:00
Roberto Rosario e1e2454e2a Convert ACL API tests to use ephimeral models
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 01:57:03 -04:00
Roberto Rosario 264e90a7d7 Modernize MOTD tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 01:33:47 -04:00
Roberto Rosario 4507f75711 Split the document state view tests into modules
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 01:16:37 -04:00
Roberto Rosario a0d2000419 Test simplification
Unify usage of self.test_document and self.test_documents in
tests.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-07 00:54:59 -04:00
Roberto Rosario ebc68d3c36 Add arguments to the preparestatic command
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 23:51:29 -04:00
Roberto Rosario 7a4a4818fe Add workflow event tests
Modernize tests. Move test HTTP requests to the test mixin
module.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 23:39:49 -04:00
Roberto Rosario b6e7a462b0 Add the preparestatic command
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 03:13:53 -04:00
Roberto Rosario 0d6409512a Update fontawesome static files paths
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 02:40:04 -04:00
Roberto Rosario 988b4dcb37 Ignore static files and templates
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 02:38:03 -04:00
Roberto Rosario 9e2891216b Rewind file pointer before calling exiftool
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 02:37:20 -04:00
Roberto Rosario 0e6f34d0ee Add deprecation warning to convertdb
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 02:30:48 -04:00
Roberto Rosario 00d4406b1f Configure flake8 to ignore node modules
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 02:17:27 -04:00
Roberto Rosario 4a7540f8b2 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 02:17:17 -04:00
Roberto Rosario 95a1df8072 Backport common mixin and generics improvements
* Rename get_object_list to get_source_queryset.
* Add uniqueness validation to SingleObjectCreateView.
* Remove MultipleInstanceActionMixin.
* Backport MultipleObjectMixin improvements.
* Remove ObjectListPermissionFilterMixin.
* Add and improve tests.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 02:07:35 -04:00
Roberto Rosario 7181852c2d Update Postgres version from 9.5 to 9.6
Postgres 9.5 is support until February 11, 2021
Postgres 9.6 is support until November 11, 2021

https://www.postgresql.org/support/versioning/

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-05 19:36:00 -04:00
Roberto Rosario 547ffe0e0d Update CAA locations
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-05 19:17:28 -04:00
Roberto Rosario 5e2a1e997b Rename CSS gutter cass for clarity
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-05 19:16:10 -04:00
Roberto Rosario ca3a48f92d Update source and compiled translation files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-05 18:51:10 -04:00
Roberto Rosario 251b4bac40 Do a copy,delete instead of a rename
os.rename doesn't work across multiple filesystems.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-05 18:32:52 -04:00
Roberto Rosario ce70701b7e Fix translation of the source upload form
Closes GitLab issue #579. Thanks to Mathias Behrle (@mbehrle) for the
find and report.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-05 02:23:37 -04:00
Roberto Rosario 3c0316dae6 Use class based jsi18n view
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-05 02:10:29 -04:00
Roberto Rosario 030b7d5d91 Update translation source files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-04 21:43:55 -04:00
Roberto Rosario 99b180f269 Add workflows per document type view
Make workflows, workflows states, workflow transitions column
sortable. Show completion and intial state in the workflow
proxy instance menu list.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-04 21:26:12 -04:00
Roberto Rosario c9b5d2794e Add database transaction handling
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-04 20:50:31 -04:00
Roberto Rosario d7db8468ac Remove AssignRemove view
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-04 20:50:16 -04:00
Roberto Rosario 3d240a7f42 Convert workflow document types to AddRemove view
Add worflow created and edited events.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-04 20:47:21 -04:00
Roberto Rosario 9c92b9a59e Remove some usages of column_class
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-04 20:16:02 -04:00
Roberto Rosario b67bfa8ec4 Update Bootstrap and Bootswatch to version 3.4.1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-04 20:02:33 -04:00
Roberto Rosario 8e731d6280 Backport ACL computation improvements
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-04 03:27:30 -04:00
Roberto Rosario d271f1503d Fix format in file metadata app translations files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-03 14:53:00 -04:00
Roberto Rosario 5f89d228dc Update compiled translations
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-03 02:19:23 -04:00
Roberto Rosario 73546bd99f PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-03 01:57:41 -04:00
Roberto Rosario 8320ca814c Switch to version 3.2.5 of fancybox
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-03 01:20:04 -04:00
Roberto Rosario 48a7a25212 Remove commented template markup
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-03 01:17:24 -04:00
Roberto Rosario a3ea854e73 Support binding columns to base classes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-03 01:17:04 -04:00
Roberto Rosario bd9c75cdaa Update translation source files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-03 01:16:36 -04:00
Roberto Rosario ea3b513ae3 Add new app to handle all dependencies
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-03 01:12:20 -04:00
Roberto Rosario 11e13cea1d Don't link to the user details of admin or staff
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-30 12:59:55 -04:00
Roberto Rosario 3faefd653c Fix and improve cabinet apps tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-30 01:11:41 -04:00
Roberto Rosario 80a9b9ef9d Record the upload of multiple documents
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-30 00:54:27 -04:00
Roberto Rosario 8084b59e6e New way to test orphan objects
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 22:25:10 -04:00
Roberto Rosario 8b2f5eaf69 Update ACLs tests to use ephimeral models
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 21:35:56 -04:00
Roberto Rosario 98e51079a3 Update TestModelTestMixin to work with Python 3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 20:42:42 -04:00
Roberto Rosario a2e718361e Add migrations to add field related_name attribute
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 15:23:17 -04:00
Roberto Rosario e042c5275b Stop inherited permission recursion check
Recursive objects are not supported by this method and need
to specify their own function to calculate their own filtered
queryset.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 15:17:42 -04:00
Roberto Rosario b4227a608b Add cabinet child view tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 15:17:19 -04:00
Roberto Rosario fda0dd4eaf Add transaction handling in more places
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 14:05:02 -04:00
Roberto Rosario 66d5016407 Add user logged in and logged out events
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 13:15:33 -04:00
Roberto Rosario 77d897ab1f Enable menu refresh
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 05:05:15 -04:00
Roberto Rosario 68a4b72c37 Use copyfileobj for temporary file in django_gpg
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 05:00:56 -04:00
Roberto Rosario 8b447a7050 Use copyfileobj in Python converter backend
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 04:54:42 -04:00
Roberto Rosario e36eb5421d Use copyfileobj to copy the office file
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 04:47:47 -04:00
Roberto Rosario d0a452d838 Add keyword arguments
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 04:31:37 -04:00
Roberto Rosario 825af3152f Use copyfileobj to save documents to files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 04:29:43 -04:00
Roberto Rosario efff750f06 Fix app's indexing, settings, tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 04:01:23 -04:00
Roberto Rosario ae595dd359 Disable file metadata processing during tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 04:00:20 -04:00
Roberto Rosario 136434c973 Rename PDF test document name
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 03:59:56 -04:00
Roberto Rosario b1e464f52f Make the index instance level column sortable
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 01:34:38 -04:00
Roberto Rosario 6a8b062be7 Remove CSS comment, add missing class
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 01:24:00 -04:00
Roberto Rosario 2e670254e5 Update list links appearance
Enable list link icons. Add outline links CSS for facet list
links. Add a bottom margin to list links.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 01:11:30 -04:00
Roberto Rosario d2ab2ec91f Fix the permissions app tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 01:09:27 -04:00
Roberto Rosario cfe623e093 Enable smart links from the documents types side
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 01:08:52 -04:00
Roberto Rosario aee3645c7a Fix mailer app event tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-29 00:30:50 -04:00
Roberto Rosario bd1e8d9e31 JavaScript downloader improvements
Update JavaScript downloader to work with Python 3. Improve
speed of the NPM package hash verification.

Signed-off-by: Roberto Rosario <Roberto.Rosario.Gonzalez@gmail.com>
2019-04-28 18:44:05 -04:00
Roberto Rosario 713e644599 Fix smart link ACL support
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 02:31:38 -04:00
Roberto Rosario a544924c08 Improve linking app column display and sorting
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 02:22:21 -04:00
Roberto Rosario ae8a444e42 Allow source columns without an attribute
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 02:21:35 -04:00
Roberto Rosario e01017ffe5 Add missing linking app icons
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 02:06:01 -04:00
Roberto Rosario 85deaf3327 Fix user event type subscription list view
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 01:56:56 -04:00
Roberto Rosario f057d7f81f Improve event tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 01:50:19 -04:00
Roberto Rosario e916e73ead Add one document type per iteration
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 01:47:17 -04:00
Roberto Rosario 5c07c61b69 Remove unused import
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 01:46:26 -04:00
Roberto Rosario 395c360784 Update smart link document type view use AddRemove
Add smart link created and edited events.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 01:44:23 -04:00
Roberto Rosario 959cdc56e5 Add document type to indexes link view
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 01:00:00 -04:00
Roberto Rosario 7a4c9f3ad2 Add missing import
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 00:58:53 -04:00
Roberto Rosario 5a736d83bc Use the list facet menu for document type settings
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 00:58:20 -04:00
Roberto Rosario 33056dec04 Allow overloading action_add and action_remove
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-28 00:57:54 -04:00
Roberto Rosario dda0f0d2af Update index document types view to AddRemoveView
Add index create and edit events.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 23:01:46 -04:00
Roberto Rosario 8374a66011 Fix typos and add translation notes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 23:00:13 -04:00
Roberto Rosario 873055c4d5 Update transifex resource slugs
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 19:21:02 -04:00
Roberto Rosario 4963a9689f Update ACL view to use new AddRemoveView
Add ACL created and edited events.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 19:15:41 -04:00
Roberto Rosario 1a91640047 Add test model mixin
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 19:14:32 -04:00
Roberto Rosario 2e9b5454a7 Add ACLs permission link icon
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 19:13:24 -04:00
Roberto Rosario 6069c67342 Improve inherited permission computation
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 19:13:06 -04:00
Roberto Rosario 95123e0078 Update translation source files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 18:52:41 -04:00
Roberto Rosario 8bbd83ea76 Increase default title truncation to 120
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 18:33:37 -04:00
Roberto Rosario 4f92bde7d7 Convert title calculation form to a template tag
Show the full title as a hover title even when truncated.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 18:30:24 -04:00
Roberto Rosario 041464fc1c Enable translation of the file metadata app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 18:15:57 -04:00
Roberto Rosario 086a1e5168 Load one language in the document properties form
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 15:57:04 -04:00
Roberto Rosario 32cf0a0595 Add new default Tesseract OCR backend
This new backend uses a command call to avoid
Tesseract bug 1670
(https://github.com/tesseract-ocr/tesseract/issues/1670).

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 15:44:09 -04:00
Roberto Rosario e5aa4553be Remove custom Python 3 detection
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 03:49:08 -04:00
Roberto Rosario dcde4b1968 Monkeypatch Django models to allow translation
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 03:48:02 -04:00
Roberto Rosario 84c88f9173 Remove app top level star imports
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 03:15:43 -04:00
Roberto Rosario 799d47054e Load the converter class on demand
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 02:47:23 -04:00
Roberto Rosario 3fa08debe9 Initialize Pillow inside ConverterBase __init__
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 02:29:44 -04:00
Roberto Rosario cd5bc8ba4b Remove transformation manager methods
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 02:21:19 -04:00
Roberto Rosario 89bc78bd55 Register event view permission with user and group
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 02:10:00 -04:00
Roberto Rosario ebaa18f552 Add role event view links
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 02:09:05 -04:00
Roberto Rosario e80f602974 Update role permission view to use AddRemoveView
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 02:06:11 -04:00
Roberto Rosario cd24eef107 Update role group list view to AddRemoveView
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 02:02:29 -04:00
Roberto Rosario e6ad202ee9 Increase default number of favorites to 400
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 01:50:26 -04:00
Roberto Rosario dd81d8e237 Remove custom email widget and use Django's
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 01:47:55 -04:00
Roberto Rosario 6e91ebe5f4 handler_purge_permissions now call module manager
Update handler_purge_permissions to call the purge_obsolete model
manager method instead of the management command.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 01:40:18 -04:00
Roberto Rosario f9866e846a Use the 'handler' prefix
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 01:37:14 -04:00
Roberto Rosario fba0c40bef Add keyword arguments to RequestContext usage
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-27 01:25:48 -04:00
Roberto Rosario 74c97314d7 Code style cleanups
Add keyword arguments. Sort arguments and models.
Move literals to their own module. Prepend handler_ to
signal handlers.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-26 03:32:35 -04:00
Roberto Rosario 20acc24c7f Backport search improvements, remove SEARCH_LIMIT
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-26 00:35:55 -04:00
Roberto Rosario 1c5681c79d Code style cleanups
Sort arguments, methods. Add keyword arguments.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-25 05:06:56 -04:00
Roberto Rosario 4b4629ce2b Import from common.generics not from common.views
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-25 03:41:30 -04:00
Roberto Rosario fb1f5dbfe3 User groups, group users views to AddRemoveView
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-25 03:24:33 -04:00
Roberto Rosario 510cdf894c Add reusable use filtered queryset
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-25 03:20:39 -04:00
Roberto Rosario 2f8cd26d0f Add verbose name to the user and group models
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-25 02:31:33 -04:00
Roberto Rosario 1a71e02aab Record actor for the user/group create/edit events
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-25 02:30:52 -04:00
Roberto Rosario b3b92e8cda Rename GroupMembersView to GroupUsersView
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-25 02:30:12 -04:00
Roberto Rosario 5574aaec9e Add role create and edit events
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 23:19:04 -04:00
Roberto Rosario 3f9421fc75 Fix form css class context key
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:46:09 -04:00
Roberto Rosario 2aadb203eb Add double click to upload wizard
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:44:56 -04:00
Roberto Rosario f5ec2e9b22 Fix URL typo
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:44:39 -04:00
Roberto Rosario 46d0e5562b Initialize document type file metadata settings
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:44:03 -04:00
Roberto Rosario 52f734ee9f Update group roles view to the new AddRemoveView
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:23:15 -04:00
Roberto Rosario a556f2a1ba Add AddRemoveView to replace the AssignRemove
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:21:55 -04:00
Roberto Rosario fa076df89e Simplify the DisableableSelectionWidget
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:20:26 -04:00
Roberto Rosario 2330bb9da2 Add RestrictedQueryset mixin
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:19:59 -04:00
Roberto Rosario c2d287c262 Update ChoiceForm to be full height
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:19:31 -04:00
Roberto Rosario fcfadb0caa Add double click to submit, addtional form buttons
Rename form template variable 'form_class' to 'form_css_classes'

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:17:57 -04:00
Roberto Rosario 575b2bc61c Allow rendering multiple form media
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 22:09:38 -04:00
Roberto Rosario 21c1dc36d8 Add file metadata app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 04:54:07 -04:00
Roberto Rosario 5cde7de29b Add the external object mixin
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 04:51:33 -04:00
Roberto Rosario 4d99590dad PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 04:31:52 -04:00
Roberto Rosario 296c580a5e Add sortable columns to all apps
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 04:20:50 -04:00
Roberto Rosario 2619777d41 Add missing icons
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 04:19:38 -04:00
Roberto Rosario a5f3937228 Support empty values and absolute URLs
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 04:15:40 -04:00
Roberto Rosario 2e8e4588c0 Add the include_label argument to SourceColumn
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 01:32:29 -04:00
Roberto Rosario 120896001f Fix template sort field detection
Remove get_absolute_url fallback to object.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 01:25:46 -04:00
Roberto Rosario 9a706ac09f Support related attributes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 01:04:14 -04:00
Roberto Rosario a97c2ec662 Update TwoStateWidget to use a template
Make it compatible with the SourceColumn class.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-24 00:46:33 -04:00
Roberto Rosario 6ad306b3cf Update the way the no-result template is shown
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 23:55:37 -04:00
Roberto Rosario b766f85995 Add indexing icons, rename links for clarity
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 23:51:28 -04:00
Roberto Rosario 25ad5c1420 Add remaining missing icons
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 20:30:37 -04:00
Roberto Rosario a1c733807a Update changelog and release notes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:54:01 -04:00
Roberto Rosario 720115e122 Re-add extra column support removed by error
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:43:25 -04:00
Roberto Rosario e75b5ea2ff Add missing document version upload link rename
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:34:14 -04:00
Roberto Rosario 2300ab52de Add the comment to the template context
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:30:04 -04:00
Roberto Rosario d790efdef5 Add comment delete icon
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:29:57 -04:00
Roberto Rosario 47a8355c79 Update coverter link and icon names
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:28:44 -04:00
Roberto Rosario d297d734d2 Don't return verbose name for strings
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:27:25 -04:00
Roberto Rosario 3789d5cfcf Sort methods
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:27:10 -04:00
Roberto Rosario 87b0be65d4 Rename the document version upload link
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:25:53 -04:00
Roberto Rosario ff5d35832a Don't display action header for string objects
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:25:05 -04:00
Roberto Rosario 4ffd25c570 Preserve icon kwargs
Allow other icon instances to reuse the arguments like
the symbol.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:24:00 -04:00
Roberto Rosario cd00c6abf0 Support marking columns as indetifier and sortable
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 19:22:35 -04:00
Roberto Rosario c1d2c8baf3 Merge the sidebar and secondary menu instances
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 15:15:55 -04:00
Roberto Rosario 0dbb6cc6ea Fix viewname in test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 05:05:23 -04:00
Roberto Rosario 6f57d3c650 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:36:24 -04:00
Roberto Rosario d48665c595 Update ACL icons, remove sidebar menu
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:30:14 -04:00
Roberto Rosario b44e4141a4 Cabinet icons, rename links, remove sidebar menu
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:29:23 -04:00
Roberto Rosario 41c1326498 Add checkout icons, remove sidebar menu use
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:28:31 -04:00
Roberto Rosario 3d8cf3e235 Remove repeated workflow URL definition
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:28:06 -04:00
Roberto Rosario ddf96120de Update workflow link activation
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:27:42 -04:00
Roberto Rosario a6d474eaa5 Rename document links for consistency
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:26:46 -04:00
Roberto Rosario 9f723c95ac Add more document icons
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:26:07 -04:00
Roberto Rosario 4b3d94017a Rename tag view names, remove sidebar menu use
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:25:29 -04:00
Roberto Rosario 48249b977d Add tags app icons
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:24:45 -04:00
Roberto Rosario 26792d3c5a Update tag workflow action widget path
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:18:42 -04:00
Roberto Rosario 042745e0ca Add document state action view test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:18:17 -04:00
Roberto Rosario 1a79b4192e Migrate saved workflow state actions to full path
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 04:15:50 -04:00
Roberto Rosario fddd8a56c2 Fix document type change views tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 01:46:44 -04:00
Roberto Rosario 4fed1111f4 Add favorite document views tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-23 01:45:02 -04:00
Roberto Rosario e609e89e0e Update document parsing link activation
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 21:39:41 -04:00
Roberto Rosario 3043f22de8 Add document parsing icons
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 21:38:53 -04:00
Roberto Rosario 1265c16161 Improve OCR navigation
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 21:30:42 -04:00
Roberto Rosario 0865975f2e Add OCR icons
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 21:29:51 -04:00
Roberto Rosario 18dbb0cfe6 Add favorite document view URLs
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 21:29:00 -04:00
Roberto Rosario ef26296dc6 Add filtering to document type selection form
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 21:28:21 -04:00
Roberto Rosario 0a39eac419 Fix icon instances naming
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 21:19:31 -04:00
Roberto Rosario 9aa9840231 Move favorite document views to their own module
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 21:12:14 -04:00
Roberto Rosario 1acf67a91c Split document app form into separate modules
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 20:55:26 -04:00
Roberto Rosario d66cf089ee Add document action icons
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 18:33:24 -04:00
Roberto Rosario fb04d75376 Tweak the sidebar styling
Avoid the content windows elements that have a gutter like
the .well class to touch and go into the sidebar area.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 18:31:40 -04:00
Roberto Rosario 966641c447 Remove support for link icon strings
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 18:31:10 -04:00
Roberto Rosario e12098abe4 Add support for link icon path imports
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 18:30:06 -04:00
Roberto Rosario 724f15c006 Add new icons classes and templates
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 18:28:55 -04:00
Roberto Rosario fb6d7b5668 Fix issue installing scoped NPM packages
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 18:27:40 -04:00
Roberto Rosario eccc2d74a3 Remove include fontawesome, download it instead
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 18:26:18 -04:00
Roberto Rosario 3437d8b471 Sort navigation classes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 02:32:58 -04:00
Roberto Rosario 7f0377a8c5 Add mailer use event
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 02:23:57 -04:00
Roberto Rosario ce0a6368f2 Add support for showing the current user's events
Add support kwargs to the SourceColumn class. Improve the
event widgets, views and tests.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 01:33:04 -04:00
Roberto Rosario 66e0d9f357 Improve styling of the template debug view
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 01:17:19 -04:00
Roberto Rosario bc08ada938 Add support for SourceColumn widgets
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 01:16:24 -04:00
Roberto Rosario eadcf7382b Add user and group events
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-22 00:14:02 -04:00
Roberto Rosario 75ed93c35b Improve navigation error messages and display
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 23:56:05 -04:00
Roberto Rosario 1e37ca8315 Backport new menu, new sidebar and CSS changes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 23:50:35 -04:00
Roberto Rosario d410e1ef6c Insert the cabinet in the template context
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 23:21:24 -04:00
Roberto Rosario a3e8b53f01 Insert the user in the template context
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 23:20:58 -04:00
Roberto Rosario 9ebace4014 Shorten menu names
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 16:05:44 -04:00
Roberto Rosario c04063838b Add tool and setup menu sub title help messages
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 15:54:34 -04:00
Roberto Rosario 8c5c324a09 Update ipython to the latest version for Python 2
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 04:27:42 -04:00
Roberto Rosario 655e2b3469 Django Celery is still used
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 04:26:43 -04:00
Roberto Rosario 02187ab5a5 Remove unused functions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 04:03:34 -04:00
Roberto Rosario c9bd2ab9a5 Add byte cast to email processing for Python 3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 04:03:06 -04:00
Roberto Rosario 90b3d01171 Update office file test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 04:02:21 -04:00
Roberto Rosario 5cfc5dda92 Use copyfileobj in the document parsers
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 04:01:52 -04:00
Roberto Rosario 64cd0c232d Remove the MIMETYPE_FILE_READ_SIZE setting
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 03:59:05 -04:00
Roberto Rosario d7a5db711b Add test and fix current user password change view
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 02:24:46 -04:00
Roberto Rosario 102e3ccde3 Use console email backend during development
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 02:11:35 -04:00
Roberto Rosario 6b76d62fda Fix password reset view test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-21 02:11:13 -04:00
Roberto Rosario caad463e8a Style cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-20 20:22:52 -04:00
Roberto Rosario fa441149e4 Fix and optimize smart link tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-20 20:22:05 -04:00
Roberto Rosario ba73a9b55e Fix ACLs app tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-20 17:39:07 -04:00
Roberto Rosario 0267c79b07 Backport test improvements
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-20 02:39:57 -04:00
Roberto Rosario bfcad278aa Improve SilenceLoggerTestCaseMixin
Make variables more unique. Add support to pass a custom logger
level.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-20 02:29:19 -04:00
Roberto Rosario 33d073e7a0 Move the purge permission logic to the manager
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-17 16:06:56 -04:00
Roberto Rosario 54020a8813 Move current user views to the user management app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-17 02:25:57 -04:00
Roberto Rosario 97a9d21ac4 Update test login function to accept any argument
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-17 02:01:46 -04:00
Roberto Rosario f176f6ae4f Expose Django's LOGOUT_REDIRECT_URL setting
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-17 02:01:33 -04:00
Roberto Rosario 313311d008 Use Django's new class based authentication views
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-17 02:00:28 -04:00
Roberto Rosario 0e1fe3968d Add MERCs 5 and 6
Signed-off-by: Roberto Rosario <Roberto.Rosario.Gonzalez@gmail.com>
2019-04-16 19:26:49 -04:00
Roberto Rosario 4c0b3e9134 Add keyword arguments to the reverse use in views
Signed-off-by: Roberto Rosario <Roberto.Rosario.Gonzalez@gmail.com>
2019-04-16 19:25:37 -04:00
Roberto Rosario 0d1daeaedf Fix failing test
Signed-off-by: Roberto Rosario <Roberto.Rosario.Gonzalez@gmail.com>
2019-04-16 19:03:06 -04:00
Roberto Rosario 6bd8206236 Add keyword arguments to messages uses
Signed-off-by: Roberto Rosario <Roberto.Rosario.Gonzalez@gmail.com>
2019-04-16 19:02:41 -04:00
Roberto Rosario 156c008eee Add missing autoadmin requirement
Signed-off-by: Roberto Rosario <Roberto.Rosario.Gonzalez@gmail.com>
2019-04-16 18:22:31 -04:00
Roberto Rosario b829f0a20a Update group members view required permissions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-16 01:06:50 -04:00
Roberto Rosario 4b625025ee Update app creation chapter
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-16 00:14:23 -04:00
Roberto Rosario b3da28e915 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-16 00:14:07 -04:00
Roberto Rosario 2f5a0d071f Move indexin widgets to the html_widget.py module
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-16 00:10:01 -04:00
Roberto Rosario 0cdba79738 Convert document tags widget to use HTML templates
Move Tag app HTML widgets to their own module.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-16 00:07:06 -04:00
Roberto Rosario 030ee8efe3 Add dependencies app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 23:45:59 -04:00
Roberto Rosario 7be25df7d0 Remove star import from the ACL and Common apps
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 18:45:25 -04:00
Roberto Rosario 847bfb721b Add get_absolute_url to ACL model
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 18:15:21 -04:00
Roberto Rosario 50be0ad889 Remove obsolete ACL view test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 18:14:20 -04:00
Roberto Rosario 58813310b7 Move Pillow initialization
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 16:00:55 -04:00
Roberto Rosario 811a752efb Remove converter base64 support
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 15:58:30 -04:00
Roberto Rosario 29f81b2087 Convert language choices into a function
Move language choices generation to documents.utils.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 15:55:47 -04:00
Roberto Rosario 5071eb6fda Expose new Django settings
Expose: AUTH_PASSWORD_VALIDATORS, DEFAULT_FROM_EMAIL,
EMAIL_TIMEOUT, INTERNAL_IPS, LANGUAGES, LANGUAGE_CODE, STATIC_URL,
STATICFILES_STORAGE, TIME_ZONE, WSGI_APPLICATION.

Closes GitLab issue #539 "Setting for default email sender is missing"

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 15:34:24 -04:00
Roberto Rosario 29b41a7638 Mailing: Add support for a from field
Add support to the mailing profiles for specifying a "from"
address. Closes GitLab issue #522.

This commit adds a new backend class property "class_fields"
which differs from the normal "fields" property. The "class_fields"
property specifies which of the backend fields will be used to
initialize a backend's driver class. This is to avoid passing
fields that the driver doesn't expect and getting an error.

When sending emails, the "send" method will attempt to get
a "from" key from the backend data and use that when sending
emails. If no "from" key is found a None is passes. Django's
behavior in this situation dictates that the "from" value will
then be taken from the DEFAULT_FROM_EMAIL setting.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 15:22:54 -04:00
Roberto Rosario b6976210a5 Add docstrings for almost all models
Also adds docstring to some managers and model methods.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 15:19:38 -04:00
Roberto Rosario 0d2a827413 Update DocumentVersionSignatureCreateForm
Use FilteredSelectionForm. Improve document signatures tests.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 02:29:08 -04:00
Roberto Rosario cdb55ab5dd Use FilteredSelectionForm for IndexListForm
Rename IndexListForm to IndexTemplateFilteredForm.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 01:49:57 -04:00
Roberto Rosario 0d69274bb4 Add FilteredSelectionForm subclass ACLCreateForm
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 01:38:27 -04:00
Roberto Rosario cb102ed115 Add keyword arguments to URL definitions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-15 01:26:40 -04:00
Roberto Rosario 78517971ed PEP8 Cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 20:40:10 -04:00
Roberto Rosario 5ef73d992c Use FilteredSelectionForm for the class CabinetListForm
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 20:36:28 -04:00
Roberto Rosario 0d05589206 Update failing mirroring test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 20:31:16 -04:00
Roberto Rosario afc65eed32 Fix new version task by using passthought manager
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 20:26:59 -04:00
Roberto Rosario acffe8a721 Fix failing common app API tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 20:24:27 -04:00
Roberto Rosario 6411433b24 Add FilteredSelectionForm class
Use FilteredSelectionForm to reduce boilerplate code for
TagMultipleSelectionForm.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 16:53:58 -04:00
Roberto Rosario 5127712711 Add FormOptions class, use it for the DetailForm
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 15:30:08 -04:00
Roberto Rosario 33f84ec327 Move tag specific JavaScript to the tags app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 01:55:05 -04:00
Roberto Rosario 3bcadd047b Missing change for 18faaa69bd
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 01:41:47 -04:00
Roberto Rosario c34ec5ddab Update MayanApp to support multiple menus
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 01:20:54 -04:00
Roberto Rosario 4f772bbecf Fix app reference
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 00:47:55 -04:00
Roberto Rosario 18faaa69bd Add server side invalid document template
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 00:47:43 -04:00
Roberto Rosario 24304636d9 Add test util to mute output to stdout
Used by the tests of the autoadmin app.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 00:39:53 -04:00
Roberto Rosario 9b2633e6c7 Update middleware to new style classes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 00:22:35 -04:00
Roberto Rosario 7752ca0f03 Remove license from removed dependencies
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 00:15:17 -04:00
Roberto Rosario 421d91bb0f Update autoadmin app translations
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-14 00:12:47 -04:00
Roberto Rosario 9e262220e5 Integrate django-autoadmin into the core apps
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 23:54:08 -04:00
Roberto Rosario 2a780cb4b0 Make the dashboard app translatable
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 23:44:54 -04:00
Roberto Rosario 94b9db7f27 Increase default of recently tracked documents
Increase the default value of recently added documents
and recently accessed documents from 40 to 400.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 22:44:31 -04:00
Roberto Rosario c0f51103d2 Move stub filtering to the Document model manager
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 22:39:22 -04:00
Roberto Rosario 334f0cd03f Remove queryset slicing hack from view
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 22:26:37 -04:00
Roberto Rosario 655c1fd09f Remove use of self.client
Replace self.client.<method> with the shorthand self.<method>

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 03:58:49 -04:00
Roberto Rosario 663eb1b360 Fix checkout list view
Add tests for the checkout list view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 02:35:56 -04:00
Roberto Rosario 0015ad4abe Add dashboard app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 02:35:40 -04:00
Roberto Rosario e2b5817d18 Move the templates to their respective apps
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 01:57:35 -04:00
Roberto Rosario f6089e689e PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 01:51:23 -04:00
Roberto Rosario f3413b4283 Backport and remove code from the permission app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-13 01:43:03 -04:00
Roberto Rosario 0d4ab4f2cf Move setting to the storage app
The setting COMMON_TEMPORARY_DIRECTORY is now
STORAGE_TEMPORARY_DIRECTORY.

Move file related utilities to the storage app.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 22:26:43 -04:00
Roberto Rosario d42b9bbdf4 Update more requirements
Update development,documentation,testing requirements.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 05:27:41 -04:00
Roberto Rosario 72311c73b5 Add workaround for Tesseract bug 1670
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 05:27:27 -04:00
Roberto Rosario 93c4814a89 New default values for settings
New default value for setting DOCUMENTS_HASH_BLOCK_SIZE is 65535.
New default value for setting MIMETYPE_FILE_READ_SIZE is 1024.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 04:15:24 -04:00
Roberto Rosario 7823c80710 Add note about Tesseract 4 with Python 3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 04:10:15 -04:00
Roberto Rosario 2d9cdbe8b0 Remove temporary VIM file
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:59:46 -04:00
Roberto Rosario fdacbb94c3 Fix document signature migration
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:59:25 -04:00
Roberto Rosario 3f1caf8da0 Update whitenoise to 4.1.2
http://whitenoise.evans.io/en/stable/changelog.html

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:56:27 -04:00
Roberto Rosario f8d5332786 Update requests to 2.21.0
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:50:58 -04:00
Roberto Rosario 1ccc631bd4 Update pytz to 2019.1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:50:30 -04:00
Roberto Rosario 86183b873e Update python-dateutil to version 2.8.0
https://dateutil.readthedocs.io/en/stable/changelog.html

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:48:24 -04:00
Roberto Rosario 56adf598ae Update pyocr to version 0.6
https://gitlab.gnome.org/World/OpenPaperwork/pyocr/blob/master/ChangeLog

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:47:32 -04:00
Roberto Rosario fe1337fa8d Update pycountry to 18.12.8
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:45:35 -04:00
Roberto Rosario 16915b6480 Update pathlib2 to 2.3.3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:44:39 -04:00
Roberto Rosario 15c8459a15 Update node-semver to version 0.6.1
https://github.com/podhmo/python-semver/blob/master/CHANGES.txt

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:43:58 -04:00
Roberto Rosario feb9d9e714 Update graphviz to version 0.10.1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:42:03 -04:00
Roberto Rosario a8fd2a1136 Update gevent to version 1.4.0
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:41:23 -04:00
Roberto Rosario 9c571b222e Update fusepy to version 3.0.1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:40:43 -04:00
Roberto Rosario 37840f3b6c Update furl to version 2.0.0
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:36:57 -04:00
Roberto Rosario 927d77cfd7 Update flex to version 6.14.0
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:35:11 -04:00
Roberto Rosario 265bcd7b65 Update drf-yasg to version 1.6.0
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:31:23 -04:00
Roberto Rosario c69127f37c Update django-widget-tweaks to version 1.4.3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:21:18 -04:00
Roberto Rosario 45ae821f5c Update django-cors-headers to version 2.5.2
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:18:54 -04:00
Roberto Rosario 1f8879df92 Update django-colorful to version 1.3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:17:17 -04:00
Roberto Rosario 7093ac54a3 Update django-activity-stream to version 0.7.0
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:15:14 -04:00
Roberto Rosario 5118cad9a2 Add SilenceLoggerTestCaseMixin
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:13:07 -04:00
Roberto Rosario 2b0b9675fd Remove unused UTF file markers
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:10:20 -04:00
Roberto Rosario 40c9436071 Update PyYAML to version 5.1
Update use of safe_load and safe_dump to load and dump using
the CSafeLoader with SafeLoader as a fallback.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 03:09:07 -04:00
Roberto Rosario b976f8d0ed Update Pillow to version 6.0.0
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 02:08:04 -04:00
Roberto Rosario a54e17caeb Update swagger spec validator to version 2.4.3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 02:04:31 -04:00
Roberto Rosario 0416ac4064 Move API documentation views API app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 02:03:22 -04:00
Roberto Rosario 1fa91f0ef7 Remove development URLs from main URL file
Move the development URL definitions for Rosetta and Debug toolbar
to a separate URL file. Convert the single urls.py to a module to
allow multiple URL files to be used.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 01:53:06 -04:00
Roberto Rosario fab94319bb Remove Django suit from requirements
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 01:43:34 -04:00
Roberto Rosario 5ff15895b6 Show trace on App import exceptions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-12 01:40:09 -04:00
Roberto Rosario 0188afcd54 Consolidate repeated test user logins
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-11 23:14:16 -04:00
Roberto Rosario ae814a18c5 Move trashed document views to their own module
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-11 22:35:23 -04:00
Roberto Rosario 1f5dffa0e5 Remove permission grant and revoke permissions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-11 22:07:30 -04:00
Roberto Rosario 4d91d82515 Change how the HOME_VIEW setting is defined
HOME_VIEW is now COMMON_HOME_VIEW.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-11 22:01:14 -04:00
Roberto Rosario 4c8e647415 Add missing change from 14e71ce42f
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-11 21:59:31 -04:00
Roberto Rosario 14e71ce42f Add keyword arguments to PermissionNamespace uses
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-11 21:03:02 -04:00
Roberto Rosario f6f9287e33 Add keyword arguments to get_object_or_404 uses
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-11 20:53:33 -04:00
Roberto Rosario 456c322c19 Move add_to_class functions to their own module
* The new module is called methods.py and found on each app.
* Add keyword arguments to add_to_class instances.
* Remove catch all exception handling for the check in and
  check out views.
* Improve checkouts tests code reducing redundant code.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-11 18:03:53 -04:00
Roberto Rosario a12c90268f Add DatabaseWarning to tag SQLite use warning
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-11 16:22:55 -04:00
Roberto Rosario a10f2330fd Fix import after full app path commit
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-09 20:18:07 -04:00
Roberto Rosario 03ba13e5cb Allow import UUID_FUNCTION
Changes related to the document models split commit.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-09 18:05:26 -04:00
Roberto Rosario 335c21488e Split workflow views into separate modules
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-09 18:05:10 -04:00
Roberto Rosario d26279275d Split document app models into separate modules
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-09 00:15:15 -04:00
Roberto Rosario 4f66129a7c Merge branch 'hotfix' into hotfix_merge
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-07 23:34:26 -04:00
Roberto Rosario 7d756de3de Add DOCUMENTS_HASH_BLOCK_SIZE setting
This new setting is used to control the size of the file
blocks when calculating a document's checksum. The default
value of 0 disables the features and preserves the current
behavior of reading the entire file into memory.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-07 22:58:01 -04:00
Roberto Rosario 69bd6c116e Improve multiple tag wizard step code
Previous code produce an error when there were not tag
IDs passed to the wizard.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-07 22:45:06 -04:00
Roberto Rosario 0065edfae9 Lower the log severity when links don't resolve
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-07 22:39:42 -04:00
Roberto Rosario 9ec021241c Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-07 20:41:28 -04:00
Roberto Rosario 3a60155bfa Add checkout tests
Add link tests. Add checkout info view tests. Move common code to
a test mixin.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-07 01:08:46 -04:00
Roberto Rosario f6a0a421a5 Update the check out info link permission
Update the link permission to match the same required permission
as the view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-07 01:07:01 -04:00
Roberto Rosario 7ed26f4d4c Add checkout details view tests
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-06 20:17:32 -04:00
Roberto Rosario daca9dd539 Fix multiple tag selection wizard step
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-06 19:36:14 -04:00
Roberto Rosario 8c1a9c8798 Fix multiple tag selection wizard step
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-06 02:08:22 -04:00
Roberto Rosario 966d8498bc Update changelog and release notes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-05 02:05:34 -04:00
Roberto Rosario 36a51eeb73 Switch to full app paths
Instead of inserting the path of the apps into the Python app,
the apps are now referenced by their full import path.

This solves name clashes with external or native Python libraries.
Example: Mayan statistics app vs. Python new statistics library.

Every app reference is now prepended with 'mayan.apps'.

Existing config.yml files need to be updated manually.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-05 02:02:57 -04:00
Roberto Rosario 382173351a Source: Change source test behavior
Update sourcs to accept a test argument to their check methods.
This is to allow for explicit test behavior like running the
check method code even when the source is disabled and to
not deleted downloaded content during a test.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-04-05 01:05:58 -04:00
Roberto Rosario d35323aa65 Watch folders: Add support for subfolders
Add support for subfolder scanning to watch folders. Closes
GitLab issue #498 and #563.

This commit adds a new field to watch folders called
"include_subdirectories".

The directory walk was also updated to use pathlib2.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-05 01:03:34 -04:00
Roberto Rosario 9b21275b7e Split sources models into separate modules
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-05 00:41:36 -04:00
Roberto Rosario d493ec34b2 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 22:04:18 -04:00
Roberto Rosario 51ea493a26 Use bytes for hash and return the unicode
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 22:03:19 -04:00
Roberto Rosario 49403978b1 Update build string
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 17:09:43 -04:00
Roberto Rosario 8c770d5ba3 Merge branch 'releases/all' 2019-04-04 17:08:03 -04:00
Roberto Rosario b01e8707a3 Add troubleshooting documenation topic
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 17:07:41 -04:00
Roberto Rosario 8896f58d6f Add support for skipping a default set of tests
Tests to be excluded by default should be tagged
as 'exclude'.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 16:48:11 -04:00
Roberto Rosario 3afb74224d Update build strings
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 02:49:05 -04:00
Roberto Rosario 3a4f97c5c2 Bump version to 3.1.10
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 02:48:00 -04:00
Roberto Rosario 8419facb8a PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 02:46:25 -04:00
Roberto Rosario 3cbc6435a2 Improve markup in release notes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 02:39:57 -04:00
Roberto Rosario e7627a723e Remove repeated section
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 02:39:46 -04:00
Roberto Rosario e77afeee37 Add API client examples
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 02:32:02 -04:00
Roberto Rosario 6a5a2350bb Fix documentation tag chapter reference
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 02:31:26 -04:00
Roberto Rosario 912675bf99 Force object to text
Force text display of object when raising PermissionDenied
to avoid UnicodeDecodeError. Thanks to Mathias Behrle
(@mbehrle) for the report and the debug information.
GitLab issue #576.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-04 01:39:06 -04:00
Roberto Rosario a56e3ca111 Add the MIMETYPE_FILE_READ_SIZE setting
This new setting is used to limit the number of bytes read
while determining the MIME type of a new document. A value
of 0 will cause the entire file to be loaded into memory.
1024 appears to be a suitable number for most cases. This
setting defaults to 0 to preserve the current behavior but
might change in a future version.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-03 22:24:19 -04:00
Roberto Rosario 5f877cdc22 Validate the state completion value before saving
Thanks to Manoel Brunnen (@mbru) for the report and debug
information. GitLab issue #557.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-03 18:28:25 -04:00
Roberto Rosario d5efd53b5b Add issue 564 credit.
Thanks to the Stéphane (@shoyu) for the report and debug
information.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-03 16:54:45 -04:00
Roberto Rosario c156c02376 Fix index list API view
Add index create, delete, detail API tests. Fixes GitLab
issue #564.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-03 16:52:54 -04:00
Roberto Rosario a196205593 Add missing index API view create permission
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-03 16:50:44 -04:00
Roberto Rosario 26cf7fb97c Add release notes for version 3.1.10
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-03 15:28:19 -04:00
Roberto Rosario 863892f909 Add metadata wizard step test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-03 14:51:26 -04:00
Roberto Rosario 5a64a3e833 Reject emails attachments of size 0
Thanks to Robert Schoeftner (@robert.schoeftner)for the report
and solution. GitLab issue #574.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 23:51:53 -04:00
Roberto Rosario 45786005ab Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 22:39:37 -04:00
Roberto Rosario f45384e399 Add API to list all templates
Remove newlines from the rendered templates.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 22:37:46 -04:00
Roberto Rosario 33a542b9d5 Add support for server side link badges
GitLab issue #562.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 22:36:57 -04:00
Roberto Rosario 00d07214b1 Remove notification badge AJAX setup
Individual link AJAX workers are obsolete now that the menu
is being rendered by its own AJAX renderer.
GitLab issue #562.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 22:34:54 -04:00
Roberto Rosario 1e8030a722 Add view test for compressed files
GitLab issue #572.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 18:58:17 -04:00
Roberto Rosario f6404fbd4b Merge remote-tracking branch 'origin/master' into hotfix 2019-04-02 18:56:47 -04:00
Roberto Rosario b59c39261f Merge branch 'feature/error_ziparchive_children' into 'master'
Updates method for getting zip file members - Closes #572

Closes #572

See merge request mayan-edms/mayan-edms!41
2019-04-02 22:55:28 +00:00
Roberto Rosario a5b513f986 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 18:31:05 -04:00
Roberto Rosario 45a688749c Merge remote-tracking branch 'origin/master' into hotfix 2019-04-02 18:20:48 -04:00
Roberto Rosario 15473620c4 Merge branch '568-pin-tornado-version' into 'master'
Pin tornado dependency to maintain Py27 compatibility - fixes #568

Closes #568

See merge request mayan-edms/mayan-edms!40
2019-04-02 22:20:31 +00:00
Roberto Rosario 7cd0e16cc2 Merge remote-tracking branch 'origin/master' into hotfix
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 15:23:24 -04:00
Roberto Rosario caab7b3b59 Merge branch '566-custom-rooturl-in-tests' into 'master'
Support custom ROOT_URLCONF in tests - fixes #566

Closes #566

See merge request mayan-edms/mayan-edms!37
2019-04-02 19:15:17 +00:00
Roberto Rosario 47d850e164 Synchronize translations
Add Czech and Greek. Replace 'da' with 'da_DK', 'zn_CN' with 'zh'.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 15:08:49 -04:00
Roberto Rosario b27e160d15 Update required Django version to 1.11.20
From Django 1.11.16.

* Django 1.11.17 fixes several bugs in 1.11.16 and adds compatibility
  with Python 3.7.
* Prevented repetitive calls to geos_version_tuple() in the WKBWriter
  class in an attempt to fix a random crash involving LooseVersion
  since Django 1.11.14 (#29959).
* CVE-2019-3498: Content spoofing possibility in the default 404 page
  An attacker could craft a malicious URL that could make spoofed
  content appear on the default page generated by the
  django.views.defaults.page_not_found() view. The URL path is no
  longer displayed in the default 404 template and the request_path
  context variable is now quoted to fix the issue for custom
  templates that use the path
* CVE-2019-6975: Memory exhaustion in django.utils.numberformat.format()
  If django.utils.numberformat.format() – used by contrib.admin as
  well as the the floatformat, filesizeformat, and intcomma templates
  filters – received a Decimal with a large number of digits or a large
  exponent, it could lead to significant memory usage due to a call to
  '{:f}'.format(). To avoid this, decimals with more than 200 digits
  are now formatted using scientific notation.
* Corrected packaging error from 1.11.19 (#30175).

https://docs.djangoproject.com/en/2.1/releases/1.11.17/
https://docs.djangoproject.com/en/2.1/releases/1.11.18/
https://docs.djangoproject.com/en/2.1/releases/1.11.19/
https://docs.djangoproject.com/en/2.1/releases/1.11.20/

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 14:13:20 -04:00
Roberto Rosario 3eb4a70fbf Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 13:36:16 -04:00
Roberto Rosario d4df7e69d7 Merge remote-tracking branch 'origin/master' into hotfix 2019-04-02 13:32:42 -04:00
Roberto Rosario 0055429703 Merge branch 'mbn/docker-build-fixes' into 'master'
Docker build fixes

See merge request mayan-edms/mayan-edms!35
2019-04-02 17:32:02 +00:00
Roberto Rosario eafdfd8177 Merge remote-tracking branch 'origin/master' into hotfix 2019-04-02 13:26:46 -04:00
Roberto Rosario a8e52126f5 Merge branch 'hotfix' of gitlab.com:mayan-edms/mayan-edms into hotfix
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 13:11:26 -04:00
Roberto Rosario 70facb96f0 Merge branch 'master' into 'master'
Update translation file

See merge request mayan-edms/mayan-edms!33
2019-04-02 17:10:43 +00:00
Roberto Rosario f583e24c47 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 13:09:56 -04:00
Roberto Rosario 7db27aa9fe Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 13:07:43 -04:00
Roberto Rosario f5bc055a11 Fix test document reference
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 13:04:43 -04:00
Roberto Rosario 965160b7a2 Merge remote-tracking branch 'origin/master' into hotfix 2019-04-02 13:04:12 -04:00
Roberto Rosario 85b3164592 Merge branch 'master' into 'master'
Fix super call in APIAdvancedSearchView

See merge request mayan-edms/mayan-edms!36
2019-04-02 17:02:13 +00:00
Roberto Rosario 7634d9e5da Improve search API tests
Add tests for the advanced search API. GitLab merge !36.
Thanks to Simeon Walker (@simeon-walker) for the find and fix.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 13:00:37 -04:00
Roberto Rosario 48253f3f85 Update index test case to be order agnostic
Use sets and remove explicit index node ordering to allow tests
to work regardless of the node creation order. GitLab issue #559.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 02:36:30 -04:00
Roberto Rosario dd2c64d453 Remove unused import
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 02:35:13 -04:00
Roberto Rosario 517c05a9c2 Allow passing arguments to the makefile targets
Add an ARGUMENTS option to the test-all and test targets.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 02:34:19 -04:00
Roberto Rosario 99bbe7d47c Simple optimizations to the checkout app
Use exists and use subqueries optimizations.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 02:33:32 -04:00
Roberto Rosario 586d41eeff Backport test case improvements
Add random primary key mixin. Split test case code into mixins.
Make the view test case and the API test cases part of the same
class hierachy. Update tests that failed due to the new import
locations.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-04-02 02:31:35 -04:00
Jorge E. Gómez 7fb18b14eb Fixes error: ZipArchive object has no attribute 'children' 2019-03-15 22:58:15 +00:00
Roger Hunwicks 68398e2ce6 Pin tornado dependency to maintain Py27 compatibility - fixes #568
Signed-off-by: Roger Hunwicks <roger@tonic-solutions.com>
2019-03-05 10:54:46 +02:00
Roger Hunwicks d23f5eb540 Support custom ROOT_URLCONF in tests - fixes #566 2019-02-28 14:02:46 +02:00
Simeon Walker 4bbd5dab70 Fix super call in APIAdvancedSearchView 2019-02-14 10:10:31 +00:00
Manoel Brunnen c4b9ae596e Workaround for pip bug #6179
See https://github.com/pypa/pip/issues/6197
2019-02-04 11:24:56 +01:00
Manoel Brunnen 5c9ff90d28 Fix libssl-dev dependency installation
The apt package informations have already been removed at this point.
Also, this dependency is not armhf specific.
2019-02-04 11:24:50 +01:00
Littm f5d2f34e30 Update translation file 2018-11-25 01:04:12 +00:00
Roberto Rosario 8cbae9021b Release: Update setup build string
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-11-01 03:55:42 -04:00
Roberto Rosario 8a971400b1 Release: Bump version to 3.1.9
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-11-01 03:55:06 -04:00
Roberto Rosario fb3678bb6f Sources: Convert furl querystring to text
Convert the furl instance to text to allow serializing it into
JSON to be passed as arguments to the background task.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-11-01 03:50:34 -04:00
Roberto Rosario 7c5477b439 Release: Update build string
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-31 19:10:08 -04:00
Roberto Rosario cc7362b269 Release: Bump version to 3.1.8
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-31 19:09:05 -04:00
Roberto Rosario dcb55f4aff Utilities: Remove remarked statement
Remove print statement fromt he increase_version module.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-31 19:05:47 -04:00
Roberto Rosario ba6fd842d2 Documentation: Add version 3.1.8 release notes
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-31 19:05:03 -04:00
Roberto Rosario cf1726505b Documenation: Fix spelling errors
Fix spelling errors in documentation and other program texts.
Update the spelling exceptions list.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-31 18:41:20 -04:00
Roberto Rosario 8b41a9bfc9 Documentation: Expand the Source control section
Add new subsection explaining commit messages structure to be
used in the project.

Updates and expands explanations regarding the Git branch
structure used in the project.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-31 17:24:43 -04:00
Roberto Rosario e109068b29 Indexing: Add document base property reindex
Add support for reindexing documents when their base properties like
the label and description are edited.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-31 17:08:56 -04:00
Roberto Rosario 9fc7c4fc09 Add explicit argument name of 'mode' to the open statement.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-31 16:53:48 -04:00
Roberto Rosario 5a8455bfc2 Update translation files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-29 13:24:07 -04:00
Roberto Rosario 033d6751e0 Add utility and makefile target to increase version number mechanically. Update release checklist.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-29 12:55:24 -04:00
Roberto Rosario d9ee75cc47 Merge branch 'feature/show_config' into versions/next
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-19 02:58:53 -04:00
Roberto Rosario 6ae24493eb Add new showsettings management command
This command displays the current configuration settings.
Default the YAML flow format to False which never uses inline.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-19 02:55:16 -04:00
Roberto Rosario b4f43adc1a Documentation: Use Sphinx's extlinks to cut down on repeated URLs. Merge Administration and Maintenance topics. Add database conversion chapter. Unify the header format of all recent release notes. Fix :doc: references.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-18 23:02:30 -04:00
Roberto Rosario 46d48cc5ea Add template variable for the setup module build number.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-18 16:29:31 -04:00
Roberto Rosario b74a323f2b Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-18 16:21:43 -04:00
Roberto Rosario bcd2427ab6 Move the noop OCR backend to the right place.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-18 16:21:12 -04:00
Roberto Rosario 8fcc61bde5 Update documentation. Add chapter on password resets. Add administration topic.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-17 21:38:58 -04:00
Roberto Rosario b716971ba0 Add configuration option to change the project/installation URL. This is used in the password reset emails and in the default document mailing templates.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-17 21:34:48 -04:00
Roberto Rosario ad822834d4 Center workflow preview.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-17 02:43:44 -04:00
Roberto Rosario e222a71966 Remove the workflow preview size constraints.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-17 02:43:17 -04:00
Roberto Rosario 1f27670921 Add release notes for version 3.1.8
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-17 02:05:38 -04:00
Roberto Rosario 321b7ad5ae Add custom validator for multiple emails in a single text field. Change the widget of the email fields in the mailer app to avoid browser side email validation. Closes GitLab issue #530. Thanks to Mark Maglana @relaxdiego for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-17 00:01:48 -04:00
Roberto Rosario cc79e75d35 Add improvements to the metadata URL encoding and decoding to support ampersand characters as part of the metadata value. GitLab issue #529. Thanks to Mark Maglana @relaxdiego for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-16 04:58:42 -04:00
Roberto Rosario 70bb250a23 Add data migrations to the sources app migraton 0019 to ensure all labels are unique before performing the schema migations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-16 02:59:31 -04:00
Roberto Rosario 5eee810d8e Merge FAQ with the Wiki's FAQ page.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-16 01:21:14 -04:00
Roberto Rosario 37bd5862e6 Flip order of getting start and release notes topics
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-15 20:01:25 -04:00
Roberto Rosario 8bf6c37e35 Add workflow and API chapter. Expand tags chapter.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-15 20:00:25 -04:00
Roberto Rosario e6c43bebf5 Reorganize documentation into topics and chapters. Add new material from Wiki.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-15 06:03:04 -04:00
Roberto Rosario 7cd62b5a85 Prepare files for release.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-14 03:52:05 -04:00
Roberto Rosario d5ef08b636 Bump version to 3.1.7
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-14 03:51:25 -04:00
Roberto Rosario c9fb3814d9 documenation: Add Docker installation method using a dedicated Docker network. Add scaling up chapter. Add S3 storage configuration section.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-14 03:47:41 -04:00
Roberto Rosario 5a922e2689 Fix the no contentn email test on Python 3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-14 02:51:19 -04:00
Roberto Rosario e55ce29c5f Make sure email messages are always of data type bytes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-14 02:50:32 -04:00
Roberto Rosario 9634ba75a6 Update changelog and release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-14 01:21:22 -04:00
Roberto Rosario 665dbb6766 Merge branch 'versions/next' into 'versions/next'
Versions/next

See merge request mayan-edms/mayan-edms!30

Closes GitLab issues #525 and #527
2018-10-14 05:15:21 +00:00
Hamish Farroq 4efc3ec182 Add noop OCR driver. 2018-10-14 05:07:06 +00:00
Hamish Farroq e2e89efb47 Fix the path to the SECRET_KEY 2018-10-14 04:58:33 +00:00
Hamish Farroq 680e6721f1 Fix spelling, MAYAN_WORKERS_... to MAYAN_WORKER_... 2018-10-14 04:52:46 +00:00
Roberto Rosario 7a4302415a PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-14 00:29:46 -04:00
Roberto Rosario 8c6ba747f0 Ignore document stub from the index mirror. GitLab issue #520. Thanks to TheOneValen @TheOneValen for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-13 03:41:46 -04:00
Roberto Rosario 88f41a570e Make sure all key used as input for the cache key hash are bytes and not unicode. GitLab issue #520. Thanks to TheOneValen @TheOneValen for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-13 03:38:50 -04:00
Roberto Rosario e731cca629 Merge branch 'versions/next' of gitlab.com:mayan-edms/mayan-edms into versions/next 2018-10-12 12:35:07 -04:00
Roberto Rosario eb357b18fc Don't load development apps if they are already loaded.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-12 03:10:56 -04:00
Roberto Rosario 38c84de708 Remove duplicate YAML loading of environment variables.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-12 03:10:09 -04:00
Roberto Rosario 417fc8f766 Fix an issue with some browsers not firing the .load event on cached images. Ref: http://api.jquery.com/load-event/
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-12 03:07:55 -04:00
Roberto Rosario e508b3a7a2 Add link to version 3.1.6 release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-09 22:34:10 -04:00
Roberto Rosario abe9fa0e47 Prepare files for release.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-09 19:18:58 -04:00
Roberto Rosario 6c9da58ec3 Bump version to 3.1.6. Add release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-09 19:18:23 -04:00
Roberto Rosario cc27233765 Display the cabinet "Add new level" link in the top level view too.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-09 19:15:09 -04:00
Roberto Rosario 4cbe27a462 Add icon to the cabinet "Add new level" link.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-09 19:12:50 -04:00
Roberto Rosario 15b9c0c56f Only render the Template API view for authenticated users. Thanks rgarcia for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-09 19:10:35 -04:00
Roberto Rosario f34bead7d2 Improve index mirroring cache class to use the hash of the keys instead of the literal keys. Avoid warning about invalid key characters. Closes GitLab issue #518. Thanks to TheOneValen @ for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-09 05:12:19 -04:00
Roberto Rosario 1e08653b88 Improve index mounting value clean up code to remove the spaces at the starts and at the end of directories. Closes again GitLab issue #520 Thanks to TheOneValen @ for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-09 04:48:25 -04:00
Roberto Rosario 838035291d Prepape files for release.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-08 19:52:40 -04:00
Roberto Rosario 4ad84195e0 Fix document metadata app view error when adding multiple optional metadata types. Closes GitLab issue #521. Thanks to the TheOneValen @TheOneValen for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-08 19:51:17 -04:00
Roberto Rosario 7ff974382b Add shared cache class and add mounted index cache invalidation when document and index instance nodes are updated or deleted.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-08 02:22:05 -04:00
Roberto Rosario c715d0fc8e Prepare file for release.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 14:18:40 -04:00
Roberto Rosario a49e7ebd0b Add Python 3.6 and Django 2.0 targets to the tox file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 14:17:48 -04:00
Roberto Rosario 8c486d8459 Update installation instructions regarding libfuse2 and python-pip.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 14:17:11 -04:00
Roberto Rosario 6a3aae3348 Remove python-pip and add libfuse from Dockerfile.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 14:16:47 -04:00
Roberto Rosario f0453357f8 Add libfuse2 library to test suit.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 14:16:15 -04:00
Roberto Rosario 03f5fdda56 Prepare files for release 3.1.5
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 04:45:58 -04:00
Roberto Rosario 9fae8ceb64 Bump version to 3.1.5.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 04:45:31 -04:00
Roberto Rosario 36f21b063d Fix documentation typos. Expand ignored wordlist.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 04:43:24 -04:00
Roberto Rosario efc17eb075 Update changelog and release notes for 3.1.5
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 04:30:41 -04:00
Roberto Rosario eeeb246ed7 Restore use of the .store_body variable accidentally remove in 63a77d0235. Thanks to TheOneValen @TheOneValen for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 04:30:32 -04:00
Roberto Rosario 55c83689d2 Make sure the image in the document preview view is centered when it is smaller than the viewport.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 03:53:32 -04:00
Roberto Rosario 733216448d Coding style updates.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 03:50:07 -04:00
Roberto Rosario 16dce6b3aa Make sure metadata lookup choices are a list to be able to add the optional marker (Python 3).
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-07 03:40:37 -04:00
Roberto Rosario 8d81d1df7b Update the metadata app tests to work on Python 3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 22:33:51 -04:00
Roberto Rosario c6354beb92 Add separate Python 2 and Python 3 versions of the MetadataType model .comma_splitter() static method.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 22:32:29 -04:00
Roberto Rosario c97ab57f51 URL quote the encoded names of the staging files using Django's compat module. (Python 3). Open staging file in explicit binary mode. (Python 3)
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 22:23:43 -04:00
Roberto Rosario 06c783820e Specify FUSE literals in explicit octal notation (Python 3).
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 22:21:18 -04:00
Roberto Rosario 7fb13a5888 Return a proper list of SearchModel instances (Python 3).
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 22:20:13 -04:00
Roberto Rosario c6e68515ed Handle office files in explicit binary mode for Python 3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 05:07:05 -04:00
Roberto Rosario 28706f5ea5 Update document parsing app tests to work with Python 3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 05:03:24 -04:00
Roberto Rosario 36e4d78487 Add a modelform for adding and editing transformation and perform YAML validation of arguments. Add stricted error checking to the crop transformation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 04:59:50 -04:00
Roberto Rosario 277ff7ef67 Update compressed files class module to work with Python 3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 04:56:39 -04:00
Roberto Rosario 9c81c41624 Ignore virtualenv for Python 3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 02:14:54 -04:00
Roberto Rosario a99b044555 Code style improvement. Test code consolidation. PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 02:13:36 -04:00
Roberto Rosario 025fafabf4 Code style cleanups. Switch to a smaller document for tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-06 00:10:23 -04:00
Roberto Rosario 0f8825454d Add link and view to show the content of parsed text for each document page.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-05 23:47:10 -04:00
Roberto Rosario 58fb762fac Update release notes for upcoming 3.1.5 version.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-05 21:54:51 -04:00
Roberto Rosario ffbdcef3b4 Split the code of the mountindex command to be able to add tests. Fix the way the children of IndexInstanceNode are accessed. Fixes GitLab issue #518. Thanks to TheOneValen @TheOneValen for the report. Remove newlines from the index name levels before using them as FUSE directories. Fixed duplicated FUSE directory removal.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-05 21:49:52 -04:00
Roberto Rosario 598312c4d3 Consolidate some document indexing test code into a new mixin.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-05 21:45:49 -04:00
Roberto Rosario fc82f64705 Install the enchant library needed to build the documentation spell checker.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-04 22:27:42 -04:00
Roberto Rosario bac8c4f77c Prepare files for release.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-04 19:38:26 -04:00
Roberto Rosario 599ea0056c Bump version to 3.1.4.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-04 19:37:48 -04:00
Roberto Rosario 8e3484663b Add spell checking to documentation target.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-04 19:34:07 -04:00
Roberto Rosario e9180f68d7 Update release notes. Fix typos is older documentation format.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-04 19:06:18 -04:00
Roberto Rosario b6fbce16c0 Add explanation to the launch workflows tool.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-04 19:06:07 -04:00
Roberto Rosario c9d7f7757f Split changelog by series.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-04 03:33:23 -04:00
Roberto Rosario e0b7f31111 Improve search app. Refactored to resolve search queries by terms first then by field.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-04 03:29:03 -04:00
Roberto Rosario 2b2981af25 Add release for version 3.1.4
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-03 20:41:54 -04:00
Roberto Rosario d663d0cf63 Add links to release notes and changelog in the about view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-03 20:41:36 -04:00
Roberto Rosario 071e0db610 Strip HTML entities from the browser's window title. Closes GitLab issue #517. Thanks to Daniel Carrico @daniel1113 for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-03 20:17:13 -04:00
Roberto Rosario 08a69f534e Update required Django version to 1.11.16.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-03 15:16:09 -04:00
Roberto Rosario 72678e31f3 Display the correct AJAX request error property.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-03 15:14:18 -04:00
Roberto Rosario e9db07bfd3 Encapsulate in_trash field into is_in_trash symetric Document property
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-03 15:14:11 -04:00
Roberto Rosario a023d893ea Remove debug print.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-03 15:14:00 -04:00
Roberto Rosario 626e1f3451 Fix workflow edit view tests. Improvie workflow view test via test mixins.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-03 15:13:51 -04:00
Roberto Rosario 3b369193a5 Show proper placeholder edit text on forms when no title is specified.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-03 15:13:34 -04:00
Roberto Rosario a076c751ad Add support for reindexing document on content parsing changes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-03 15:13:19 -04:00
Roberto Rosario fb83a838fb Add support for indexing on OCR content changes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-02 03:54:29 -04:00
Roberto Rosario 34c2fd6177 Load the DropZone CSS from package and remove the hard code CSS from appearance/base.css
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-02 03:10:18 -04:00
Roberto Rosario bbfe35b8fd Disable the fancybox caption link if the document is in the trash.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-02 02:53:55 -04:00
Roberto Rosario f6e39380af Remove use of hard coded font icon for document page rendering busy indicator.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-02 02:40:13 -04:00
Roberto Rosario da8c9d08d8 Add Redis config entries in the Docker images to disable saving the database and to only provision 1 database.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-02 02:30:50 -04:00
Roberto Rosario ded7eb0bfd Login to the GitLab registry before pulling the image.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-02 02:28:36 -04:00
Roberto Rosario 4228338870 Update related links. Add links to the new Wiki and Forum.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-02 02:26:09 -04:00
Roberto Rosario 4b4aac246b Fix the link to the documenation. Closes GitLab issue #516. Thanks to Matthias Urlichs @smurfix for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-10-02 02:19:05 -04:00
Roberto Rosario cdcf9096fb Fix text and formatting typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-27 15:52:08 -04:00
Roberto Rosario 916c8e2cab Rebuild documentation on the releases/all branch too.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-27 04:24:56 -04:00
Roberto Rosario b25ebbef95 Merge remote-tracking branch 'origin/master' 2018-09-27 04:22:16 -04:00
Roberto Rosario 8f56adf311 Prepare files for release.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-27 04:20:43 -04:00
Roberto Rosario e3aeb8cfef Bump version to 3.1.3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-27 04:19:45 -04:00
Roberto Rosario 2d69c6114b Add Gitlab CI stage to build documentation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-27 01:21:44 -04:00
Roberto Rosario 635263dc95 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 22:52:17 -04:00
Roberto Rosario 26ac7de70b Synchronize and compile translations
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 22:50:48 -04:00
Roberto Rosario 06e013788f Add release for version 3.1.3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 22:30:55 -04:00
Roberto Rosario 38485b1cf8 Fix text typo in the converdb command.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 22:30:08 -04:00
Roberto Rosario 3c2557fb47 Update translation source files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 22:29:54 -04:00
Roberto Rosario 4716e3eb15 Update docker documentation chapter.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 22:23:47 -04:00
Roberto Rosario 6159bdca45 Fix message typos.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 22:23:35 -04:00
Roberto Rosario 67b97c0ed0 Update Docker documentation chapter.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 21:23:15 -04:00
Roberto Rosario c67c0e3742 Add support for changing the concurrency of the Celery workers in the Docker image. Add environment variables MAYAN_WORKER_FAST_CONCURRENCY, MAYAN_WORKER_MEDIUM_CONCURRENCY and MAYAN_WORKER_SLOW_CONCURRENCY.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 21:22:57 -04:00
Roberto Rosario 402039ff99 Improve deployment documentation chapter.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 21:10:36 -04:00
Roberto Rosario 71a0510af1 Expose the Django INSTALLED_APPS setting.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 20:27:07 -04:00
Roberto Rosario 9f17d7662b Add no results help text to the document type -> metadata type association view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 16:52:13 -04:00
Roberto Rosario 7bda5b1fce Fix user groups view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 16:49:35 -04:00
Roberto Rosario d3c1204626 Make sure template API renders in non US languages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-26 16:41:54 -04:00
Roberto Rosario bd359a9ad9 Update the format of the MAYAN_ALLOWED_HOSTS environment setting. 2018-09-24 20:20:37 +00:00
Roberto Rosario e46f55a2a2 Prepare files for release.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 03:02:46 -04:00
Roberto Rosario 8c229d4b36 Latest Django version is 1.11.15.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 03:01:57 -04:00
Roberto Rosario 1246d4360a Bump version to 3.1.2
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 02:43:21 -04:00
Roberto Rosario 97108fb9df Prepare files for release.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 02:42:20 -04:00
Roberto Rosario 98c44df9cc Add missing .self.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 02:39:59 -04:00
Roberto Rosario 758a14e358 Intercept document list view exception and display them as an error message.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 02:10:20 -04:00
Roberto Rosario ff5a0d32d4 Only show smart link resolution errors to the user with the smart link edit permission.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 02:09:01 -04:00
Roberto Rosario f600ca5a1a Fix label display for resolved smart links when not using a dynamic label.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 00:56:56 -04:00
Roberto Rosario c8ff089707 Add database conversion test to the common app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 00:49:01 -04:00
Roberto Rosario 7c4de79c8f Calculate the path of the test document before it is uploaded.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 00:47:35 -04:00
Roberto Rosario a96e7574b2 Add support for natural keys to the DocumentPageImageCache model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 00:47:11 -04:00
Roberto Rosario 9716e51914 Force load of serialized data when running as a test.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 00:26:24 -04:00
Roberto Rosario 022c92f775 Add an user test mixin to group user testing. Add test the user managament app for database conversion.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 00:12:45 -04:00
Roberto Rosario 5d24521049 Add test mixin to test the db conversion (dumping and loading) of a specific app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 00:11:17 -04:00
Roberto Rosario 9e4ad9a64f Add support to the convertdb command to operate on specified apps too.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 00:09:58 -04:00
Roberto Rosario 06288e3d6d Update from Django 1.11.11 to 1.11.16
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 00:08:38 -04:00
Roberto Rosario ef1f011cd5 Improve natural key support in the UserOptions model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-21 00:07:51 -04:00
Roberto Rosario 923cb3a7f2 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-19 20:54:15 -04:00
Roberto Rosario eda8d18146 Database access in data migrations defaults to the 'default' database. Force it to the user selected database instead.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-19 20:53:04 -04:00
Roberto Rosario fdfa4755e9 Don't use a hardcoded database alias for the destination of the database conversion.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-19 20:52:31 -04:00
Roberto Rosario 74d45212ec Bump version to 3.1.1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-18 22:11:01 -04:00
Roberto Rosario ce7ae7a606 Prepare release 3.1.1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-18 22:10:17 -04:00
Roberto Rosario 041f4e7331 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-18 22:03:25 -04:00
Roberto Rosario 618a5f0f59 Fix 90, 180 and 270 degrees rotation transformations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-18 21:34:58 -04:00
Roberto Rosario 55284c4681 Make sure the AJAX spinner stays in place.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-18 21:19:50 -04:00
Roberto Rosario fc9a782fb8 Push release images with the tag :latest too.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 23:48:32 -04:00
Roberto Rosario 0112e12375 Allow releasing Docker images separetly from Python packages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 23:45:43 -04:00
Roberto Rosario d1118e3767 Silence UnorderedObjectListWarning for the Group model. Not sorted by Django.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 23:38:41 -04:00
Roberto Rosario 5e98bedbc9 Rename the Docker image and push jobs.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 22:37:16 -04:00
Roberto Rosario bbdab284f8 Set the Docker image version environment again and tag the image for upload to Docker Hub.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 22:30:59 -04:00
Roberto Rosario ab56758197 Pull the image from GitLab's registry before attempting to uploading to Docker's registry.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 22:05:58 -04:00
Roberto Rosario e9bc10a056 Fix python package build and push scripts.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 19:27:18 -04:00
Roberto Rosario 531ca12021 Bump version to 3.1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 18:53:43 -04:00
Roberto Rosario a986b58338 Prepare release files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 18:52:26 -04:00
Roberto Rosario ecdc122b15 Code cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 18:28:34 -04:00
Roberto Rosario f2fff77aab Move information links from menu to the about view. Add template tag to import icons from the templates.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 18:13:15 -04:00
Roberto Rosario c2bb697306 Add the current step and total steps of a wizard in the template context.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 17:09:59 -04:00
Roberto Rosario 62e221ffbb Make icon classes file template based.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 17:08:15 -04:00
Roberto Rosario 58f7b1b555 Add file_size and datetime fields to the DocumentPageCachedImage model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 03:39:28 -04:00
Roberto Rosario 206dbb9b5b The size of the document type label field has been increased from 32 to 96 characters.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 03:14:27 -04:00
Roberto Rosario 804ef00d41 Add no results help text for the search results view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 03:12:03 -04:00
Roberto Rosario ac07d4a63f Add more icons to links.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 03:09:04 -04:00
Roberto Rosario 4d53c9aec7 Code clean up.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 02:54:47 -04:00
Roberto Rosario a372fc5a07 Improve model help texts. Add respective migrations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 02:46:16 -04:00
Roberto Rosario 03c54395cc Refactor the ModelAttribute class into two separate classes: ModelAttribute for executable model attributes and ModelField for actual ORM fields. Expose more document fields for use in smart links.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 02:43:04 -04:00
Roberto Rosario fafdb538b3 Generalize the Javascript menu rendering into an API for templates that only refresh the menu when there are changes. Closes GitLab issue #511. Thanks to Daniel Carrico @daniel1113 for the report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-16 21:48:37 -04:00
Roberto Rosario 654f2a1ad2 Move get_user_label to a module. Move user label text and separator to links modules.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-16 21:16:07 -04:00
Roberto Rosario 51cf39f4d8 Support named links, add templatetags to get menus, links and resolve them.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-16 21:12:09 -04:00
Roberto Rosario e6eebe11a7 Move the matchHeight call from lazy loading to image loading.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-16 20:54:32 -04:00
Roberto Rosario 89256bfb9a Bump version to 3.1rc1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-14 00:57:29 -04:00
Roberto Rosario 4df9fae737 The build string is now part of the mayan package metadata. Update forum link. Add instagram link.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-14 00:54:24 -04:00
Roberto Rosario 632f4b598b docs: Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-14 00:21:02 -04:00
Roberto Rosario a09511d0e9 document_indexing: Make IndexInstanceNodeManager a subclass of mptt.TreeManager.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-14 00:19:06 -04:00
Roberto Rosario 5880a650b3 document_indexing: Test for an empty node list instead of a non existing root node.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-14 00:18:02 -04:00
Roberto Rosario 0fadd84567 document_indexing: Fix typo in test literal.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-14 00:17:32 -04:00
Roberto Rosario b8c5e2380e document_indexing: Make sure locks are release on exceptions. Remove document from nodes and delete empty nodes only at the start of the indexing process. When the indexing starts at the template node, make sure it starts with the root node.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-14 00:15:28 -04:00
Roberto Rosario 98f34a2f42 document_indexing: Sort task functions. Even when the document has been deleted before the task executes and can't remove the document, run the method to remove empty nodes since there is the posibility of there being some.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-14 00:13:28 -04:00
Roberto Rosario afc48ae331 Fix typo in comment.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-14 00:12:41 -04:00
Roberto Rosario b42161e404 Add no results help text to the key management views. Add creation icon to the workflow and metadata type no content help texts links.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 22:12:48 -04:00
Roberto Rosario ab34694d49 Improve navigation in the key management views.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 22:12:10 -04:00
Roberto Rosario efdc35aaec Fix sporadic index instance node tree id warning.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 21:35:17 -04:00
Roberto Rosario 031f5c8312 Merge branch 'versions/next' of gitlab.com:mayan-edms/mayan-edms into versions/next 2018-09-12 14:19:44 -04:00
Roberto Rosario dd3013826f Bump version to 3.1 beta2.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 14:19:27 -04:00
Roberto Rosario bc398d79cf Add HTML buffer to reduce flicker on AJAX menu update. GitLab issue #511.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 14:18:43 -04:00
Roberto Rosario ecc60ce540 Add HTML buffer to reduce flicker on AJAX menu update. GitLab issue #511.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 14:17:19 -04:00
Roberto Rosario c82125c611 Update changelog and release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 13:49:27 -04:00
Roberto Rosario 732d275ec1 Default the AJAX spinner to hidden. Increase the time threshold needed to trigger the AJAX spiiner.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 13:47:40 -04:00
Roberto Rosario e51a1a93d0 Merge branch 'feature/staging_file_caching' into versions/next 2018-09-12 13:34:14 -04:00
Roberto Rosario f51ee02f08 Remove test Python 3 virtualenv files
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 13:33:30 -04:00
Roberto Rosario a85d33fd8e Complete staging file caching refactor.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 13:32:41 -04:00
Roberto Rosario 1f5da1745a Improve empty document cabinet view message.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 03:50:15 -04:00
Roberto Rosario 55930689bb Update language files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 03:45:51 -04:00
Roberto Rosario 9bc16aabc3 Initial commit to support staging file background image generation and caching.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 03:35:33 -04:00
Roberto Rosario e42ea89db7 Show the document type being uploaded in the source view title.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 02:02:35 -04:00
Roberto Rosario 962f395831 Add new dashboard item to display the total page count.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-12 01:56:37 -04:00
Roberto Rosario 6a251575ac Make environment overrided setting message more clear.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-11 15:00:34 -04:00
Roberto Rosario 29aaa8d452 Include the test file in the manifes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-07 19:17:02 -04:00
Roberto Rosario bc5715254e Make sure the test requirements are installed in the virtualenv.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-07 04:55:46 -04:00
Roberto Rosario 2be29a2300 Install sudo to allow changing to the Mayan user. Install the database drivers in the final image instead of the base image. Use variable instead of the literal binaries.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-07 04:31:24 -04:00
Roberto Rosario c2a1c2ca7b Bump version to 3.1 beta1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-07 03:57:05 -04:00
Roberto Rosario 3f7fd9a445 Fix typo in the settings loader error report.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-07 03:35:33 -04:00
Roberto Rosario 5d39ec4ed3 Update the Docker install to mirror the new recommended installation process at /opt. Use virtualenv for the Docker install.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-07 03:34:58 -04:00
Roberto Rosario f7a9550bb1 Improve Python 3 support in the sources app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 17:38:17 -04:00
Roberto Rosario e0d0567f1f Fix order in document indexing test.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 17:23:09 -04:00
Roberto Rosario 4ae7a32443 Update OCR app tests to work with Python 3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 16:59:38 -04:00
Roberto Rosario e41f2f73e7 Improve metadata app tests pass rate for Python 3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 16:55:48 -04:00
Roberto Rosario d3af59ec06 Add improvement to the mayan_statistics app for Python 3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 16:46:35 -04:00
Roberto Rosario 91b2c99e77 Unify and improve linking app tests for Python 3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 16:44:47 -04:00
Roberto Rosario 4eab4670be Unify tests that use upload documents. Add explicit mode when opening a file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 03:38:17 -04:00
Roberto Rosario 388b61ca7a Provide a class magic method for proper sorting.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 03:37:15 -04:00
Roberto Rosario 976872df35 Type cast dictionary items to list before attemping to slice.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 03:36:20 -04:00
Roberto Rosario 9eb3d39558 Cast value to bytes before doing hash.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 03:35:50 -04:00
Roberto Rosario 44ac0932b3 Fix relative icon import.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 01:48:06 -04:00
Roberto Rosario 2fe6a15f1a Use Python 3 style print function.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 01:47:45 -04:00
Roberto Rosario 5b806a43e9 Add creation icons for document cabinet, metadata, comments and tags links.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-06 01:46:48 -04:00
Roberto Rosario 64ca5a623f PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-05 04:56:39 -04:00
Roberto Rosario 4b2226cf04 Add tests for the index rebuild view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-05 04:32:57 -04:00
Roberto Rosario 435fa774f0 Add support for preserving the extension of document files when using the quick label feature. Added to the document properties edit view and the document upload view. Closes GitLab issue #360.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-05 04:06:13 -04:00
Roberto Rosario aac0852128 Clean up document download view class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-05 01:03:40 -04:00
Roberto Rosario 12143ffda7 Fix document type quick label link when there are no results.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-05 01:03:04 -04:00
Roberto Rosario 1919e78041 Fix variable name in settings.utils
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-05 00:40:56 -04:00
Roberto Rosario e5bb00d514 Finish refactor of the new compressed file class support. Closes GitLab issue #7.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-05 00:40:10 -04:00
Roberto Rosario 61d2cc3d03 Accept forum MERC proposal. Current solution is working at https://forum.mayan-edms.com. Old Google Group has been placed in read-only mode.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-04 23:53:58 -04:00
Roberto Rosario 891dc2d74b Fix Dockerfile typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-04 23:49:16 -04:00
Roberto Rosario f57a3b23ba Add release notes 3.1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-04 19:45:32 -04:00
Roberto Rosario 7e68853e47 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-04 03:25:33 -04:00
Roberto Rosario d2ee960d42 Add custom AJAX spinner.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-04 03:17:41 -04:00
Roberto Rosario 0cb4e687ab Remove pace.js usage
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-04 03:17:16 -04:00
Roberto Rosario bf079a8945 Don't refresh the partial main menu HTML if there are open dropdowns
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-04 02:06:04 -04:00
Roberto Rosario 1088248bf5 Add missing icon from the document state no result template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-03 19:48:09 -04:00
Roberto Rosario 4eb3c47457 Implement partial refresh of the main menu.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-03 19:47:41 -04:00
Roberto Rosario d8ade58472 Add explicit kwargs name.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-03 12:17:01 -04:00
Roberto Rosario fce7ee99ea Add support for having a menu source being excluded from link sorting.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-01 04:15:33 -04:00
Roberto Rosario 6baa63a989 Restore usage of upstream django-celery package. Purge periodic tasks before dumping the database.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-01 03:41:34 -04:00
Roberto Rosario 427aad8277 Add no results help texts for the converter, source, motd and mailer app. Add help text to the document type list view. Tweak the CSS of the no result secondary links.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-01 03:10:45 -04:00
Roberto Rosario c312a2a304 Remove the duplicated setting pdftotext_path from the OCR path. This is now handled by the document parsing app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-01 02:12:08 -04:00
Roberto Rosario 607d178e94 Load a form's specialized JS libraries asynchronously. Move the Dropzone import to the sources app template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-01 02:06:09 -04:00
Roberto Rosario 85a5bd995f Update failing OCR tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-30 13:31:08 -04:00
Roberto Rosario a314e59be2 Update user management view tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-30 13:11:58 -04:00
Roberto Rosario c9dedde1d0 Add no results help text.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-30 05:26:48 -04:00
Roberto Rosario 41b8d6157a Update tests to rely less on view response text.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-30 03:50:37 -04:00
Roberto Rosario 6594756c5b Replace use of mayan.__title__ with common project title to ensure the overrided name is displayed in all views.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-28 03:48:51 -04:00
Roberto Rosario 5eba4f67e5 Add link to view a specific page's OCR content.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-28 03:39:42 -04:00
Roberto Rosario 495ab7fd9b Add no result help text for the document duplicates view and trash can view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-27 15:45:22 -04:00
Roberto Rosario 671b7f102e Add no results help text for the document type quick label list view. Assign icon to the document type quick label objects.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-27 04:09:09 -04:00
Roberto Rosario e6db0ff098 The document type OCR setup permission can now be granted for individual document types. Instead of the document OCR permissions, the document type OCR setting permission is required to view the global OCR error list.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-27 03:55:45 -04:00
Roberto Rosario 3eb68db323 Instead of the document content view, the document type parsing setup permissions is now required to view the parsing error list. The document type parsing setup permission can now be granted for individual document types.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-27 03:52:26 -04:00
Roberto Rosario abcc6539c8 Don't try to update globals if there are no settings.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-27 03:45:05 -04:00
Roberto Rosario 10f10cadeb Add note about environment overrides.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 07:17:27 -04:00
Roberto Rosario 57eb390845 Add support for changing the HOME_VIEW, LOGIN_URL and LOGIN_REDIRECT_URL from the settings view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 07:17:03 -04:00
Roberto Rosario 600fa16d8c Add empty result text to the user events views. Add icon to the acls create link.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 06:57:10 -04:00
Roberto Rosario 69b80aff1d Add support for blocking the changing of password for specify users.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 06:56:48 -04:00
Roberto Rosario c3312d964f Add blank result messages for the index, index instance and favorited documents views.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:55:36 -04:00
Roberto Rosario baeefe7e07 Add message when there are no object events.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:38:36 -04:00
Roberto Rosario de000735ba Add the tag created and tag edited events.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:38:21 -04:00
Roberto Rosario e7279a391e Don't show the document types of an index instance.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:20:44 -04:00
Roberto Rosario c6aab372cb Compose the setting widget in a safer way.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:12:01 -04:00
Roberto Rosario b5abb04c0d The official config filename is config.yml. Interpret ALLOWED_HOSTS as YAML.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:11:42 -04:00
Roberto Rosario 4a61275e80 Change the official config filename to config.yml. Interpret ALLOWED_HOSTS as YAML.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:10:33 -04:00
Roberto Rosario 040c99d809 Add a new column to settings showing if they are overrided via environment variable.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:09:21 -04:00
Roberto Rosario 9adf48821d Add a celery setting namespace.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:07:54 -04:00
Roberto Rosario 7389369832 Add support for the two state widget to be centered.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:07:30 -04:00
Roberto Rosario 58cb79c95a Interpret environment variables as YAML.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-26 05:06:53 -04:00
Roberto Rosario 1126837993 Add new Python package build and push stages. Reduce the number of branches that trigger tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-25 18:01:40 -04:00
Roberto Rosario d6b767eb93 Fix typos from the 3-way "papercut" patch merge.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-24 01:23:13 -04:00
Roberto Rosario c6d3ffa28b Update Django template reference URL from Django 1.7 to Django 1.11. Add migratons to update model definitions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 19:55:30 -04:00
Roberto Rosario 9273eccbd6 Add support for extended templates when there are no results. Add help messages and useful links to several apps when there are no results available.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 19:45:48 -04:00
Roberto Rosario 2a45f52eb9 Add explicit argument name.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 17:09:01 -04:00
Roberto Rosario 377166e491 Improve link request resolution fallback code.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 17:08:35 -04:00
Roberto Rosario 7b6c38e85b Sort facet link, object, secondady and sidebar actions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 17:08:17 -04:00
Roberto Rosario 75f6d44509 Add to the AccessControlList parent accesor code to handle related fields.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 16:20:35 -04:00
Roberto Rosario 2f120d99aa Don't process the AttributeError exception but let calling code handle it.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 16:19:30 -04:00
Roberto Rosario ec8cbee3c8 Take the project description from the project main module.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 13:06:00 -04:00
Roberto Rosario d5b9c785fb Improve statistics subclassing. Split class module into classes and renderers.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 13:05:34 -04:00
Roberto Rosario d36faa5b7a The multiple document action dropdown is now sorted alphabetically.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 03:38:23 -04:00
Roberto Rosario 5174f03994 Add support for sorting the results of a menu alphabetically.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 03:37:25 -04:00
Roberto Rosario 12cfdafecf Redirect to the same chart when queuing a chat for update.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 03:37:07 -04:00
Roberto Rosario c760dd883d Fix double title in chart template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 03:35:42 -04:00
Roberto Rosario 649fb544a9 Add support for filtering document statistics by request user.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 03:35:11 -04:00
Roberto Rosario 4c3ca0de91 In addition to the document view permission, the checkout detail view permission is now needed to view the list of checked out document.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 03:34:49 -04:00
Roberto Rosario f11eef7445 Add new class based dashboard widget. This new widget supports subclassing and is template based. All exising widgets have been converted. ACL filtering was added to the widget results.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 03:30:06 -04:00
Roberto Rosario 26b31da443 Add favorite documents per user. Adds new setting option DOCUMENTS_FAVORITE_COUNT.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 01:50:35 -04:00
Roberto Rosario ec44e81864 Add support to the ObjectActionMixin to report on instance action failures. Add also an error_message class property and the new ActionError exception.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 01:48:43 -04:00
Roberto Rosario 48e7b7970c Speed up tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-23 00:17:53 -04:00
Roberto Rosario d6fd1b66c6 Speed up lock manager tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 23:03:55 -04:00
Roberto Rosario 7056f0691a Move Link class condition testing to its original location and revert the optimization.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 22:54:04 -04:00
Roberto Rosario 5c015ccdc3 Update failing test.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 22:53:43 -04:00
Roberto Rosario 1c2c77728a Update missing view resolution name.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 22:35:15 -04:00
Roberto Rosario 103ded5145 Use platform independant hashing for transformations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 22:35:01 -04:00
Roberto Rosario 34b3cc3286 Fix the error number constant and display a log warning.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 12:25:04 -04:00
Roberto Rosario 5a2f7495c1 Add missing import.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 04:07:05 -04:00
Roberto Rosario 9a7e95f5b7 Add recently added document list view. The setting DOCUMENTS_RECENT_COUNT has been renamed to DOCUMENTS_RECENT_ACCESS_COUNT. New setting DOCUMENTS_RECENT_ADDED_COUNT added.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 04:06:46 -04:00
Roberto Rosario 2787a1c395 Sort documents by label.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 03:21:46 -04:00
Roberto Rosario 3c57f7ffa7 Merge branch 'master' into merge_master
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 03:18:30 -04:00
Roberto Rosario 66e7524924 Add support for the fillcolor argument to the rotate transformation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 03:15:02 -04:00
Roberto Rosario a4552cf415 Fix failing tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 02:56:16 -04:00
Roberto Rosario 78bfc6501c Only show the settings namespace list link where it is relevant.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 02:37:12 -04:00
Roberto Rosario 6098bdb0b0 Update forum link in the about menu.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 02:30:11 -04:00
Roberto Rosario a33027dc39 Don't error out if the path to the backup setting file doesn't exist.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 02:28:37 -04:00
Roberto Rosario b5215b40c3 Disable the Tags menu when the user doesn't have the tag create permission or the tag view access for any tag. Disable the Cabinets menu when the user doesn't have the cabinet create permission or the cabinet view permission for any cabinet.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 02:25:54 -04:00
Roberto Rosario 66cf86e816 Add support to conditionally disable menus.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 02:23:23 -04:00
Roberto Rosario dfd2d3dc78 Add new document indexing permission. This permission allows user to view an index instance as opposed to the current permission which allows viewing an index definiton on the setup menu. Modernize the document index view tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 01:04:36 -04:00
Roberto Rosario 1890ff5bee Add missing permission check to the document duplicate scan link.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 00:42:37 -04:00
Roberto Rosario 5210fdc9d8 The index rebuild permission can now be set as part of the index ACL for each individual index. Add cascade permission check to the index rebuild tool link. The index rebuild tool now responds with the number of indexes queued to rebuild instead of a static acknowledment.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 00:36:19 -04:00
Roberto Rosario 76895db846 Add code explation remark.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 00:16:18 -04:00
Roberto Rosario 79095a88a0 Add sub title explanation to the role permission view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 00:15:52 -04:00
Roberto Rosario b3c4dd380c Add ACL support to the message of the day app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 00:15:30 -04:00
Roberto Rosario bf3723ae24 Add cascade permission checks for links. Avoid allowing users to reach a empty views because they don't access to any of the view's objects. Apply link permission cascade checks to the message of the day, indexing and parsing, setup link.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-22 00:14:21 -04:00
Roberto Rosario 8e39016f12 Code cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-21 18:57:38 -04:00
Roberto Rosario 2f48bf4fcb Add metadata event tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-21 18:47:21 -04:00
Roberto Rosario bf7c9fc0fd Export the document test mixins via the tests top level __init__
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-21 18:43:01 -04:00
Roberto Rosario 78c374dfe6 Add ACL support for metadata types.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-21 18:42:40 -04:00
Roberto Rosario dee7dd5429 Renamed setting LOCK_MANAGER_DEFAULT_BACKEND to LOCK_MANAGER_BACKEND. Add help text to settings.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-20 02:50:48 -04:00
Roberto Rosario 958f85eb1e Fix YAML quoting issues.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-20 02:49:10 -04:00
Roberto Rosario 04868e66bc Add new setting namespace for the stock Django config options.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-19 03:50:33 -04:00
Roberto Rosario 885be348d4 Improve setting dump serialization.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-19 03:50:15 -04:00
Roberto Rosario 89c145adde Fix failing tests after tag redirect update 3ca6595fe6.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-17 04:52:12 -04:00
Roberto Rosario 900276fe74 Merge branch 'master' into releases
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-17 04:18:57 -04:00
Roberto Rosario 9965866639 Bump version to 3.0.3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-17 04:17:49 -04:00
Roberto Rosario 3ca6595fe6 Tags app: Add explicit post action redirect for the tag attach and tag remove actions when working on a single document.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-17 04:16:06 -04:00
Roberto Rosario 076468a922 Add explicit casting of escaped tag labels to prevent exploit of cross site scripting. Thanks to Lokesh (@lokesh1095) for the report and proposed solutions. Closes GitLab issue #496.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-17 04:12:00 -04:00
Roberto Rosario fcb209caae Add mention of fixed issue 491.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-17 00:47:57 -04:00
Roberto Rosario b1d31b1f6b Expand and make release checklist more clear.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-17 00:42:52 -04:00
Roberto Rosario df6a3dfe28 Also run all the test on git push to the releases branch.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-17 00:30:51 -04:00
Roberto Rosario 9bb7708ffb Bump Docker image version to 3.0.2
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-17 00:29:19 -04:00
Roberto Rosario 4fe0f47a9c Only publish commits to the releases branch.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-17 00:28:54 -04:00
Roberto Rosario 073bc4fde9 Fix changelog markup typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 21:12:59 -04:00
Roberto Rosario e400327770 Language translation synchonization.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 21:12:11 -04:00
Roberto Rosario 1491a6d47b Replace underscore with dashed in Makefile translation targets for uniformity.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 20:47:35 -04:00
Roberto Rosario dca2b49624 Merge branch 'docker-compose-db-driver-wrong-variable' into 'master'
Fix docker compose variable name & content

See merge request mayan-edms/mayan-edms!27
2018-08-17 00:25:52 +00:00
Roberto Rosario 405e46ca09 Merge branch 'patch-1' into 'master'
Update views.py. Corrected minor grammatical errors in the upload queue message.

See merge request mayan-edms/mayan-edms!26
2018-08-17 00:23:49 +00:00
Roberto Rosario bb7fffff46 Merge remote-tracking branch 'origin/master' 2018-08-16 19:41:53 -04:00
Roberto Rosario 687b2e2024 Add version 3.0.2 release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 19:40:36 -04:00
Roberto Rosario a4f8cc56b8 Merge branch 'patch-1' into 'master'
Update installation.rst

See merge request mayan-edms/mayan-edms!28
2018-08-16 23:32:05 +00:00
Roberto Rosario e2a4892b1b Bump version to 3.0.2
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 19:27:32 -04:00
Roberto Rosario 48dfc06e49 Cabinets app: Escape cabinet labels to avoid possible exploit of cross site scripting. Thanks to Lokesh (@lokesh1095) for the report and proposed solutions. Closes GitLab issue #495.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 19:26:37 -04:00
Roberto Rosario 9ebe80595a Avoid setting window.location directly to avoid exploit of cross site scripting. Thanks to Lokesh (@lokesh1095) for the report and solution. Closes GitLab issue #494.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 18:46:10 -04:00
Roberto Rosario ed76278096 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 16:05:13 -04:00
Roberto Rosario be7169c259 Define a proper redirection after workflow actions are edited.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 16:02:34 -04:00
Roberto Rosario a9a66391b6 Hide the title link of documents in the trash.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 16:02:01 -04:00
Roberto Rosario 9a0f2a0084 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:59:16 -04:00
Roberto Rosario c384b137a3 Add support for hiding a links icon. Hide all object menu links' icons.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:57:27 -04:00
Roberto Rosario d63a133852 Remove code statistics from the documentation. Remove the pending work chapter. This is now available in the Wiki:
wiki.mayan-edms.com

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:56:36 -04:00
Roberto Rosario 947568de3a Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:55:49 -04:00
Roberto Rosario 737b39cdb5 Rename the multi document download link from "Download" to "Advanced download" for consistency.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:55:19 -04:00
Roberto Rosario a4d21c76e9 Fix swapped dashboard icons.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:54:24 -04:00
Roberto Rosario 418aa14e2a Include querystring when force reload of a bare template view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:53:44 -04:00
Roberto Rosario 1034a3056d Display error when attempting to recalculate the page count of an empty
document (document stub that has no document version).

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:52:02 -04:00
Roberto Rosario 05633ddc7e Increase gunicorn's timeout from 30 seconds to 120.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:50:57 -04:00
Roberto Rosario d567602d2a Update dropzone.js' timeout from 30 seconds to 120 to allow upload of large files on slow connections.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:50:27 -04:00
Roberto Rosario 3c304976f7 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:49:53 -04:00
Roberto Rosario eff9988239 Detect if Docker installed.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:49:12 -04:00
Roberto Rosario d29044d034 Fix post login redirection to honor the ?next= URL query string
argument. Thanks go to K.C. Wong (@dvusboy1) for the report and investigation.
Closes GitLab issue #489.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:48:27 -04:00
Roberto Rosario b22174adf5 Fix crop transformation argument parsing.
Add error checking to the crop transformation arguments.
Thanks to Jordan Wages (@wagesj45) for the report and investigation on the issue.
Closes GitLab issue #490

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:46:50 -04:00
Roberto Rosario 571cd172fc Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:45:46 -04:00
Roberto Rosario 7f692710b3 Limit the number of branches that trigger the full test suit.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:43:16 -04:00
Roberto Rosario dba94fbff3 Redirect to the cabinet list view after creating a new cabinet.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:40:30 -04:00
Roberto Rosario c5c269f7ea Add natural key support to the user mailer model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:40:00 -04:00
Roberto Rosario 1910547454 Add natural key support to the Index model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:39:27 -04:00
Roberto Rosario 693948fa61 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:38:11 -04:00
Michael Price 0f955937a9 Add step to restart redis after configuration change.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:37:08 -04:00
Roberto Rosario 35d1b31e1c Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 15:35:39 -04:00
Michael Price 8af684aa0a Default VERBOSE variable to true. Increase startup timer to 10 seconds. Allow configuring the PostgreSQL port.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-08-16 15:33:29 -04:00
Franz Holzinger a015dbc4dd Update installation.rst
misspelling for installation
2018-08-16 14:51:27 +00:00
Roberto Rosario 90cd142e76 Add support for YAML configuration files. Add support for editing setting options and saving them using the new YAML configuration file support. Add new revertsettings management command. Add new permission to edit setting via the UI.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 03:05:26 -04:00
Roberto Rosario ac5f53c538 Add COMMON_PROJECT_TITLE as a setting option to customize the title string.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-16 03:02:21 -04:00
Roberto Rosario 3d1771a783 Don't execute document renaming if there is workflow action is not configured.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 18:26:04 -04:00
Roberto Rosario 5f233ca632 Perform link request resolution the new faster way and fallback to the old method.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 18:04:25 -04:00
Roberto Rosario 930c9bdc51 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 18:03:49 -04:00
Roberto Rosario 301df39be4 Define a proper redirection after workflow actions are edited.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 17:52:23 -04:00
Roberto Rosario 27a27daed2 Add workflow action to update the label and description of a document.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 17:52:04 -04:00
Roberto Rosario 65f27b006a Add a description to the label field of the workflow action model to differentiate from the 'label' field of the document.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 17:50:55 -04:00
Roberto Rosario bdfb62d2b3 Show all event columns in the object list view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 05:04:28 -04:00
Roberto Rosario 0022548e35 Add support for document metadata events: add, edit and remove.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 05:04:09 -04:00
Roberto Rosario 0a653a08bd Fix document workflow action context content.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 04:53:58 -04:00
Roberto Rosario 954dd8b994 Hide the title link of documents in the trash.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 03:47:39 -04:00
Roberto Rosario 52ef2f3dae Add link to view the events of a tag. Add support for subscribing to the events of a tag. Add the tag events view permissions to the tag model ACL.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 03:46:28 -04:00
Roberto Rosario 4e762d7522 Add new metadata app events: metadata type created, metadata type edited, metadata type to document type relationship update. Add link to metadata type events. Add support for subscribing to metadata type events.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 03:23:30 -04:00
Roberto Rosario 4c394aec50 Add support for hiding a links icon. Hide all object menu links' icons.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 03:19:19 -04:00
Roberto Rosario cd76b1fd4a Add new document app events: document type created and document type edited. Add link to document type events.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-15 03:18:46 -04:00
Roberto Rosario b3ef018d6c Make sure the on entry action of the initial state of workflows executes on document creation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-14 04:50:44 -04:00
Roberto Rosario 5cd7ac88d6 Code cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-14 03:41:07 -04:00
Roberto Rosario b619444e43 Sort view classes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-14 03:32:33 -04:00
Roberto Rosario 57e1fe8cf0 Unify template title rendering. Add support for template subtitles.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-14 03:32:19 -04:00
Roberto Rosario fe9a395724 Merge branch 'versions/next' into feature/quick_label
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-14 00:57:41 -04:00
Roberto Rosario 11e017b3db Remove code statistics from the documentation. Remove the pending work chapter. This is now available in the Wiki:
wiki.mayan-edms.com

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-14 00:56:36 -04:00
Roberto Rosario 7124676eb5 Rewrite Mayan's Javascript suite MayanApp into ECMAScript2015. Remove use is waitForJQuery.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-14 00:51:05 -04:00
Roberto Rosario 7f14b9c5e1 Rename the multi document download link from "Download" to "Advanced download" for consistency.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-13 23:39:30 -04:00
Roberto Rosario 65f24b4227 Divs are not allowed inside anchors. Use instead a span with a block type display.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-13 23:36:02 -04:00
Roberto Rosario af66abaf57 Speed up document image fade in reveal. Use reseteable timer to ensure more document panels heights are matched.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-13 23:35:33 -04:00
Roberto Rosario 62892105a0 Fix tag loading order in the document printing template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-13 22:14:14 -04:00
Roberto Rosario 526dac7a26 Increase default document caching timeout to 1 year.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-13 22:13:32 -04:00
Roberto Rosario 8fb2c78f29 Optimize request resolution from the context when resolving links and menus.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-13 22:12:42 -04:00
Roberto Rosario 709403a01f Fix swapped dashboard icons.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-13 22:12:17 -04:00
Roberto Rosario de87f83c05 Include querystring when force reload of a bare template view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-13 22:09:38 -04:00
Dennis von der Bey ba28d08a7b Fix docker compose variable name & content
Failed to use postgresql and fell back to sqlite
2018-08-12 20:09:21 +00:00
Roberto Rosario 87ff0696d3 Enable the select2 widget for the quick label selection field.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-08 17:02:58 -04:00
Roberto Rosario 565f6caa0d Add missing .value method to the document image cache setting usage.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-08 02:26:36 -04:00
Roberto Rosario c9bb13f149 Add support for client side caching of document page images. The time
the images are cached is controlled by the new setting
DOCUMENTS_PAGE_IMAGE_CACHE_TIME which defaults to 3600 seconds (1 hour).

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-08 01:31:21 -04:00
Roberto Rosario 170a83b06f Sort document app settings.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-08 01:22:17 -04:00
Roberto Rosario 928c80cc02 Remove usage of the compress tag.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-08 01:16:05 -04:00
Roberto Rosario 418e603222 Display error when attempting to recalculate the page count of an empty
document (document stub that has no document version).

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-08 01:15:30 -04:00
Roberto Rosario 0d46b0a252 Remove use of django-compressor and cssmin now that the project used
Whitenoise.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-07 23:14:46 -04:00
Roberto Rosario e7cb4cf6c3 Update packages versions: Pillow:5.2.0, PyYAML:3.13, django-environ:0.4.5,
django-model-utils:3.1.2, django-mptt:0.9.1, django-widget-tweaks: 1.4.2,
flanker:0.9.0, flex:6.13.2, furl:1.2, gevent:1.3.5, graphviz: 0.8.4,
gunicorn:19.9.0, pyocr:0.5.2, python-dateutil:2.7.3

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-07 23:13:49 -04:00
Roberto Rosario 648b3e9d7f Update setup.py with the new dependencies.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-07 22:54:20 -04:00
Roberto Rosario 1b1d549bbf Increase gunicorn's timeout from 30 seconds to 120.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-07 22:54:05 -04:00
Roberto Rosario 0489eb8f7d Update dropzone.js' timeout from 30 seconds to 120 to allow upload of large files on slow connections.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-07 22:52:24 -04:00
Roberto Rosario 0d1c9a5ac1 Merge branch 'feature/db_migration' into versions/next 2018-08-07 22:40:16 -04:00
Roberto Rosario 1594e7a792 Detect if Docker installed.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-06 15:34:21 -04:00
Roberto Rosario 493ba214f2 Sort the manager methods of the checkouts app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-06 14:57:28 -04:00
Roberto Rosario 14bea94030 Update pathlib imports to pathlib2.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-06 14:55:14 -04:00
Roberto Rosario 3937696774 Add natural key support to the models of the checkouts app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-06 14:54:55 -04:00
Roberto Rosario 7994803e8f Add the upstream version of django-celery to the removal list.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-06 14:44:03 -04:00
Roberto Rosario c02a8bb3e3 Switch to pathlib2
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-06 14:43:30 -04:00
Roberto Rosario 9183369bdb Use patched version of django-celery with support for natural key.
https://github.com/celery/django-celery/pull/552

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-05 20:44:37 -04:00
Roberto Rosario 10231363e6 Add natural key support to the document parsing app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-05 20:07:57 -04:00
Roberto Rosario 4f028b1f54 Convert the two_state_widget to a class and update it to use the new icon class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-04 16:56:03 -04:00
Roberto Rosario 7a4202b459 Update the document indexing widgets to use the new icon class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-04 16:51:42 -04:00
Roberto Rosario ffa8a4c5e2 Add icon class with support for multiple CSS classes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-04 16:01:04 -04:00
Roberto Rosario 37fc968f50 Merge branch 'versions/next' into feature/db_migration
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-04 01:59:17 -04:00
Roberto Rosario cc62988d4d Fix post login redirection to honor the ?next= URL query string
argument. Thanks go to K.C. Wong (@dvusboy1) for the report and investigation.
Closes GitLab issue #489.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-04 01:36:57 -04:00
Roberto Rosario 42ea33d760 Fix crop transformation argument parsing.
Add error checking to the crop transformation arguments.
Thanks to Jordan Wages (@wagesj45) for the report and investigation on the issue.
Closes GitLab issue #490

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-04 00:49:58 -04:00
Roberto Rosario 81f340ee16 Limit the number of branches that trigger the full test suit.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-04 00:06:36 -04:00
Roberto Rosario e6fa31a4e5 Redirect to the cabinet list view after creating a new cabinet.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-04 00:06:16 -04:00
Roberto Rosario 3aecf817ce Make source label field unique.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-04 00:06:03 -04:00
Roberto Rosario b14d7d6da0 Add release notes for version 3.1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-03 19:25:49 -04:00
Roberto Rosario 0c1c38917c Make format explicit JSON
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-03 19:25:24 -04:00
Roberto Rosario f756584176 Make source label field unique.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-03 18:54:30 -04:00
Roberto Rosario cbcb8a84c5 Add natural key support to the user mailer model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-03 18:52:53 -04:00
Roberto Rosario 0626529228 Add natural key support to Document pages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-03 18:52:13 -04:00
Roberto Rosario f42e1a96b2 Add natural key support to the Index model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-03 18:51:17 -04:00
Roberto Rosario 4dea5911da Redirect to the cabinet list view after creating a new cabinet.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-03 18:50:40 -04:00
Roberto Rosario fc304394f5 Add convertdb command.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-03 18:50:30 -04:00
Roberto Rosario e18c043c1f Improve natural key handing for the Document, Metadata, DocumentMetadata, DocumentTypeOCRSetting and UserProfileLocale models.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-02 16:00:22 -04:00
Roberto Rosario 1ad7d2a406 Limit the number of branches that trigger the full test suit.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-02 15:56:47 -04:00
Roberto Rosario 0faeb2626a Merge branch 'master' into feature/db_migration 2018-08-01 05:11:44 -04:00
Roberto Rosario c665e75871 Improve serialization migration for the models: Document, DocumentVersion, DocumentMetadata and DocumentTypeOCRSettings
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-08-01 05:09:43 -04:00
Michel Lavoie 57b60c7b2f Update views.py. Corrected minor grammatical errors in the upload queue message. 2018-07-17 12:38:33 +00:00
Michael Price 71ada209f6 Add step to restart redis after configuration change.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-07-14 00:14:32 -04:00
Michael Price d78527ec10 Default VERBOSE variable to true. Increase startup timer to 10 seconds. Allow configuring the PostgreSQL port.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-07-14 00:12:15 -04:00
Eric Riggs 6722394e34 Add Docker and install step to have Redis discard data when out of memory.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-07-10 04:48:42 -04:00
Eric Riggs 27dcc2a7e7 Update LICENSE copyright time span to match main module's copyright time span.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-07-08 23:01:14 -04:00
Roberto Rosario 39a94f8b4f Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-07-08 02:40:07 -04:00
Roberto Rosario 2e3ae3f78b Merge branch 'esclear/mayan-edms-patch-1' into merge_patch-1 2018-07-08 02:37:48 -04:00
Roberto Rosario fd87e28113 French and Polish language translation updates.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-07-08 02:35:43 -04:00
Roberto Rosario 306b764a5c Update release notes for version 3.0.1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-07-08 02:11:39 -04:00
Roberto Rosario 0987bbe0fa Pin javascript libraries to specific versions to avoid using potentianlly broken updates automatically. GitLab issue #486.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-07-08 01:09:34 -04:00
Roberto Rosario 7a2f7d81bc Install the locales package for the release linux image.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-07-08 01:00:58 -04:00
Roberto Rosario 64ac165f03 Stop install script on errors. Don't stop if previous containers or volumes don't exists. Fix hardcoded volumes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-07-04 18:30:50 -04:00
Daniel Albert 8cea56aceb Fix string concatenation to fix error messages
Without using parentheses, the strings are not joined.
2018-07-02 20:57:45 +00:00
Roberto Rosario aabd5651d8 Update the docker.stack file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-07-02 00:43:42 -04:00
Roberto Rosario 29b680ef84 Fix GitLab issue #484. Thanks to @Bebef for the report and debug information.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-07-01 23:59:15 -04:00
Roberto Rosario 89a7b9d6b5 Change the way wizard steps are deregistered. Instead of deleting then from the _registry class dictionary they are filtered based on the _deregistry dictionary. This way de-registration can be reversed. Useful for tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-07-01 23:56:30 -04:00
Roberto Rosario 90b7c1ffa3 Tag and push a "latest" image too.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-30 03:41:11 -04:00
Roberto Rosario be4365bbf7 Increase document image generation task timeout from 20 seconds to 120 seconds to allow more time for image generation on slow hardware like ARM SBCs.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-30 00:57:27 -04:00
Roberto Rosario f8b50ab94b Improve script texts.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-30 00:47:28 -04:00
Roberto Rosario bcf995b459 Default the installation of Docker to false.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-30 00:44:00 -04:00
Roberto Rosario 30957b24c4 Push the final docker image to the docker hub and add deploy stage for an online demo and a staging deployment.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-30 00:43:27 -04:00
Roberto Rosario 340eabc725 Include the version file in the final docker image.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-30 00:33:10 -04:00
Roberto Rosario d8492f99ab Add docker deploy script.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-30 00:32:45 -04:00
Roberto Rosario abe6d53c2c Merge branch 'versions/next' into master
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-29 03:19:13 -04:00
Roberto Rosario 9a809c493a Bump version to 3.0
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-29 03:15:34 -04:00
Roberto Rosario aa38b1c0e8 PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-29 03:10:17 -04:00
Roberto Rosario 7dd56bbf15 Sort language options.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-29 03:05:14 -04:00
Roberto Rosario 061366ffec Update apps' other modules to use the new Icon class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-29 02:54:14 -04:00
Roberto Rosario aa4e8e3507 Update the common, django_gpg, document_comments, document_indexing, document_parsing, document_signatures, document_states, event, linking, mailer, permissions, rest_api, smart_settings, sources and task manager apps to use the new Icon class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-28 23:19:49 -04:00
Roberto Rosario 40d8c7049c Update the user management app to use the new Icon class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-28 16:52:10 -04:00
Roberto Rosario 8f0ad91d96 Update the tags app to use the Icon class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-28 16:47:34 -04:00
Roberto Rosario f5e3470deb Update the OCR app to use the new Icon class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-28 16:47:23 -04:00
Roberto Rosario e0d812ac74 Finish converting the document app to use the new Icon class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-28 16:34:31 -04:00
Roberto Rosario 85926ae8f8 The conditional_escape call caused downloaded OCR text to contain HTML entities like &quot;
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-28 02:04:49 -04:00
Roberto Rosario c4c73666aa Update the build makefile target to use Debian instead of Alpine
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-28 01:22:50 -04:00
Roberto Rosario fb845abf10 Further sanitize the template title text before making it the window title via JS.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-27 23:21:03 -04:00
Roberto Rosario 9dfe187202 Recalculate a document's indexes when attaching or removing a tag from or to it. Recalculate all of a tag's documents when a tag is about to be deleted.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-13 01:26:58 -04:00
Roberto Rosario 66e53bac22 Merge the license and packages license display form. Use Mayan's custom TextAreaDiv widget.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-12 21:38:34 -04:00
Roberto Rosario 60a3e1aa42 Update deployment instructions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-12 21:24:50 -04:00
Roberto Rosario e5e619e045 Only build docker images for the master, staging and nightly branches.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-12 03:54:46 -04:00
Roberto Rosario 53c17ce7ab No need to copy .pypirc just to build a package.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-12 03:52:48 -04:00
Roberto Rosario 694f7675e5 Use the passthrough manager to be able to show previews for trashed documents again.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-08 17:38:28 -04:00
Roberto Rosario 74a252afcf Rename the single document form download link from "Download" to "Advanced download".
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-08 00:02:42 -04:00
Roberto Rosario 46f593654c Add a "Quick download" link to reduce the number of steps required to download a single document. GitLab issue #338. Thanks to Michel Lavoie for the suggestion.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-08 00:00:16 -04:00
Roberto Rosario 96f5c28059 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-07 23:49:57 -04:00
Roberto Rosario 0f6d33140a Synchronize translation files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-07 23:49:43 -04:00
Roberto Rosario 460570ed05 Don't provide a default for the scanner source adf_mode. Some scanners throw an error even when the selection if supported.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-07 20:58:50 -04:00
Roberto Rosario 3e58fd4e38 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-07 20:55:02 -04:00
Roberto Rosario 4d11234ba5 Fix error when trying to upload a document from and email account with 'from' and 'subject' metadata. Fix typo on message.header get from 'Suject' to 'Subject'. On multi part emails keep the original From and Subject properties for all subsequent parts if the sub parts don't specify them. Fixes issue #481. Thanks to Robert Schöftner @robert.schoeftner for the report and debug information.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-07 20:47:00 -04:00
Roberto Rosario 76513e7b38 Add instructions to dump a postgresql db to an sql text file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-07 18:38:51 -04:00
Roberto Rosario ac433d9651 Add sample backup and restore command for a PostgreSQL Docker container.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-07 17:24:51 -04:00
Roberto Rosario 2cc9339715 Fix typos.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-07 17:21:46 -04:00
Roberto Rosario b8151f848a Example docker installation instructions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-07 03:12:35 -04:00
Roberto Rosario ca6d6f3fc7 Bump version to 3.0rc1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-07 01:16:05 -04:00
Roberto Rosario 5e98c17601 Update docker compose sample file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-05 03:42:55 -04:00
Roberto Rosario 854304d0c9 Update stack file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-05 03:41:30 -04:00
Roberto Rosario bdf2bfcd12 Create dummy makefile to avoid error for non existing docker/Makefile during build.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-05 03:41:22 -04:00
Roberto Rosario e8798abc78 Update deployment and docker chapters.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-05 03:40:40 -04:00
Roberto Rosario ec3fcbf5dd Reorganize and cleanup the Makefiles.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-05 02:16:02 -04:00
Roberto Rosario 530a055733 Documentation update.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-05 02:15:40 -04:00
Roberto Rosario acea52400a Use the MAYAN_SETTINGS_MODULE instead of MAYAN_SETTINGS_FILE for consistency.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-05 02:14:11 -04:00
Roberto Rosario b5a4a9cf45 Add a short version of the copyright package metadata for the documentation template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-05 02:13:09 -04:00
Roberto Rosario d1973e6e05 Explicitly set CELERY ALWAYS EAGER to False in the production setting file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-05 02:12:28 -04:00
Roberto Rosario 6008c15610 Accept javascript management proposal as MERC-3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-04 17:35:17 -04:00
Roberto Rosario ed6a5c8ff7 Update README
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-03 14:49:24 -04:00
Roberto Rosario d6232b4b28 Update the docker image entrypoint Pythonpath to use the top level media root folder.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-03 14:47:55 -04:00
Roberto Rosario ffbac43293 Fix failing OCR test.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-03 14:42:55 -04:00
Roberto Rosario 76208022b9 Update documentation. Add docker chapter.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-03 04:06:01 -04:00
Roberto Rosario df980292cb Change the media root settings folder name from 'settings' to 'mayan_settings' for clarity.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-03 03:00:32 -04:00
Roberto Rosario 66205c11d3 Add zlib and libjpeg symlinks to allow Pillow to install on armv7l (ODROID HC1)
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-03 02:59:50 -04:00
Roberto Rosario 124f68125d Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-03 02:59:22 -04:00
Roberto Rosario 2ee73e12b4 Replace the DOCUMENTS_LANGUAGE_CHOICES setting option. Replaced with the new DOCUMENTS_LANGUAGE_CODES.
Reduce default language code choice from 7800 to the top 100 spoken languages and related (https://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers).

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-03 02:53:45 -04:00
Roberto Rosario 9896f7d52a Revert "Disable Docker test image from the CI pipeline.". Re add the Docker tests now that the slowdown cause was found to be Whitenoise.
This reverts commit e7637151b9.
2018-06-03 00:08:06 -04:00
Roberto Rosario 54e9808eb9 User a default secret key that shows the need to set one.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-02 21:51:01 -04:00
Roberto Rosario f0bb633eee Move secret key and media root calculation code to the top of the settings file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-02 21:49:58 -04:00
Roberto Rosario 6c3f5430b7 Use the base testing setting (disables Whitenoise) file when running tests from inside a Docker container.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-02 21:48:39 -04:00
Roberto Rosario e524c3bd79 Remove transparent import of local.py
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-02 21:47:12 -04:00
Roberto Rosario e48b85a392 Disable embedded signatute verification during the perform upgrade command.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-02 21:43:18 -04:00
Roberto Rosario e2f95b4d48 Add COMMON_PRODUCTION_ERROR_LOGGING setting to control the logging of errors in production. Defaults to False. Change the error log file handle class to RotatingFileHandle to avoid an indefinitely growing log file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-06-02 21:34:04 -04:00
Roberto Rosario 15badf4ff9 Update single and multiple document OCR submit views to use MultipleObjectConfirmActionView instead of the deprecated MultipleInstanceActionMixin.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-30 19:12:20 -04:00
Roberto Rosario 37d2f82b6d Remove runner tag from the sqlite test section.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-26 01:17:59 -04:00
Roberto Rosario 53c0ca20a5 Remove codecov CI stage
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-26 01:01:35 -04:00
Roberto Rosario 5d05b4ea7c Use list comprehension to disable the whitenoise runserver static server.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-25 03:24:27 -04:00
Roberto Rosario 2a3d4eedc8 Move whitenoise test disabling to base.py. Disable the whitenoise runserver app. Disable Manifest static storage.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-25 03:22:17 -04:00
Roberto Rosario bf51ad3c8d Don't collect static files for tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-25 03:21:37 -04:00
Roberto Rosario e7637151b9 Disable Docker test image from the CI pipeline.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-25 00:09:03 -04:00
Roberto Rosario e4af58d4b7 Remove whitenoise from middlewares during test suit as it causes out of memory errors.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-24 23:35:11 -04:00
Roberto Rosario 1ea684737a Move SQLite setup as a fallback default the database manager setup block.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-24 23:34:04 -04:00
Roberto Rosario 39e605df11 Collect staticfiles before running tests for the CI.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-21 01:32:17 -04:00
Roberto Rosario e7d99ff6dd Bump version of Docker image. Update the stack file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-21 00:41:58 -04:00
Roberto Rosario 9c8326fd0e Fix issue with locale during packaging for test documents with unicode names. Add files to allow live testing.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-21 00:40:39 -04:00
Roberto Rosario 30238c20b6 Regenerate setup.py.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-21 00:40:13 -04:00
Roberto Rosario 9a5c281a8b Add support for running tests from a Docker container.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-21 00:39:40 -04:00
Roberto Rosario 047962d946 Improve how to determine when to install the package.json file using pathlib.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-21 00:38:05 -04:00
Roberto Rosario 7744dac423 Add the whitenoise.storage.CompressedManifestStaticFilesStorage class to allow for permanent cacheable static files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-21 00:37:15 -04:00
Roberto Rosario ba7716f23d Re-enable the support link.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-21 00:36:21 -04:00
Roberto Rosario b41c932796 Improve the docker-shell target.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-21 00:35:59 -04:00
Roberto Rosario e0d8eff711 Add the --no-javascript option to the initial setup to disable download the Javascript libraries.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-20 07:51:17 -04:00
Roberto Rosario a734538170 Dump the gunicorn and redis logs to the console.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-20 07:50:36 -04:00
Roberto Rosario f1ce12663e Add makefile target to connect to a Docker container and the set the console dimensions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-20 07:49:32 -04:00
Roberto Rosario 160d8f94a9 Add package.json files to the Python manifest.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-20 07:49:01 -04:00
Roberto Rosario 45702548b6 Improve Javascript downloaded by adding semver comparison.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-20 07:48:17 -04:00
Roberto Rosario 83ec4761d9 Add sample docker swarm file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-11 03:11:08 -04:00
Roberto Rosario 682fab24e8 Update changelog and release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-10 18:00:04 -04:00
Roberto Rosario 199ffde283 Sane scanner source paper source now defaults to blank.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-10 17:52:55 -04:00
Roberto Rosario bdd6849d83 Fix metadata edit form submit button icon.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-10 17:51:24 -04:00
Roberto Rosario d560ec5df7 Update the GPG path for the tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-10 04:45:05 -04:00
Roberto Rosario ec82738a47 Invert logic on when to start the local REDIS server. Use the Python binary path and not the dist-packages one. Don't create a pid file for celery beat, supervisor already does it. 2018-05-10 04:33:51 -04:00
Roberto Rosario 4833aaf17c Update SIGNATURES_GPG_PATH default value.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-10 04:33:24 -04:00
Roberto Rosario b2b8549f8a Use variables for default values instead of literals.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-10 04:32:57 -04:00
Roberto Rosario 3612f6dbfb Ensure APT_PROXY is read. Install GPG version 1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-10 04:32:31 -04:00
Roberto Rosario 6c04e7dbd6 Call manage.py using python and not directly.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-07 01:52:54 -04:00
Roberto Rosario f410ae40e7 Split test jobs into multiple jobs. Cache the APT cache folder. Only submit coverage report in the SQLite test jobs.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-07 01:45:35 -04:00
Roberto Rosario b7b100b01a Fix docker build stage keys.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-07 01:31:53 -04:00
Roberto Rosario ea4886dc2b Update the key names of the docker build stage.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-07 01:15:20 -04:00
Roberto Rosario fc42849b00 Update gitlab-ci to build a docker image if the tests are successful.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-07 01:08:47 -04:00
Roberto Rosario 188b7559d2 Cache the PIP folder between builds.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-07 00:48:59 -04:00
Roberto Rosario ae9a519263 Don't create an __init__.py file in the media folder. Replace error number literals with constant definitions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-04 00:49:42 -04:00
Roberto Rosario 55359c72cf Unify supervisor configuration files. Lower nice levels of most workers. Merge OCR and slow workers. Lower gunicorn workers to 2. Call all supervisor processes using a shell to expand the install and mayan binary locations and avoid hardcoding.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-05-04 00:48:03 -04:00
Roberto Rosario 9fad6c37bf Fix process name for the OCR worker.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-30 05:13:01 -04:00
Roberto Rosario 1693b36b2d Only try to return notifications for logged in users.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-30 05:12:37 -04:00
Roberto Rosario 55879d3488 Add default celery settings to docker's entrypoint script.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-30 05:00:02 -04:00
Roberto Rosario d610f8d5f6 Use the errno library and not the literal error numbers.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-30 02:01:06 -04:00
Roberto Rosario b4d1ce33e5 Don't enable or defile the logfile handler if the media folder doesn't exist.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-30 02:00:33 -04:00
Roberto Rosario 9cde4d7b04 Use double quotes since single quotes are used in the 500 string.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-30 01:47:31 -04:00
Roberto Rosario 4db641372d Test againg MySQL 8.0.3. Since 8.0.4 onwards the authentication system changed.
https://stackoverflow.com/questions/49963383/authentication-plugin-caching-sha2-password

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-30 01:08:43 -04:00
Roberto Rosario 5c83cff767 Use django-environ for DEBUG and CELERY_ALWAYS_EAGER. Default CELERY_ALWAYS_EAGER to True.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-29 23:47:27 -04:00
Roberto Rosario 3689df4aac Better default for the testing error log file full path.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-29 23:32:22 -04:00
Roberto Rosario cbad7ee504 Print the exception type on upgrade errors. This is used for celery errors which don't include a text message.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-29 23:30:05 -04:00
Roberto Rosario 441127ae45 Don't create the media folder in the common app if it doesn't exist. Instead disable logfile creation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-29 23:19:12 -04:00
Roberto Rosario a788a99d93 Set CELERY_ALWAYS_EAGER to True on the development setting file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-29 23:14:55 -04:00
Roberto Rosario 430c7b8c14 Add verbose error reporting when the document upload task fails.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-29 23:12:24 -04:00
Roberto Rosario 83ca7a7476 Add missing migrations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-29 03:59:39 -04:00
Roberto Rosario 2ef31d2ec3 Rename shared upload storage from sharedupload_storage to storage_sharedupload
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-29 03:58:56 -04:00
Roberto Rosario 018c641e8b Create the media folder if is doesn't exist.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-28 23:16:13 -04:00
Roberto Rosario 78961bec49 Remove sentry specifig code from the 500.html template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-28 19:47:57 -04:00
Eric Riggs 8ee45162aa Revert workers to prefork method
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-26 03:54:59 -04:00
Eric Riggs a84568574f Replace ubuntu with debian
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-26 03:54:40 -04:00
Eric Riggs f3c86ada45 - Lower concurrency of workers to 1
- Change process type to gevent

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-26 02:19:09 -04:00
Eric Riggs 3145cb4231 Add django-environ and use it to set ALLOWED_HOSTS.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-26 02:18:32 -04:00
Eric Riggs d97b080586 Flanker is not thread safe, hide the import until it is actually needed.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-26 02:17:33 -04:00
Eric Riggs 4f801154aa Manually link libjpeg and libzlib on aarch64.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-25 20:57:12 -04:00
Eric Riggs 9fbedd244c - Put the log file in the /tmp folder.
- This is temporary and should be fixed. Create /media when not found?

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-22 13:51:14 -04:00
Eric Riggs 8e3446c13e Add g++
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-22 13:50:19 -04:00
Eric Riggs 27d84bea5a - Add missing build libraries.
- Clean up some files.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-22 12:58:47 -04:00
Eric Riggs 077910bf72 Add gunicorn, gevent and whitenoise as requirements
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-22 04:18:09 -04:00
Eric Riggs 455fcef114 Move Docker environment overrides to main base.py module
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-22 04:17:28 -04:00
Eric Riggs bbc338120e Make all storage location explicit children of MEDIA_ROOT.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-22 04:16:19 -04:00
Eric Riggs d8941ea810 - Add --force option to initialsetup
- Create the entire media structure

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-22 04:14:46 -04:00
Eric Riggs f1ed40adba Merge Docker files back into main repo.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-22 04:14:07 -04:00
Roberto Rosario 238595e1bc Don't error out if it is not possible to check for the latest current version.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-16 17:08:22 -04:00
Roberto Rosario 222037daa9 Add known issues section about flanker warnings.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-16 15:26:01 -04:00
Roberto Rosario 2a3b37cbf7 Update roadmap.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-16 15:25:45 -04:00
Roberto Rosario 2604a22772 Update roadmap.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-16 15:20:50 -04:00
Roberto Rosario 6a65544fb7 Remove some label argument from the apps module and move them to the model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-16 15:20:45 -04:00
Roberto Rosario 6839f1b529 Make the 'label' argument of SourceColumn optional and introspect its value from the model meta if not specified.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-16 15:19:16 -04:00
Roberto Rosario e2058f91c1 Move import to the top of the file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-13 16:18:09 -04:00
Roberto Rosario 3e062a5517 New initialization command. Creates media/system and populates the SECRET_KEY and VERSION files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-13 16:05:40 -04:00
Roberto Rosario b165b9a5f2 New environment variables to configure the secret key, database, and celery options. The secret key can also be read from a file. Stricter defaults to increase security.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-13 16:02:16 -04:00
Roberto Rosario aa13953326 Fix typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-13 15:54:37 -04:00
Roberto Rosario c482bb604c Add better explanation when a .local.py setting import error occurs.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-13 15:53:00 -04:00
Roberto Rosario a7f4dc2f10 Add flake8 step to the release checklist.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-12 18:59:19 -04:00
Roberto Rosario 6a3bb455b4 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 22:32:15 -04:00
Roberto Rosario ad351a1368 Add test for the POP3 email source model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 22:23:04 -04:00
Roberto Rosario eb2c7c6f34 Sort email sources models.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 22:22:45 -04:00
Roberto Rosario 2a77078022 Capture menu resolution errors on invalid URLs. Closes GitLab issue #420.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 21:38:27 -04:00
Roberto Rosario be73264341 Production ALLOWED_HOSTS settings now defaults to a safer ['127.0.0.1', 'localhost', '[::1]']
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 20:41:25 -04:00
Roberto Rosario 59d958982f Don't disable existing loggers.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 20:39:56 -04:00
Roberto Rosario f7ca35c9b6 Download and compile translations from Transifex.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 20:39:30 -04:00
Roberto Rosario 0641b568ee Update translation sources and compiled files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 15:18:50 -04:00
Roberto Rosario 44d0198c6f Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 12:54:26 -04:00
Roberto Rosario c828c3acd9 Add missing month entry.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 12:54:10 -04:00
Roberto Rosario b9c51792d1 Add icons.py module for the acls, authentication, cabinets, checkouts, some of common, mayan_statistic, and metadata apps links.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 04:17:45 -04:00
Roberto Rosario b2815ad30b Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 04:17:27 -04:00
Roberto Rosario 05aa1fc038 Add support for icon drivers. Add a driver for Font Awesome.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-11 04:16:57 -04:00
Roberto Rosario bce5411ea7 Fix typos.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 21:22:25 -04:00
Roberto Rosario 8ba3b71d1c Change version to 3.0b1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 17:58:28 -04:00
Roberto Rosario 8496ea7072 Add support for HTML bodies to the user mailers. Closes GitLab issue #470.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 17:54:43 -04:00
Roberto Rosario 3484dc8f33 Update translation source and compiled files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 04:23:16 -04:00
Roberto Rosario b5d79f42a9 Add the option to enable or disable parsing when uploading a document for each document type. Add a new setting option to enable automatic parsing for each new document type created.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 04:02:41 -04:00
Roberto Rosario 74628ab04b Improve the document base test case for models and for views. Add document test mixin.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 04:00:05 -04:00
Roberto Rosario d534dfe65b Show the SQLite warning when the DEBUG variable is False.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 03:11:23 -04:00
Roberto Rosario 64ad07d95d Add locking for interval sources. This reduces the chance of repeated documents from long running email downloads.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 02:26:06 -04:00
Roberto Rosario 3618778737 Email source code cleanups. Use the header variable returned from flanker to extract the sender and the subject. Remove unsed scanimage usage via sh.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 01:52:47 -04:00
Roberto Rosario 07444f0688 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 01:22:21 -04:00
Roberto Rosario 63a77d0235 Use Mailgun's flanker library to process the email sources.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 01:16:53 -04:00
Roberto Rosario 3909481205 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-10 01:01:47 -04:00
Roberto Rosario 13f1730dda Add warning when using SQLite as the database backend.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-09 03:48:47 -04:00
Roberto Rosario 27a257f010 PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-08 04:12:14 -04:00
Roberto Rosario 440f96c75b Update release notes regarding CAAs.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-08 04:05:47 -04:00
Roberto Rosario a8043e9560 Add individual and entity contributor assignment agreements. GitLab issue #459.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-08 03:58:18 -04:00
Roberto Rosario 668f15fab8 Fix failing test.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-08 02:48:32 -04:00
Roberto Rosario 2a61328e7b Detect if a base_plain template was loaded via AJAX and refresh the screen to make it top level.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-08 02:29:45 -04:00
Roberto Rosario 12fce15d14 Fix indentation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-08 02:29:25 -04:00
Roberto Rosario 90623ed372 Update rendering of the readonly multiselect widget to conform to Django's updated field class interface.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 16:44:46 -04:00
Roberto Rosario bbd7704e2e Improve rendering of the details form.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 16:17:30 -04:00
Roberto Rosario d9f0caeee7 Update release notes closed issues.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 03:25:15 -04:00
Roberto Rosario 29ca2f731e Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 03:21:29 -04:00
Roberto Rosario 694b3dd629 Add document page API test case.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 02:57:52 -04:00
Roberto Rosario 6e59c8d749 Use a randomly generated temporary directory as the destination for downloading javascript packages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 02:15:42 -04:00
Roberto Rosario 7fe5f22770 Make error messages persistent and increase the timeout of warning to 10 seconds.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 02:11:06 -04:00
Roberto Rosario 1f059dbb5d Remove all running workflow instances from documents whose type is removed from the workflow type. This avoid having orphaned workflows running.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 02:09:05 -04:00
Roberto Rosario 7b38cffd85 Fix typo
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 02:03:46 -04:00
Roberto Rosario d7ecdac6b0 Fix PEP8 warnings.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 01:26:06 -04:00
Roberto Rosario e525dfffcd Add test for the document type quick label list view. Modernize the document type and quick label views tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 01:15:07 -04:00
Roberto Rosario 12a2d54f35 Fix the document type quick label list view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 01:14:41 -04:00
Roberto Rosario b77c7bba30 Make document type creation optional but default to true in the generic document view test base class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 01:13:59 -04:00
Roberto Rosario b0c2d6cd76 Allow ObjectListPermissionFilterMixin to check access against a parent object and not just against the queryser of child objects.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-06 01:13:10 -04:00
Roberto Rosario e35cde1f6c Add item counter to the document fancybox previewer.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 20:26:33 -04:00
Roberto Rosario 89d72da92c Add missing thumbnail size to the thumbnail render template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 20:26:05 -04:00
Roberto Rosario 60fb00ff2d Fix issue when using workflows transitions with the new version upload event as trigger. Thanks to Sema @Miggaten for the find and the solution.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 19:57:26 -04:00
Roberto Rosario ebe9633665 Auto upload a document when using the generic document test case but give subclasses the choice to disable it.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 19:47:29 -04:00
Roberto Rosario 99c4f2ccfb Use the document image generation task to create the images for the OCR.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 19:31:55 -04:00
Roberto Rosario da5445eef9 Rename the storages instance names for consistency.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 19:30:59 -04:00
Roberto Rosario 1d55e67b00 Create the document image cache file it is doesn't exist.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 19:15:27 -04:00
Roberto Rosario a0b7561ed7 Add support for passing arguments to the OCR backend.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 17:23:32 -04:00
Roberto Rosario 46b38b30d7 Give the error logger the correct type of argument.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 17:18:01 -04:00
Roberto Rosario 97d39b3336 Ensure the events are returned in the correct order as these are from an outside package.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 17:16:09 -04:00
Roberto Rosario c7c5df1190 Remove warning of workflow triggers being experimental.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 14:48:08 -04:00
Roberto Rosario 41ed852822 Allow passing an argument to the runserver and runserver_plus makefile targets.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 07:21:58 -04:00
Roberto Rosario c234a65a7b Add support to install javascript libraries for just one. Don't truncate version string. Don't download required dependencies by default.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 07:21:18 -04:00
Roberto Rosario ae2297b0bd Update the tag widget for Django 1.11.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 07:19:39 -04:00
Roberto Rosario c46a2cd372 Remove more included javascript libraries to be downloaded.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 07:18:23 -04:00
Roberto Rosario 049342def2 Remove the dropzone package and create entries to use the JavaScript manager.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 03:38:06 -04:00
Roberto Rosario a6791d41f8 Display a confirmation message when statistics are queued.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 03:30:22 -04:00
Roberto Rosario 096935c826 Move all the document statistics code to the documents.statistics module. Add month names to the statistics.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 03:29:46 -04:00
Roberto Rosario b7b1a87f23 Add JavaScript manager.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 03:29:28 -04:00
Roberto Rosario 94bdea3c69 Update Chart.js version. Improve line chart appearance.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-05 03:19:05 -04:00
Roberto Rosario 4c1e1f0fb1 Tweak the document page list view columns CSS to improve panel display width.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 18:50:58 -04:00
Roberto Rosario 3b13713295 Expand note about user event listing. Closes GitLab issue #437.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 18:38:40 -04:00
Roberto Rosario 0207018547 Resize the document thumbnails via CSS while preserving the aspect ratio.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 17:46:04 -04:00
Roberto Rosario b4b8d9403c Pass alternate column classes to the cabinet, index and tags document list views to improve the rendered size of the document panels.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 17:44:50 -04:00
Roberto Rosario 2677ece123 Allow passing alternate CSS classes to the list item template columns.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 17:44:13 -04:00
Roberto Rosario 4b23d30fa6 Fix document indexing icon class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 17:43:49 -04:00
Roberto Rosario 93a1a436a7 Fix checkbox widget not being rendered in some cases.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 17:43:18 -04:00
Roberto Rosario bad90c9848 Add smart checkbox selector. Code donated by the Paperattor project (www.paperattor.com).
Unify checkbox selection code for list items and table items.
Move some javascript initialization to the root template.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 04:32:47 -04:00
Roberto Rosario 5fa0dc8d0d Reorganize the way the document print view checks for permission to move permission checking to the dispatch method.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 04:05:19 -04:00
Roberto Rosario fc560fe63a Remove workflow states experimental feature warning message.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 04:00:55 -04:00
Roberto Rosario 1248908f1f Update copyright years.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 03:58:12 -04:00
Roberto Rosario 988e6227cc Update about view. Remove support link.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 03:57:25 -04:00
Roberto Rosario 9ec7fa7f93 Sort permissions in the ACL edit view and copy solution to improve the role permission sorting.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 03:21:35 -04:00
Roberto Rosario a1568be7a7 Add missing migrations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 03:12:22 -04:00
Roberto Rosario f850d0ea1b Add release note entry for the storage driver arguments change.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 03:11:53 -04:00
Roberto Rosario 045056dc46 Move image container height control to the document image template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 02:53:57 -04:00
Roberto Rosario 9e8cd4d3d7 Fix the migrations storage class name.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 02:48:39 -04:00
Roberto Rosario bb7caa3c10 Merge remote-tracking branch 'origin/feature/storages' into merge-test 2018-04-03 02:43:24 -04:00
Roberto Rosario 271838888c Update the old filebasedstorage imports in migrations to use Django's default file storage.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 02:37:37 -04:00
Michael Price 424d6a5af9 Standardize the way storages are used. All apps that use storage now define their storages in the .storages modules instead of the .runtime module. The storage.backends.filebasedstorage.FileBasedStorage has been remove, instead Django's default storage is used and each app is responsible of specifying their default path.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-03 02:32:28 -04:00
Michael Price 1076d5f1ff Remove the setting STORAGE_FILESTORAGE_LOCATION. Document storage location for the storage.backend.filebasedstorage.FileBasedStorage backdend must now passed via the DOCUMENTS_STORAGE_BACKEND_ARGUMENTS, DOCUMENTS_CACHE_STORAGE_BACKEND_ARGUMENTS, or SIGNATURES_STORAGE_BACKEND_ARGUMENTS if the backend is used to documents, the document image cache and/or document signatures. Use DOCUMENTS_STORAGE_BACKEND_ARGUMENTS = '{ location: <specific_path> }' If no path is specified the backend will default to 'mayan/media/document_storage'.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-03 02:27:56 -04:00
Michael Price f9b7012389 Support passing arguments to the document, document cache and document signatures storage backends. New settings: DOCUMENTS_STORAGE_BACKEND_ARGUMENTS, DOCUMENTS_CACHE_STORAGE_BACKEND_ARGUMENTS, SIGNATURES_STORAGE_BACKEND_ARGUMENTS
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-03 02:25:43 -04:00
Roberto Rosario 0667519052 Control the maximum height of the document thumbnail to avoid to much breakage in the panel appearances.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 02:06:35 -04:00
Roberto Rosario 123acdd795 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 02:03:58 -04:00
Roberto Rosario fb2ba25f23 Remove the data filters feature.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 01:40:34 -04:00
Roberto Rosario 0bc6a42192 Improve the way missing migrations are check. GitLab issue #278.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 01:21:49 -04:00
Roberto Rosario ed5d7cd812 Close GitLab issue #302 'New Document' button available to users who do not have permission.
Thanks to kg @kgraves.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 01:13:59 -04:00
Roberto Rosario 92bd82320b Update volatile permission accesor. From property to method.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 00:39:30 -04:00
Roberto Rosario dc6eb77f43 Add missing changes to the 3.0 release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 00:36:41 -04:00
Roberto Rosario 68d96fae7e Update the role permission edit view require the permission grant or permission revoke permissions for the selected role.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 00:35:09 -04:00
Roberto Rosario a5856da810 Turn off DEBUG for the development test setting file to avoid filling the screen with debug messages during testing.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 00:19:24 -04:00
Roberto Rosario 73ec2f0fed Fix issue #454. Thanks to Andrei Korostelev @kindkaktus for the issue and the solution.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-03 00:19:05 -04:00
Roberto Rosario f86acd07a4 Remove extra quote in first time login panel.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 05:08:21 -04:00
Roberto Rosario 887bb3f718 Delete repeated template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 05:02:39 -04:00
Roberto Rosario 1d3ca382aa Invert the columns in the ACL detail view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 04:57:48 -04:00
Roberto Rosario db235a7e78 Add support for users ACLs. Add support for groups ACLs.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 04:53:03 -04:00
Roberto Rosario 27bca4c438 Sort permission namespaces and permissions in the role permission views.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 04:45:10 -04:00
Roberto Rosario 7fb3828d77 Fix the list sub template multi item checkbox selection.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 04:38:15 -04:00
Roberto Rosario cf99201b89 Add support for Role ACLs.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 02:36:20 -04:00
Roberto Rosario 57e7722f59 Don't show documents with 0 duplicates in the duplicated document list.
Also clean up the duplicated document model after a document is deleted.
Fix queue name typo.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 01:45:30 -04:00
Roberto Rosario 010d56bda9 Add check_readme target to the Makefile documentation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 00:42:54 -04:00
Roberto Rosario cac19ec614 Fix release note formatting.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 00:42:42 -04:00
Roberto Rosario 7a6ac5d794 Update pending work.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 00:39:14 -04:00
Roberto Rosario bcdc419b66 Update documentation and logos.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 00:34:08 -04:00
Roberto Rosario 0e4c1dd75a Fix project name in Makefile.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-02 00:33:12 -04:00
Roberto Rosario b06918c333 Make detection and fixing of PDF orientation as experimental and
default it to being disabled.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 23:59:27 -04:00
Roberto Rosario 7e8868ea80 Unify changelogs and release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 23:50:55 -04:00
Roberto Rosario c3f00069c9 Remove and re-add conflicting migrations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 23:42:37 -04:00
Roberto Rosario cd267d0f1a Manual merge of commit d33859917a2eb7697a849f6aacfd8614bcb0dd91
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:53:33 -04:00
Michael Price a3e602a670 Update release notes.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:51:53 -04:00
Michael Price c64cdea754 Update HISTORY file.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:50:39 -04:00
Michael Price 91ee905843 Remove debug statements.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:49:17 -04:00
Michael Price 53239385ae Add the "to=" keyword argument to all ForeignKey, ManayToMany and OneToOne Fields.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:49:04 -04:00
Michael Price 038cd30960 Display the project's name in the first time login panel.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:48:54 -04:00
Roberto Rosario 6dcc6dbd30 Manual merge of commit 7d523250dd681292ed08fbcdc87574344918aa43
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:48:23 -04:00
Roberto Rosario da49c64095 Sync code with commit 522276c96deadc0af26ee9d7d17bed2cce91e493
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:46:39 -04:00
Eric Riggs 8cd7779b14 - Fix carousel item height issues.
- Place the page number summary at the bottom of the carousel pages.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:45:14 -04:00
Michael Price 30fd0a397f Add Makefile target to check the format of the README.rst file.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:44:30 -04:00
Michael Price fe242c3039 Fix version name of the latest version.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:42:25 -04:00
Michael Price 9b08cf221a Update release checklist with entry to check the README.rst format.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:42:11 -04:00
Michael Price 0ef05ad4e3 Fix HISTORY file formatting.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:41:30 -04:00
Michael Price a6ca3f211e Update documentation overview animation.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:39:43 -04:00
Michael Price 59c8bbdf2b Don't error out when trying to view the index instance list and none has been recalculated.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:39:09 -04:00
Michael Price 1b8333a7f8 Add missing parenthesis. Fix formatting.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:38:58 -04:00
Eric Riggs 0fbfb17d83 Detect Django's debug mode and render the server side error page properly.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 20:37:42 -04:00
Michael Price d2eef74bb8 Update the name of the Makefile targets used for staging testing. Add target to build the project using Alpine Docker.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:37:34 -04:00
Michael Price 0ecb2260e0 Update setting files used for staging testing.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:36:59 -04:00
Michael Price 4c1ae55410 Update compiled translation files.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:36:52 -04:00
Michael Price 59d746db97 Update translation source files.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:36:45 -04:00
Michael Price 15115a51bf Update release notes.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:36:18 -04:00
Michael Price a3aa3fb0b5 Update code statistics.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:36:04 -04:00
Roberto Rosario fed7921cdf Sync code with commit e4a0d1281236a3cd218f2559d11ea10814d6a4d2
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:34:59 -04:00
Michael Price 57325bc6ad Add release notes for version 3.0. Fix documentation formatting. Add upload wizard step chapter. Improve and add additional diagrams. Change documenation theme to rtd.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:33:09 -04:00
Michael Price a9e8076abe Add wizard step to insert the document being uploaded to a cabinet.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:31:21 -04:00
Michael Price 9abe4e8f96 Don't re-sort wizard steps, breaks number ordering. Detect adding new steps with the same name or number. Add support for deregister exiting steps.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:31:14 -04:00
Michael Price cc96ae0a09 Remove line between import of the same module.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:31:07 -04:00
Michael Price 62bb9e80d9 Not need to add a tearDown method, this is done by the base class.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:31:00 -04:00
Michael Price 31c9282d87 Repurpose the source app upload test with metadata as a metadata wizard step test.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:30:50 -04:00
Michael Price e9a365333f Rename the request_data variable to querystring for clarity. Turn the querystring into an IRI to support international characters in metadata values and allow JSON serializer for Celery.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:30:40 -04:00
Michael Price b200438c4e Add test for the tag app wizard step.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:30:33 -04:00
Michael Price 05966afe1e Move post document upload processing of metadata and tags from sources.model to each wizard step.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:30:25 -04:00
Michael Price 460d747424 Add new WizardStep class to decouple the wizard step configuration.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:30:10 -04:00
Michael Price a23f26f4f4 Return to the same source view after uploading a document.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:30:00 -04:00
Michael Price 8ecd9a31c8 Remove the license information for animate.css.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:29:00 -04:00
Michael Price c7fda3447c Unify the way to gather the project's metadata.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:28:52 -04:00
Michael Price eb5bd252db Move the page count display to the top of the image.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:28:29 -04:00
Michael Price bd5fe1af10 Update HISTORY file.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:28:08 -04:00
Michael Price 79c1b761d4 Add the path to the defaul open api path. Display models closed by default.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:28:01 -04:00
Michael Price 26fe832bd9 Move openapi_info definition to the rest_api app.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:27:54 -04:00
Michael Price de65d96fe2 Update cabinets and document_index api views docstrings. Update multi level docstrings as per Python best practices.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:27:45 -04:00
Michael Price f44fbe5687 Update drf-yasg to version 1.5.0.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:27:37 -04:00
Michael Price 75542ebcc3 Update required Django version to 1.11.11.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:26:43 -04:00
Michael Price 6c4ec805dc Move generate_setup back to the root directory. Doesn't work in a subfolder.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:26:02 -04:00
Michael Price 6c738793fd Add more pending tasks.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:25:55 -04:00
Michael Price 5fadeadce2 Add missing migrations.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:25:48 -04:00
Michael Price 942dd7f710 Update HISTORY file.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:25:12 -04:00
Michael Price 3159a6bf1f Remove ununsed library. Remove unused code. Fix formatting.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:25:05 -04:00
Michael Price 6ecd12d250 Update code statistics.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:24:55 -04:00
Michael Price c69147bdc5 Checking for access also checks for permission. Remove reduntant check.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:24:11 -04:00
Michael Price 0c4a52558b Sort comment view method as per Mayan's best practices.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:24:04 -04:00
Michael Price 3fc9a14015 Add document comment API tests to check with and without access. Update tests to latest API test class interface.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:23:57 -04:00
Michael Price 5d2d821c6e Permission checking is done implicitly when checking for access. Remove the redundant check.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:23:51 -04:00
Eric Riggs a4f5febf38 Emulate the CTRL+click behavior.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 20:23:42 -04:00
Michael Price ee3683f6ac Update pending tasks.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:23:20 -04:00
Michael Price ed8cdb9da4 Fix failing document parsing tests.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:23:13 -04:00
Eric Riggs ed4f97cea7 Push the last URL + query when rendering a form's new markup.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 20:23:07 -04:00
Michael Price 53b47455d3 Add support for OR type searches. Use the "OR" string between the terms. Example: term1 OR term2.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:23:01 -04:00
Michael Price af85d37307 Remove documents model TODOs
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:22:51 -04:00
Michael Price 1fc06a350b Consolidate the docstring of the API methods into a class docstring.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:22:35 -04:00
Michael Price ff9e291cd7 Re-enable the API root path and exclude it from schema introspection.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:22:26 -04:00
Michael Price 17acb444bd Add link to API documentation generated by ReDoc.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:22:21 -04:00
Michael Price d173f9f863 Disable the root API path as this confuses Swagger which then groups all endpoints into a single dropdown.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:22:13 -04:00
Michael Price 764a80fab2 Rename the internal name of the document type permissions namespace.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:22:04 -04:00
Michael Price 4e908db62b Move RETRY_DELAY constant to the literals.py module.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:21:55 -04:00
Michael Price b9f7326f6f Remove redundant get_serializer_context as this is already passed to the serializer by default.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:21:47 -04:00
Michael Price 28aa0b913c Reorganize and sort models and managers according to Mayan's best practices.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:21:37 -04:00
Michael Price a172538dfc Sort smartlinks by label.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:21:31 -04:00
Michael Price f3c5391d54 Silence the UnorderedObjectListWarning warning for the workflow app.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:20:45 -04:00
Michael Price 0a480066df Reorganize common's base test class.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:20:37 -04:00
Michael Price 4f5cf81212 Remove completed tasks.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:20:04 -04:00
Michael Price 96836065a8 Split document.tests.test_views.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:19:07 -04:00
Michael Price 77777deec5 Fix transformation imports.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:19:01 -04:00
Michael Price ee58303fbb Move transformations to the their own module.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:18:54 -04:00
Michael Price 82000bfe39 Bump version to 3.0
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:18:46 -04:00
Michael Price cbd8ed52c7 Move the generate_setup.py script to contribs/scripts.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:17:45 -04:00
Roberto Rosario 66b873e6e5 Sync pending work file with commit 39b07cc8bf0f6b1d3aeffe9f6f901ca7f7bcce92
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:17:21 -04:00
Michael Price 8e7b288c00 Fix checkout API tests.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:15:19 -04:00
Michael Price 395be18151 Fix widget test.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:15:10 -04:00
Eric Riggs 1fdb452c9d Add my pending tasks to the list.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:14:58 -04:00
Michael Price 2802ee233c Close fancybox when clicking on the caption of a preview to move to the document view.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:13:59 -04:00
Michael Price d03c6b4646 Update to Fancybox 3. Update to jQuery 3.3.1. Update and simplify MayanImage class.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:13:03 -04:00
Roberto Rosario 13d36ab174 commit ce782a37f7 (HEAD -> feature/mayan-edms-ng-3-merge)
Author: Michael Price <loneviking72@gmail.com>
Date:   Mon Mar 12 16:32:29 2018 -0400

    Move pending task chapter to its own topic file. Add release blockers and new features.

    Signed-off-by: Michael Price <loneviking72@gmail.com>

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 20:12:39 -04:00
Michael Price ce782a37f7 Move pending task chapter to its own topic file. Add release blockers and new features.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:04:18 -04:00
Michael Price 7a6465303d Update tests.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:04:11 -04:00
Michael Price 8590bff6e4 Convert document thumbnails, preview, image preview and staging files to template base widgets. Unify all updated widgets. Display resolution settings are now specified as width and height and not a single resolution value.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:04:05 -04:00
Michael Price d29d4ba110 Remove unused staging file method.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:03:51 -04:00
Michael Price f978eb49f4 make sure the printed pages are full width.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:03:44 -04:00
Michael Price 3e13d5ae1f Move the invalid document markup to a separate HTML template.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:03:27 -04:00
Michael Price cffc63a29e Don't navigate on links meant to execute javascript on click.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:03:10 -04:00
Michael Price 43955d680a Fix indentation error.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:03:01 -04:00
Michael Price baa1307870 Resize elements with the class .full-height after loading via AJAX.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:02:54 -04:00
Michael Price fb565aeb2a Update HISTORY file.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:02:39 -04:00
Michael Price 27286fce24 Discard the page content since it is not going to be used. Prevent's javascript error in the console.log.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:02:14 -04:00
Michael Price 9b10f59162 Set the document's title dynamically from the loaded AJAX content.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:01:43 -04:00
Michael Price ad3438b859 Don't remove newlines on error message pages.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:01:35 -04:00
Michael Price 61cb9ac524 Silence UnorderedObjectListWarning warnings.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:01:27 -04:00
Michael Price 55a4798ac3 Silence the UnorderedObjectListWarning warning for the checkouts app.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:01:21 -04:00
Michael Price f85b30c967 Fix the failing tests from the linking app.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:01:14 -04:00
Michael Price abf0ecebaf Fix failing documents app tests.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:01:08 -04:00
Michael Price 49bb7c879e Add root API showing the new endpoints.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:00:38 -04:00
Michael Price afd4748426 Don't try to return a serializer if there is no request object. Used when the API view is being introspected.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:00:27 -04:00
Michael Price f8cb63b11a Use a SHA256 hex digest of the secret key at the name of the lockfile.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:00:19 -04:00
Michael Price 8a3f9c7e4e Don't scan documents without at least a version for duplicates.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 20:00:12 -04:00
Eric Riggs 2abd37c131 Update HISTORY.md
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:59:59 -04:00
Eric Riggs 67b940aec9 Add AJAX workers only for the static links.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:59:53 -04:00
Eric Riggs c267933fb8 - Make navigation bar collapse work by code instead of CSS classes.
- Collapse navigation bar on Escape key.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:59:41 -04:00
Eric Riggs ac7cef2fd9 - Remove console logs and debug statements.
- Add code documentation.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:59:32 -04:00
Eric Riggs 00185ef936 Clicking any link will collapse a responsive main menu.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:59:24 -04:00
Eric Riggs 9e1dd7aa26 Add the MERC specifying javascript library usage.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:59:17 -04:00
Eric Riggs 6afd3eb869 Fix missing icons for signin, dashboard links, rotate left and rotate right.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:59:10 -04:00
Eric Riggs 5b8ae1be2e Fix cabinet navigation.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:59:02 -04:00
Eric Riggs c7caa53b52 Reload the root template with a view is not loaded via AJAX.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:58:56 -04:00
Eric Riggs 5f80563e49 Add the same hidding CSS classes to the new Icon class.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:58:49 -04:00
Eric Riggs cc7eb92550 - Add support for filtering the notification list API by read status.
- Show only unread notification on the badge.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:58:42 -04:00
Eric Riggs 98c61bf819 - Fix tabular radio button template.
- Broke with the upgrade to Django 1.11.
- Used by the event subscription form.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:58:34 -04:00
Eric Riggs b083bd534b Fix and update Dropzonejs.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:58:28 -04:00
Eric Riggs 6aca0cd874 Add notification count inside a badge on the notification link.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:58:21 -04:00
Eric Riggs ee75f0e92d Prevent default when opening a link in a new window. Fixes Swagger page opening twice.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:58:12 -04:00
Eric Riggs 63f3f83fa3 Update partials with server side errors to emulate the old error (404, 403) behavior of Mayan.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:58:05 -04:00
Eric Riggs c8911b901e - Fix the document print view by switching it to a GET view instead.
- Add support for passing the form target.
- Update ajaxForm to emulate '_blank' form targets.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:57:54 -04:00
Eric Riggs 410f8fed76 - Fix login and authentication views by adding the html_extra_classes Link attribute and using it to avoid loading authentication clicks as partials.
- Add a new base_plain template as parernt for the authentication templates.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:57:47 -04:00
Eric Riggs 5b3285c006 Add periodic AJAX workers to update the value of the notifications link.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:57:38 -04:00
Eric Riggs 5704c21d56 Support AJAX anchors with no path and just a query. Used by the pagination links.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:57:31 -04:00
Eric Riggs c2e25e6d0d Add page loading indicator using PACE.js.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:57:24 -04:00
Eric Riggs 05dc569a6f Update HISTORY.rst.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:57:18 -04:00
Eric Riggs 3d3684daeb Remove unused animate.css package.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:57:11 -04:00
Eric Riggs d6c9ce071c Remove the unused scrollable_content internal feature.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:57:01 -04:00
Eric Riggs accfee4c50 Add template and modal to display server side errors.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:56:53 -04:00
Eric Riggs 57f03b21fc - Update the markup of the multiple object action form into a valid markup. The checkboxes are now outside the form's tags.
- Add beforeSerialization callback support to ajaxForm.
- Add a callback to add the external checkboxes to the multiple object action form being submitted.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:55:54 -04:00
Eric Riggs fc8dc74de4 Don't use the previous variable when canceling a form action. Form now use only javascript's history.back().
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:55:18 -04:00
Eric Riggs d83a50d36a Use history.back instead of history.go(-1).
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:55:09 -04:00
Eric Riggs 53c277b420 Remove the main menu from the base template. It should only exist in the root template.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:55:01 -04:00
Eric Riggs 3be28131c9 - Pass the AJAX referer for all AJAX requests.
- Switch to synchronous requests.
- All location changes go through the setLocation method.
- Switch to using history.pushState.
- AJAX middleware inserts AJAX referer as the request HTTP_REFERER.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:54:50 -04:00
Eric Riggs f3f4dcd84a - Make Mayan behave like a Single Page App by using partials.
- Add URI.js, Ajax form.
- Split base.js into mayan_app.js, mayan_image.js, partial_navigation.js.
- Add a HOME_VIEW setting. Use it for the default view to be loaded.
- New template loading order root.html -> base.html -> any template. root.html is only loaded once. Other templates are loaded and merged with base.html via ajax load.
- Fix bug in document page view. Was storing the URL and the querystring as a single url variable.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 19:54:15 -04:00
Michael Price e4f61b3ad8 Fix document search tests.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 19:53:40 -04:00
Michael Price 9ca7ca5ce6 Make sure the document page image API goes via the proper queryset filtering.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 19:53:23 -04:00
Michael Price 381dafc7b9 Update to Font Awesome 5. Add experimental Icon class. Simplify document loading icon.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 19:53:03 -04:00
Michael Price 69adce5c02 Add ordering by 'pk' field to the AccessControlList model to silence the UnorderedObjectListWarning warning.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:39:34 -04:00
Michael Price d0c6c7e6de Update ACLs app API tests to the latest API class interface.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:39:21 -04:00
Michael Price e2cc939260 Fix indentation.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:39:04 -04:00
Michael Price 702618b924 SearchModel no longer returns result_set. It is unfiltered and unused.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:38:53 -04:00
Michael Price d93fafcf57 Return the result's serializer only during use not during introspection.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:38:39 -04:00
Michael Price f93521395c Django's 1.11 urlencode doesn't work in the same as in version 1.10. Update to fix.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:38:14 -04:00
Michael Price 9977759f85 Update HISTORY file.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:38:01 -04:00
Roberto Rosario efc470ff4c Add information on installing flake8's git hook.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 18:37:49 -04:00
Cornelius Ludmann d7567f4b97 Test for base64 encoded e-mail attachment filename
Signed-off-by: Cornelius Ludmann <dev@cornelius-ludmann.de>
2018-04-01 18:37:35 -04:00
Cornelius Ludmann c29d7c6e5b Decode base64 encoded e-mail attachment filename.
According to RFC 2231 the filename of e-mail attachments can be encoded,
e.g. with base64 (for example, the Brother ADS2800W Scanner does this).

Here an example how it looks like:

Content-Disposition: attachment; filename="=?UTF-8?B?QlJXMjg1NjVBOEI5RkQyXzIwMTcwNTIzXzIzMDMzN18wMDAzMDMucGRm?="

Signed-off-by: Cornelius Ludmann <dev@cornelius-ludmann.de>
2018-04-01 18:37:25 -04:00
Michael Price 4b36c27e33 Add API test for the document checkout API.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:37:14 -04:00
Michael Price 55ba6786b3 Fix and modernize the document checkout API view. Move API logic to serializer.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:36:56 -04:00
Michael Price 3165912837 Format line according to best practices.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:36:30 -04:00
Michael Price 44320838a0 Add statistics script to produce a report of the views, APIs and test for each app.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 18:36:15 -04:00
Michael Price cedf5ac7d0 Update to the latest version the packages for building, development, documentation and testing.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:31:51 -04:00
Michael Price 1946250cea Update to the latest version of Pillow, django-activity-stream, django-compressor, django-cors-headers, django-formtools, django-qsstats-magic, django-stronghold, django-suit, furl, graphviz, pyocr, python-dateutil, python-magic, pytz, sh.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:31:33 -04:00
Michael Price 4378b28777 Update API vies and serializers for the latest Django REST framework version. Replace DRF Swagger with DRF-YASG.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:31:22 -04:00
Michael Price 77a3c103d1 Tweak app API urls.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:31:11 -04:00
Michael Price e1956f8d80 Get rids of the APIEndPoint and APIResource classes. Register API url using the 'has_rest_api' AppConfig variable.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:30:59 -04:00
Michael Price 36d19ea284 Add API test for the checkout list view.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:30:39 -04:00
Michael Price 744976e8a1 Fix flake8 warnings.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:30:27 -04:00
Michael Price d8d6dada5e Add document parsing app API tests.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:30:14 -04:00
Michael Price 58c762d9e8 Update HISTORY file.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:30:02 -04:00
Michael Price 3c4f9ced11 Add checkouts app API tests.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:29:49 -04:00
Michael Price 938093db6f Make sure to require the checkedout detail view permission for the checked out document detail API view.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:29:35 -04:00
Michael Price b4bf9bfaee Switch to a resource and service based API from previous app based one.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:28:40 -04:00
Michael Price f3427c7470 Update HISTORY file.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:28:19 -04:00
Michael Price 3919e6404c Improve and add workflow app tests.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:28:07 -04:00
Michael Price 775894ee0d Improve permission having in the workflow app views. Most were made more granular and operate now on an object access basis instead of working per view permission.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:27:23 -04:00
Michael Price a4a3c96228 Update workflow links according to the view name updates.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:26:55 -04:00
Michael Price 471458fda3 Update workflow views' URL and names for consistency with Mayan's best practices.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:26:42 -04:00
Michael Price b8e97164c8 Remove unused line.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:26:13 -04:00
Michael Price 974fa8e210 Fix super class name.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:26:02 -04:00
Michael Price 6525f3b854 Update project to use Django 1.11.10 and Django model utils version 3.1.1
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:25:47 -04:00
Michael Price 984e8a5b2c Silence deprecation warning about default manager for child models. Reorganize model according to Mayan's best practices.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:25:32 -04:00
Michael Price fd9a7217e9 Reduce repeated code in test.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:25:18 -04:00
Michael Price b1080e5fe5 Convert the TextAreaDiv widget to use template-based rendering as per Django's release notes: https://docs.djangoproject.com/en/2.0/releases/1.11/#template-based-widget-rendering
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:25:03 -04:00
Michael Price 2b77da369d render_subtemplate's Context contructor needs a dictionary as the argument as per Django's release notes: https://docs.djangoproject.com/en/2.0/releases/1.11/#django-template-backends-django-template-render-prohibits-non-dict-context
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:24:43 -04:00
Michael Price 8f3e1a3eb0 Don't use include for the admin urls as per Django's tutorial documentation at: https://docs.djangoproject.com/en/1.11/intro/tutorial01/
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:24:12 -04:00
Michael Price a2a58e925b Add changes from the next version to the HISTORY file.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 18:23:49 -04:00
Michael Price 9043291b8d Don't put the raw document queryset in the template context. It is not needed anymore.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:23:00 -04:00
Michael Price 4af9dfa36d Don't use document_list which is not paginated. Use object_list instead which is paginated.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:22:39 -04:00
Michael Price 72160bf806 Make CabinetDetailView a subclass of DocumentListView to add pagination to the document list.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:22:22 -04:00
Michael Price bc85c3be59 Add inherited permission check for the DocumentPageSearch model.
This and not the DocumentPage is the actual model return for page searches.

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:21:54 -04:00
Michael Price e3d400c70d Add common.utils.return_related function to support double underscore related model references.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 18:21:26 -04:00
Roberto Rosario 0edb028bbf Finish updating DocumentAPITestCase tests to test for access.
Start updateing DeletedDocumentAPITestCase tests to test the access.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 18:19:11 -04:00
Roberto Rosario cc7f69b908 Continue updating the document app API tests to work with access and permission
level testing.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 18:16:03 -04:00
Roberto Rosario 1d5a60ef9e Update DocumentTypeAPITestCase to with test with/without access.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 18:10:02 -04:00
Michael Price 7000ba1630 Don't use gpg1 for testing against sqlite.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:53:18 -04:00
Michael Price 026c7d391b Add settings module for easy testing during development.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:53:16 -04:00
Michael Price a1876c065e Don't use gpg1 for testing against sqlite.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:52:27 -04:00
Michael Price d991c82693 Add settings module for easy testing during development.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:52:19 -04:00
Roberto Rosario 1ed9f9819a Fix document state migration dependency.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 02:43:41 -04:00
Michael Price 7db6bd3fc4 Use already available .get_for_class class method and avoid code repetition.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:41:33 -04:00
Michael Price 47dfdfbffe Fix MERC type.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:40:27 -04:00
Michael Price 17a75d3b2a Fix alphine release and alpine test release Makefile targets.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:40:13 -04:00
Michael Price 381dd305c1 Add support forum MERC.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:39:52 -04:00
Michael Price a0980b0fbd Update HISTORY file and Release notes.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 02:39:36 -04:00
Michael Price ad293a8f40 Add Role and Group merging draft MERC.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:37:40 -04:00
Michael Price 0b77c5c319 Add Ubuntu package gnupg.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:37:27 -04:00
Michael Price 48834eb8b4 Add Ubuntu package gpgv. Sort packages alphabetically.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:37:16 -04:00
Michael Price 7b68e271c8 Only pull the Database Docker image for the test that requires it.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:36:55 -04:00
Michael Price a1c8b8e5de Update the Ubuntu package repository before trying to install anything.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:36:42 -04:00
Michael Price b616ffaf1f Add locales package which is missing in Ubuntu 16.04.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:36:23 -04:00
Michael Price 8c37bd87d6 GitLab CI testing with Ubuntu 16.10 is failing. Fallback to Ubuntu 16.04.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:36:08 -04:00
Michael Price 98f31ff491 Use the get_or_create method instead of a blind create to avoid duplicated notifications for the same event when the user is subscribed to the object's event and to the global event.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:35:39 -04:00
Michael Price d201f2c31c Show horizontal on the list item template only when there are items present.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 02:35:12 -04:00
Michael Price b45be228d2 Update the remaining document app API tests to test with and without permissions.
Update the remaining API tests to conform to the updated API test class interface.

Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 02:30:37 -04:00
Eric Riggs 99a9a87a56 Update HISTORY file.
Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 02:01:34 -04:00
Eric Riggs c85035b58e - Improve the styling of the multiple object action form by controlling the top and bottom margins.
- Equalize styling of the multiple object action form in the list items and item subtemplates.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 02:00:27 -04:00
Roberto Rosario f923904a0e Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 01:59:43 -04:00
Eric Riggs eceb3ed877 - Make the multi object form perform an auto submit when the value is changed.
- Add multiple object select checkbox that was missing in the list item subtemplate.

Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
2018-04-01 01:57:47 -04:00
Michael Price 0a05c87c9c Update the Pillow and django-mptt versions required.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:56:42 -04:00
Michael Price ec51aecad6 Remove the .gitignore file from 3rd party Javascript libraries.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:56:09 -04:00
Michael Price c21fec9e1d Add draft test writing MERC.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 01:55:24 -04:00
Roberto Rosario 6886b22360 Add changelog entry about requiring the document view permission to view trashed documents.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 01:53:42 -04:00
Michael Price 54e93c1ed6 Customize the empty formset message for the document type metadata type relationship view.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:53:08 -04:00
Michael Price d64f72351d Customize the empty formset message for the document type metadata type relationship view.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:52:42 -04:00
Michael Price 34fc5a5bcf Don't error out when there are no metadata types available.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:52:11 -04:00
Roberto Rosario 93cba698e4 Instead of throwing an error, display an empty form is there are not event types to display.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 01:51:25 -04:00
Michael Price 93dbf789d0 Add support for displaying a message when a formset is empty.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:45:50 -04:00
Michael Price d59466123b Fix the test_document_attach_tag_view_with_tag_access test assertion.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:41:06 -04:00
Michael Price 1d0ef774e6 Update the remaining document app API tests to test with and without permissions. Update the remaining API tests to conform to the updated API test class interface.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 01:38:11 -04:00
Michael Price 68c572bd6e Require the document view permission to view the details of a trashed document.
Add a get method override to document the API endpoint.

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:33:27 -04:00
Michael Price 54e8f85def Update the linking app API tests to test endpoints with and without permissions or accesses.
Update API tests to conform to the updated API test class interface.

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:31:19 -04:00
Michael Price 80d7410c15 Update the workflow app API tests to test with and without permissions. Update the API test to conform to the latest API test class interface.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:30:51 -04:00
Michael Price 837d64dfdb Register the workflow_view permission to the Document model.
Add task to rebalance the workflow app permission checking.

Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 01:30:21 -04:00
Michael Price db735bc454 - Require the permission_workflow_view for the workflow to be able to view a document type's workflow list.
- Fix the permission check to create workflows. Previously it has not effect as it has using the
mayan_object_permissions instead of the mayan_view_permissions dictionary.
- Require the permission_workflow_view to view the workflow instance list.
- Require the permission_workflow_view to view a workflow instance's details.

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:28:38 -04:00
Michael Price 2f4abb22f8 Update the metadata app API tests to test with and without the correspoding permissions and accesses. Update the test to the latest API test class interface. 2018-04-01 01:28:04 -04:00
Michael Price 679cf70269 Associate the permissions: metadata_type_delete/edit/view with the MetadataType model.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:27:11 -04:00
Michael Price 3b5c5666b3 Don't register the user create and group create permissions with a their respective models.
These permissions can only be granted globally.

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:26:54 -04:00
Michael Price bfa7950d6a Update the MOTD app API tests to test with and without permissions. Update the API tests to conform with the API test class interface.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:26:24 -04:00
Michael Price 89b9492f39 Register the corresponding Message model permissions.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:25:57 -04:00
Michael Price 8bf3822e54 Update the user OCR API tests to test for fail and success scenarios
based on access. The tests were also updated to comform
with the new API test class interface.

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:25:38 -04:00
Michael Price 9f3f41f39e Update the tag API tests to test against permission and access success and failure.
Update tag API test to conform to new API test class interface.

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:25:04 -04:00
Michael Price 8d50e5ecb9 Fix document tag serializer error when trying to add a tag to a document
without having the tag attach permission.

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:21:40 -04:00
Michael Price 3093a82a9f Add development task reminder about API delete views result code.
Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 01:20:44 -04:00
Michael Price eae881c35a Update the user management app API tests to test for fail and success scenarios
based on permissions and access. The tests were also updated to comform
with the new API test class interface.

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:18:58 -04:00
Michael Price c9f6d64b44 Register the corresponding permissions to the user and group models.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:18:30 -04:00
Michael Price f542dfb07c Update user management app user group view and add API to filter
by group permission too. At the moment the group view permission
is required to add a group to an existing user. This should be
updated to a new specific group permission (ie: group_add, group_remove).

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:17:01 -04:00
Roberto Rosario c604ec9c6d Add pending work documentation topic.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 01:14:13 -04:00
Michael Price 9adddace83 Add the Mayan EDMS Request For Comment starting document.
Add pending tasks to define or complete to the development
topic.

Signed-off-by: Michael Price <loneviking72@gmail.com>
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-04-01 01:13:21 -04:00
Michael Price f53350a699 Update the dynamic_search app API tests to conform with the new BaseAPITestCase class interface and
to include pass and fail test for each end point.

Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:11:09 -04:00
Michael Price 4834b9d491 Register the corresponding permissions to the Role model.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:10:45 -04:00
Michael Price c556e095e0 Update the dynamic_search app API tests to conform with the new BaseAPITestCase class interface.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:10:30 -04:00
Michael Price 57bb282dbc Update the django_gpg app APIs to check for user access. Update corresponding tests.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:01:27 -04:00
Michael Price d3e4876511 Use Django 1.10.8.
Signed-off-by: Michael Price <loneviking72@gmail.com>
2018-04-01 01:01:16 -04:00
Roberto Rosario 05c5151c38 Improve BaseAPITestCase to support normal user login, access
granting and permission granting.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-10-23 14:22:04 -04:00
Roberto Rosario 3fc9b8e62c Add makefile target to find .gitignore files in the project files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-10-21 18:30:16 -04:00
Roberto Rosario 0cd5f3c3a3 Make event list's user column an interactive link that
filters by user.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-10-21 18:08:40 -04:00
Roberto Rosario b660c8055f Add view to show list of events performed by an user.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-10-21 17:58:05 -04:00
Roberto Rosario 677f49aed5 Add version 2.8 release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 04:01:23 -04:00
Roberto Rosario 68bb791c96 Fix password set tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 04:00:57 -04:00
Roberto Rosario 3a695618c1 Add get_absolute_url method to document types.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 03:36:21 -04:00
Roberto Rosario db83f09b19 Don't error out when an object doesn't provide a get_absolute_url
method.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 03:35:41 -04:00
Roberto Rosario 824c371d92 Update event tests to use .id of an event instead of the .name.
The .id now also returns the namespace.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 03:34:00 -04:00
Roberto Rosario f2e84c0256 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 03:24:09 -04:00
Roberto Rosario f475709b08 Remove Vagrant section of the document. Anything related to
Vagrant has been move into its own repository at:
https://gitlab.com/mayan-edms/mayan-edms-vagrant

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 03:23:38 -04:00
Roberto Rosario 3628035884 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 03:22:04 -04:00
Roberto Rosario 2b119ddb93 Improve backported notification changes migrations dependencies.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 03:21:38 -04:00
Roberto Rosario 08d4fbbecd Add missing events app migration.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 03:13:12 -04:00
Roberto Rosario f0baa16cde Backport support for global and object event notification. GitLab issue #262.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 03:12:40 -04:00
Roberto Rosario c4c0d4a007 Rename the group user count column label from "Members" to "Users".
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 02:07:31 -04:00
Roberto Rosario 72fc940cd7 Add method to modify a group's role membership from the group's
view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 02:05:59 -04:00
Roberto Rosario 2dff4c14f9 Fix typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 01:44:58 -04:00
Roberto Rosario f14c67a444 User Django's provided form for setting an users password.
This change allows displaying the current password policies
and validation.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 01:44:16 -04:00
Roberto Rosario 6e93985fe2 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 01:30:28 -04:00
Roberto Rosario 816c0ee703 Show the number of pages of a document and of document versions in
the document list view and document versions list views respectively.
Display a document version's thumbnail before other attributes.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 01:28:52 -04:00
Roberto Rosario 89a3d1d32a Don't show full document version label in the heading of the document
version list view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 01:27:56 -04:00
Roberto Rosario b44ccc3d0d Rename the group users link label from "Members" to "Users".
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 01:07:21 -04:00
Roberto Rosario a82d963998 Rename the role group list link label from "Members" to "Groups".
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-17 01:06:40 -04:00
4610 changed files with 287086 additions and 276874 deletions
+10
View File
@@ -0,0 +1,10 @@
.git
.gitignore
HISTORY.md
mayan/media
db.sqlite*
docker
!docker/rootfs
./.*
docs
+31
View File
@@ -0,0 +1,31 @@
kind: pipeline
name: default
steps:
- name: docker
image: plugins/docker
settings:
registry: registry.d1v3.de
repo: registry.d1v3.de/mayan-edms
username:
from_secret: docker_username
password:
from_secret: docker_password
dockerfile: docker/Dockerfile
tags: latest
auto_tag: true
---
kind: secret
name: docker_username
get:
path: kv/data/drone/docker
name: username
---
kind: secret
name: docker_password
get:
path: kv/data/drone/docker
name: token
+2 -1
View File
@@ -1,2 +1,3 @@
[flake8] [flake8]
ignore = E501 exclude = node_modules,static,templates
ignore = E501, N801, N802, N804, N805, N806
+1
View File
@@ -0,0 +1 @@
custom: https://www.mayan-edms.com/donation/
+7
View File
@@ -7,6 +7,7 @@
.coverage .coverage
.coverage.tox* .coverage.tox*
.idea/ .idea/
*.swp
.tox/ .tox/
.vagrant .vagrant
_build/ _build/
@@ -27,4 +28,10 @@ static_collected/
/misc/mayan.geany /misc/mayan.geany
/mayan/media/static/ /mayan/media/static/
/venv/ /venv/
/venv3/
/whoosh_index/ /whoosh_index/
google_fonts/
node_modules/
docs/build/
docs/_templates/layout.html
docs/_templates/footer.html
+219 -27
View File
@@ -1,41 +1,233 @@
image: ubuntu:16.10 stages:
- test
- build_python
- build_docker
- build_documentation
- push_python
- push_docker
- push_documentation
- deploy
job_docker_build:
stage: build_docker
image: docker:latest
services: services:
- mysql:latest - docker:dind
- postgres
before_script: before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE" -f docker/Dockerfile .
- VERSION=`cat docker/rootfs/version`
- docker tag "$CI_REGISTRY_IMAGE" "$CI_REGISTRY_IMAGE:$VERSION"
- docker run --rm "$CI_REGISTRY_IMAGE:$VERSION" run_tests
- docker push "$CI_REGISTRY_IMAGE:$VERSION"
- docker push "$CI_REGISTRY_IMAGE:latest"
- docker tag "$CI_REGISTRY_IMAGE:$VERSION" registry-1.docker.io/mayanedms/mayanedms:"$VERSION"
- docker tag "$CI_REGISTRY_IMAGE:$VERSION" registry-1.docker.io/mayanedms/mayanedms:latest
- docker logout
only:
- releases/all
- releases/docker
job_docker_push:
stage: push_docker
image: docker:latest
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- VERSION=`cat docker/rootfs/version`
- docker pull "$CI_REGISTRY_IMAGE:$VERSION"
- docker tag "$CI_REGISTRY_IMAGE:$VERSION" registry-1.docker.io/mayanedms/mayanedms:"$VERSION"
- docker tag "$CI_REGISTRY_IMAGE:$VERSION" registry-1.docker.io/mayanedms/mayanedms:latest
- docker logout
- docker login -u "$DOCKER_HUB_USERNAME" -p "$DOCKER_HUB_PASSWORD" https://registry-1.docker.io
- docker push registry-1.docker.io/mayanedms/mayanedms:"$VERSION"
- docker push registry-1.docker.io/mayanedms/mayanedms:latest
only:
- releases/all
- releases/docker
job_docker_nightly:
stage: build_docker
image: docker:latest
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" -f docker/Dockerfile .
- docker run --rm "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" run_tests
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
only:
- nightly
- staging
job_documentation_build:
stage: build_documentation
image: ubuntu:18.04
artifacts:
expire_in: 1 hr
paths:
- docs
before_script:
- apt-get -qq update
- apt-get install -qq locales make python-pip enchant
- echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale - echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale
- locale-gen en_US.UTF-8 - locale-gen en_US.UTF-8
- update-locale LANG=en_US.UTF-8 - update-locale LANG=en_US.UTF-8
- export LC_ALL=en_US.UTF-8 - export LC_ALL=en_US.UTF-8
- apt-get update -qq script:
- apt-get install -qq curl graphviz python-dev python-pip gcc gnupg1 tesseract-ocr tesseract-ocr-deu ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice - pip install -r requirements/documentation.txt
- cd docs
- make html
only:
- releases/all
- releases/documentation
job_documentation_push:
stage: push_documentation
image: ubuntu:18.04
before_script:
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo "$DOCUMENTATION_SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client rsync -y )'
- eval $(ssh-agent -s)
- echo "$DOCUMENTATION_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
script:
- rsync -avzP --progress -e ssh docs/_build/html/* mayandocs@docs.mayan-edms.com:/home/rosarior/webapps/mayan_docs
only:
- releases/all
- releases/documentation
job_build_python:
stage: build_python
image: ubuntu:18.04
artifacts:
expire_in: 1 hr
paths:
- dist
before_script:
- apt-get -qq update
- apt-get install -qq locales make python-pip
script:
- echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale
- locale-gen en_US.UTF-8
- update-locale LANG=en_US.UTF-8
- export LC_ALL=en_US.UTF-8
- pip install -r requirements/build.txt
- make python-wheel
only:
- releases/all
- releases/python
job_push_python:
stage: push_python
image: ubuntu:18.04
before_script:
- apt-get -qq update
- apt-get install -qq python-pip
script:
- pip install -r requirements/build.txt
- echo "$PYPIRC" > ~/.pypirc
- twine upload dist/* -r pypi
only:
- releases/all
- releases/python
.test_base: &test_base
stage: test
image: ubuntu:18.04
cache:
paths:
- ~/.cache/pip/
- /var/cache/apt/archives/
before_script:
- apt-get -qq update
- apt-get install -qq locales
- echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale
- locale-gen en_US.UTF-8
- update-locale LANG=en_US.UTF-8
- export LC_ALL=en_US.UTF-8
- apt-get install -qq curl exiftool firefox-geckodriver gcc ghostscript gnupg1 graphviz libfuse2 libjpeg-dev libmagic1 libpng-dev libtiff-dev poppler-utils libreoffice poppler-utils python-dev python-virtualenv python3-dev tesseract-ocr tesseract-ocr-deu
- virtualenv venv -p /usr/bin/python3
- . venv/bin/activate
- pip install -r requirements.txt -r requirements/testing-base.txt
only:
- releases/all
- releases/docker
- releases/python
- staging
- nightly
test-mysql:
<<: *test_base
variables:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "mayan_edms"
services:
- mysql:8.0.3
script:
- apt-get install -qq libmysqlclient-dev libssl-dev mysql-client
- . venv/bin/activate
- set -a && . ./config.env && set +a
- pip install mysqlclient==$PYTHON_MYSQL_VERSION
- mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "set global character_set_server=utf8mb4;"
- python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
tags:
- mysql
test-postgres:
<<: *test_base
variables: variables:
POSTGRES_DB: "mayan_edms" POSTGRES_DB: "mayan_edms"
POSTGRES_PASSWORD: "postgres" POSTGRES_PASSWORD: "postgres"
MYSQL_ALLOW_EMPTY_PASSWORD: "yes" services:
MYSQL_DATABASE: "mayan_edms" - postgres
test:mysql:
script:
- apt-get install -qq libmysqlclient-dev
- pip install -r requirements/testing.txt
- pip install mysql-python
- apt-get install -qq mysql-client
- mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "set global character_set_server=utf8mb4;"
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
- codecov
tags:
- mysql
test:postgres:
script: script:
- apt-get install -qq libpq-dev - apt-get install -qq libpq-dev
- pip install -r requirements/testing.txt - . venv/bin/activate
- pip install psycopg2 - set -a && . ./config.env && set +a
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations - pip install psycopg2==$PYTHON_PSYCOPG2_VERSION
- codecov - python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
tags: tags:
- postgres - postgres
test:sqlite:
test-sqlite:
<<: *test_base
script: script:
- pip install -r requirements/testing.txt - . venv/bin/activate
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations - python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations
- codecov
deploy_demo:
environment:
name: demo
stage: deploy
before_script:
- mkdir -p ~/.ssh
- echo "${DEMO_SSH_KNOWN_HOST}" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- echo "${DEMO_PRIVATE_KEY}" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
script:
- scp contrib/scripts/install/docker.sh root@$DEMO_IP_ADDRESS:~
- ssh root@$DEMO_IP_ADDRESS "DELETE_VOLUMES=true ./docker.sh"
when: manual
deploy_staging:
environment:
name: staging
stage: deploy
before_script:
- mkdir -p ~/.ssh
- echo "${STAGING_SSH_KNOWN_HOST}" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- echo "${STAGING_PRIVATE_KEY}" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
script:
- scp contrib/scripts/install/docker.sh root@$STAGING_IP_ADDRESS:~
- ssh root@$STAGING_IP_ADDRESS "DOCKER_MAYAN_IMAGE=registry.gitlab.com/mayan-edms/mayan-edms:staging ./docker.sh"
when: manual
+55 -6
View File
@@ -19,6 +19,12 @@ source_lang = en
source_file = mayan/apps/authentication/locale/en/LC_MESSAGES/django.po source_file = mayan/apps/authentication/locale/en/LC_MESSAGES/django.po
type = PO type = PO
[mayan-edms.autoadmin-2-0]
file_filter = mayan/apps/autoadmin/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/autoadmin/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.cabinets-2-0] [mayan-edms.cabinets-2-0]
file_filter = mayan/apps/cabinets/locale/<lang>/LC_MESSAGES/django.po file_filter = mayan/apps/cabinets/locale/<lang>/LC_MESSAGES/django.po
source_lang = en source_lang = en
@@ -43,18 +49,24 @@ source_lang = en
source_file = mayan/apps/converter/locale/en/LC_MESSAGES/django.po source_file = mayan/apps/converter/locale/en/LC_MESSAGES/django.po
type = PO type = PO
[mayan-edms.dashboards-2-0]
file_filter = mayan/apps/dashboards/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/dashboards/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.dependencies-3-0]
file_filter = mayan/apps/dependencies/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/dependencies/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.django_gpg-2-0] [mayan-edms.django_gpg-2-0]
file_filter = mayan/apps/django_gpg/locale/<lang>/LC_MESSAGES/django.po file_filter = mayan/apps/django_gpg/locale/<lang>/LC_MESSAGES/django.po
source_lang = en source_lang = en
source_file = mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po source_file = mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po
type = PO type = PO
[mayan-edms.documents-2-0]
file_filter = mayan/apps/documents/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/documents/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.document_comments-2-0] [mayan-edms.document_comments-2-0]
file_filter = mayan/apps/document_comments/locale/<lang>/LC_MESSAGES/django.po file_filter = mayan/apps/document_comments/locale/<lang>/LC_MESSAGES/django.po
source_lang = en source_lang = en
@@ -85,6 +97,12 @@ source_lang = en
source_file = mayan/apps/document_states/locale/en/LC_MESSAGES/django.po source_file = mayan/apps/document_states/locale/en/LC_MESSAGES/django.po
type = PO type = PO
[mayan-edms.documents-2-0]
file_filter = mayan/apps/documents/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/documents/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.dynamic_search-2-0] [mayan-edms.dynamic_search-2-0]
file_filter = mayan/apps/dynamic_search/locale/<lang>/LC_MESSAGES/django.po file_filter = mayan/apps/dynamic_search/locale/<lang>/LC_MESSAGES/django.po
source_lang = en source_lang = en
@@ -97,6 +115,18 @@ source_lang = en
source_file = mayan/apps/events/locale/en/LC_MESSAGES/django.po source_file = mayan/apps/events/locale/en/LC_MESSAGES/django.po
type = PO type = PO
[mayan-edms.file_caching-3-0]
file_filter = mayan/apps/file_caching/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/file_caching/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.file_metadata-3-0]
file_filter = mayan/apps/file_metadata/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/file_metadata/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.linking-2-0] [mayan-edms.linking-2-0]
file_filter = mayan/apps/linking/locale/<lang>/LC_MESSAGES/django.po file_filter = mayan/apps/linking/locale/<lang>/LC_MESSAGES/django.po
source_lang = en source_lang = en
@@ -145,6 +175,12 @@ source_lang = en
source_file = mayan/apps/permissions/locale/en/LC_MESSAGES/django.po source_file = mayan/apps/permissions/locale/en/LC_MESSAGES/django.po
type = PO type = PO
[mayan-edms.platform-2-0]
file_filter = mayan/apps/platform/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/platform/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.rest_api-2-0] [mayan-edms.rest_api-2-0]
file_filter = mayan/apps/rest_api/locale/<lang>/LC_MESSAGES/django.po file_filter = mayan/apps/rest_api/locale/<lang>/LC_MESSAGES/django.po
source_lang = en source_lang = en
@@ -187,8 +223,21 @@ source_lang = en
source_file = mayan/apps/task_manager/locale/en/LC_MESSAGES/django.po source_file = mayan/apps/task_manager/locale/en/LC_MESSAGES/django.po
type = PO type = PO
[mayan-edms.templating-3-0]
file_filter = mayan/apps/templating/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/templating/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.user_management-2-0] [mayan-edms.user_management-2-0]
file_filter = mayan/apps/user_management/locale/<lang>/LC_MESSAGES/django.po file_filter = mayan/apps/user_management/locale/<lang>/LC_MESSAGES/django.po
source_lang = en source_lang = en
source_file = mayan/apps/user_management/locale/en/LC_MESSAGES/django.po source_file = mayan/apps/user_management/locale/en/LC_MESSAGES/django.po
type = PO type = PO
[mayan-edms.web_link-3-0]
file_filter = mayan/apps/web_links/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/web_links/locale/en/LC_MESSAGES/django.po
type = PO
+17 -12
View File
@@ -4,25 +4,30 @@ Contributing to Mayan EDMS
Issues Issues
------ ------
- Before submitting a new issue, check for **open issues** first and join the - The issue system is for reporting problems with the program code. For
discussion. questions use the forum at: https://forum.mayan-edms.com/
- Do not open issues asking for **support or consulting**. For paid support
and consultation visit: https://www.mayan-edms.com/support/
- The issue must be related to the code only, do not open issues for problems
with databases, deployments, webservers, cloud providers, etc.
- Before submitting a new issue, check for **existing issues** first and
join the discussion.
- If your issue is not attended in a while, **be patient**, the core team is - If your issue is not attended in a while, **be patient**, the core team is
small and the codebase big. small and the codebase big.
- Try to reproduce the issue using a **separate, clean installation**, sometimes - Try to reproduce the issue using a **separate, clean installation**,
the issue can be caused by an error in a configuration file and not with the sometimes the issue can be caused by an error in a configuration file and
code itself. not with the code itself.
- **Do not upload** sensitive, private or classified information or files with - **Do not upload** sensitive, private or classified information or files
your issue. If the issue is triggered by a user file, create a dummy file with the with your issue. If the issue is triggered by a user file, create a dummy
same properties that can trigger the issue and upload that file instead. file with the same properties that can trigger the issue and upload that
file instead.
- Add steps that trigger the issue in a **repeatable manner**. - Add steps that trigger the issue in a **repeatable manner**.
- **Screenshots** go a long way in helping understand problems. - **Screenshots** go a long way in helping understand problems.
- The issue must be related to the code only, do not open issues for problems
with deployments, webservers, cloud providers, etc.
- Do not open issues asking for **support or consulting**.
Code Code
---- ----
1. Complete and mail, or scan and email the corresponding Contributor Assignment Agreement: [Mayan EDMS Individual Contributor Assignment Agreement](https://gitlab.com/mayan-edms/mayan-edms/blob/master/docs/chapters/caa_individual.rst) or [Mayan EDMS Entity Contributor Assignment Agreement](https://gitlab.com/mayan-edms/mayan-edms/blob/master/docs/chapters/caa_entity.rst).
1. Fork [the repository](http://gitlab.com/mayan-edms/mayan-edms). 1. Fork [the repository](http://gitlab.com/mayan-edms/mayan-edms).
1. Choose the version for which you want to develop. The code is divided in the 1. Choose the version for which you want to develop. The code is divided in the
following branches: following branches:
@@ -74,5 +79,5 @@ translation. Language teams that don't see activity for a while are deleted.
Code style Code style
---------- ----------
- Refer to the [Development](http://mayan.readthedocs.io/en/latest/topics/development.html) - Refer to the [Development](https://docs.mayan-edms.com/topics/development.html)
chapter for information and examples of the code style. chapter for information and examples of the code style.
+1494 -452
View File
File diff suppressed because it is too large Load Diff
+60
View File
@@ -0,0 +1,60 @@
1.1.1 (2015-05-21)
==================
- Update to Django 1.6.11
- Fix make_dist.sh script
- Add test for issue #163
- Activate tests for the sources app
- Removal of the registration app
- New simplified official project description
- Improvements to the index admin interface
- Removal of installation statistics gathering
- Remove unused folder tag
- Fix usage of ugettext to ugettext_lazy
- Increase size of the lock name field
- New style documentation
1.1 (2015-02-10)
================
- Uses Celery for background tasks
- Removal of the splash screen
- Adds a home view with common function buttons
- Support for sending and receiving documents via email
- Removed custom logging app in favor of django-actvity-stream
- Adds watch folders
- Includes Vagrant file for unified development and testing environments
- Per user locale profile (language and timezone)
- Includes news document workflow app
- Optional and required metadata types
- Improved testings. Automated tests against SQLite, MySQL, PostgreSQL
- Many new REST API endpoints added
- Simplified text messages
- Improved method for custom settings
- Addition of CORS support to the REST API
- Per document language setting instead of per installation language setting
- Metadata validation and parsing support
- Start of code updates towards Python 3 support
- Simplified UI
- Stable PDF previews generation
- More technical documentation
1.0 (2014-08-27)
================
- New home @ https://github.com/mayan-edms/mayan-edms
- Updated to use Django 1.6
- Translation updates
- Custom model properties removal
- Source code improvements
- Removal of included 3rd party modules
- Automatic testing and code coverage check
- Update of required modules and libraries versions
- Database connection leaks fixes
- Support for deletion of detached signatures
- Removal of Fabric based installations script
- Pluggable OCR backends
- OCR improvements
- License change, Mayan EDMS in now licensed under the Apache 2.0 License
- PyPI package, Mayan EDMS in now available on PyPI: https://pypi.python.org/pypi/mayan-edms/
- New REST API
+435
View File
@@ -0,0 +1,435 @@
2.7.3 (2017-09-11)
==================
- Fix task manager queue list view. Thanks to LeVon Smoker for
the report.
- Fix resolved link class URL mangling when the keep_query argument is
used. Thanks to Nick Douma(LordGaav) for the report and diagnostic
information. Fixes source navigation on the document upload wizard.
2.7.2 (2017-09-06)
==================
- Fix new mailer creation view. GitLab issue #431.
Thanks to Robert Schöftner(@robert.schoeftner) for the
report and the solution.
- Consolidate intial document created event and the first
document properties edited events. Preserve the user that
initially creates the document. GitLab issue #433. Thanks
to Jesaja Everling(@jeverling) for the report.
- Sort the list of root cabinets. Thanks to Thomas Plotkowiak
for the request.
- Sort the list of a document's cabinets.
- Display a document's cabinet list in italics. GitLab issue #435.
Thanks to LeVon Smoker for the request.
- Install mock by default to allow easier testing of deployed
instances.
2.7.1 (2017-09-03)
==================
- Support unicode in URL querystring. GitLab issue #423.
Thanks to Gustavo Teixeira (@gsteixei) for the find.
- Import errors during initialization are only ignored
if they are cause by a missing local.py. Thanks to
MacRobb Simpson for the report and solution.
- Make sure the local.py created used unicode for strings
by default. GitLab issue #424. Thanks to Gustavo Teixeira
(@gsteixei) for the find.
2.7 (2017-08-30)
================
- Add workaround for PDF with IndirectObject as the
rotation value. GitHub #261.
- Add ACL list link with icon and use it for the document facet menu.
- Fix mailing app permissions labels.
- Add ACLs link and ACLs permissions to the mailer profile model.
- Improve mailer URL regex.
- Add ordering support to the SourceColumn class. GitLab issue #417.
- Shows the cabinets in the document list. GitLab #417 @corneliusludmann
- Add workaround for pycountry versions without the bibliographical key.
GitHub issue #250.
- Skip UUID migration on Oracle backends. GitHub issue #251.
- Allow changing the output format, DPI of the pdftoppm command, and
the output format of the converter via the CONVERTER_GRAPHICS_BACKEND_CONFIG
setting. GitHub issues #256 #257 GitLab issue #416.
- Add support for workflow triggers.
- Add support for workflow actions.
- Add support for rendering workflows.
- Add support for unbinding sub menus.
- Fix mailing profile test view.
- Disregard the last 3 dots that mark the end of the YAML document.
- Add support for multiple dashboards.
- Add support for removing dashboard widgets.
- Convert document version view to item list view.
- Add support for browsing individual document versions.
- Add support for dropdown menus to the item list view template.
- Add support for preserving the file extension when downloading a document
version. GitLab #415.
- Split OCR app into OCR and parsing.
- Remove Folders app.
- Use the literal 'System' instead of the target name when
the action user in unknown.
- Remove the view to submit all document for OCR.
- When changing document types, don't delete the old metadata that is
also found in the new document type. GitLab issue #421.
- Add tag attach and tag remove events.
- Change the permission needed to attach and remove tags.
- Add HTTP POST workflow state action.
- Add access control grant workflow state action.
- Beta Python 3 support.
2.6.4 (2017-07-26)
==================
- Add missing replacements of reverse to resolve_url.
2.6.3 (2017-07-25)
==================
- Add makefile target to launch a PostgreSQL container.
- Use resolve_url instead of redirect to resolve the post login URL.
- Make the intialsetup and performupgrade management tasks work
with signals to allow customization from 3rd party apps.
- PEP8 cleanups.
- Add tag_ids keyword argument to the Source.handle_upload
model method. GitLab issue #413.
- Add overflow wrapping so wrap long titles in Firefox too.
- Makes Roles searchable. GitLab issue #402.
- Add line numbers to the debug and production loggers.
Add date and time to the production logger.
- Add support for generating setup.py from a template. GitLab
#149 #200.
- Add fade in animation to document images.
2.6.2 (2017-07-19)
==================
- Fix deprecation warning to prepare upgrade to Django 1.11 and 2.0.
- Fix document page zoom.
- Add support to run tests against a MySQL, Postgres or Oracle container.
- Improve tag widget customization by moving the markup to its own template.
- Fix document page widget appearance in the document page list view.
- Make document version order deterministic.
- Allow total page number instrospection of encrypted PDF with non ASCII user properties. GitLab issue #411.
- Oracle database compatibility update in the cabinets app. GitHub #258.
2.6.1 (2017-07-18)
==================
- Fix issue when editing or removing metadata from multiple documents.
2.6 (2017-07-18)
================
- Fix HTML mark up in window title. GitLab #397.
- Add support for emailing documents to a recipient list. GitLab #396.
- Backport metadata widget changes from @Macrobb. GitLab #377.
- Make users and group searchable.
- Add support for logging errors during in production mode.
Add COMMON_PRODUCTION_ERROR_LOG_PATH to control path of log file.
Defaults to mayan/error.log.
- Add support logging request exceptions.
- Add document list item view.
- Sort setting by namespace label and by global name second.
- Sort indexes by label.
- Fix cabinets permission and access control checking.
- The permission to add or remove documents to cabinets now applies to documents too.
- Equalize dashboard widgets heights.
- Switch the order of the DEFAULT_AUTHENTICATION_CLASSES of DRF. GitLab #400.
- Backport document's version list view permission.
- Improve code to unbind menu entries.
- Renamed the document type permission namespace from "Document setup" to "Document types".
- Add support for granting the document type edit, document type delete, and document type view
permissions to individual document type instances.
- Improved tests by testing for accesses.
- Increase the size of the mailing profile label field to 128 characters.
2.5.2 (2017-07-08)
==================
- Improve new document creation signal handling.
Fixes issue with duplicate scanning at upload.
2.5.1 (2017-07-08)
==================
- Update release target due to changes in PyPI.
2.5 (2017-07-07)
================
- Add view to download a document's OCR text. GitLab #215
- Add user configurable mailer. GitLab #286.
- Use Toasts library for screen messages.
- Reduce verbosity of some debug messages.
- Add new lineart transformation.
- Fix SANE source resolution field.
- About and Profile menu reorganization.
- PDF compatibility improvements.
- Office document coversion improvements.
- New metadata type setup UI.
- Duplicated document scan support.
- "Remember me" login support.
- Forgotten password restore via email.
- Document cache disabling.
- Translation improvements.
- Image loading improvements.
- Lower JavaScript memory utilization.
- HTML reponsive layout improvements.
- Make document deletion a background task.
- Unicode handling improvements.
- Python3 compatilibyt improvements.
- New screen messages using Toastr.
2.4 (2017-06-23)
================
- Add Django-mathfilters.
- Improve render of documents with no pages.
- Add SANE scanner document source.
- Added PDF orientation detection. GitLab issue #387.
- Fix repeated permission list API URL. GitLab issue #389.
- Fix role creation API endpoint not returning id. GitLab issue #390.
- Make tags, metadata types and cabinets searchable via the dynamic search API. GitLab issue #344.
- Add support for updating configuration options from environment variables.
- Add purgelocks management command. GitLab issue #221.
- Fix index rebuilding for multi value first levels. GitLab issue #391.
- Truncate views titles via the APPEARANCE_MAXIMUM_TITLE_LENGTH setting. GitLab issue #217.
- Add background task manager app. GitLab issue #132.
- Add link to show a document's OCR errors. GitLab issue #291.
2.3 (2017-06-08)
================
- Allow for bigger indexing expression templates.
- Auto select checkbox when updating metadata values. GitLab issue #371.
- Added support for passing the options allow-other and allow-root to the
FUSE index mirror. GitLab issue #385
- Add support for check for the latest released version of Mayan from the
About menu.
- Support for rebuilding specific indexes. GitLab issue #372.
- Rewrite document indexing code to be faster and use less locking.
- Use a predefined file path for the file lock.
- Catch documents with not document version when displaying their thumbnails.
- Document page navigation fix when using Mayan as a sub URL app.
- Add support for indexing on workflow state changes.
- Add search model list API endpoint.
2.2 (2017-04-26)
================
- Remove the installation app (GitLab #301).
- Add support for document page search
- Remove recent searches feature
- Remove dependency on the django-filetransfer library
- Fix height calculation in resize transformation
- Improve upgrade instructions
- New image caching pipeline
- New drop down menus for the documents, folders and tags app as well as for
the user links.
- New Dashboard view
- Moved licenses to their own module in every app
- Update project to work with Django 1.10.4.
- Tags are alphabetically ordered by label (GitLab #342).
- Stop loading theme fonts from the web (GitLab #343).
- Add support for attaching multiple tags (GitLab #307).
- Integrate the Cabinets app.
2.1.11 (2017-03-14)
===================
- Added a quick rename serializer to the document type API serializer.
- Added per document type, workflow list API view.
- Mayan EDMS was adopted a version 1.1 of the Linux Foundation Developer Certificate of Origin.
- Added the detail url of a permission in the permission serializer.
- Added endpoints for the ACL app API.
- Implemented document workflows transition ACLs. GitLab issue #321.
- Add document comments API endpoints. GitHub issue #249.
- Add support for overriding the Celery class.
- Changed the document upload view in source app to not use the HTTP referer
URL blindly, but instead recompose the URL using known view name. Needed
when integrating Mayan EDMS into other app via using iframes.
- Addes size field to the document version serializer.
- Removed the serializer from the deleted document restore API endpoint.
- Added support for adding or editing document types to smart links via the
API.
2.1.10 (2017-02-13)
===================
- Update Makefile to use twine for releases.
- Add Makefile target to make test releases.
2.1.9 (2017-02-13)
==================
- Update make file to Workaround long standing pypa wheel bug #99
2.1.8 (2017-02-12)
==================
- Fixes in the trashed document API endpoints.
- Improved tags API PUT and PATCH endpoints.
- Bulk document adding when creating and editing tags.
- The version of django-mptt is preserved in case mayan-cabinets is installed.
- Add Django GPG API endpoints for singing keys.
- Add API endpoints for the document states (workflows) app.
- Add API endpoints for the messsage of the day (MOTD) app.
- Add Smart link API endpoints.
- Add writable versions of the Document and Document Type serializers (GitLab issues #348 and #349).
- Close GitLab issue #310 "Metadata's lookup with chinese messages when new document"
2.1.7 (2017-02-01)
==================
- Improved user management API endpoints.
- Improved permissions API endpoints.
- Improvements in the API tests of a few apps.
- Addition Content type list API view to the common app.
- Add API endpoints to the events app.
- Enable the parser and validation fields of the metadata serializer.
2.1.6 (2016-11-23)
==================
- Fix variable name typo in the rotation transformation class.
- Update translations
2.1.5 (2016-11-08)
==================
- Backport resize transformation math operation fix (GitLab #319).
- Update Pillow to 3.1.2 (Security fix).
- Backport zoom transformation performance improvement (GitLab #334).
- Backport trash can navigation link resolution fix (GitLab #331).
- Improve documentation regarding the use of GPG version 1 (GitLab #333).
- Fix ACL create view HTML response type. (GitLab #335).
- Expland staging folder and watch folder explanation.
2.1.4 (2016-10-28)
==================
- Add missing link to the 2.1.3 release notes in the index file.
- Improve TempfileCheckMixin.
- Fix statistics namespace list display view.
- Fix events list display view.
- Update required Django version to 1.8.15.
- Update required python-gnupg version to 0.3.9.
- Improved orphaned temporary files test mixin.
- Re-enable and improve GitLab CI MySQL testing.
- Improved GPG handling.
- New GPG backend system.
- Minor documentation updates.
2.1.3 (2016-06-29)
==================
- Add help message when initialsetup migration phase fails. Relates to GitLab issue #296.
- Start using self.setdout instead of print as per documentation.
- Fix GitLab issue #295, "When editing a user the top bar jumps to the name of the user".
- Normalize handling of temporary file and directory creation.
- Fix GitLab issue #309, "Temp files quickly filling-up my /tmp (1GB tmpfs)".
- Explicitly check for residual temporary files in tests.
- Add missing temporary file cleanup for office documents.
- Fix file descriptor leak in the document signature download test.
2.1.2 (2016-05-20)
==================
- Sort document languages and user profile locale language lists. GitLab issue #292.
- Fix metadata lookup for {{ users }} and {{ group }}. Fixes GitLab #290.
- Add Makefile for common development tasks
2.1.1 (2016-05-17)
==================
- Fix navigation issue that make it impossible to add new sources. GitLab issue #288.
- The Tesseract OCR backend now reports if the requested language file is missing. GitLab issue #289.
- Ensure the automatic default index is created after the default document type.
2.1 (2016-05-14)
================
- Upgrade to use Django 1.8.13. Issue #246.
- Upgrade requirements.
- Remove remaining references to Django's User model. GitLab issue #225
- Rename 'Content' search box to 'OCR'.
- Remove included login required middleware using django-stronghold instead (http://mikegrouchy.com/django-stronghold/).
- Improve generation of success and error messages for class based views.
- Remove ownership concept from folders.
- Replace strip_spaces middleware with the spaceless template tag. GitLab issue #255
- Deselect the update checkbox for optional metadata by default.
- Silence all Django 1.8 model import warnings.
- Implement per document type document creation permission. Closes GitLab issue #232.
- Add icons to the document face menu links.
- Increase icon to text spacing to 3px.
- Make document type delete time period optional.
- Fixed date locale handling in document properties, checkout and user detail views.
- Add new permission: checkout details view.
- Add HTML5 upload widget. Issue #162.
- Add Message of the Day app. Issue #222
- Update Document model's uuid field to use Django's native UUIDField class.
- Add new split view index navigation
- Newly uploaded documents appear in the Recent document list of the user.
- Document indexes now have ACL support.
- Remove the document index setup permission.
- Status messages now display the object class on which they operate not just the word "Object".
- More tests added.
- Handle unicode filenames in staging folders.
- Add staging file deletion permission.
- New document_signature_view permission.
- Add support for signing documents.
- Instead of multiple keyservers only one keyserver is now supported.
- Replace document type selection widget with an opened selection list.
- Add mailing documentation chapter.
- Add roadmap documentation chapter.
- API updates.
2.0.2 (2016-02-09)
==================
- Install testing dependencies when installing development dependencies.
- Fix GitLab issue #250 "Empty optional lookup metadata trigger validation error".
- Fix OCR API test.
- Move metadata form value validation to .clean() method.
- Only extract validation error messages from ValidationError exception instances.
- Don't store empty metadata value if the update checkbox is not checked.
- Add 2 second delay to document version tests to workaround MySQL limitation.
- Strip HTML tags from the browser title.
- Remove Docker and Docker Compose files.
2.0.1 (2016-01-22)
==================
- Fix GitLab issue #243, "System allows a user to skip entering values for a required metadata field while uploading a new document"
- Fix GitLab issue #245, "Add multiple metadata not possible"
- Updated Vagrantfile to provision a production box too.
2.0 (2015-12-04)
================
- New source homepage: https://gitlab.com/mayan-edms/mayan-edms
- Update to Django 1.7
- New Bootstrap Frontend UI
- Easier theming and rebranding
- Improved page navigation interface
- Menu reorganization
- Removal of famfam icon set
- Improved document preview generation
- Document submission for OCR changed to POST
- New YAML based settings system
- Removal of auto admin creation as separate app
- Removal of dependencies
- ACL system refactor
- Object access control inheritance
- Removal of anonymous user support
- Metadata validators refactor
- Trash can support
- Retention policies
- Support for sharing indexes as FUSE filesystems
- Clickable preview images titles
- Removal of eval
- Smarter OCR, per page parsing or OCR fallback
- Improve failure tolerance (not all Operational Errors are critical now)
- RGB tags
- Default document type and default document source
- Link unbinding
- Statistics refactor
- Apps merge
- New signals
- Test improvements
- Indexes recalculation after document creation too
- Upgrade command
- OCR data moved to ocr app from documents app
- New internal document creation workflow return a document stub
- Auto console debug logging during development and info during production
- New class based and menu based navigation system
- New class based transformations
- Usage of Font Awesome icons set
- Management command to remove obsolete permissions: `purgepermissions`
- Normalization of 'title' and 'name' fields to 'label'
- Improved API, now at version 1
- Invert page title/project name order in browser title
- Django's class based views pagination
- Reduction of text strings
- Removal of the CombinedSource class
- Removal of default class ACLs
- Removal of the ImageMagick and GraphicsMagick converter backends
- Remove support for applying roles to new users automatically
- Removal of the DOCUMENT_RESTRICTIONS_OVERRIDE permission
- Removed the page_label field
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright 2011-2015 Roberto Rosario Copyright 2011 Roberto Rosario
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
+5 -2
View File
@@ -1,3 +1,6 @@
include README.md LICENSE HISTORY.rst mayan/LICENSE include README.md LICENSE HISTORY.rst mayan/LICENSE
recursive-include mayan/apps *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 *.gif *.eot *.svg *.doc *.pdf *.tiff *.sig *.asc *.gpg *.zip recursive-include mayan/apps *.txt *.html *.css *.ico *.png *.jpg *.js *.mo *.ttf *.woff *.woff2 *.gif *.eot *.svg *.doc *.pdf *.tiff *.sig *.asc *.gpg *.zip *.tar *.gz *.bz2 *.tmpl
global-exclude mayan/settings/local.py mayan/settings/travis/* mayan/media/* global-exclude mayan/settings/local.py *.po
prune mayan/apps/*/static/*/node_modules/*
prune mayan/settings/travis/*
prune mayan/media/*
+168 -150
View File
@@ -1,96 +1,61 @@
.PHONY: clean-pyc clean-build #!make
include config.env
.PHONY: clean clean-pyc clean-build test
help: help:
@echo @echo "Usage: make <target>\n"
@echo "clean-build - Remove build artifacts." @awk 'BEGIN {FS = ":.*##"} /^[0-9a-zA-Z_-]+:.*?## / { printf " * %-40s -%s\n", $$1, $$2 }' $(MAKEFILE_LIST)|sort
@echo "clean-pyc - Remove Python artifacts."
@echo "clean - Remove Python and build artifacts."
@echo "generate_setup - Create and updated setup.py"
@echo "test-all - Run all tests."
@echo "test MODULE=<python module name> - Run tests for a single app, module or test class."
@echo "test-with-postgres-all - Run all tests against a Postgres database container."
@echo "test-postgres MODULE=<python module name> - Run tests for a single app, module or test class against a Postgres database container."
@echo "test-with-mysql-all - Run all tests against a MySQL database container."
@echo "test-mysql MODULE=<python module name> - Run tests for a single app, module or test class against a MySQL database container."
@echo "test-with-oracle-all - Run all tests against a Oracle database container."
@echo "test-oracle MODULE=<python module name> - Run tests for a single app, module or test class against a Oracle database container."
@echo "docs_serve - Run the livehtml documentation generator."
@echo "translations_make - Refresh all translation files."
@echo "translations_compile - Compile all translation files."
@echo "translations_push - Upload all translation files to Transifex."
@echo "translations_pull - Download all translation files from Transifex."
@echo "requirements_dev - Install development requirements."
@echo "requirements_docs - Install documentation requirements."
@echo "requirements_testing - Install testing requirements."
@echo "sdist - Build the source distribution package."
@echo "wheel - Build the wheel distribution package."
@echo "release - Package (sdist and wheel) and upload a release."
@echo "test_release - Package (sdist and wheel) and upload to the PyPI test server."
@echo "release_test_via_docker_ubuntu - Package (sdist and wheel) and upload to the PyPI test server using an Ubuntu Docker builder."
@echo "release_test_via_docker_alpine - Package (sdist and wheel) and upload to the PyPI test server using an Alpine Docker builder."
@echo "release_via_docker_ubuntu - Package (sdist and wheel) and upload to PyPI using an Ubuntu Docker builder."
@echo "release_via_docker_alpine - Package (sdist and wheel) and upload to PyPI using an Alpine Docker builder."
@echo "test_sdist_via_docker_ubuntu - Make an sdist packange and test it using an Ubuntu Docker container."
@echo "test_wheel_via_docker_ubuntu - Make a wheel package and test it using an Ubuntu Docker container."
@echo "runserver - Run the development server."
@echo "runserver_plus - Run the Django extension's development server."
@echo "shell_plus - Run the shell_plus command."
@echo "docker_services_on - Launch and initialize production-like services using Docker (Postgres and Redis)."
@echo "docker_services_off - Stop and delete the Docker production-like services."
@echo "docker_services_frontend - Launch a front end instance that uses the production-like services."
@echo "docker_services_worker - Launch a worker instance that uses the production-like services."
@echo "docker_service_mysql_on - Launch and initialize a MySQL Docker container."
@echo "docker_service_mysql_off - Stop and delete the MySQL Docker container."
@echo "docker_service_postgres_on - Launch and initialize a PostgreSQL Docker container."
@echo "docker_service_postgres_off - Stop and delete the PostgreSQL Docker container."
@echo "safety_check - Run a package safety check."
# Cleaning # Cleaning
clean: ## Remove Python and build artifacts.
clean: clean-build clean-pyc clean: clean-build clean-pyc
clean-build: clean-build: ## Remove build artifacts.
rm -fr build/ rm -fr build/
rm -fr dist/ rm -fr dist/
rm -fr *.egg-info rm -fr *.egg-info
clean-pyc: clean-pyc: ## Remove Python artifacts.
find . -name '*.pyc' -exec rm -f {} + find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} + find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} + find . -name '*~' -exec rm -f {} +
find . -name '__pycache__' -exec rm -R -f {} +
# Testing # Testing
test: test: clean-pyc
./manage.py test $(MODULE) --settings=mayan.settings.testing --nomigrations test: ## MODULE=<python module name> - Run tests for a single app, module or test class.
./manage.py test $(MODULE) --settings=mayan.settings.testing.development --nomigrations $(ARGUMENTS)
test-all: test-debug: clean-pyc
./manage.py test --mayan-apps --settings=mayan.settings.testing --nomigrations test-debug: ## MODULE=<python module name> - Run tests for a single app, module or test class, in debug mode.
./manage.py test $(MODULE) --settings=mayan.settings.testing.development --nomigrations --debug-mode $(ARGUMENTS)
test-all: ## Run all tests.
test-all: clean-pyc
./manage.py test --mayan-apps --settings=mayan.settings.testing.development --nomigrations $(ARGUMENTS)
test-all-debug: ## Run all tests in debug mode.
test-all-debug: clean-pyc
./manage.py test --mayan-apps --settings=mayan.settings.testing.development --nomigrations --debug-mode $(ARGUMENTS)
test-launch-postgres: test-launch-postgres:
@docker rm -f test-postgres || true @docker rm -f test-postgres || true
@docker volume rm test-postgres || true @docker volume rm test-postgres || true
docker run -d --name test-postgres -p 5432:5432 -v test-postgres:/var/lib/postgresql/data healthcheck/postgres docker run -d --name test-postgres -p 5432:5432 -v test-postgres:/var/lib/postgresql/data $(DOCKER_POSTGRES_IMAGE_VERSION)
sudo apt-get install -qq libpq-dev sudo apt-get install -q libpq-dev
pip install psycopg2 pip install psycopg2==$(PYTHON_PSYCOPG2_VERSION)
while ! docker inspect --format='{{json .State.Health}}' test-postgres|grep 'Status":"healthy"'; do sleep 1; done while ! nc -z 127.0.0.1 5432; do sleep 1; done
test-with-postgres: ## MODULE=<python module name> - Run tests for a single app, module or test class against a Postgres database container.
test-with-postgres: test-launch-postgres test-with-postgres: test-launch-postgres
./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_postgres --nomigrations ./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_postgres --nomigrations
@docker rm -f test-postgres || true @docker rm -f test-postgres || true
@docker volume rm test-postgres || true @docker volume rm test-postgres || true
test-with-postgres-all: ## Run all tests against a Postgres database container.
test-with-postgres-all: test-launch-postgres test-with-postgres-all: test-launch-postgres
./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_postgres --nomigrations ./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_postgres --nomigrations
@docker rm -f test-postgres || true @docker rm -f test-postgres || true
@@ -99,17 +64,20 @@ test-with-postgres-all: test-launch-postgres
test-launch-mysql: test-launch-mysql:
@docker rm -f test-mysql || true @docker rm -f test-mysql || true
@docker volume rm test-mysql || true @docker volume rm test-mysql || true
docker run -d --name test-mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan -v test-mysql:/var/lib/mysql healthcheck/mysql docker run -d --name test-mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan -v test-mysql:/var/lib/mysql $(DOCKER_MYSQL_IMAGE_VERSION)
sudo apt-get install -qq libmysqlclient-dev mysql-client sudo apt-get install -q libmysqlclient-dev mysql-client
pip install mysql-python pip install mysqlclient==$(PYTHON_MYSQL_VERSION)
while ! docker inspect --format='{{json .State.Health}}' test-mysql|grep 'Status":"healthy"'; do sleep 1; done while ! nc -z 127.0.0.1 3306; do sleep 1; done
mysql -h 127.0.0.1 -P 3306 -uroot -e "set global character_set_server=utf8mb4;" mysql -h 127.0.0.1 -P 3306 -uroot -e "set global character_set_server=utf8mb4;"
test-with-mysql: ## MODULE=<python module name> - Run tests for a single app, module or test class against a MySQL database container.
test-with-mysql: test-launch-mysql test-with-mysql: test-launch-mysql
./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_mysql --nomigrations ./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_mysql --nomigrations
@docker rm -f test-mysql || true @docker rm -f test-mysql || true
@docker volume rm test-mysql || true @docker volume rm test-mysql || true
test-with-mysql-all: ## Run all tests against a MySQL database container.
test-with-mysql-all: test-launch-mysql test-with-mysql-all: test-launch-mysql
./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_mysql --nomigrations ./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_mysql --nomigrations
@docker rm -f test-mysql || true @docker rm -f test-mysql || true
@@ -118,17 +86,19 @@ test-with-mysql-all: test-launch-mysql
test-launch-oracle: test-launch-oracle:
@docker rm -f test-oracle || true @docker rm -f test-oracle || true
@docker volume rm test-oracle || true @docker volume rm test-oracle || true
docker run -d --name test-oracle -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true -v test-oracle:/u01/app/oracle wnameless/oracle-xe-11g docker run -d --name test-oracle -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true -v test-oracle:/u01/app/oracle $(DOCKER_ORACLE_IMAGE_VERSION)
# https://gist.github.com/kimus/10012910 # https://gist.github.com/kimus/10012910
pip install cx_Oracle pip install cx_Oracle==$(PYTHON_ORACLE_VERSION)
while ! nc -z 127.0.0.1 49161; do sleep 1; done while ! nc -z 127.0.0.1 49161; do sleep 1; done
sleep 10 sleep 10
test-with-oracle: ## MODULE=<python module name> - Run tests for a single app, module or test class against a Oracle database container.
test-with-oracle: test-launch-oracle test-with-oracle: test-launch-oracle
./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_oracle --nomigrations ./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_oracle --nomigrations
@docker rm -f test-oracle || true @docker rm -f test-oracle || true
@docker volume rm test-oracle || true @docker volume rm test-oracle || true
test-with-oracle-all: ## Run all tests against a Oracle database container.
test-with-oracle-all: test-launch-oracle test-with-oracle-all: test-launch-oracle
./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_oracle --nomigrations ./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_oracle --nomigrations
@docker rm -f test-oracle || true @docker rm -f test-oracle || true
@@ -136,59 +106,59 @@ test-with-oracle-all: test-launch-oracle
# Documentation # Documentation
docs_serve: docs-serve: ## Run the livehtml documentation generator.
cd docs;make livehtml cd docs;make livehtml
docs-spellcheck: ## Spellcheck the documentation.
sphinx-build -b spelling -d docs/_build/ docs docs/_build/spelling
# Translations # Translations
translations_make: translations-make: ## Refresh all translation files.
contrib/scripts/process_messages.py -m contrib/scripts/process_messages.py -m
translations_compile: translations-compile: ## Compile all translation files.
contrib/scripts/process_messages.py -c contrib/scripts/process_messages.py -c
translations_push: translations-push: ## Upload all translation files to Transifex.
tx push -s tx push -s
translations_pull: translations-pull: ## Download all translation files from Transifex.
tx pull -f tx pull -f
translations-all: ## Execute all translations targets.
# Requirements translations-all: translations-make translations-push translations-pull translations-compile
requirements_dev:
pip install -r requirements/development.txt
requirements_docs:
pip install -r requirements/documentation.txt
requirements_testing:
pip install -r requirements/testing.txt
generate_setup:
@./generate_setup.py
@echo "Complete."
# Releases # Releases
increase-version: ## Increase the version number of the entire project's files.
@VERSION=`grep "__version__ =" mayan/__init__.py| cut -d\' -f 2|./increase_version.py - $(PART)`; \
BUILD=`echo $$VERSION|awk '{split($$VERSION,a,"."); printf("0x%02d%02d%02d\n", a[1],a[2], a[3])}'`; \
sed -i -e "s/__build__ = 0x[0-9]*/__build__ = $${BUILD}/g" mayan/__init__.py; \
sed -i -e "s/__version__ = '[0-9\.]*'/__version__ = '$${VERSION}'/g" mayan/__init__.py; \
echo $$VERSION > docker/rootfs/version
make generate-setup
test_release: clean wheel python-test-release: ## Package (sdist and wheel) and upload to the PyPI test server.
python-test-release: clean wheel
twine upload dist/* -r testpypi twine upload dist/* -r testpypi
@echo "Test with: pip install -i https://testpypi.python.org/pypi mayan-edms" @echo "Test with: pip install -i https://testpypi.python.org/pypi mayan-edms"
release: clean wheel python-release: ## Package (sdist and wheel) and upload a release.
python-release: clean python-wheel
twine upload dist/* -r pypi twine upload dist/* -r pypi
sdist: clean python-sdist: ## Build the source distribution package.
python-sdist: clean
python setup.py sdist python setup.py sdist
ls -l dist ls -l dist
wheel: clean sdist python-wheel: ## Build the wheel distribution package.
python-wheel: clean python-sdist
pip wheel --no-index --no-deps --wheel-dir dist dist/*.tar.gz pip wheel --no-index --no-deps --wheel-dir dist dist/*.tar.gz
ls -l dist ls -l dist
release_test_via_docker_ubuntu: python-release-test-via-docker-ubuntu: ## Package (sdist and wheel) and upload to the PyPI test server using an Ubuntu Docker builder.
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\ docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \ echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \ locale-gen en_US.UTF-8 && \
@@ -199,48 +169,23 @@ release_test_via_docker_ubuntu:
apt-get install make python-pip -y && \ apt-get install make python-pip -y && \
pip install -r requirements/build.txt && \ pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \ cp -r /host_home/.pypirc ~/.pypirc && \
make test_release" make test-release"
release_via_docker_ubuntu: python-release-via-docker-ubuntu: ## Package (sdist and wheel) and upload to PyPI using an Ubuntu Docker builder.
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\ docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\
apt-get update && \
apt-get -y install locales && \
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \ echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \ locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8 && \ update-locale LANG=en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8 && \ export LC_ALL=en_US.UTF-8 && \
cp -r /host_source/* . && \ cp -r /host_source/* . && \
apt-get update && \
apt-get install make python-pip -y && \ apt-get install make python-pip -y && \
pip install -r requirements/build.txt && \ pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \ cp -r /host_home/.pypirc ~/.pypirc && \
make release" make release"
release_test_via_docker_alpine: test-sdist-via-docker-ubuntu: ## Make an sdist package and test it using an Ubuntu Docker container.
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -c "\
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8 && \
cp -r /host_source/* . && \
apk update && \
apk add python2 py2-pip make && \
pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \
make test_release"
release_via_docker_alpine:
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -c "\
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8 && \
cp -r /host_source/* . && \
apk update && \
apk add python2 py2-pip make && \
pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \
make release"
test_sdist_via_docker_ubuntu:
docker run --rm --name mayan_sdist_test -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\ docker run --rm --name mayan_sdist_test -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\
cp -r /host_source/* . && \ cp -r /host_source/* . && \
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \ echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
@@ -250,10 +195,10 @@ test_sdist_via_docker_ubuntu:
apt-get update && \ apt-get update && \
apt-get install make python-pip libreoffice tesseract-ocr tesseract-ocr-deu poppler-utils -y && \ apt-get install make python-pip libreoffice tesseract-ocr tesseract-ocr-deu poppler-utils -y && \
pip install -r requirements/development.txt && \ pip install -r requirements/development.txt && \
make sdist_test_suit \ make sdist-test-suit \
" "
test_wheel_via_docker_ubuntu: test-wheel-via-docker-ubuntu: ## Make a wheel package and test it using an Ubuntu Docker container.
docker run --rm --name mayan_wheel_test -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\ docker run --rm --name mayan_wheel_test -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\
cp -r /host_source/* . && \ cp -r /host_source/* . && \
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \ echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
@@ -263,10 +208,10 @@ test_wheel_via_docker_ubuntu:
apt-get update && \ apt-get update && \
apt-get install make python-pip libreoffice tesseract-ocr tesseract-ocr-deu poppler-utils -y && \ apt-get install make python-pip libreoffice tesseract-ocr tesseract-ocr-deu poppler-utils -y && \
pip install -r requirements/development.txt && \ pip install -r requirements/development.txt && \
make wheel_test_suit \ make wheel-test-suit \
" "
sdist_test_suit: sdist python-sdist-test-suit: sdist
rm -f -R _virtualenv rm -f -R _virtualenv
virtualenv _virtualenv virtualenv _virtualenv
sh -c '\ sh -c '\
@@ -277,7 +222,7 @@ sdist_test_suit: sdist
_virtualenv/bin/mayan-edms.py test --mayan-apps \ _virtualenv/bin/mayan-edms.py test --mayan-apps \
' '
wheel_test_suit: wheel python-wheel-test-suit: wheel
rm -f -R _virtualenv rm -f -R _virtualenv
virtualenv _virtualenv virtualenv _virtualenv
sh -c '\ sh -c '\
@@ -288,53 +233,126 @@ wheel_test_suit: wheel
_virtualenv/bin/mayan-edms.py test --mayan-apps \ _virtualenv/bin/mayan-edms.py test --mayan-apps \
' '
generate-setup: ## Create and update the setup.py file.
generate-setup: generate-requirements
@./generate_setup.py
@echo "Complete."
generate-requirements: ## Generate all requirements files from the project depedency declarations.
@./manage.py generaterequirements build > requirements/build.txt
@./manage.py generaterequirements development > requirements/development.txt
@./manage.py generaterequirements documentation > requirements/documentation.txt
@./manage.py generaterequirements production --only=pathlib2 >> requirements/documentation.txt
@./manage.py generaterequirements testing > requirements/testing-base.txt
@./manage.py generaterequirements production --exclude=django > requirements/base.txt
@./manage.py generaterequirements production --only=django > requirements/common.txt
gitlab-release-documentation: ## Trigger the documentation build and publication using GitLab CI
gitlab-release-documentation:
git push
git push --tags
git push origin :releases/documentation || true
git push origin HEAD:releases/documentation
gitlab-release-docker: ## Trigger the Docker image build and publication using GitLab CI
gitlab-release-docker:
git push
git push --tags
git push origin :releases/docker || true
git push origin HEAD:releases/docker
gitlab-release-python: ## Trigger the Python package build and publication using GitLab CI
gitlab-release-python:
git push
git push --tags
git push origin :releases/python || true
git push origin HEAD:releases/python
gitlab-release-all: ## Trigger the Python package, Docker image, and documentation build and publication using GitLab CI
gitlab-release-all:
git push
git push --tags
git push origin :releases/all || true
git push origin HEAD:releases/all
# Dev server # Dev server
runserver: runserver: ## Run the development server.
./manage.py runserver --settings=mayan.settings.development ./manage.py runserver --nothreading --settings=mayan.settings.development $(ADDRPORT)
runserver_plus: runserver_plus: ## Run the Django extension's development server.
./manage.py runserver_plus --settings=mayan.settings.development ./manage.py runserver_plus --nothreading --settings=mayan.settings.development $(ADDRPORT)
shell_plus: shell_plus: ## Run the shell_plus command.
./manage.py shell_plus --settings=mayan.settings.development ./manage.py shell_plus --settings=mayan.settings.development
docker_services_on: test-with-docker-services-on: ## Launch and initialize production-like services using Docker (Postgres and Redis).
docker run -d --name redis -p 6379:6379 redis docker run -d --name redis -p 6379:6379 $(DOCKER_REDIS_IMAGE_VERSION)
docker run -d --name postgres -p 5432:5432 postgres docker run -d --name postgres -p 5432:5432 $(DOCKER_POSTGRES_IMAGE_VERSION)
while ! nc -z 127.0.0.1 6379; do sleep 1; done while ! nc -z 127.0.0.1 6379; do sleep 1; done
while ! nc -z 127.0.0.1 5432; do sleep 1; done while ! nc -z 127.0.0.1 5432; do sleep 1; done
sleep 2 sleep 4
pip install psycopg2==$(PYTHON_PSYCOPG2_VERSION) redis==$(PYTHON_REDIS_VERSION)
./manage.py initialsetup --settings=mayan.settings.staging.docker ./manage.py initialsetup --settings=mayan.settings.staging.docker
docker_services_off: test-with-docker-services-off: ## Stop and delete the Docker production-like services.
docker stop postgres redis docker stop postgres redis
docker rm postgres redis docker rm postgres redis
docker_services_frontend: test-with-docker-frontend: ## Launch a front end instance that uses the production-like services.
./manage.py runserver --settings=mayan.settings.staging.docker ./manage.py runserver --settings=mayan.settings.staging.docker
docker_services_worker: test-with-docker-worker: ## Launch a worker instance that uses the production-like services.
./manage.py celery worker --settings=mayan.settings.staging.docker -B -l INFO -O fair DJANGO_SETTINGS_MODULE=mayan.settings.staging.docker ./manage.py celery worker -A mayan -B -l INFO -O fair
docker_service_mysql_on: docker-mysql-on: ## Launch and initialize a MySQL Docker container.
docker run -d --name mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan_edms mysql docker run -d --name mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan_edms $(DOCKER_MYSQL_IMAGE_VERSION)
while ! nc -z 127.0.0.1 3306; do sleep 1; done while ! nc -z 127.0.0.1 3306; do sleep 1; done
docker_service_mysql_off: docker-mysql-off: ## Stop and delete the MySQL Docker container.
docker stop mysql docker stop mysql
docker rm mysql docker rm mysql
docker_service_postgres_on: docker-postgres-on: ## Launch and initialize a PostgreSQL Docker container.
docker run -d --name postgres -p 5432:5432 postgres docker run -d --name postgres -p 5432:5432 $(DOCKER_POSTGRES_IMAGE_VERSION)
while ! nc -z 127.0.0.1 5432; do sleep 1; done while ! nc -z 127.0.0.1 5432; do sleep 1; done
docker_service_postgres_off: docker-postgres-off: ## Stop and delete the PostgreSQL Docker container.
docker stop postgres docker stop postgres
docker rm postgres docker rm postgres
# Security # Security
safety_check: safety-check: ## Run a package safety check.
safety check safety check
# Other
find-gitignores: ## Find stray .gitignore files.
@export FIND_GITIGNORES=`find -name '.gitignore'| wc -l`; \
if [ $${FIND_GITIGNORES} -gt 1 ] ;then echo "More than one .gitignore found."; fi
python-build:
docker rm -f mayan-edms-build || true && \
docker run --rm --name mayan-edms-build -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source python:2-slim sh -c "\
rm /host_source/dist -R || true && \
mkdir /host_source/dist || true && \
export LC_ALL=C.UTF-8 && \
cp -r /host_source/* . && \
apt-get update && \
apt-get install -y make && \
pip install -r requirements/build.txt && \
make wheel && \
cp dist/* /host_source/dist/"
check-readme: ## Checks validity of the README.rst file for PyPI publication.
python setup.py check -r -s
check-missing-migrations: ## Make sure all models have proper migrations.
./manage.py makemigrations --dry-run --noinput --check
setup-dev-environment: ## Bootstrap a virtualenv by install all dependencies to start developing.
pip install -r requirements.txt -r requirements/development.txt -r requirements/testing-base.txt -r requirements/documentation.txt -r requirements/build.txt
-include docker/Makefile
+23 -12
View File
@@ -1,8 +1,10 @@
[![Donation](https://img.shields.io/badge/donation-PayPal-brightgreen)](https://paypal.me/MayanEDMS)
[![pypi][pypi]][pypi-url] [![pypi][pypi]][pypi-url]
[![builds][builds]][builds-url]
[![coverage][cover]][cover-url]
![python][python] ![python][python]
![license][license] ![license][license]
[![Docker pulls](https://img.shields.io/docker/pulls/mayanedms/mayanedms.svg?maxAge=3600)](https://hub.docker.com/r/mayanedms/mayanedms/)
[![Docker Stars](https://img.shields.io/docker/stars/mayanedms/mayanedms.svg?maxAge=3600)](https://hub.docker.com/r/mayanedms/mayanedms/)
[pypi]: http://img.shields.io/pypi/v/mayan-edms.svg [pypi]: http://img.shields.io/pypi/v/mayan-edms.svg
[pypi-url]: http://badge.fury.io/py/mayan-edms [pypi-url]: http://badge.fury.io/py/mayan-edms
@@ -35,20 +37,31 @@
<p> <p>
<p align="center"> <p align="center">
<img src="https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif"> <img width="400" src="https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif">
</p> </p>
</div> </div>
<h2 align="center">Book</h2>
The final version of the book "Exploring Mayan EDMS" available now!
<p align="center">
<a href="https://sellfy.com/p/um2fkx/">
<img width="400" src="https://d12swbtw719y4s.cloudfront.net/images/v6RpxW40/aP0qKLjkPiAuXZhYuB45/wDAULAzFyx.jpeg?w=548">
</a>
</p>
The link is https://sellfy.com/p/um2fkx/
<h2 align="center">Installation</h2> <h2 align="center">Installation</h2>
The easiest way to use Mayan EDMS is by using the official The easiest way to use Mayan EDMS is by using the official
[Docker](https://www.docker.com/) image. Make sure Docker is properly installed [Docker](https://www.docker.com/) image. Make sure Docker is properly installed
and working before attempting to install Mayan EDMS. and working before attempting to install Mayan EDMS.
For the complete set of installation, configuration, upgrade, and backup For the complete set of installation instructions visit the Mayan EDMS documentation
instructions visit the Mayan EDMS Docker Hub page at: at: https://docs.mayan-edms.com/topics/installation.html
https://hub.docker.com/r/mayanedms/mayanedms/
<h2 align="center">Hardware requirements</h2> <h2 align="center">Hardware requirements</h2>
@@ -59,14 +72,12 @@ https://hub.docker.com/r/mayanedms/mayanedms/
- [Homepage](http://www.mayan-edms.com) - [Homepage](http://www.mayan-edms.com)
- [Videos](https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw) - [Documentation](https://docs.mayan-edms.com)
- [Documentation](http://mayan.readthedocs.io/en/stable/) - [Wiki](https://wiki.mayan-edms.com/)
- [Paid support](http://www.mayan-edms.com/providers/)
- [Roadmap](https://gitlab.com/mayan-edms/mayan-edms/wikis/roadmap)
- [Contributing](https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md) - [Contributing](https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md)
- [Community forum](https://groups.google.com/forum/#!forum/mayan-edms) - [Forum](https://forum.mayan-edms.com/)
- [Community forum archive](http://mayan-edms.1003.x6.nabble.com/)
- [Source code, issues, bugs](https://gitlab.com/mayan-edms/mayan-edms) - [Source code, issues, bugs](https://gitlab.com/mayan-edms/mayan-edms)
- [Plug-ins, other related projects](https://gitlab.com/mayan-edms/) - [Plug-ins, other related projects](https://gitlab.com/mayan-edms/)
- [Translations](https://www.transifex.com/rosarior/mayan-edms/) - [Translations](https://www.transifex.com/rosarior/mayan-edms/)
- [Videos](https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw)
+25 -12
View File
@@ -1,4 +1,4 @@
|pypi| |builds| |coverage| |python| |license| |donation| |pypi| |coverage| |python| |license| |docker_pulls| |docker_stars| |docker_layers|
.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png .. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
@@ -14,18 +14,26 @@ are its workflow system, role based access control, and REST API.
.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif .. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif
:align: center :align: center
:width: 300
The easiest way to use Mayan EDMS is by using the official Docker_ image. The easiest way to use Mayan EDMS is by using the official Docker_ image.
Make sure Docker is properly installed and working before attempting to install Make sure Docker is properly installed and working before attempting to install
Mayan EDMS. Mayan EDMS.
For the complete set of installation, configuration, upgrade, and backup For the complete set of installation instructions visit the Mayan EDMS documentation
instructions visit the Mayan EDMS Docker Hub page at: at: https://docs.mayan-edms.com/topics/installation.html
https://hub.docker.com/r/mayanedms/mayanedms/
.. _Docker: https://www.docker.com/ .. _Docker: https://www.docker.com/
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/
Click the image or visit: https://sellfy.com/p/um2fkx/
Hardware requirements Hardware requirements
- 2 Gigabytes of RAM (1 Gigabyte if OCR is turned off). - 2 Gigabytes of RAM (1 Gigabyte if OCR is turned off).
@@ -35,19 +43,18 @@ Hardware requirements
Important links Important links
- `Homepage <http://www.mayan-edms.com>`__ - `Homepage <http://www.mayan-edms.com>`__
- `Videos <https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw>`__ - `Documentation <https://docs.mayan-edms.com>`__
- `Documentation <http://mayan.readthedocs.io/en/stable/>`__ - `Wiki <https://wiki.mayan-edms.com>`__
- `Paid support <http://www.mayan-edms.com/providers/>`__
- `Roadmap <https://gitlab.com/mayan-edms/mayan-edms/wikis/roadmap>`__
- `Contributing <https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md>`__ - `Contributing <https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md>`__
- `Community forum <https://groups.google.com/forum/#!forum/mayan-edms>`__ - `Forum <https://forum.mayan-edms.com>`__
- `Community forum archive <http://mayan-edms.1003.x6.nabble.com/>`__
- `Source code, issues, bugs <https://gitlab.com/mayan-edms/mayan-edms>`__ - `Source code, issues, bugs <https://gitlab.com/mayan-edms/mayan-edms>`__
- `Plug-ins, other related projects <https://gitlab.com/mayan-edms/>`__ - `Plug-ins, other related projects <https://gitlab.com/mayan-edms/>`__
- `Translations <https://www.transifex.com/rosarior/mayan-edms/>`__ - `Translations <https://www.transifex.com/rosarior/mayan-edms/>`__
- `Videos <https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw>`__
.. |donation| image:: https://img.shields.io/badge/donation-PayPal-brightgreen
:target: https://paypal.me/MayanEDMS
.. |pypi| image:: http://img.shields.io/pypi/v/mayan-edms.svg .. |pypi| image:: http://img.shields.io/pypi/v/mayan-edms.svg
:target: http://badge.fury.io/py/mayan-edms :target: http://badge.fury.io/py/mayan-edms
.. |builds| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg .. |builds| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
@@ -56,3 +63,9 @@ Important links
:target: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master :target: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master
.. |python| image:: https://img.shields.io/pypi/pyversions/mayan-edms.svg .. |python| image:: https://img.shields.io/pypi/pyversions/mayan-edms.svg
.. |license| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat .. |license| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
.. |docker_pulls| image:: https://img.shields.io/docker/pulls/mayanedms/mayanedms.svg?maxAge=3600
:target: https://hub.docker.com/r/mayanedms/mayanedms/
.. |docker_stars| image:: https://img.shields.io/docker/stars/mayanedms/mayanedms.svg?maxAge=3600
:target: https://hub.docker.com/r/mayanedms/mayanedms/
.. |docker_layers| image:: https://images.microbadger.com/badges/image/mayanedms/mayanedms.svg
:target: https://microbadger.com/images/mayanedms/mayanedms
+14
View File
@@ -0,0 +1,14 @@
from __future__ import unicode_literals
__title__ = 'Mayan EDMS'
__version__ = '{{ version }}'
__build__ = {{ build }}
__build_string__ = '{{ build_string }}'
__django_version__ = '1.11'
__author__ = 'Roberto Rosario'
__author_email__ = 'roberto.rosario@mayan-edms.com'
__description__ = 'Free Open Source Electronic Document Management System'
__license__ = 'Apache 2.0'
__copyright_short__ = '2011 Roberto Rosario'
__copyright__ = '{} {}'.format('Copyright', __copyright_short__)
__website__ = 'https://www.mayan-edms.com'
+16
View File
@@ -0,0 +1,16 @@
DOCKER_MYSQL_IMAGE_VERSION=mysql:8.0
DOCKER_ORACLE_IMAGE_VERSION=wnameless/oracle-xe-11g
DOCKER_POSTGRES_IMAGE_VERSION=postgres:9.6-alpine
DOCKER_RABBITMQ_IMAGE_VERSION=rabbitmq:3-alpine
DOCKER_REDIS_IMAGE_VERSION=redis:5.0-alpine
PYTHON_AMQP_VERSION=2.5.2
PYTHON_FLOWER_VERSION=0.9.3
PYTHON_LIBRABBITMQ_VERSION=2.0.0
PYTHON_MYSQL_VERSION=1.4.4
PYTHON_ORACLE_VERSION=7.2.3
PYTHON_PSYCOPG2_VERSION=2.8.3
PYTHON_PSUTIL_VERSION=5.6.2
PYTHON_REDIS_VERSION=3.2.1
SOURCE_CODE_REPOSITORY=https://gitlab.com/mayan-edms/mayan-edms/
SOURCE_CODE_GIT=https://gitlab.com/mayan-edms/mayan-edms.git
SOURCE_CODE_ISSUES=https://gitlab.com/mayan-edms/mayan-edms/issues/
-25
View File
@@ -1,25 +0,0 @@
!/bin/bash
Directories[0]="."
# Setup find correctly.
export IFS=$'\n'
# Loop through our array.
for x in ${Directories[@]}
do
# Find all directories & subdirectories
for i in $(find $x -type d)
do
# Fix Permissions
chmod -c 775 $i
chown -c www-data:www-data $i
done
# Find all Files
for i in $(find $x -type f)
do
# Fix Permissions
chmod -c 664 $i
chown -c www-data:www-data $i
done
done
-72
View File
@@ -1,72 +0,0 @@
#!/usr/bin/env bash
INSTALLATION_DIRECTORY=/home/vagrant/mayan-edms/
DB_NAME=mayan_edms
DB_PASSWORD=test123
cat << EOF | sudo tee -a /etc/motd.tail
**********************************sudo apt
Mayan EDMS Vagrant Development Box
**********************************
EOF
# Update sources
echo -e "\n -> Running apt-get update & upgrade \n"
sudo apt-get -qq update
sudo apt-get -y upgrade
echo -e "\n -> Installing core binaries \n"
sudo apt-get -y install git-core python-virtualenv gcc python-dev libjpeg-dev libpng-dev libtiff-dev tesseract-ocr poppler-utils libreoffice
echo -e "\n -> Cloning development branch of repository \n"
git clone /mayan-edms-repository/ $INSTALLATION_DIRECTORY
cd $INSTALLATION_DIRECTORY
git checkout development
git reset HEAD --hard
echo -e "\n -> Setting up virtual env \n"
virtualenv venv
source venv/bin/activate
echo -e "\n -> Installing python dependencies \n"
pip install -r requirements.txt
echo -e "\n -> Running Mayan EDMS initial setup \n"
./manage.py initialsetup
echo -e "\n -> Installing Redis server \n"
sudo apt-get install -y redis-server
pip install redis
echo -e "\n -> Installing testing software \n"
pip install coverage
echo -e "\n -> Installing MySQL \n"
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password '$DB_PASSWORD
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password '$DB_PASSWORD
sudo apt-get install -y mysql-server libmysqlclient-dev
# Create a passwordless root and travis users
mysql -u root -p$DB_PASSWORD -e "SET PASSWORD = PASSWORD('');"
mysql -u root -e "CREATE USER 'travis'@'localhost' IDENTIFIED BY '';GRANT ALL PRIVILEGES ON * . * TO 'travis'@'localhost';FLUSH PRIVILEGES;"
mysql -u travis -e "CREATE DATABASE $DB_NAME;"
pip install mysql-python
echo -e "\n -> Installing PostgreSQL \n"
sudo apt-get install -y postgresql postgresql-server-dev-all
sudo -u postgres psql -c 'create database mayan_edms;' -U postgres
sudo cat > /etc/postgresql/9.3/main/pg_hba.conf << EOF
local all postgres trust
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
EOF
pip install -q psycopg2
+198
View File
@@ -0,0 +1,198 @@
#!/bin/sh
set -e
# This script is meant for quick & easy install via:
# $ curl -fsSL get.mayan-edms.com -o get-mayan-edms.sh
# $ sh get-mayan-edms.sh
#
# NOTE: Before executing, make sure to verify the contents of the script
# you downloaded matches the contents of docker.sh
# located at https://gitlab.com/mayan-edms/mayan-edms/blob/master/contrib/scripts/install/docker.sh
: ${VERBOSE:=true}
: ${INSTALL_DOCKER:=false}
: ${DELETE_VOLUMES:=false}
: ${USE_DOCKER_NETWORK:=true}
: ${DOCKER_NETWORK_NAME:=mayan}
: ${DATABASE_USER:=mayan}
: ${DATABASE_NAME:=mayan}
: ${DATABASE_PASSWORD:=mayanuserpass}
: ${DOCKER_POSTGRES_IMAGE:=postgres:9.6-alpine}
: ${DOCKER_POSTGRES_CONTAINER:=mayan-edms-postgres}
: ${DOCKER_POSTGRES_VOLUME:=/docker-volumes/mayan-edms/postgres}
: ${DOCKER_POSTGRES_PORT:=5432}
: ${DOCKER_POSTGRES_DELAY:=10}
: ${DOCKER_REDIS_IMAGE:=redis:5.0-alpine}
: ${DOCKER_REDIS_CONTAINER:=mayan-edms-redis}
: ${DOCKER_REDIS_PORT:=6379}
: ${DOCKER_MAYAN_IMAGE:=mayanedms/mayanedms:latest}
: ${DOCKER_MAYAN_CONTAINER:=mayan-edms}
: ${DOCKER_MAYAN_VOLUME:=/docker-volumes/mayan-edms/media}
: ${DOCKER_MAYAN_PORT:=80}
cat << EOF
███╗ ███╗ █████╗ ██╗ ██╗ █████╗ ███╗ ██╗
████╗ ████║██╔══██╗╚██╗ ██╔╝██╔══██╗████╗ ██║
██╔████╔██║███████║ ╚████╔╝ ███████║██╔██╗ ██║
██║╚██╔╝██║██╔══██║ ╚██╔╝ ██╔══██║██║╚██╗██║
██║ ╚═╝ ██║██║ ██║ ██║ ██║ ██║██║ ╚████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝
Docker deploy script
NOTE: Make sure to verify the contents of this script
matches the contents of docker.sh located at https://gitlab.com/mayan-edms/mayan-edms/blob/master/contrib/scripts/install/docker.sh before executing.
EOF
if [ "$VERBOSE" = true ]; then
echo "Variable values to be used:"
echo "---------------------------"
echo "INSTALL_DOCKER: $INSTALL_DOCKER"
echo "DELETE_VOLUMES: $DELETE_VOLUMES"
echo "USE_DOCKER_NETWORK: $USE_DOCKER_NETWORK"
echo "DOCKER_NETWORK_NAME: $DOCKER_NETWORK_NAME"
echo "DATABASE_USER: $DATABASE_USER"
echo "DATABASE_NAME: $DATABASE_NAME"
echo "DATABASE_PASSWORD: $DATABASE_PASSWORD"
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_REDIS_IMAGE: $DOCKER_REDIS_IMAGE"
echo "DOCKER_REDIS_CONTAINER: $DOCKER_REDIS_CONTAINER"
echo "DOCKER_REDIS_PORT: $DOCKER_REDIS_PORT"
echo "DOCKER_MAYAN_IMAGE: $DOCKER_MAYAN_IMAGE"
echo "DOCKER_MAYAN_CONTAINER: $DOCKER_MAYAN_CONTAINER"
echo "DOCKER_MAYAN_VOLUME: $DOCKER_MAYAN_VOLUME"
echo "DOCKER_MAYAN_PORT: $DOCKER_MAYAN_PORT"
echo
echo "Override any of them by setting them before the script. "
echo "Example: INSTALL_DOCKER=true sh get-mayan-edms.sh"
echo "\nStarting in 10 seconds. Press CTRL+C to cancel."
sleep 10
fi
if [ "$INSTALL_DOCKER" = true ]; then
echo -n "* Installing Docker..."
curl -fsSL get.docker.com -o get-docker.sh >/dev/null
sh get-docker.sh >/dev/null 2>&1
rm get-docker.sh
echo "Done"
fi
if [ -z `which docker` ]; then
echo "Docker is not installed. Rerun this script with the variable INSTALL_DOCKER set to true."
exit 1
fi
echo -n "* Removing existing Mayan EDMS and PostgreSQL containers (no data will be lost)..."
docker rm -f $DOCKER_REDIS_CONTAINER >/dev/null 2>&1 || true
docker rm -f $DOCKER_POSTGRES_CONTAINER >/dev/null 2>&1 || true
docker rm -f $DOCKER_MAYAN_CONTAINER >/dev/null 2>&1 || true
echo "Done"
if [ "$DELETE_VOLUMES" = true ]; then
echo -n "* Deleting Docker volumes in 5 seconds (warning: this will delete all document data). Press CTRL+C to cancel..."
sleep 5
rm DOCKER_MAYAN_VOLUME -Rf || true
rm DOCKER_POSTGRES_VOLUME -Rf || true
echo "Done"
fi
echo -n "* Pulling (downloading) the Redis Docker image..."
docker pull $DOCKER_REDIS_IMAGE > /dev/null
echo "Done"
echo -n "* Pulling (downloading) the PostgreSQL Docker image..."
docker pull $DOCKER_POSTGRES_IMAGE > /dev/null
echo "Done"
echo -n "* Pulling (downloading) the Mayan EDMS Docker image..."
docker pull $DOCKER_MAYAN_IMAGE >/dev/null
echo "Done"
if [ "$USE_DOCKER_NETWORK" = true ]; then
echo -n "* Creating Docker network..."
docker network create $DOCKER_NETWORK_NAME 2> /dev/null || true
# Ignore error if the network already exists
echo "Done"
fi
if [ "$USE_DOCKER_NETWORK" = true ]; then
NETWORK_ARGUMENT="--network=$DOCKER_NETWORK_NAME"
POSTGRES_PORT_ARGUMENT=""
REDIS_PORT_ARGUMENT=""
MAYAN_DATABASE_PORT_ARGUMENT=""
MAYAN_DATABASE_HOST_ARGUMENT="-e MAYAN_DATABASE_HOST=$DOCKER_POSTGRES_CONTAINER"
MAYAN_CELERY_BROKER_URL_ARGUMENT="-e MAYAN_CELERY_BROKER_URL=redis://$DOCKER_REDIS_CONTAINER:6379/0"
MAYAN_CELERY_RESULT_BACKEND_ARGUMENT="-e MAYAN_CELERY_RESULT_BACKEND=redis://$DOCKER_REDIS_CONTAINER:6379/1"
else
NETWORK_ARGUMENT=""
POSTGRES_PORT_ARGUMENT="-e $DOCKER_POSTGRES_PORT:5432"
REDIS_PORT_ARGUMENT="-e $DOCKER_REDIS_PORT:6379"
MAYAN_DATABASE_PORT_ARGUMENT="-e MAYAN_DATABASE_PORT=$DOCKER_POSTGRES_PORT"
MAYAN_DATABASE_HOST_ARGUMENT="-e MAYAN_DATABASE_HOST=172.17.0.1"
MAYAN_CELERY_BROKER_URL_ARGUMENT="-e MAYAN_CELERY_BROKER_URL=redis://172.17.0.1:6379/0"
MAYAN_CELERY_RESULT_BACKEND_ARGUMENT="-e MAYAN_CELERY_RESULT_BACKEND=redis://172.17.0.1:6379/1"
fi
echo -n "* Deploying the PostgreSQL container..."
docker run -d \
--name $DOCKER_POSTGRES_CONTAINER \
$NETWORK_ARGUMENT \
--restart=always \
$POSTGRES_PORT_ARGUMENT \
-e POSTGRES_USER=$DATABASE_USER \
-e POSTGRES_DB=$DATABASE_NAME \
-e POSTGRES_PASSWORD=$DATABASE_PASSWORD \
-v $DOCKER_POSTGRES_VOLUME:/var/lib/postgresql/data \
$DOCKER_POSTGRES_IMAGE >/dev/null
echo "Done"
echo -n "* Deploying the Redis container..."
docker run -d \
--name $DOCKER_REDIS_CONTAINER \
$NETWORK_ARGUMENT \
--restart=always \
$REDIS_PORT_ARGUMENT \
$DOCKER_REDIS_IMAGE \
redis-server \
--appendonly no \
--databases 2 \
--maxmemory 100mb \
--maxmemory-policy allkeys-lru \
--maxclients 500 \
--save "" \
--tcp-backlog 256 \
>/dev/null
echo "Done"
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..."
docker run -d \
--name $DOCKER_MAYAN_CONTAINER \
$NETWORK_ARGUMENT \
--restart=always \
-p $DOCKER_MAYAN_PORT:8000 \
-e MAYAN_DATABASE_ENGINE=django.db.backends.postgresql \
$MAYAN_DATABASE_HOST_ARGUMENT \
$MAYAN_DATABASE_PORT_ARGUMENT \
-e MAYAN_DATABASE_NAME=$DATABASE_NAME \
-e MAYAN_DATABASE_PASSWORD=$DATABASE_PASSWORD \
-e MAYAN_DATABASE_USER=$DATABASE_USER \
-e MAYAN_DATABASE_CONN_MAX_AGE=0 \
$MAYAN_CELERY_BROKER_URL_ARGUMENT \
$MAYAN_CELERY_RESULT_BACKEND_ARGUMENT \
-v $DOCKER_MAYAN_VOLUME:/var/lib/mayan \
$DOCKER_MAYAN_IMAGE >/dev/null
echo "Done"
echo -n "* Waiting for the Mayan EDMS container to be ready (might take a few minutes)..."
while ! curl --output /dev/null --silent --head --fail http://localhost:$DOCKER_MAYAN_PORT; do sleep 1 && echo -n .; done;
echo "Done"
-171
View File
@@ -1,171 +0,0 @@
#!/usr/bin/env bash
# ====== CONFIG ======
INSTALLATION_DIRECTORY=/usr/share/mayan-edms/
DB_NAME=mayan_edms
DB_USERNAME=mayan
DB_PASSWORD=test123
# ==== END CONFIG ====
cat << EOF | tee -a /etc/motd.tail
**********************************
Mayan EDMS Vagrant Production Box
**********************************
EOF
echo -e "\n -> Running apt-get update & upgrade \n"
apt-get -qq update
apt-get -y upgrade
echo -e "\n -> Installing core binaries \n"
apt-get install nginx supervisor redis-server postgresql libpq-dev libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr poppler-utils -y
echo -e "\n -> Setting up virtualenv \n"
rm -f ${INSTALLATION_DIRECTORY}
virtualenv ${INSTALLATION_DIRECTORY}
source ${INSTALLATION_DIRECTORY}bin/activate
echo -e "\n -> Installing Mayan EDMS from PyPI \n"
pip install mayan-edms
echo -e "\n -> Installing Python client for PostgreSQL, Redis, and uWSGI \n"
pip install psycopg2 redis uwsgi
echo -e "\n -> Creating the database for the installation \n"
echo "CREATE USER mayan WITH PASSWORD '$DB_PASSWORD';" | sudo -u postgres psql
sudo -u postgres createdb -O $DB_USERNAME $DB_NAME
echo -e "\n -> Creating the directories for the logs \n"
mkdir /var/log/mayan
echo -e "\n -> Making a convenience symlink \n"
cd ${INSTALLATION_DIRECTORY}
ln -s lib/python2.7/site-packages/mayan .
echo -e "\n -> Creating an initial settings file \n"
mayan-edms.py createsettings
echo -e "\n -> Updating the mayan/settings/local.py file \n"
cat >> mayan/settings/local.py << EOF
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '$DB_NAME',
'USER': '$DB_USERNAME',
'PASSWORD': '$DB_PASSWORD',
'HOST': 'localhost',
'PORT': '5432',
}
}
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'
EOF
echo -e "\n -> Migrating the database or initialize the project \n"
mayan-edms.py initialsetup
echo -e "\n -> Disabling the default NGINX site \n"
rm -f /etc/nginx/sites-enabled/default
echo -e "\n -> Creating a uwsgi.ini file \n"
cat > uwsgi.ini << EOF
[uwsgi]
chdir = ${INSTALLATION_DIRECTORY}lib/python2.7/site-packages/mayan
chmod-socket = 664
chown-socket = www-data:www-data
env = DJANGO_SETTINGS_MODULE=mayan.settings.production
gid = www-data
logto = /var/log/uwsgi/%n.log
pythonpath = ${INSTALLATION_DIRECTORY}lib/python2.7/site-packages
master = True
max-requests = 5000
socket = ${INSTALLATION_DIRECTORY}uwsgi.sock
uid = www-data
vacuum = True
wsgi-file = ${INSTALLATION_DIRECTORY}lib/python2.7/site-packages/mayan/wsgi.py
EOF
echo -e "\n -> Creating the directory for the uWSGI log files \n"
mkdir -p /var/log/uwsgi
echo -e "\n -> Creating the NGINX site file for Mayan EDMS, /etc/nginx/sites-available/mayan \n"
cat > /etc/nginx/sites-available/mayan << EOF
server {
listen 80;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass unix:${INSTALLATION_DIRECTORY}uwsgi.sock;
client_max_body_size 30M; # Increse if your plan to upload bigger documents
proxy_read_timeout 30s; # Increase if your document uploads take more than 30 seconds
}
location /static {
alias ${INSTALLATION_DIRECTORY}mayan/media/static;
expires 1h;
}
location /favicon.ico {
alias ${INSTALLATION_DIRECTORY}mayan/media/static/appearance/images/favicon.ico;
expires 1h;
}
}
EOF
echo -e "\n -> Enabling the NGINX site for Mayan EDMS \n"
ln -s /etc/nginx/sites-available/mayan /etc/nginx/sites-enabled/
echo -e "\n -> Creating the supervisor file for the uWSGI process, /etc/supervisor/conf.d/mayan-uwsgi.conf \n"
cat > /etc/supervisor/conf.d/mayan-uwsgi.conf << EOF
[program:mayan-uwsgi]
command = ${INSTALLATION_DIRECTORY}bin/uwsgi --ini ${INSTALLATION_DIRECTORY}uwsgi.ini
user = root
autostart = true
autorestart = true
redirect_stderr = true
EOF
echo -e "\n -> Creating the supervisor file for the Celery worker, /etc/supervisor/conf.d/mayan-celery.conf \n"
cat > /etc/supervisor/conf.d/mayan-celery.conf << EOF
[program:mayan-worker]
command = ${INSTALLATION_DIRECTORY}bin/python ${INSTALLATION_DIRECTORY}bin/mayan-edms.py celery --settings=mayan.settings.production worker -Ofair -l ERROR
directory = ${INSTALLATION_DIRECTORY}
user = www-data
stdout_logfile = /var/log/mayan/worker-stdout.log
stderr_logfile = /var/log/mayan/worker-stderr.log
autostart = true
autorestart = true
startsecs = 10
stopwaitsecs = 10
killasgroup = true
priority = 998
[program:mayan-beat]
command = ${INSTALLATION_DIRECTORY}bin/python ${INSTALLATION_DIRECTORY}bin/mayan-edms.py celery --settings=mayan.settings.production beat -l ERROR
directory = ${INSTALLATION_DIRECTORY}
user = www-data
numprocs = 1
stdout_logfile = /var/log/mayan/beat-stdout.log
stderr_logfile = /var/log/mayan/beat-stderr.log
autostart = true
autorestart = true
startsecs = 10
stopwaitsecs = 1
killasgroup = true
priority = 998
EOF
echo -e "\n -> Collecting the static files \n"
mayan-edms.py collectstatic --noinput
echo -e "\n -> Making the installation directory readable and writable by the webserver user \n"
chown www-data:www-data ${INSTALLATION_DIRECTORY} -R
echo -e "\n -> Restarting the services \n"
/etc/init.d/nginx restart
/etc/init.d/supervisor restart
+24 -18
View File
@@ -1,4 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
from __future__ import print_function
import os import os
import optparse import optparse
@@ -6,19 +9,22 @@ import sh
APP_LIST = ( APP_LIST = (
'acls', 'appearance', 'authentication', 'cabinets', 'checkouts', 'common', 'acls', 'appearance', 'authentication', 'autoadmin', 'cabinets',
'converter', 'django_gpg', 'document_comments', 'document_indexing', 'checkouts', 'common', 'converter', 'dashboards', 'dependencies',
'document_parsing', 'document_signatures', 'document_states', 'documents', 'django_gpg', 'document_comments', 'document_indexing',
'dynamic_search', 'events', 'linking', 'lock_manager', 'mayan_statistics', 'document_parsing', 'document_signatures', 'document_states',
'mailer', 'metadata', 'mirroring', 'motd', 'navigation', 'ocr', 'permissions', 'documents', 'dynamic_search', 'events', 'file_caching',
'rest_api', 'smart_settings', 'sources', 'storage', 'tags', 'task_manager', 'file_metadata', 'linking', 'lock_manager', 'mailer',
'user_management' 'mayan_statistics', 'metadata', 'mirroring', 'motd', 'navigation',
'ocr', 'permissions', 'platform', 'rest_api', 'smart_settings',
'sources', 'storage', 'tags', 'task_manager', 'templating',
'user_management', 'web_links'
) )
LANGUAGE_LIST = ( LANGUAGE_LIST = (
'ar', 'bg', 'bs_BA', 'da', 'de_DE', 'en', 'es', 'fa', 'fr', 'hu', 'id', 'ar', 'bg', 'bs_BA', 'cs', 'da_DK', 'de_DE', 'en', 'es', 'el', 'fa', 'fr',
'it', 'nl_NL', 'pl', 'pt', 'pt_BR', 'ro_RO', 'ru', 'sl_SI', 'tr_TR', 'hu', 'id', 'it', 'lv', 'nl_NL', 'pl', 'pt', 'pt_BR', 'ro_RO', 'ru', 'sl_SI',
'vi_VN', 'zh_CN', 'tr_TR', 'vi_VN', 'zh',
) )
makemessages = sh.Command('django-admin.py') makemessages = sh.Command('django-admin.py')
@@ -38,29 +44,29 @@ BASE_DIR = os.path.abspath(
def process(command, app_list, language_list): def process(command, app_list, language_list):
if command == makemessages: if command == makemessages:
print 'Making messages' print('Making messages')
elif command == compilemessages: elif command == compilemessages:
print 'Compiling messages' print('Compiling messages')
elif command == pull_translations: elif command == pull_translations:
print 'Pulling translation files' print('Pulling translation files')
elif command == push_translations: elif command == push_translations:
print 'Pushing translation files' print('Pushing translation files')
if command in [compilemessages, makemessages]: if command in [compilemessages, makemessages]:
for app in app_list: for app in app_list:
print 'Processing app: %s...' % app print('Processing app: %s...' % app)
app_path = os.path.join(BASE_DIR, 'apps', app) app_path = os.path.join(BASE_DIR, 'apps', app)
os.chdir(app_path) os.chdir(app_path)
for lang in language_list: for lang in language_list:
print 'Doing language: %s' % lang print('Doing language: %s' % lang)
command(locale=lang) command(locale=lang)
elif command == pull_translations: elif command == pull_translations:
for lang in language_list: for lang in language_list:
print 'Doing language: %s' % lang print('Doing language: %s' % lang)
command('-f', '-l', lang) command('-f', '-l', lang)
elif command == push_translations: elif command == push_translations:
for lang in language_list: for lang in language_list:
print 'Doing language: %s' % lang print('Doing language: %s' % lang)
command('-s', '-l', lang) command('-s', '-l', lang)
-35
View File
@@ -1,35 +0,0 @@
#!/bin/bash
NAME="mayan-edms"
DJANGODIR=/usr/share/mayan-edms
SOCKFILE=/var/tmp/filesystem.sock
USER=www-data
GROUP=www-data
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=mayan.settings.production
DJANGO_WSGI_MODULE=mayan.wsgi
TIMEOUT=600
echo "Starting $NAME as `whoami`"
# Activate the virtual environment
cd $DJANGODIR
source bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
# Create the run directory if it doesn't exist
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR
# Start your Django Unicorn
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
exec bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--log-level=debug \
--bind=unix:$SOCKFILE \
--timeout=$TIMEOUT
+105
View File
@@ -0,0 +1,105 @@
#!/usr/bin/env python
from __future__ import print_function
import os
BASE_PATH = 'mayan/apps'
def print_views_summary(module_filename):
with open(module_filename) as file_object:
print(' module:', module_filename)
count_class_based_views = 0
count_function_based_views = 0
for line in file_object:
if line.startswith('class') and 'View' in line:
count_class_based_views += 1
if line.startswith('def') and 'request' in line:
count_function_based_views += 1
print(' class based views: {}'.format(count_class_based_views))
print(' function based views: {}'.format(count_function_based_views))
return count_class_based_views, count_function_based_views
def print_tests_summary(module_filename):
with open(module_filename) as file_object:
print(' module:', module_filename)
count_tests = 0
for line in file_object:
if line.startswith(' def test'):
count_tests += 1
print(' tests: {}'.format(count_tests))
return count_tests
if __name__ == '__main__':
count_totals = {
'Apps': 0,
'Class based views': 0,
'Function based views': 0,
'Class based API views': 0,
'Function based API views': 0,
'Tests': 0,
}
for app_name in sorted(os.listdir(BASE_PATH)):
if app_name != '__init__.py':
count_totals['Apps'] += 1
print('\n\nApp name: {}'.format(app_name))
app_path = os.path.join(BASE_PATH, app_name)
print('\n Views')
try:
module_filename = os.path.join(app_path, 'views.py')
count_class_based_views, count_function_based_views = print_views_summary(module_filename=module_filename)
count_totals['Class based views'] += count_class_based_views
count_totals['Function based views'] += count_function_based_views
except IOError:
# Check for multiple view files inside a view directory
try:
module_path = os.path.join(app_path, 'views')
for module_name in os.listdir(module_path):
if not module_name.startswith('__init__.py') and not module_name.endswith('.pyc'):
module_filename = os.path.join(module_path, module_name)
count_class_based_views, count_function_based_views = print_views_summary(module_filename=module_filename)
count_totals['Class based views'] += count_class_based_views
count_totals['Function based views'] += count_function_based_views
except OSError:
# No views directory, skip app
print(' No views')
print('\n API Views')
try:
module_filename = os.path.join(app_path, 'api_views.py')
count_class_based_views, count_function_based_views = print_views_summary(module_filename=module_filename)
count_totals['Class based API views'] += count_class_based_views
count_totals['Function based API views'] += count_function_based_views
except IOError:
# No API views directory, skip app
print(' No API views')
print('\n Tests')
module_path = os.path.join(app_path, 'tests')
try:
for module_name in os.listdir(module_path):
if not module_name.startswith('__init__.py') and not module_name.endswith('.pyc'):
module_filename = os.path.join(module_path, module_name)
if module_name.startswith('test'):
count_tests = print_tests_summary(module_filename=module_filename)
count_totals['Tests'] += count_tests
except OSError:
# No tests directory, skip app
print(' No tests')
print('-' * 10)
print('Totals:')
for key, value in count_totals.items():
print(' {}: {}'.format(key, value))
+119 -43
View File
@@ -1,63 +1,139 @@
from __future__ import absolute_import from __future__ import absolute_import
# Install Python LDAP with:
# $ pip install python-ldap
# or if using Docker, pass the environment variable MAYAN_PIP_INSTALLS:
# -e MAYAN_PIP_INSTALLS=python-ldap
import ldap import ldap
from django_auth_ldap.config import LDAPSearch
from .base import * from django_auth_ldap.config import (
from django.conf import settings LDAPSearch, LDAPSearchUnion, NestedActiveDirectoryGroupType
from django.contrib.auth import get_user_model )
SECRET_KEY = '<your secret key>' from mayan.settings.production import *
# makes sure this works in Active Directory # Makes sure this works in Active Directory
ldap.set_option(ldap.OPT_REFERRALS, 0) ldap.set_option(ldap.OPT_REFERRALS, False)
# This is the default, but I like to be explicit. # Turn of debug output, turn this off when everything is working as expected
ldap.set_option(ldap.OPT_DEBUG_LEVEL, 1)
# Default: True
AUTH_LDAP_ALWAYS_UPDATE_USER = True AUTH_LDAP_ALWAYS_UPDATE_USER = True
LDAP_USER_AUTO_CREATION = "False" # Use TLS to talk to the LDAP server
LDAP_URL = "ldap://<your ldap server IP>:389/" # Requires acquiring the server's certificate
LDAP_BASE_DN = "dc=paramatrix,dc=co,dc=in" # $ openssl s_client -connect <LDAP server>:636
LDAP_ADDITIONAL_USER_DN = "dc=people" # Part of the output of this file will be the Base-64 encoded .cer file
LDAP_ADMIN_DN = "" # that was presented for LDAPS. Cut and paste into a file beginning at
LDAP_PASSWORD = "" # "-Begin Certificate" through "-End Certificate--" and save as a .crt, for
# example: ldapserver.crt
# $ CERT=ldapserver.crt
# $ cp /root/$CERT /usr/share/ca-certificates/$CERT
# # notice the + sign which tells to activate the certificate.
# $ echo "+$CERT" >/etc/ca-certificates/update.d/activate_my_cert
# $ dpkg-reconfigure ca-certificates;
AUTH_LDAP_START_TLS = False
LDAP_ADDITIONAL_USER_DN = 'dc=people'
LDAP_ADMIN_DN = ''
LDAP_BASE_DN = 'dc=<top level dc>,dc=co,dc=in'
LDAP_PASSWORD = ''
LDAP_USER_AUTO_CREATION = 'False'
LDAP_URL = 'ldap://<LDAP server>:389/'
AUTH_LDAP_SERVER_URI = LDAP_URL
AUTH_LDAP_BIND_DN = LDAP_ADMIN_DN AUTH_LDAP_BIND_DN = LDAP_ADMIN_DN
AUTH_LDAP_BIND_PASSWORD = LDAP_PASSWORD AUTH_LDAP_BIND_PASSWORD = LDAP_PASSWORD
AUTH_LDAP_SERVER_URI = LDAP_URL
# Simple search
AUTH_LDAP_USER_SEARCH = LDAPSearch(
'%s,%s' % (LDAP_ADDITIONAL_USER_DN, LDAP_BASE_DN),
ldap.SCOPE_SUBTREE, '(uid=%(user)s)'
)
AUTH_LDAP_USER_SEARCH = LDAPSearch('%s,%s'%(LDAP_ADDITIONAL_USER_DN, LDAP_BASE_DN), ldap.SCOPE_SUBTREE, "(uid=%(user)s)") # If you need to search in more than one place for a user, you can use
# LDAPSearchUnion. This takes multiple LDAPSearch objects and returns the
# union of the results. The precedence of the underlying searches is
# unspecified.
# https://django-auth-ldap.readthedocs.io/en/latest/authentication.html
# AUTH_LDAP_USER_SEARCH = LDAPSearchUnion(
# LDAPSearch(
# 'ou=Users,ou=Admin,dc=<top level DC>,dc=local', ldap.SCOPE_SUBTREE,
# '(samaccountname=%(user)s)'
# ),
# LDAPSearch(
# 'ou=Users,ou=<second OU>,dc=<top level DC>,dc=local',
# ldap.SCOPE_SUBTREE, '(samaccountname=%(user)s)'
# ),
# LDAPSearch(
# 'ou=Users,ou=<third OU>,dc=<top level DC>,dc=local',
# ldap.SCOPE_SUBTREE, '(samaccountname=%(user)s)'
# ),
# )
# User attributes to map from LDAP to Mayan's user model.
AUTH_LDAP_USER_ATTR_MAP = { AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "cn", 'first_name': 'cn',
"last_name": "sn", 'last_name': 'sn',
"email": "mail" 'email': 'mail'
} }
# Another example map
# AUTH_LDAP_USER_ATTR_MAP = {
# 'username': 'sAMAccountName',
# 'first_name': 'givenName',
# 'last_name': 'sn',
# 'email': 'mail'
# }
# Only string fields can be mapped to attributes. Boolean fields can be
# defined by group membership:
# AUTH_LDAP_USER_FLAGS_BY_GROUP = {
# 'is_active': 'cn=active,ou=groups,dc=example,dc=com',
# 'is_staff': (
# LDAPGroupQuery('cn=staff,ou=groups,dc=example,dc=com')
# | LDAPGroupQuery('cn=admin,ou=groups,dc=example,dc=com')
# ),
# 'is_superuser': 'cn=superuser,ou=groups,dc=example,dc=com',
# }
# Simple group search
# AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
# 'ou=groups,dc=example,dc=com', ldap.SCOPE_SUBTREE, '(objectClass=groupOfNames)'
# )
# AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
# Advanced group search
# AUTH_LDAP_GROUP_SEARCH = LDAPSearchUnion(
# LDAPSearch(
# 'ou=Domain Global,OU=Security,OU=Groups,OU=<OU>,dc=<top level DC>,dc=local',
# ldap.SCOPE_SUBTREE,
# '(&(objectClass=group)(groupType:1.2.840.113556.1.4.803:=2147483648))'
# ),
# LDAPSearch(
# 'ou=Domain Global,OU=Security,OU=Groups,OU=<OU>,dc=<top level DC>,dc=local',
# ldap.SCOPE_SUBTREE,
# '(&(objectClass=group)(groupType:1.2.840.113556.1.4.803:=2147483648))'
# ),
# )
# AUTH_LDAP_CACHE_GROUPS = True
# AUTH_LDAP_FIND_GROUP_PERMS = False
# AUTH_LDAP_GROUP_TYPE = NestedActiveDirectoryGroupType()
# AUTH_LDAP_MIRROR_GROUPS = True
# To minimize traffic to the LDAP server, LDAPBackend can make use of
# Djangos cache framework to keep a copy of a users LDAP group memberships.
# To enable this feature, set AUTH_LDAP_CACHE_TIMEOUT, which determines
# the timeout of cache entries in seconds.
# AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
# Limiting Access
# The simplest use of groups is to limit the users who are allowed to log in.
# If AUTH_LDAP_REQUIRE_GROUP is set, then only users who are members of that
# group will successfully authenticate. AUTH_LDAP_DENY_GROUP is the reverse:
# if given, members of this group will be rejected.
# AUTH_LDAP_REQUIRE_GROUP = 'cn=enabled,ou=groups,dc=example,dc=com'
# AUTH_LDAP_DENY_GROUP = 'cn=disabled,ou=groups,dc=example,dc=com'
AUTHENTICATION_BACKENDS = ( AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend', 'django_auth_ldap.backend.LDAPBackend',
'mayan.settings.settings_local.EmailOrUsernameModelBackend',
) )
class EmailOrUsernameModelBackend(object):
"""
This is a ModelBacked that allows authentication with either a username or an email address.
"""
def authenticate(self, username=None, password=None):
if '@' in username:
kwargs = {'email': username}
else:
kwargs = {'username': username}
try:
user = get_user_model().objects.get(**kwargs)
if user.check_password(password):
return user
except User.DoesNotExist:
return None
def get_user(self, username):
try:
return get_user_model().objects.get(pk=username)
except get_user_model().DoesNotExist:
return None
+165
View File
@@ -0,0 +1,165 @@
# vim:set ft=dockerfile:
####
# BASE_IMAGE - Bare bones image with the base packages needed to run Mayan EDMS
####
FROM debian:10.0-slim as BASE_IMAGE
LABEL maintainer="Roberto Rosario roberto.rosario@mayan-edms.com"
COPY config.env /config.env
ENV PYTHONUNBUFFERED=1 \
LC_ALL=C.UTF-8 \
PROJECT_INSTALL_DIR=/opt/mayan-edms
# Debian package caching
ARG APT_PROXY
RUN set -x \
&& if [ "${APT_PROXY}" ]; \
then echo "Acquire::http { Proxy \"http://${APT_PROXY}\"; };" > /etc/apt/apt.conf.d/01proxy \
; fi \
# Install base OS packages to run Mayan EDMS
&& DEBIAN_FRONTEND=noninteractive \
apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
exiftool \
fonts-arphic-uming \
fonts-arphic-ukai \
ghostscript \
gpgv \
gnupg1 \
graphviz \
libfuse2 \
libmagic1 \
libmariadb3 \
libreoffice \
libpq5 \
poppler-utils \
python3-distutils \
sane-utils \
sudo \
supervisor \
tesseract-ocr tesseract-ocr-deu \
# Remove make and build dependencies
&& apt-get remove make libproxy-tools libreoffice-avmedia-backend-vlc libvlc-bin libvlc5 libvlccore9 adwaita-icon-theme gsettings-desktop-schemas libgstreamer-plugins-base1.0-0 -y \
&& apt-get autoremove -y --purge \
# Add mayan user
&& adduser mayan --disabled-password --disabled-login --no-create-home --gecos "" \
# Pillow can't find zlib or libjpeg on aarch64 (ODROID C2)
&& if [ "$(uname -m)" = "aarch64" ]; then \
ln -s /usr/lib/aarch64-linux-gnu/libz.so /usr/lib/ \
&& ln -s /usr/lib/aarch64-linux-gnu/libjpeg.so /usr/lib/ \
; fi \
# Pillow can't find zlib or libjpeg on armv7l (ODROID HC1)
&& if [ "$(uname -m)" = "armv7l" ]; then \
ln -s /usr/lib/arm-linux-gnueabihf/libz.so /usr/lib/ \
&& ln -s /usr/lib/arm-linux-gnueabihf/libjpeg.so /usr/lib/ \
; fi
####
# BUILDER_IMAGE - This image builds the Python package and is discarded afterwards
# only the build artifact is carried over to the next image.
####
# Reuse image
FROM BASE_IMAGE as BUILDER_IMAGE
# Python libraries caching
ARG PIP_INDEX_URL
ARG PIP_TRUSTED_HOST
WORKDIR /src
# Copy the source files needed to build the Python package
COPY --chown=mayan:mayan requirements /src/requirements
COPY --chown=mayan:mayan \
HISTORY.rst \
LICENSE \
MANIFEST.in \
README.md \
README.rst \
setup.py \
/src/
COPY --chown=mayan:mayan mayan /src/mayan
# Install development packages needed to build the Python packages
RUN DEBIAN_FRONTEND=noninteractive \
apt-get install -y --no-install-recommends \
default-libmysqlclient-dev \
libffi-dev \
libjpeg-dev \
libpng-dev \
libpq-dev \
libtiff-dev \
zlib1g-dev \
libssl-dev \
g++ \
gcc \
python3-dev \
python3-venv \
&& mkdir -p "${PROJECT_INSTALL_DIR}" \
&& chown -R mayan:mayan "${PROJECT_INSTALL_DIR}" \
&& chown -R mayan:mayan /src
USER mayan
RUN set -a \
&& . /config.env \
&& set +a \
&& python3 -m venv "${PROJECT_INSTALL_DIR}" \
&& . "${PROJECT_INSTALL_DIR}/bin/activate" \
&& pip install --no-cache-dir \
amqp==$PYTHON_AMQP_VERSION \
mysqlclient==$PYTHON_MYSQL_VERSION \
psycopg2==$PYTHON_PSYCOPG2_VERSION \
redis==$PYTHON_REDIS_VERSION \
flower==$PYTHON_FLOWER_VERSION \
# psutil is needed by ARM builds otherwise gevent and gunicorn fail to start
&& UNAME=`uname -m` && if [ "${UNAME#*arm}" != $UNAME ]; then \
pip install --no-cache-dir \
psutil==$PYTHON_PSUTIL_VERSION \
; fi \
# Install the Python packages needed to build Mayan EDMS
&& pip install --no-cache-dir -r /src/requirements/build.txt \
# Build Mayan EDMS
&& python3 setup.py sdist \
# Install the built Mayan EDMS package
&& pip install --no-cache-dir dist/mayan* \
# Install the static content
&& mayan-edms.py installdependencies \
&& MAYAN_STATIC_ROOT=${PROJECT_INSTALL_DIR}/static mayan-edms.py preparestatic --link --noinput
COPY --chown=mayan:mayan requirements/testing-base.txt "${PROJECT_INSTALL_DIR}"
####
# Final image - BASE_IMAGE + BUILDER_IMAGE artifact (Mayan install directory)
####
FROM BASE_IMAGE
COPY --from=BUILDER_IMAGE --chown=mayan:mayan "${PROJECT_INSTALL_DIR}/" "${PROJECT_INSTALL_DIR}/"
USER root
COPY docker/rootfs /
VOLUME ["/var/lib/mayan"]
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 8000
CMD ["run_all"]
RUN ${PROJECT_INSTALL_DIR}/bin/mayan-edms.py platformtemplate supervisord_docker > /etc/supervisor/conf.d/mayan.conf \
&& apt-get clean autoclean \
&& apt-get autoremove --purge -y \
&& rm -rf /var/lib/apt/lists/* \
&& rm -f /var/cache/apt/archives/*.deb \
# Remove temporary files owned by root from the platformtemplate step
&& rm /tmp/* \
# Keep displaying log messages to stdout
&& find /var/log -type f | while read f; do echo -ne '' > $f; done;
+130
View File
@@ -0,0 +1,130 @@
#!make
include config.env
HOST_IP = `/sbin/ip route|awk '/docker0/ { print $$9 }'`
APT_PROXY ?= $(HOST_IP):3142
CONSOLE_COLUMNS ?= `echo $$(tput cols)`
CONSOLE_LINES ?= `echo $$(tput lines)`
IMAGE_VERSION ?= `cat docker/rootfs/version`
PIP_INDEX_URL ?= http://$(HOST_IP):3141/root/pypi/+simple/
PIP_TRUSTED_HOST ?= $(HOST_IP)
docker-build: ## Build a new image locally.
docker build -t mayanedms/mayanedms:$(IMAGE_VERSION) -f docker/Dockerfile .
docker-build-with-proxy: ## Build a new image locally using an APT proxy as APT_PROXY.
docker-build-with-proxy: devpi-start
docker build -t mayanedms/mayanedms:$(IMAGE_VERSION) -f docker/Dockerfile --build-arg APT_PROXY=$(APT_PROXY) --build-arg PIP_INDEX_URL=$(PIP_INDEX_URL) --build-arg PIP_TRUSTED_HOST=$(PIP_TRUSTED_HOST) --build-arg HTTP_PROXY=$(HTTP_PROXY) --build-arg HTTPS_PROXY=$(HTTPS_PROXY) .
$(MAKE) devpi-stop
docker-shell: ## Launch a bash instance inside a running container. Pass the container name via DOCKER_CONTAINER.
docker exec -e TERM=$(TERM) -e "COLUMNS=$(CONSOLE_COLUMNS)" -e "LINES=$(CONSOLE_LINES)" -it $(DOCKER_CONTAINER) /bin/bash
docker-runtest-container: ## Run a test container.
docker-runtest-container: docker-test-cleanup
docker run \
-d \
--name test-mayan-edms \
-p 80:8000 \
-v test-mayan_data:/var/lib/mayan \
mayanedms/mayanedms:$(IMAGE_VERSION)
docker-runtest-cleanup: ## Delete the test container and the test volume.
@docker rm -f test-mayan-edms || true
@docker volume rm test-mayan_data || true
docker-runtest-all: ## Executed the test suite in a test container.
docker run --rm mayanedms/mayanedms:$(IMAGE_VERSION) run_tests
docker-compose-build:
docker-compose -f docker/docker-compose.yml -p mayan-edms build
docker-compose-build-with-proxy: devpi-start
docker-compose -f docker/docker-compose.yml -p mayan-edms build --build-arg APT_PROXY=$(APT_PROXY) --build-arg PIP_INDEX_URL=$(PIP_INDEX_URL) --build-arg PIP_TRUSTED_HOST=$(PIP_TRUSTED_HOST) --build-arg HTTP_PROXY=$(HTTP_PROXY) --build-arg HTTPS_PROXY=$(HTTPS_PROXY)
$(MAKE) devpi-stop
docker-compose-up:
docker-compose -f docker/docker-compose.yml -p mayan-edms up
docker-staging-network-create:
@docker network rm mayan-staging || true
docker network create mayan-staging
docker-staging-container-postgresql-start:
docker run \
-d \
--name mayan-staging-postgres \
--network=mayan-staging \
-e POSTGRES_USER=mayan \
-e POSTGRES_DB=mayan \
-e POSTGRES_PASSWORD=mayanuserpass \
-v mayan-staging-postgres:/var/lib/postgresql/data \
$(DOCKER_POSTGRES_IMAGE_VERSION)
docker-staging-container-redis-start:
docker run \
-d \
--name mayan-staging-redis \
--network=mayan-staging \
-v mayan-staging-redis:/data \
$(DOCKER_REDIS_IMAGE_VERSION) \
redis-server \
--databases \
"2" \
--maxmemory-policy \
allkeys-lru \
--save \
""
docker-staging-container-rabbitmq-start:
docker run \
-d \
--name mayan-staging-rabbitmq \
--network=mayan-staging \
-v mayan-staging-rabbitmq:/var/lib/rabbitmq \
$(DOCKER_RABBITMQ_IMAGE_VERSION) \
docker-staging-container-mayan-start:
sleep 5 && docker run \
-d \
--name mayan-staging-app \
--network=mayan-staging \
-p 80:8000 \
-e MAYAN_DATABASE_ENGINE=django.db.backends.postgresql \
-e MAYAN_DATABASE_HOST=mayan-staging-postgres \
-e MAYAN_DATABASE_NAME=mayan \
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
-e MAYAN_DATABASE_USER=mayan \
-e MAYAN_CELERY_BROKER_URL=$(MAYAN_CELERY_BROKER_URL) \
-e MAYAN_CELERY_RESULT_BACKEND="redis://mayan-staging-redis:6379/1" \
-v mayan-staging-app:/var/lib/mayan \
mayanedms/mayanedms:$(IMAGE_VERSION)
docker-staging-start-with-rabbitmq: MAYAN_CELERY_BROKER_URL="amqp://guest:guest@mayan-staging-rabbitmq:5672/"
docker-staging-start-with-rabbitmq: docker-staging-start
docker-staging-start-with-redis: MAYAN_CELERY_BROKER_URL="redis://mayan-staging-redis:6379/0"
docker-staging-start-with-redis: docker-staging-start
docker-staging-start: docker-staging-cleanup docker-staging-network-create docker-staging-container-postgresql-start docker-staging-container-rabbitmq-start docker-staging-container-redis-start docker-staging-container-mayan-start
docker logs -f mayan-staging-app
docker-staging-cleanup: ## Delete the test container and the test volume.
@docker rm -f mayan-staging-app || true
@docker rm -f mayan-staging-redis || true
@docker rm -f mayan-staging-rabbitmq || true
@docker rm -f mayan-staging-postgres || true
@docker volume rm mayan-staging-app || true
@docker volume rm mayan-staging-postgres || true
@docker volume rm mayan-staging-rabbitmq || true
@docker volume rm mayan-staging-redis || true
@docker network rm mayan-staging || true
devpi-init:
devpi-server --init || true
devpi-start: devpi-init
devpi-server --start --host=0.0.0.0 || true
devpi-stop:
devpi-server --stop || true
+130
View File
@@ -0,0 +1,130 @@
version: '3.7'
networks:
mayan-bridge:
driver: bridge
services:
app:
build:
context: ..
dockerfile: ./docker/Dockerfile
depends_on:
- postgresql
- redis
# Enable to use RabbitMQ
#- rabbitmq
environment: &mayan_env
# Enable to use RabbitMQ
# MAYAN_CELERY_BROKER_URL: amqp://mayan:mayanrabbitpass@broker:5672/mayan
# Disable Redis Broker to use RabbitMQ as Broker
MAYAN_CELERY_BROKER_URL: redis://redis:6379/0
MAYAN_CELERY_RESULT_BACKEND: redis://redis:6379/1
MAYAN_DATABASES: "{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayandbpass','USER':'mayan','HOST':'postgresql'}}"
image: mayanedms/mayanedms:3.3
networks:
- mayan-bridge
ports:
- "80:8000"
restart: unless-stopped
volumes:
- /docker-volumes/mayan-edms/media:/var/lib/mayan
postgresql:
environment:
POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayandbpass
POSTGRES_USER: mayan
image: postgres:9.6-alpine
networks:
- mayan-bridge
restart: unless-stopped
volumes:
- /docker-volumes/mayan-edms/postgres:/var/lib/postgresql/data
redis:
command:
- redis-server
- --databases
- "2"
- --maxmemory-policy
- allkeys-lru
- --save
- ""
image: redis:5.0-alpine
networks:
- mayan-bridge
restart: unless-stopped
# Optional services
# celery_flower:
# command:
# - run_celery
# - flower
# depends_on:
# - postgresql
# - redis
# # Enable to use RabbitMQ
# # - rabbitmq
# environment:
# <<: *mayan_env
# image: mayanedms/mayanedms:3.3
# networks:
# - mayan-bridge
# ports:
# - "5555:5555"
# restart: unless-stopped
# Enable to use RabbitMQ
# rabbitmq:
# container_name: mayan-edms-rabbitmq
# image: healthcheck/rabbitmq
# environment:
# RABBITMQ_DEFAULT_USER: mayan
# RABBITMQ_DEFAULT_PASS: mayanrabbitpass
# RABBITMQ_DEFAULT_VHOST: mayan
# networks:
# - mayan-bridge
# restart: unless-stopped
# volumes:
# - /docker-volumes/mayan-edms/rabbitmq:/var/lib/rabbitmq
# Enable to run standalone workers
# worker_fast:
# command:
# - run_worker
# - fast
# depends_on:
# - postgresql
# - redis
# # Enable to use RabbitMQ
# # - rabbitmq
# environment:
# <<: *mayan_env
# image: mayanedms/mayanedms:3.3
# networks:
# - mayan-bridge
# restart: unless-stopped
# volumes:
# - /docker-volumes/mayan-edms/media:/var/lib/mayan
# Enable to run frontend gunicorn
# frontend:
# command:
# - run_frontend
# depends_on:
# - postgresql
# - redis
# # Enable to use RabbitMQ
# # - rabbitmq
# environment:
# <<: *mayan_env
# image: mayanedms/mayanedms:3.3
# networks:
# - mayan-bridge
# ports:
# - "81:8000"
# restart: unless-stopped
# volumes:
# - /docker-volumes/mayan-edms/media:/var/lib/mayan
+169
View File
@@ -0,0 +1,169 @@
#!/bin/bash
# Use bash and not sh to support argument slicing "${@:2}"
# sh defaults to dash instead of bash.
set -e
echo "mayan: starting entrypoint.sh"
INSTALL_FLAG=/var/lib/mayan/system/SECRET_KEY
CONCURRENCY_ARGUMENT=--concurrency=
DEFAULT_USER_UID=1000
DEFAULT_USER_GID=1000
MAYAN_USER_UID=${MAYAN_USER_UID:-${DEFAULT_USER_UID}}
MAYAN_USER_GID=${MAYAN_USER_GID:-${DEFAULT_USER_GID}}
export MAYAN_ALLOWED_HOSTS='["*"]'
export MAYAN_BIN=/opt/mayan-edms/bin/mayan-edms.py
export MAYAN_INSTALL_DIR=/opt/mayan-edms
export MAYAN_PYTHON_BIN_DIR=/opt/mayan-edms/bin/
export MAYAN_MEDIA_ROOT=/var/lib/mayan
export MAYAN_SETTINGS_MODULE=${MAYAN_SETTINGS_MODULE:-mayan.settings.production}
export DJANGO_SETTINGS_MODULE=${MAYAN_SETTINGS_MODULE}
export MAYAN_GUNICORN_BIN=${MAYAN_PYTHON_BIN_DIR}gunicorn
export MAYAN_GUNICORN_WORKERS=${MAYAN_GUNICORN_WORKERS:-2}
export MAYAN_GUNICORN_TIMEOUT=${MAYAN_GUNICORN_TIMEOUT:-120}
export MAYAN_PIP_BIN=${MAYAN_PYTHON_BIN_DIR}pip
export MAYAN_STATIC_ROOT=${MAYAN_INSTALL_DIR}/static
MAYAN_WORKER_FAST_CONCURRENCY=${MAYAN_WORKER_FAST_CONCURRENCY:-0}
MAYAN_WORKER_MEDIUM_CONCURRENCY=${MAYAN_WORKER_MEDIUM_CONCURRENCY:-0}
MAYAN_WORKER_SLOW_CONCURRENCY=${MAYAN_WORKER_SLOW_CONCURRENCY:-1}
update_uid_gid() {
echo "mayan: update_uid_gid()"
groupmod mayan -g ${MAYAN_USER_GID} 2>/dev/null || true
usermod mayan -u ${MAYAN_USER_UID} -g ${MAYAN_USER_GID} 2>/dev/null
if [ ${MAYAN_USER_UID} -ne ${DEFAULT_USER_UID} ] || [ ${MAYAN_USER_GID} -ne ${DEFAULT_USER_GID} ]; then
echo "mayan: Updating file ownership. This might take a while if there are many documents."
chown -R mayan:mayan ${MAYAN_INSTALL_DIR} ${MAYAN_STATIC_ROOT} ${MAYAN_MEDIA_ROOT}
fi
}
update_uid_gid
if [ "$MAYAN_WORKER_FAST_CONCURRENCY" -eq 0 ]; then
MAYAN_WORKER_FAST_CONCURRENCY=
else
MAYAN_WORKER_FAST_CONCURRENCY="${CONCURRENCY_ARGUMENT}${MAYAN_WORKER_FAST_CONCURRENCY}"
fi
export MAYAN_WORKER_FAST_CONCURRENCY
if [ "$MAYAN_WORKER_MEDIUM_CONCURRENCY" -eq 0 ]; then
MAYAN_WORKER_MEDIUM_CONCURRENCY=
else
MAYAN_WORKER_MEDIUM_CONCURRENCY="${CONCURRENCY_ARGUMENT}${MAYAN_WORKER_MEDIUM_CONCURRENCY}"
fi
export MAYAN_WORKER_MEDIUM_CONCURRENCY
if [ "$MAYAN_WORKER_SLOW_CONCURRENCY" -eq 0 ]; then
MAYAN_WORKER_SLOW_CONCURRENCY=
else
MAYAN_WORKER_SLOW_CONCURRENCY="${CONCURRENCY_ARGUMENT}${MAYAN_WORKER_SLOW_CONCURRENCY}"
fi
export MAYAN_WORKER_SLOW_CONCURRENCY
# Allow importing of user setting modules
export PYTHONPATH=$PYTHONPATH:$MAYAN_MEDIA_ROOT
apt_get_install() {
apt-get -q update
apt-get install -y --force-yes --no-install-recommends --auto-remove "$@"
apt-get -q clean
rm -rf /var/lib/apt/lists/*
}
initialsetup() {
echo "mayan: initialsetup()"
su mayan -c "${MAYAN_BIN} initialsetup --force --no-dependencies"
}
os_package_installs() {
echo "mayan: os_package_installs()"
if [ "${MAYAN_APT_INSTALLS}" ]; then
DEBIAN_FRONTEND=noninteractive apt_get_install $MAYAN_APT_INSTALLS
fi
}
pip_installs() {
echo "mayan: pip_installs()"
if [ "${MAYAN_PIP_INSTALLS}" ]; then
su mayan -c "${MAYAN_PIP_BIN} install $MAYAN_PIP_INSTALLS"
fi
}
run_all() {
echo "mayan: start()"
rm -rf /var/run/supervisor.sock
exec /usr/bin/supervisord -nc /etc/supervisor/supervisord.conf
}
performupgrade() {
echo "mayan: performupgrade()"
su mayan -c "${MAYAN_BIN} performupgrade --no-dependencies"
}
make_ready() {
# Check if this is a new install, otherwise try to upgrade the existing
# installation on subsequent starts
if [ ! -f $INSTALL_FLAG ]; then
initialsetup
else
performupgrade
fi
}
set_uid_guid() {
echo "mayan: changing uid/guid"
usermod mayan -u ${MAYAN_USER_UID:-${DEFAULT_USER_UID}}
groupmod mayan -g ${MAYAN_USER_GID:-${DEFAULT_USER_GID}}
}
os_package_installs || true
pip_installs || true
chown mayan:mayan /var/lib/mayan -R
case "$1" in
run_initialsetup)
initialsetup
;;
run_performupgrade)
performupgrade
;;
run_all)
make_ready
run_all
;;
run_celery)
run_celery.sh "${@:2}"
;;
run_command)
su mayan -c "${MAYAN_BIN} ${@:2}"
;;
run_frontend)
run_frontend.sh
;;
run_tests)
make_ready
run_tests.sh "${@:2}"
;;
run_worker)
run_worker.sh "${@:2}"
;;
*)
su mayan -c "$@"
;;
esac
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
# Use -A and not --app. Both are the same but behave differently
# -A can be located before the command while --app cannot.
su mayan -c "${MAYAN_PYTHON_BIN_DIR}celery -A mayan $@"
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
MAYAN_GUNICORN_MAX_REQUESTS=${MAYAN_GUNICORN_MAX_REQUESTS:-500}
MAYAN_GUNICORN_MAX_REQUESTS_JITTERS=${MAYAN_GUNICORN_MAX_REQUESTS_JITTERS:-50}
MAYAN_GUNICORN_WORKER_CLASS=${MAYAN_GUNICORN_WORKER_CLASS:-sync}
su mayan -c "${MAYAN_PYTHON_BIN_DIR}gunicorn -w ${MAYAN_GUNICORN_WORKERS} mayan.wsgi --max-requests ${MAYAN_GUNICORN_MAX_REQUESTS} --max-requests-jitter ${MAYAN_GUNICORN_MAX_REQUESTS_JITTERS} --worker-class ${MAYAN_GUNICORN_WORKER_CLASS} --bind 0.0.0.0:8000 --timeout ${MAYAN_GUNICORN_TIMEOUT}"
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
TEST_ARGUMENT=${@:-"--mayan-apps"}
apt-get update
apt-get install -y --no-install-recommends gcc python3-dev tesseract-ocr-deu
su mayan -c "${MAYAN_PIP_BIN} install -r ${MAYAN_INSTALL_DIR}/testing-base.txt"
su mayan -c "${MAYAN_BIN} test ${TEST_ARGUMENT} --settings=mayan.settings.testing"
+12
View File
@@ -0,0 +1,12 @@
#!/bin/bash
export MAYAN_WORKER_NAME=${MAYAN_WORKER_NAME:-$1}
QUEUE_LIST_DEFAULT=`su mayan -c "${MAYAN_PYTHON_BIN_DIR}mayan-edms.py platformtemplate worker_queues"`
MAYAN_QUEUE_LIST=${MAYAN_QUEUE_LIST:-${QUEUE_LIST_DEFAULT}}
# Use -A and not --app. Both are the same but behave differently
# -A can be located before the command while --app cannot.
# Pass ${@:2} to allow overriding the defaults arguments
su mayan -c "${MAYAN_PYTHON_BIN_DIR}celery -A mayan worker -Ofair -l ERROR -Q ${MAYAN_QUEUE_LIST} ${@:2}"
+1
View File
@@ -0,0 +1 @@
3.3.6
+40
View File
@@ -0,0 +1,40 @@
version: '3.1'
volumes:
app:
driver: local
db:
driver: local
services:
db:
environment:
POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayandbpass
POSTGRES_USER: mayan
image: postgres
volumes:
- db:/var/lib/postgresql/data
app:
environment:
MAYAN_CELERY_BROKER_URL: redis://redis:6379/1
MAYAN_CELERY_RESULT_BACKEND: redis://redis:6379/0
MAYAN_DATABASES: "{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayandbpass','USER':'mayan','HOST':'db'}}"
image: mayanedms/mayanedms:latest
ports:
- 80:8000
volumes:
- app:/var/lib/mayan
redis:
command:
- redis-server
- --databases
- "2"
- --maxmemory-policy
- allkeys-lru
- --save
- ""
image: redis:5.0
View File
-229
View File
@@ -1,229 +0,0 @@
"""
Sphinx plugins for Django documentation.
"""
import os
import re
from docutils import nodes, transforms
try:
import json
except ImportError:
try:
import simplejson as json
except ImportError:
try:
from django.utils import simplejson as json
except ImportError:
json = None
from sphinx import addnodes, roles, __version__ as sphinx_ver
from sphinx.builders.html import StandaloneHTMLBuilder
from sphinx.writers.html import SmartyPantsHTMLTranslator
from sphinx.util.console import bold
from sphinx.util.compat import Directive
# RE for option descriptions without a '--' prefix
simple_option_desc_re = re.compile(
r'([-_a-zA-Z0-9]+)(\s*.*?)(?=,\s+(?:/|-|--)|$)')
def setup(app):
app.add_crossref_type(
directivename = "setting",
rolename = "setting",
indextemplate = "pair: %s; setting",
)
app.add_crossref_type(
directivename = "templatetag",
rolename = "ttag",
indextemplate = "pair: %s; template tag"
)
app.add_crossref_type(
directivename = "templatefilter",
rolename = "tfilter",
indextemplate = "pair: %s; template filter"
)
app.add_crossref_type(
directivename = "fieldlookup",
rolename = "lookup",
indextemplate = "pair: %s; field lookup type",
)
app.add_description_unit(
directivename = "django-admin",
rolename = "djadmin",
indextemplate = "pair: %s; django-admin command",
parse_node = parse_django_admin_node,
)
app.add_description_unit(
directivename = "django-admin-option",
rolename = "djadminopt",
indextemplate = "pair: %s; django-admin command-line option",
parse_node = parse_django_adminopt_node,
)
app.add_config_value('django_next_version', '0.0', True)
app.add_directive('versionadded', VersionDirective)
app.add_directive('versionchanged', VersionDirective)
app.add_builder(DjangoStandaloneHTMLBuilder)
class VersionDirective(Directive):
has_content = True
required_arguments = 1
optional_arguments = 1
final_argument_whitespace = True
option_spec = {}
def run(self):
env = self.state.document.settings.env
arg0 = self.arguments[0]
is_nextversion = env.config.django_next_version == arg0
ret = []
node = addnodes.versionmodified()
ret.append(node)
if not is_nextversion:
if len(self.arguments) == 1:
linktext = 'Please see the release notes </releases/%s>' % (arg0)
xrefs = roles.XRefRole()('doc', linktext, linktext, self.lineno, self.state)
node.extend(xrefs[0])
node['version'] = arg0
else:
node['version'] = "Development version"
node['type'] = self.name
if len(self.arguments) == 2:
inodes, messages = self.state.inline_text(self.arguments[1], self.lineno+1)
node.extend(inodes)
if self.content:
self.state.nested_parse(self.content, self.content_offset, node)
ret = ret + messages
env.note_versionchange(node['type'], node['version'], node, self.lineno)
return ret
class DjangoHTMLTranslator(SmartyPantsHTMLTranslator):
"""
Django-specific reST to HTML tweaks.
"""
# Don't use border=1, which docutils does by default.
def visit_table(self, node):
self._table_row_index = 0 # Needed by Sphinx
self.body.append(self.starttag(node, 'table', CLASS='docutils'))
# <big>? Really?
def visit_desc_parameterlist(self, node):
self.body.append('(')
self.first_param = 1
self.param_separator = node.child_text_separator
def depart_desc_parameterlist(self, node):
self.body.append(')')
if sphinx_ver < '1.0.8':
#
# Don't apply smartypants to literal blocks
#
def visit_literal_block(self, node):
self.no_smarty += 1
SmartyPantsHTMLTranslator.visit_literal_block(self, node)
def depart_literal_block(self, node):
SmartyPantsHTMLTranslator.depart_literal_block(self, node)
self.no_smarty -= 1
#
# Turn the "new in version" stuff (versionadded/versionchanged) into a
# better callout -- the Sphinx default is just a little span,
# which is a bit less obvious that I'd like.
#
# FIXME: these messages are all hardcoded in English. We need to change
# that to accomodate other language docs, but I can't work out how to make
# that work.
#
version_text = {
'deprecated': 'Deprecated in Django %s',
'versionchanged': 'Changed in Django %s',
'versionadded': 'New in Django %s',
}
def visit_versionmodified(self, node):
self.body.append(
self.starttag(node, 'div', CLASS=node['type'])
)
title = "%s%s" % (
self.version_text[node['type']] % node['version'],
len(node) and ":" or "."
)
self.body.append('<span class="title">%s</span> ' % title)
def depart_versionmodified(self, node):
self.body.append("</div>\n")
# Give each section a unique ID -- nice for custom CSS hooks
def visit_section(self, node):
old_ids = node.get('ids', [])
node['ids'] = ['s-' + i for i in old_ids]
node['ids'].extend(old_ids)
SmartyPantsHTMLTranslator.visit_section(self, node)
node['ids'] = old_ids
def parse_django_admin_node(env, sig, signode):
command = sig.split(' ')[0]
env._django_curr_admin_command = command
title = "django-admin.py %s" % sig
signode += addnodes.desc_name(title, title)
return sig
def parse_django_adminopt_node(env, sig, signode):
"""A copy of sphinx.directives.CmdoptionDesc.parse_signature()"""
from sphinx.domains.std import option_desc_re
count = 0
firstname = ''
for m in option_desc_re.finditer(sig):
optname, args = m.groups()
if count:
signode += addnodes.desc_addname(', ', ', ')
signode += addnodes.desc_name(optname, optname)
signode += addnodes.desc_addname(args, args)
if not count:
firstname = optname
count += 1
if not count:
for m in simple_option_desc_re.finditer(sig):
optname, args = m.groups()
if count:
signode += addnodes.desc_addname(', ', ', ')
signode += addnodes.desc_name(optname, optname)
signode += addnodes.desc_addname(args, args)
if not count:
firstname = optname
count += 1
if not firstname:
raise ValueError
return firstname
class DjangoStandaloneHTMLBuilder(StandaloneHTMLBuilder):
"""
Subclass to add some extra things we need.
"""
name = 'djangohtml'
def finish(self):
super(DjangoStandaloneHTMLBuilder, self).finish()
if json is None:
self.warn("cannot create templatebuiltins.js due to missing simplejson dependency")
return
self.info(bold("writing templatebuiltins.js..."))
xrefs = self.env.domaindata["std"]["objects"]
templatebuiltins = {
"ttags": [n for ((t, n), (l, a)) in xrefs.items()
if t == "templatetag" and l == "ref/templates/builtins"],
"tfilters": [n for ((t, n), (l, a)) in xrefs.items()
if t == "templatefilter" and l == "ref/templates/builtins"],
}
outfilename = os.path.join(self.outdir, "templatebuiltins.js")
f = open(outfilename, 'wb')
f.write('var django_template_builtins = ')
json.dump(templatebuiltins, f)
f.write(';\n')
f.close();
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

+17
View File
@@ -0,0 +1,17 @@
.menuselection {
color: white;
background: #2c3e50;
padding: 3px;
}
.document a.internal {
text-decoration: none;
border-bottom: 1px dotted #707070;
}
.document a.internal:visited {
color: #2980B9;
text-decoration: none;
border-bottom: 1px dotted #707070;
}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 KiB

After

Width:  |  Height:  |  Size: 6.6 MiB

-16
View File
@@ -1,16 +0,0 @@
<h3>Support</h3>
<p>
<a href='http://www.mayan-edms.com/providers/'>Consulting and support plans are available, click here</a>.
</p>
<hr />
<p>
Or consider supporting Mayan EDMS by contributing to its development. (US tax payers, please note this contribution is not tax deductible).
</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="3PXN336XFXQNN">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" style="display: none !important;">
</form>
<hr />
+41
View File
@@ -0,0 +1,41 @@
<style>
.wy-body-for-nav #message-area {
color: #b3b3b3;
margin: 1em 2em 1em 1em;
}
#message-area {
border: 1px dotted #2980B9;
padding: .5em;
margin: 1em 0;
text-align: center;
}
</style>
<div id="message-area">
<h3>Get the book!</h3>
<a href="https://www.mayan-edms.com/book/">
<img src="{{ pathto('_static/book_cover.jpg', 1) }}" />
</a>
<hr />
<p>
On-site consulting and support plans are available, <a href='https://www.mayan-edms.com/support/'>click here</a>.
</p>
<hr />
<p>
Or consider donating to support the continued development of the project.
</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="3PXN336XFXQNN">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" style="display: none !important;">
</form>
</div>
+8
View File
@@ -0,0 +1,8 @@
from __future__ import unicode_literals
def get_source_read_callback(substitutions):
def global_substitution_function(app, docname, source):
for old, new in substitutions:
source[0] = source[0].replace(old, new)
return global_substitution_function
+84
View File
@@ -0,0 +1,84 @@
====================
Access control lists
====================
Besides the permissions system explained in :doc:`../chapters/permissions`,
Mayan EDMS provides per object permission granting. This feature is used to
grant a permission to a role, but this permission can only be executed for a
limited number of objects (documents, folders, tags) instead of being
effective system-wide.
.. blockdiag::
blockdiag {
default_shape = roundedbox
document [ label = 'Document' ];
role [ label = 'Role' ];
permission [ label = 'Permission' ];
role -> permission -> document;
}
Example:
.. blockdiag::
blockdiag {
default_shape = roundedbox
document [ label = '2015 Payroll report.txt', width=200 ];
role [ label = 'Accountants' ];
permission [ label = 'View document' ];
role -> permission -> document;
}
In this scenario only users in groups belonging to the ``Accountants`` role
would be able to view the ``2015 Payroll report.txt`` document.
Inherited access control
========================
It is also possible to grant a permission to a role for a specific document
type (:doc:`../chapters/document_types`). Under this scheme all users in
groups belonging to that role will inherit that permission for all documents
of that type.
.. blockdiag::
blockdiag {
default_shape = roundedbox
document_type [ label = 'Document type' ];
role [ label = 'Role' ];
permission [ label = 'Permission' ];
documents [shape = "note", stacked];
role -> permission -> document_type ;
document_type -> documents [folded, label = "inherit" ];
}
Example:
.. blockdiag::
blockdiag {
default_shape = roundedbox
document_type [ label = 'Payroll reports', width=200 ];
role [ label = 'Accountants' ];
permission [ label = 'View document' ];
documents [shape = "note", stacked, label="payroll_report*.pdf" ];
role -> permission -> document_type ;
document_type -> documents [folded, label = "inherit" ];
}
The role ``Accountants`` is given the permission ``document view`` for the
document type ``Payroll reports``. Now all users in groups belonging to the
``Accountants`` role can view all documents of the type ``Payroll reports``
without needing to have that permissions granted for each particular
``Payroll reports`` type document.
If access control for the ``Payroll reports`` documents needs to be updated it
only needs to be done for the document type and not for each document of the type
``Payroll reports``.
+18
View File
@@ -0,0 +1,18 @@
=======
Backups
=======
To backup your install of Mayan EDMS just copy the ``media`` folder and
the database content.
If you are using the default storage backend, the ``media`` should be located
at |MAYAN_MEDIA_ROOT|::
sudo tar -zcvf backup.tar.gz |MAYAN_MEDIA_ROOT|
To dump the content of your database manager refer to the documentation chapter
regarding database data "dumping".
- PostgreSQL: https://www.postgresql.org/docs/current/backup-dump.html
- MySQL: https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
+12
View File
@@ -0,0 +1,12 @@
========
Cabinets
========
Cabinets are a multi-level method to organize documents. Each cabinet can
contain documents as well as other sub level cabinets.
With a cabinet structure created, the next step is to add documents to them.
Documents can also be added in bulk to one or more cabinets from any view
that lists documents.
+273
View File
@@ -0,0 +1,273 @@
.. _deployment_basic:
=================
Direct deployment
=================
Mayan EDMS should be deployed like any other Django_ project and
preferably using virtualenv_. Below are some ways to deploy and use Mayan EDMS.
Being a Django_ and a Python_ project, familiarity with these technologies is
recommended to better understand why Mayan EDMS does some of the things it
does.
Compilers and development libraries will be installed to compile runtime
libraries. LibreOffice and Poppler utils will also be installed as they are
used to convert document files. Supervisor (https://supervisord.org/), a
Process Control System, will be used to monitor and keep all Mayan processes
running.
Basic deployment
================
This setup uses less memory and CPU resources at the expense of some speed.
For another setup that offers more performance and scalability refer to the
`Advanced deployment`_ below.
#. Install binary dependencies:
If using a Debian_ or Ubuntu_ based Linux distribution, get the executable
requirements using:
.. code-block:: bash
sudo apt-get install exiftool g++ gcc ghostscript gnupg1 graphviz \
libfuse2 libjpeg-dev libmagic1 libpq-dev libpng-dev libreoffice \
libtiff-dev poppler-utils postgresql python3-dev python3-virtualenv
redis-server sane-utils supervisor tesseract-ocr zlib1g-dev -y
.. note::
Platforms with the ARM CPU might also need additional requirements:
.. code-block:: bash
sudo apt-get install libffi-dev libssl-dev -y
#. Create the user account for the installation:
This will create an unprivileged user account that is also unable to login:
.. code-block:: bash
sudo adduser mayan --disabled-password --disabled-login --gecos ""
#. Create the parent directory where the project will be deployed:
``/opt/`` is a good choice as it is meant is for "software and add-on packages
that are not part of the default installation". (https://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/opt.html).
Create the ``/opt`` directory if it doesn't already exists:
.. code-block:: bash
sudo mkdir /opt
#. Create the Python virtual environment:
This will keep all the Python packages installed here isolated from the rest
of the Python packages in the system:
.. code-block:: bash
sudo virtualenv |MAYAN_INSTALLATION_DIRECTORY| -p /usr/bin/python3
#. Make the mayan user the owner of the installation directory:
.. code-block:: bash
sudo chown mayan:mayan |MAYAN_INSTALLATION_DIRECTORY| -R
#. Install Mayan EDMS from PyPI:
.. code-block:: bash
sudo -u mayan |MAYAN_PIP_BIN| install --no-use-pep517 mayan-edms
#. Install the Python client for PostgreSQL and Redis:
.. code-block:: bash
sudo -u mayan |MAYAN_PIP_BIN| install --no-use-pep517 psycopg2==|PYTHON_PSYCOPG2_VERSION| redis==|PYTHON_REDIS_VERSION|
.. note::
Platforms with the ARM CPU might also need additional requirements:
.. code-block:: bash
sudo -u mayan |MAYAN_PIP_BIN| install --no-use-pep517 psutil==|PYTHON_PSUTIL_VERSION|
#. Create the database for the installation:
.. code-block:: bash
sudo -u postgres psql -c "CREATE USER mayan WITH password 'mayanuserpass';"
sudo -u postgres createdb -O mayan mayan
#. Initialize the project:
This step will create all the database structures, download static media files
like JavaScript libraries and HTML frameworks, and create and initial admin
account with a random password.
.. note::
For simplicity, the ``MAYAN_MEDIA_ROOT`` folder is set to be a subfolder
of the installation. If you want to keep your files separated from
the installation files, change the value of the ``MAYAN_MEDIA_ROOT``
variable in this and all subsequent steps. Be sure to first create the
folder and give ownership of it to the ``mayan`` user with the ``chown``
command.
.. warning::
If this step is interrupted, even if it is later resumed, will
cause the automatic admin user to not be created in some cases. Make
sure all environment variables and values are correct. If this
happens, refer to the troubleshooting chapters:
:ref:`troubleshooting-autoadmin-account` and
:ref:`troubleshooting-admin-password`.
.. code-block:: bash
sudo -u mayan MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'127.0.0.1'}}" \
MAYAN_MEDIA_ROOT=|MAYAN_MEDIA_ROOT| \
|MAYAN_BIN| initialsetup
#. Collect the static files:
This step merges and compressed static media files so they can be served more
effectively.
.. code-block:: bash
sudo -u mayan MAYAN_MEDIA_ROOT=|MAYAN_MEDIA_ROOT| \
|MAYAN_BIN| preparestatic --noinput
#. Create the supervisor file at ``|MAYAN_SUPERVISOR_CONF|``:
.. code-block:: bash
sudo -u mayan MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'127.0.0.1'}}" \
MAYAN_MEDIA_ROOT=|MAYAN_MEDIA_ROOT| \
|MAYAN_BIN| platformtemplate supervisord | sudo sh -c "cat > |MAYAN_SUPERVISOR_CONF|"
#. Configure Redis:
Configure Redis to discard data when it runs out of memory, not save its
database and only keep 2 database:
.. code-block:: bash
sudo echo "maxmemory-policy allkeys-lru" >> /etc/redis/redis.conf
sudo echo "save \"\"" >> /etc/redis/redis.conf
sudo echo "databases 2" >> /etc/redis/redis.conf
sudo systemctl restart redis
#. Enable and restart the services [1_]:
.. code-block:: bash
sudo systemctl enable supervisor
sudo systemctl restart supervisor
#. Cleaning up:
The following operating system dependencies are only needed during
installation and can be removed.
.. code-block:: bash
sudo apt-get remove --purge libjpeg-dev libpq-dev libpng-dev libtiff-dev zlib1g-dev
.. _deployment_advanced:
Advanced deployment
===================
This variation uses RabbitMQ as the message broker. RabbitMQ consumes more
memory but scales to thousands of messages per second. RabbitMQ messages are also
persistent by default, this means that pending tasks are not lost in the case
of a restart or power failure. The Gunicorn workers are increased to 3.
#. Install RabbitMQ:
If using a Debian_ or Ubuntu_ based Linux distribution, get the executable
requirements using:
.. code-block:: bash
sudo apt-get install rabbitmq-server -y
#. Install the Python client for RabbitMQ:
.. code-block:: bash
sudo -u mayan |MAYAN_PIP_BIN| install --no-use-pep517 amqp==|PYTHON_AMQP_VERSION|
#. Create the RabbitMQ user and vhost:
.. code-block:: bash
sudo rabbitmqctl add_user mayan mayanrabbitmqpassword
sudo rabbitmqctl add_vhost mayan
sudo rabbitmqctl set_permissions -p mayan mayan ".*" ".*" ".*"
#. Edit the supervisor file at ``|MAYAN_SUPERVISOR_CONF|``:
Replace (paying attention to the comma at the end):
.. code-block:: ini
MAYAN_CELERY_BROKER_URL="redis://127.0.0.1:6379/0",
with:
.. code-block:: ini
MAYAN_CELERY_BROKER_URL="amqp://mayan:mayanrabbitmqpassword@localhost:5672/mayan",
increase the number of Gunicorn workers to 3 in the line (``-w 2`` section):
.. code-block:: ini
command = |MAYAN_GUNICORN_BIN| -w 2 mayan.wsgi --max-requests 1000 --max-requests-jitter 50 --worker-class gevent --bind 0.0.0.0:8000 --timeout 120
remove the concurrency limit (or increase it) of the fast worker (remove ``--concurrency=1``).
#. Restart the services:
.. code-block:: bash
sudo supervisorctl reread
sudo supervisorctl restart all
[1]: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740
.. _Debian: https://www.debian.org/
.. _Django: https://www.djangoproject.com/
.. _Python: https://www.python.org/
.. _SQLite: https://www.sqlite.org/
.. _Ubuntu: http://www.ubuntu.com/
.. _virtualenv: http://www.virtualenv.org/en/latest/index.html
.. _1: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740
+247
View File
@@ -0,0 +1,247 @@
==================================================
Mayan EDMS Entity Contributor Assignment Agreement
==================================================
Thank you for your interest in contributing to Mayan EDMS ("We" or "Us").
This contributor agreement ("Agreement") documents the rights granted by
contributors to Us. To make this document effective, please print it, sign it
(by copyright holder or authorized party) and send it to Us by email to
caa@mayan-edms.com. This is a legally binding document, so please read it
carefully before agreeing to it. The Agreement may cover more than one
software project managed by Us.
1. Definitions
==============
"You" means any Legal Entity on behalf of whom a Contribution has been received
by Us. "Legal Entity" means an entity which is not a natural person.
"Affiliates" means other Legal Entities that control, are controlled by, or
under common control with that Legal Entity. For the purposes of this
definition, "control" means (i) the power, direct or indirect, to cause the
direction or management of such Legal Entity, whether by contract or otherwise,
(ii) ownership of fifty percent (50%) or more of the outstanding shares or
securities which vote to elect the management or other persons who direct such
Legal Entity or (iii) beneficial ownership of such entity.
"Contribution" means any work of authorship that is Submitted by You to Us in
which You own or assert ownership of the Copyright. We cannot accept
contributions for which you do not own the Copyright or for which you don't
have the necessary legal power to transfer.
"Copyright" means all rights protecting works of authorship owned or controlled
by You or Your Affiliates, including copyright, moral and neighboring rights,
as appropriate, for the full term of their existence including any extensions
by You.
"Material" means the work of authorship which is made available by Us to third
parties. When this Agreement covers more than one software project, the
Material means the work of authorship to which the Contribution was Submitted.
After You Submit the Contribution, it may be included in the Material.
"Submit" means any form of electronic, verbal, or written communication sent
to Us or our representatives, including but not limited to electronic mailing
lists, source code control systems, and issue tracking systems that are managed
by, or on behalf of, Us for the purpose of discussing and improving the
Material, but excluding communication that is conspicuously marked or otherwise
designated in writing by You as "Not a Contribution."
"Submission Date" means the date on which You Submit a Contribution to Us.
"Effective Date" means the date You execute this Agreement or the date You
first Submit a Contribution to Us, whichever is earlier.
2. Grant of Rights
==================
2.1 Copyright Assignment
------------------------
a. At the time the Contribution is Submitted, You assign to Us all right, title,
and interest worldwide in all Copyright covering the Contribution; provided
that this transfer is conditioned upon compliance with Section 2.3.
b. To the extent that any of the rights in Section 2.1(a) cannot be assigned by
You to Us, You grant to Us a perpetual, worldwide, exclusive, royalty-free,
transferable, irrevocable license under such non-assigned rights, with rights
to sublicense through multiple tiers of sublicensees, to practice such
non-assigned rights, including, but not limited to, the right to reproduce,
modify, display, perform and distribute the Contribution; provided that this
license is conditioned upon compliance with Section 2.3.
c. To the extent that any of the rights in Section 2.1(a) can neither be
assigned nor licensed by You to Us, You irrevocably waive and agree never to
assert such rights against Us, any of our successors in interest, or any of
our licensees, either direct or indirect; provided that this agreement not
to assert is conditioned upon compliance with Section 2.3.
d. Upon such transfer of rights to Us, the Contribution will be licenses under
the terms of the Material.
2.2 Patent License
------------------
For patent claims including, without limitation, method, process, and apparatus
claims which You or Your Affiliates own, control or have the right to grant,
now or in the future, You grant to Us a perpetual, worldwide, non-exclusive,
transferable, royalty-free, irrevocable patent license, with the right to
sublicense these rights to multiple tiers of sublicensees, to make, have made,
use, sell, offer for sale, import and otherwise transfer the Contribution and
the Contribution in combination with the Material (and portions of such
combination). This license is granted only to the extent that the exercise of
the licensed rights infringes such patent claims; and provided that this license
is conditioned upon compliance with Section 2.3.
2.3 Outbound License
--------------------
As a condition on the grant of rights in Sections 2.1 and 2.2, We agree to
license the Contribution only under the terms of the license or licenses which
We are using on the Submission Date for the Material (including any rights to
adopt any future version of a license if permitted).
2.4 Moral Rights
----------------
If moral rights apply to the Contribution, to the maximum extent permitted by
law, You waive and agree not to assert such moral rights against Us or our
successors in interest, or any of our licensees, either direct or indirect.
2.5 Our Rights
--------------
You acknowledge that We are not obligated to use Your Contribution as part of
the Material and may decide to include any Contribution We consider appropriate.
2.6 Reservation of Rights
-------------------------
Any rights not expressly assigned or licensed under this section are expressly
reserved by You.
3. Agreement
============
You confirm that:
a. You have the legal authority to enter into this Agreement.
b. You or Your Affiliates own the Copyright and patent claims covering the
Contribution which are required to grant the rights under Section 2.
c. The grant of rights under Section 2 does not violate any grant of rights
which You or Your Affiliates have made to third parties.
4. Disclaimer
=============
EXCEPT FOR THE EXPRESS WARRANTIES IN SECTION 3, THE CONTRIBUTION IS PROVIDED
"AS IS". MORE PARTICULARLY, ALL EXPRESS OR IMPLIED WARRANTIES INCLUDING,
WITHOUT LIMITATION, ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY DISCLAIMED BY YOU TO US
AND BY US TO YOU. TO THE EXTENT THAT ANY SUCH WARRANTIES CANNOT BE DISCLAIMED,
SUCH WARRANTY IS LIMITED IN DURATION TO THE MINIMUM PERIOD PERMITTED BY LAW.
5. Consequential Damage Waiver
==============================
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL YOU OR US
BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF ANTICIPATED SAVINGS, LOSS OF DATA,
INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL AND EXEMPLARY DAMAGES ARISING OUT
OF THIS AGREEMENT REGARDLESS OF THE LEGAL OR EQUITABLE THEORY (CONTRACT, TORT
OR OTHERWISE) UPON WHICH THE CLAIM IS BASED.
6. Miscellaneous
================
6.1 Jurisdiction
----------------
This Agreement will be governed by and construed in accordance with the laws of
Puerto Rico excluding its conflicts of law provisions. Under certain circumstances,
the governing law in this section might be superseded by the United Nations
Convention on Contracts for the International Sale of Goods ("UN Convention")
and the parties intend to avoid the application of the UN Convention to this
Agreement and, thus, exclude the application of the UN Convention in its
entirety to this Agreement.
6.2 Acceptance
--------------
This Agreement sets out the entire agreement between You and Us for Your
Contributions to Us and overrides all other agreements or understandings.
6.3 Third parties
-----------------
If You or We assign the rights or obligations received through this Agreement
to a third party, as a condition of the assignment, that third party must
agree in writing to abide by all the rights and obligations in the Agreement.
6.4 Unmet responsibilities
--------------------------
The failure of either party to require performance by the other party of any
provision of this Agreement in one situation shall not affect the right of a
party to require such performance at any time in the future. A waiver of
performance under a provision in one situation shall not be considered a
waiver of the performance of the provision in the future or a waiver of the
provision in its entirety.
6.5 Continuation
----------------
If any provision of this Agreement is found void and unenforceable, such
provision will be replaced to the extent possible with a provision that comes
closest to the meaning of the original provision and which is enforceable.
The terms and conditions set forth in this Agreement shall apply
notwithstanding any failure of essential purpose of this Agreement or any
limited remedy to the maximum extent possible under law.
::
Name: _________________________________________________
Email: ________________________________________________
Address: ______________________________________________
Address (cont): _______________________________________
Country: ______________________________________________
Phone number: _________________________________________
Fax number: ___________________________________________
_______________________________________________________
Signature
Mayan EDMS Entity CAA Version 1.0 April 8, 2018
@@ -0,0 +1,243 @@
======================================================
Mayan EDMS Individual Contributor Assignment Agreement
======================================================
Thank you for your interest in contributing to Mayan EDMS ("We" or "Us").
This contributor agreement ("Agreement") documents the rights granted by
contributors to Us. To make this document effective, please print it, sign it
(by copyright holder or authorized party) and send it to Us by email to
caa@mayan-edms.com. This is a legally binding document, so please read it
carefully before agreeing to it. The Agreement may cover more than one
software project managed by Us.
1. Definitions
==============
"You" means the individual who Submits a Contribution to Us.
"Contribution" means any work of authorship that is Submitted by You to Us
in which You own or assert ownership of the Copyright. We cannot accept
contributions for which you do not own the Copyright or for which you don't
have the necessary legal power to transfer.
"Copyright" means all rights protecting works of authorship owned or
controlled by You, including copyright, moral and neighboring rights,
as appropriate, for the full term of their existence including any extensions
by You.
"Material" means the work of authorship which is made available by Us to third
parties. When this Agreement covers more than one software project, the Material
means the work of authorship to which the Contribution was Submitted. After
You Submit the Contribution, it may be included in the Material.
"Submit" means any form of electronic, verbal, or written communication
sent to Us or our representatives, including but not limited to
electronic mailing lists, source code control systems, and issue tracking systems
that are managed by, or on behalf of, Us for the purpose of discussing and
improving the Material, but excluding communication that is conspicuously marked
or otherwise designated in writing by You as "Not a Contribution."
"Submission Date" means the date on which You Submit a Contribution to Us.
"Effective Date" means the date You execute this Agreement or the date You first
Submit a Contribution to Us, whichever is earlier.
2. Grant of Rights
==================
2.1 Copyright Assignment
------------------------
a. At the time the Contribution is Submitted, You assign to Us all right,
title, and interest worldwide in all Copyright covering the Contribution;
provided that this transfer is conditioned upon compliance with Section 2.3.
b. To the extent that any of the rights in Section 2.1(a) cannot be assigned
by You to Us, You grant to Us a perpetual, worldwide, exclusive, royalty-free,
transferable, irrevocable license under such non-assigned rights, with rights
to sublicense through multiple tiers of sublicensees, to practice such
non-assigned rights, including, but not limited to, the right to reproduce,
modify, display, perform and distribute the Contribution; provided that
this license is conditioned upon compliance with Section 2.3.
c. To the extent that any of the rights in Section 2.1(a) can neither be
assigned nor licensed by You to Us, You irrevocably waive and agree never to
assert such rights against Us, any of our successors in interest, or any of
our licensees, either direct or indirect; provided that this agreement not
to assert is conditioned upon compliance with Section 2.3.
d. Upon such transfer of rights to Us, the Contribution will be licenses under
the terms of the Material.
2.2 Patent License
------------------
For patent claims including, without limitation, method, process, and apparatus
claims which You own, control or have the right to grant, now or in the future,
You grant to Us a perpetual, worldwide, non-exclusive, transferable, royalty-free,
irrevocable patent license, with the right to sublicense these rights to multiple
tiers of sublicensees, to make, have made, use, sell, offer for sale, import and
otherwise transfer the Contribution and the Contribution in combination with
the Material (and portions of such combination). This license is granted only
to the extent that the exercise of the licensed rights infringes such patent claims;
and provided that this license is conditioned upon compliance with Section 2.3.
2.3 Outbound License
--------------------
As a condition on the grant of rights in Sections 2.1 and 2.2, We agree to
license the Contribution only under the terms of the license or licenses which
We are using on the Submission Date for the Material (including any rights to
adopt any future version of a license if permitted).
2.4 Moral Rights
----------------
If moral rights apply to the Contribution, to the maximum extent permitted by law,
You waive and agree not to assert such moral rights against Us or our successors
in interest, or any of our licensees, either direct or indirect.
2.5 Our Rights
--------------
You acknowledge that We are not obligated to use Your Contribution as part of
the Material and may decide to include any Contribution We consider appropriate.
2.6 Reservation of Rights
-------------------------
Any rights not expressly assigned or licensed under this section are expressly
reserved by You.
3. Agreement
============
You confirm that:
a. You have the legal authority to enter into this Agreement.
b. You own the Copyright and patent claims covering the Contribution which are
required to grant the rights under Section 2.
c. The grant of rights under Section 2 does not violate any grant of rights
which You have made to third parties, including Your employer. If You are an
employee, You have had Your employer approve this Agreement or sign the Entity
version of this document. If You are less than eighteen years old, please have
Your parents or guardian sign the Agreement.
4. Disclaimer
=============
EXCEPT FOR THE EXPRESS WARRANTIES IN SECTION 3, THE CONTRIBUTION IS PROVIDED
"AS IS". MORE PARTICULARLY, ALL EXPRESS OR IMPLIED WARRANTIES INCLUDING, WITHOUT
LIMITATION, ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY DISCLAIMED BY YOU TO US AND BY US
TO YOU. TO THE EXTENT THAT ANY SUCH WARRANTIES CANNOT BE DISCLAIMED, SUCH
WARRANTY IS LIMITED IN DURATION TO THE MINIMUM PERIOD PERMITTED BY LAW.
5. Consequential Damage Waiver
==============================
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL YOU OR US
BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF ANTICIPATED SAVINGS, LOSS OF DATA,
INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL AND EXEMPLARY DAMAGES ARISING OUT
OF THIS AGREEMENT REGARDLESS OF THE LEGAL OR EQUITABLE THEORY (CONTRACT, TORT
OR OTHERWISE) UPON WHICH THE CLAIM IS BASED.
6. Miscellaneous
================
6.1 Jurisdiction
----------------
This Agreement will be governed by and construed in accordance with the laws of
Puerto Rico excluding its conflicts of law provisions. Under certain circumstances,
the governing law in this section might be superseded by the United Nations
Convention on Contracts for the International Sale of Goods ("UN Convention")
and the parties intend to avoid the application of the UN Convention to this
Agreement and, thus, exclude the application of the UN Convention in its
entirety to this Agreement.
6.2 Acceptance
--------------
This Agreement sets out the entire agreement between You and Us for Your
Contributions to Us and overrides all other agreements or understandings.
6.3 Third parties
-----------------
If You or We assign the rights or obligations received through this Agreement
to a third party, as a condition of the assignment, that third party must
agree in writing to abide by all the rights and obligations in the Agreement.
6.4 Unmet responsibilities
--------------------------
The failure of either party to require performance by the other party of any
provision of this Agreement in one situation shall not affect the right of a
party to require such performance at any time in the future. A waiver of
performance under a provision in one situation shall not be considered a
waiver of the performance of the provision in the future or a waiver of the
provision in its entirety.
6.5 Continuation
----------------
If any provision of this Agreement is found void and unenforceable,
such provision will be replaced to the extent possible with a provision that
comes closest to the meaning of the original provision and which is enforceable.
The terms and conditions set forth in this Agreement shall apply notwithstanding
any failure of essential purpose of this Agreement or any limited remedy to
the maximum extent possible under law.
::
Name: _________________________________________________
Email: ________________________________________________
Address: ______________________________________________
Address (cont): _______________________________________
Country: ______________________________________________
Phone number: _________________________________________
Fax number: ___________________________________________
_______________________________________________________
Signature
Mayan EDMS Individual CAA Version 1.0 April 8, 2018
@@ -0,0 +1,243 @@
==============
Code structure
==============
Follow PEP8
-----------
Whenever possible, but don't obsess over things like line length:
.. code-block:: bash
$ flake8 --ignore=E501,E128,E122 |less
To perform automatic PEP8 checks, install flake8's git hook using:
.. code-block:: bash
$ flake8 --install-hook git
Imports
-------
Import order should be:
- Standard Python modules
- Installed Python modules
- Core Django modules
- Installed Django modules
- Mayan EDMS modules
- Local imports
Example:
.. code-block:: bash
from __future__ import absolute_import
# Standard Python library
import base64
# 3rd party installed Python libraries
import requests
# Django core modules
from django.db.models import Q
from django.template.defaultfilters import slugify
from django.utils.translation import ugettext
from django.utils.translation import ugettext_lazy as _
# 3rd party installed Django libraries
from rest_framework import APIView
# Mayan apps
from metadata.classes import MetadataClass
# Local app imports (relative)
from .conf.settings import (
AVAILABLE_INDEXING_FUNCTIONS,
MAX_SUFFIX_COUNT, SLUGIFY_PATHS
)
from .exceptions import MaxSuffixCountReached
from .filesystem import (
fs_create_index_directory, fs_create_document_link,
fs_delete_document_link, fs_delete_index_directory,
assemble_suffixed_filename
)
from .models import Index, IndexInstanceNode, DocumentRenameCount
All local app module imports are in relative form. Local app module name is to
be referenced as little as possible, unless required by a specific feature,
trick, restriction (e.g., Runtime modification of the module's attributes).
Incorrect:
.. code-block:: bash
# documents app views.py model
from documents.models import Document
Correct:
.. code-block:: bash
# documents app views.py model
from .models import Document
Dependencies
------------
Mayan EDMS apps follow a hierarchical model of dependency. Apps import from
their parents or siblings, never from their children. Think plugins. A parent
app must never assume anything about a possible existing child app. The
documents app and the Document model are the basic entities; they must never
import anything else. The common and main apps are the base apps.
Variables
---------
Naming of variables should follow a Major to Minor convention, usually
including the purpose of the variable as the first piece of the name, using
underscores as spaces. camelCase is not used in Mayan EDMS.
Examples:
Links:
.. code-block:: bash
link_document_page_transformation_list = ...
link_document_page_transformation_create = ...
link_document_page_transformation_edit = ...
link_document_page_transformation_delete = ...
Constants:
.. code-block:: bash
PERMISSION_SMART_LINK_VIEW = ...
PERMISSION_SMART_LINK_CREATE = ...
PERMISSION_SMART_LINK_DELETE = ...
PERMISSION_SMART_LINK_EDIT = ...
Classes:
.. code-block:: bash
class Document(models.Model):
class DocumentPage(models.Model):
class DocumentPageTransformation(models.Model):
class DocumentType(models.Model):
class DocumentTypeFilename(models.Model):
Strings
-------
Quotation character used in Mayan EDMS for strings is the single quote.
Double quote is used for multiple line comments or HTML markup.
Migrations
----------
Migrations should do only one thing (example: either create a table, move data
to a new table or remove an old table) to aid retrying on failure.
General
-------
Code should appear in their modules in alphabetic order or in their order of
importance if it makes more sense for the specific application. This makes
visual scanning easier on modules with a large number of imports, views or
classes. Class methods that return a value should be pretended with a
``get_`` to differentiate from an objects properties. When a variable refers
to a file it should be named as follows:
- filename: The files name and extension only.
- filepath: The entire path to the file including the filename.
- path: A path to a directory.
Flash messages should end with a period as applicable for the language.
Only exception is when the tail of the message contains an exceptions message
as passed directly from the exception object.
Steps to deploy a development version
=====================================
.. code-block:: bash
$ git clone |SOURCE_CODE_GIT|
$ cd mayan-edms
$ git checkout <Corresponding branch>
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
$ ./manage.py initialsetup
$ ./manage.py preparestatic
$ ./manage.py runserver
Debugging
=========
Mayan EDMS makes extensive use of Django's new
:django-docs:`logging capabilities <topics/logging>`.
By default debug logging for all apps is turned on. If you wish to customize
how logging is managed turn off automatic logging by setting
`COMMON_AUTO_LOGGING` to ``False`` and add the following lines to your
``settings/local.py`` file::
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(name)s %(process)d %(thread)d %(message)s'
},
'intermediate': {
'format': '%(name)s <%(process)d> [%(levelname)s] "%(funcName)s() %(message)s"'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'intermediate'
}
},
'loggers': {
'documents': {
'handlers':['console'],
'propagate': True,
'level':'DEBUG',
},
'common': {
'handlers':['console'],
'propagate': True,
'level':'DEBUG',
},
}
}
Likewise, to see the debug output of the ``tags`` app, just add the following inside the ``loggers`` block::
'tags': {
'handlers':['console'],
'propagate': True,
'level':'DEBUG',
},
@@ -0,0 +1,18 @@
============
Contributing
============
Mayan EDMS is under active development, and contributions are welcome.
If you have a feature request, suggestion or bug report, please open a new
issue on the `GitLab issue tracker`_. To submit patches, please send a merge
request on GitLab_.
.. _GitLab: |SOURCE_CODE_REPOSITORY|
.. _`GitLab issue tracker`: |SOURCE_CODE_ISSUES|
Contributing changes
====================
Follow the latest contributing guidelines outlined here:
|SOURCE_CODE_REPOSITORY|blob/master/CONTRIBUTING.md
@@ -0,0 +1,24 @@
=============
Documentation
=============
The documentation is written in `reStructured Text`_ format, processed with
Sphinx_, and resides in the ``docs`` directory. In order to build it, you will
first need to install the documentation editing dependencies with::
$ pip install -r requirements/documentation.txt
Then, to build an HTML version of the documentation, run the following command
from the **docs** directory::
$ make docs-serve
The generated documentation can be viewed by browsing to http://127.0.0.1:8000
or by browsing to the ``docs/_build/html`` directory.
You can also generate the documentation in formats other than HTML. Consult the
Sphinx_ documentation for more details.
.. _`reStructured Text`: http://docutils.sourceforge.net/rst.html
.. _Sphinx: http://sphinx.pocoo.org
+29
View File
@@ -0,0 +1,29 @@
==============
For developers
==============
- :doc:`philosophies`
- :doc:`code_structure`
- :doc:`documentation`
- :doc:`source_control`
- :doc:`contributing`
- :doc:`releases`
- :doc:`translations`
- :doc:`../../mercs/index`
- :doc:`caa_entity`
- :doc:`caa_individual`
.. toctree::
:hidden:
philosophies
code_structure
documentation
source_control
contributing
releases
translations
../../mercs/index
caa_entity
caa_individual
@@ -0,0 +1,29 @@
====================
Project philosophies
====================
How to think about Mayan EDMS when doing changes or adding new features;
why things are the way they are in Mayan EDMS:
- Functionality must be as market/sector independent as possible, code for the
95% of use cases.
- Each user must be able to configure and customize it to their needs after
install.
- Abstract as much as possible, each app must be an expert in just one thing,
for other things they should use the API/classes/functions of other apps.
- Assume as little as possible about anything outside the project
(hardware, OS, storage).
- Provide Python based abstraction so that a default install runs with a single
step.
- No hard dependencies on binaries unless there is no other choice.
- Provide “drivers” or switchable backends to allow users to fine tune the
installation.
- Call to binaries only when there is no other choice or the Python choices are
not viable/mature/efficient.
- Each app is as independent and self contained as possible. Exceptions, the
basic requirements: navigation, permissions, common, main.
- If an app is meant to be used by more than one other app, it should be as
generic as possible in regard to the project and another app will bridge the functionality.
- Example: since indexing (document_indexing) only applies to documents, the
app is specialized and depends on the documents app.
+173
View File
@@ -0,0 +1,173 @@
===================
Installable package
===================
Source file package
-------------------
This is the sequence of step used to produce an installable package:
1. Generate the packaged version (will produce dist/mayan-edms-x.y.z.tar.gz)::
$ make sdist
2. Do a test install::
$ cd /tmp
$ virtualenv venv
$ source venv/bin/activate
$ pip install <path of the Git repository>/dist/mayan-edms-x.y.z.tar.gz
$ mayan-edms.py initialsetup
$ mayan-edms.py preparestatic
$ mayan-edms.py runserver
Wheel package
-------------
1. Install the development requirements::
$ pip install -r requirements/development.txt
2. Create wheel package using the makefile::
$ make wheel
3. Do a test install::
$ cd /tmp
$ virtualenv venv
$ source venv/bin/activate
$ pip install <path of the Git repository>/dist/mayan_edms-x.y.z-py2-none-any.whl
$ mayan-edms.py initialsetup
$ mayan-edms.py preparestatic
$ mayan-edms.py runserver
Version numbering
=================
Mayan EDMS uses the Semantic Versioning (http://semver.org/) method to choose
version numbers along with Python's PEP-0440 (https://www.python.org/dev/peps/pep-0440/)
to format them.
X.YaN # Alpha release
X.YbN # Beta release
X.YrcN # Release Candidate
X.Y # Final release
Release checklist
=================
#. Check for missing migrations::
make check-missing-migrations
#. Synchronize translations::
make translations-pull
#. Compile translations::
make translations-compile
#. Update changelog.
#. Write release notes.
#. Scan the code with flake8 for simple style warnings.
#. Check README.rst format with::
python setup.py check -r -s
or with::
make check-readme
#. Bump version in ``mayan/__init__.py`` and ``docker/rootfs/version``::
make increase-version PART=<major, minor or micro>
#. Update requirements version in ``setup.py`` using:
::
make generate-setup
#. Commit as version bump.
#. Build source package and test:
::
make test-sdist-via-docker-ubuntu
#. Build wheel package and test:
::
make test-wheel-via-docker-ubuntu
#. Tag version:
::
git tag -a vX.Y.Z -m "Version X.Y.Z"
#. Generate set ``setup.py`` again to update the build number::
make generate-setup
#. Commit the new ``setup.py`` file.
#. Release the version using one of the two following methods: GitLab CI or
manual
Release using GitLab CI using the makefile
------------------------------------------
#. Use of the GitLab makefile targets: ``gitlab-release-all``,
``gitlab-release-docker``, ``gitlab-release-documentation``,
``gitlab-release-python``.
Release using GitLab CI manually
--------------------------------
#. Push the current brach:
::
git push
#. Push the new tags:
::
git push --tags
#. Delete the corresponding ``releases/`` branch:
::
git push origin :releases/<branch>
#. Push the current branch to the corresponding origin ``releases/`` branch:
::
git push origin <local branch>:releases/<branch>
Manual release
--------------
#. Build and upload a test release:
::
make release-test-via-docker-ubuntu
#. Build and upload a final release:
::
make release-via-docker-ubuntu
Other steps
-----------
#. Update the contrib/scripts/install/docker.sh values
#. Upload contrib/scripts/install/docker.sh to https://get.mayan-edms.com
@@ -0,0 +1,99 @@
==============
Source Control
==============
Mayan EDMS source is controlled with Git_.
The project is publicly accessible, hosted and can be cloned from **GitLab** using::
$ git clone |SOURCE_CODE_GIT|
Git branch structure
--------------------
Mayan EDMS follows a simplified model layout based on Vincent Driessen's
`Successful Git Branching Model`_ blog post.
``/versions/micro``
Working branch for the next bugfix release. Micro increment (third digit).
Only bug fixes, minor features, back-ported urgent features. This
branch is stable and safe for production.
``/versions/minor``
Working branch for the next minor release (second digit). New features,
occasional breakage. Not for production but should run in test
environment most of the time. This is the branch you will want to
try out if you want to check out new features.
``/versions/major``
Working branch for the next major release (first digit). New features,
incompatible changes to the user facing interfaces. Broken most of the
time, not for production and should only be cloned by developers
with experience with Mayan's development.
``master``
Current production release (|version|). Points to the latest version of
the latest series. Production quality code.
``features/``
Working branches for unfinished and unmerged feature. Likely unstable,
don't use in production. Once the feature is complete, it is merged
into one of the versions branches and deleted.
Special branches:
``releases/all``
Pushing code to this branch will trigger the build and release
a new Docker image, Documentation and Python package.
``releases/docker``
Pushing code to this branch will trigger the build and release
of a new Docker image to Docker Hub.
``releases/documentation``
Pushing code to this branch will trigger the build and release
of new documentation.
``releases/python``
Pushing code to this branch will trigger the build and release
of a new Python package to PyPI.
``nightly``
Pushing code to this branch will trigger the build and release
of a new Docker image based on development code to the GitLab image
repository only. The image will not be published to Docker Hub.
Each release is tagged separately using annotated Git tags.
When submitting patches, please place your code in its own ``feature/`` branch
prior to opening a Merge Request on |SOURCE_CODE_ISSUES|.
.. _Git: http://git-scm.org
.. _`Successful Git Branching Model`: http://nvie.com/posts/a-successful-git-branching-model/
Commit messages
---------------
#. Use English as the language for the commit messages.
#. Provide a subject line composed of a tag and a short explanation::
Indexing: Add document base property reindex
#. Keep the subject line to 50 or less characters.
#. Capitalize the subject line.
#. Don't end the subject line with a period, leave like a phrase in English.
#. Use active voice in the. Say what the commit will do when applied not what
you did::
Add new properties to the model.
Vs.
::
Added new properties to the model.
#. Limit the body of the commit to 72 characters.
#. When a commit fixes or improves an issue add the issue number in the commit
message. Either in the subject or in the body.
#. Sign commit messages.
#. Use explicit language even for minor commits. Don't do::
Fix typo
Use::
Document: Fix typo in label description
+30
View File
@@ -0,0 +1,30 @@
.. _docker-accessing-outside-data:
======================
Accessing outside data
======================
To use Mayan EDMS's staging folders or watch folders from Docker, the data
for these source must be made accessible to the container. This is done by
mounting the folders in the host computer to folders inside the container.
This is necessary because Docker containers do not have access to host data
on purpose. For example, to make a folder in the host accessible as a watch
folder, add the following to the Docker command line when starting the
container::
-v /opt/scanned_files:/scanned_files
The command line would look like this::
docker run ... -v /opt/scanned_files:/scanned_files mayanedms/mayanedms:latest
Now create a watch folder in Mayan EDMS using the path ``/scanned_files``
and the documents from the host folder ``/opt/scanned_files`` will be
automatically available. Use the same procedure to mount host folders to be
used as staging folders. In this example ``/scanned_files`` was used as the
container directory, but any path can be used as long as:
- the path not an already existing path
- the path is not used by any other program
- the path is a single level path
+47
View File
@@ -0,0 +1,47 @@
.. _docker_backups:
==================
Performing backups
==================
#. Document files
To backup the existing data, stop the image and copy the content of the volume.
For the example::
docker run -d --name mayan-edms --restart=always -p 80:8000 \
-v /docker-volumes/mayan:/var/lib/mayan \
-v /opt/scanned_files:/scanned_files mayanedms/mayanedms:|DOCKER_MAYAN_IMAGE_VERSION|
That would be the ``/docker-volumes/mayan folder``::
sudo tar -zcvf backup.tar.gz /docker-volumes/mayan
sudo chown `whoami` backup.tar.gz
#. Database
If using an external PostgreSQL or MySQL database or database containers, these
too need to be backed up using their respective procedures. A simple solution
is to copy the entire database container volume after the container has
been stopped.
- PostgreSQL: https://www.postgresql.org/docs/current/backup-dump.html
- MySQL: https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
=======================
Restoring from a backup
=======================
#. Document files
Uncompress the backup archive in the original docker volume using::
sudo tar -xvzf backup.tar.gz -C /
#. Database
- PostgreSQL: https://www.postgresql.org/docs/current/backup-dump.html
- MySQL: https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
+25
View File
@@ -0,0 +1,25 @@
.. _docker_building:
==================
Building the image
==================
Clone the repository with::
git clone |SOURCE_CODE_GIT|
Change to the directory of the cloned repository::
cd mayan-edms
Execute Docker's build command using the provided makefile::
make docker-build
Or using an APT cache to speed up the build::
make docker-build-with-proxy APT_PROXY=172.17.0.1:3142
Replace the IP address `172.17.0.1` with the IP address of the computer
running the APT proxy and caching service.
+10
View File
@@ -0,0 +1,10 @@
.. _docker_commands:
=================================
Executing commands on a container
=================================
To perform Mayan EDMS commands in a running container that will take all the
settings from the container, use the following command::
docker exec -ti <container name> /usr/local/bin/entrypoint.sh "/opt/mayan-edms/bin/mayan-edms.py <command>"
+21
View File
@@ -0,0 +1,21 @@
=====================
Customizing the image
=====================
If you just need to add a few Ubuntu or Python packages to your installation,
you can use the following environment variables:
``MAYAN_APT_INSTALLS``
Specifies a list of Ubuntu .deb packages to be installed via APT when the
container is first created. The installed packages are not lost when the image
is stopped. Example: To install the Tesseract OCR language packs for German
and Spanish add the following in your ``docker start`` command line::
-e MAYAN_APT_INSTALLS="tesseract-ocr-deu tesseract-ocr-spa"
``MAYAN_PIP_INSTALLS``
Specifies a list of Python packages to be installed via ``pip``. Packages will
be downloaded from the Python Package Index (https://pypi.python.org) by
default.
+30
View File
@@ -0,0 +1,30 @@
.. _docker_compose:
====================
Using Docker compose
====================
To deploy a complete production stack using the included Docker compose file
execute::
docker-compose -f docker-compose.yml up -d
This Docker compose file will provision four containers:
- Postgres as the database
- Redis as the Celery result storage
- RabbitMQ as the Celery broker
- Mayan EDMS using the above service containers
To stop the stack use::
docker-compose -f docker-compose.yml stop
The stack will also create four volumes to store the data of each container.
These are:
- mayan_app - The Mayan EDMS data container, normally called `mayan_data` when not using Docker compose.
- mayan_broker - The broker volume, in this case RabbitMQ.
- mayan_db - The database volume, in this case Postgres.
- mayan_results - The celery result backend volume, in this case Redis.
+12
View File
@@ -0,0 +1,12 @@
.. _docker_image_drivers:
================
Included drivers
================
The Docker image supports using Redis and RabbitMQ as result backends. For
databases, the image includes support for PostgreSQL and MySQL/MariaDB.
Support for additional brokers or databases may be added using the
``MAYAN_APT_INSTALL`` environment variable.
@@ -0,0 +1,63 @@
.. index:: Docker environment variables
.. _docker_environment_variables:
=====================
Environment Variables
=====================
The common set of settings can also be modified via environment variables when
using the Docker image. In addition to the common set of settings, some Docker
image specific environment variables are available.
``MAYAN_SETTINGS_MODULE``
Optional. Allows loading an alternate settings file.
``MAYAN_GUNICORN_TIMEOUT``
Optional. Changes the amount of time the frontend worker will wait for a
request to finish before raising a timeout error. The default is 120
seconds.
``MAYAN_GUNICORN_WORKERS``
Optional. This environment variable controls the number of frontend workers
that will be executed. If not specified the default is 2. For heavier loads,
user a higher number. A formula recommended for this setting is the number
of CPU cores + 1.
``MAYAN_WORKER_FAST_CONCURRENCY``
Optional. Changes the concurrency (number of child processes) of the Celery
worker consuming the queues in the fast (low latency, short tasks) category.
Default is 1. Use 0 to disable hardcoded concurrency and allow the Celery
worker to launch its default number of child processes (equal to the number
of CPUs detected).
``MAYAN_WORKER_MEDIUM_CONCURRENCY``
Optional. Changes the concurrency (number of child processes) of the Celery
worker consuming the queues in the medium (medium latency, long running tasks)
category. Default is 1. Use 0 to disable hardcoded concurrency and allow the
Celery worker to launch its default number of child processes (equal to the
number of CPUs detected).
``MAYAN_WORKER_SLOW_CONCURRENCY``
Optional. Changes the concurrency (number of child processes) of the Celery
worker consuming the queues in the slow (high latency, very long running tasks)
category. Default is 1. Use 0 to disable hardcoded concurrency and allow the
Celery worker to launch its default number of child processes (equal to the
number of CPUs detected).
``MAYAN_USER_UID``
Optional. Changes the UID of the ``mayan`` user internal to the Docker
container. Defaults to 1000.
``MAYAN_USER_GID``
Optional. Changes the GID of the ``mayan`` user internal to the Docker
container. Defaults to 1000.
+35
View File
@@ -0,0 +1,35 @@
.. index:: Docker
======
Docker
======
Docker is a container technology. Containers are a standard unit of software
that packages up code and all its dependencies.
- Installation: :doc:`install_simple` | :doc:`install_docker_network` | :doc:`docker_compose` | :doc:`start_stop`
- Setup: :doc:`environment_variables` | :doc:`drivers`
- Integration: :doc:`accessing_data`
- Development: :doc:`building` | :doc:`customizing` | :doc:`nightly`
- Administration: :doc:`backups` | :doc:`upgrading` | :doc:`commands`
.. toctree::
:hidden:
install_simple
install_docker_network
start_stop
environment_variables
drivers
accessing_data
backups
upgrading
building
customizing
docker_compose
nightly
commands
@@ -0,0 +1,67 @@
.. _docker_install_networked:
================================
Using a dedicated Docker network
================================
Use this method to avoid having to expose PostreSQL port to the host's network
or if you have other PostgreSQL instances but still want to use the default
port of 5432 for this installation.
#. Create the network:
.. code-block:: bash
docker network create mayan
#. Launch the PostgreSQL container with the network option and remove the
port binding (``-p 5432:5432``):
.. code-block:: bash
docker run \
-d \
--name mayan-edms-postgres \
--network=mayan \
--restart=always \
-e POSTGRES_USER=mayan \
-e POSTGRES_DB=mayan \
-e POSTGRES_PASSWORD=mayanuserpass \
-v /docker-volumes/mayan-edms/postgres:/var/lib/postgresql/data \
|DOCKER_POSTGRES_IMAGE_VERSION|
#. Launch the Redis container with the network option and remove the port
binding (``-p 6379:6379``):
.. code-block:: bash
docker run \
-d \
--name mayan-edms-redis \
--network=mayan \
|DOCKER_REDIS_IMAGE_VERSION| \
redis-server \
--databases \
"2" \
--maxmemory-policy \
allkeys-lru \
--save \
""
#. Launch the Mayan EDMS container with the network option and change the
database hostname to the PostgreSQL container name (``mayan-edms-postgres``)
instead of the IP address of the Docker host (``172.17.0.1``):
.. code-block:: bash
docker run \
-d \
--name mayan-edms \
--network=mayan \
--restart=always \
-p 80:8000 \
-e MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'mayan-edms-postgres'}}" \
-e MAYAN_CELERY_BROKER_URL="redis://mayan-edms-redis:6379/0" \
-e MAYAN_CELERY_RESULT_BACKEND="redis://mayan-edms-redis:6379/1" \
-v /docker-volumes/mayan-edms/media:/var/lib/mayan \
mayanedms/mayanedms:|DOCKER_MAYAN_IMAGE_VERSION|
+117
View File
@@ -0,0 +1,117 @@
.. _docker_install:
==========================
Simple Docker installation
==========================
#. Install Docker:
.. code-block:: bash
wget -qO- https://get.docker.com/ | sh
If you don't want run an automated script, follow the instructions outlined
in their documentation: https://docs.docker.com/install/
Once the Docker installation is finished, proceed to the link below to install
the Docker image for Mayan EDMS.
#. Download the Mayan EDMS Docker image:
With Docker properly installed, proceed to download the Mayan EDMS Docker
image using the command:
.. code-block:: bash
docker pull mayanedms/mayanedms:|DOCKER_MAYAN_IMAGE_VERSION|
#. Download the PostgreSQL Docker image:
.. code-block:: bash
docker pull |DOCKER_POSTGRES_IMAGE_VERSION|
#. Download the Redis Docker image:
.. code-block:: bash
docker pull |DOCKER_REDIS_IMAGE_VERSION|
#. Create and run a PostgreSQL container:
.. code-block:: bash
docker run \
-d \
--name mayan-edms-postgres \
--restart=always \
-p 5432:5432 \
-e POSTGRES_USER=mayan \
-e POSTGRES_DB=mayan \
-e POSTGRES_PASSWORD=mayanuserpass \
-v /docker-volumes/mayan-edms/postgres:/var/lib/postgresql/data \
|DOCKER_POSTGRES_IMAGE_VERSION|
The PostgreSQL container will have one database named ``mayan``, with an user
named ``mayan`` too, with a password of ``mayanuserpass``. The container will
expose its internal 5432 port (PostgreSQL's default port) via the host's
5432 port. The data of this container will reside on the host's
``/docker-volumes/mayan-edms/postgres`` folder.
#. Create and run a Redis container:
.. code-block:: bash
docker run \
-d \
--name mayan-edms-redis \
--restart=always \
-p 6379:6379 \
|DOCKER_REDIS_IMAGE_VERSION| \
redis-server \
--databases \
"2" \
--maxmemory-policy \
allkeys-lru \
--save \
""
The Redis container will have two databases, one for background task messages,
and the other to hold the results of those background tasks. Redis is
configure to not save its content to disk and to automatically clear up
memory.
#. Create and run a Mayan EDMS container:
.. code-block:: bash
docker run \
-d \
--name mayan-edms \
--restart=always \
-p 80:8000 \
-e MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'172.17.0.1'}}" \
-e MAYAN_CELERY_BROKER_URL="redis://172.17.0.1:6379/0" \
-e MAYAN_CELERY_RESULT_BACKEND="redis://172.17.0.1:6379/1" \
-v /docker-volumes/mayan-edms/media:/var/lib/mayan \
mayanedms/mayanedms:|DOCKER_MAYAN_IMAGE_VERSION|
The Mayan EDMS container will connect to the PostgreSQL container via the
``172.17.0.1`` IP address (the Docker host's default IP address). It will
connect using the ``django.db.backends.postgresql`` database driver and
connect to the ``mayan`` database using the ``mayan`` user with the password
``mayanuserpass``. The files of the container will be store in the
host's ``/docker-volumes/mayan-edms/media`` folder. The container will
expose its web service running on port 8000 on the host's port 80.
The container will be available by browsing to ``http://localhost`` or to
the IP address of the computer running the container.
If another web server is running on port 80 use a different port in the
``-p`` option. For example: ``-p 81:8000``.
+12
View File
@@ -0,0 +1,12 @@
==============
Nightly images
==============
The continuous integration pipeline used for testing development builds also
produces a resulting Docker image. These are build automatically and their
stability is not guaranteed. They should never be used in production.
If you want to try out the Docker images the development uses or want a sneak
peek at the new features being worked on checkout the container registry at:
|SOURCE_CODE_REPOSITORY|container_registry
+13
View File
@@ -0,0 +1,13 @@
===================================
Stopping and starting the container
===================================
To stop the container use::
docker stop mayan-edms
To start the container again::
docker start mayan-edms
+30
View File
@@ -0,0 +1,30 @@
=========
Upgrading
=========
Upgrading a Mayan EDMS Docker container is actually a matter of stopping and
deleting the container, downloading the most recent version of the image and
starting a container again. The container will take care of updating the
database structure to the newest version if necessary.
**IMPORTANT!** Do not delete the volume storing the data, only the container.
Stop the container to be upgraded::
docker stop mayan-edms
Remove the container::
docker rm mayan-edms
Pull the new image version::
docker pull mayanedms/mayanedms:latest
Start the container again with the new image version::
docker run -d --name mayan-edms --restart=always -p 80:8000 -v /docker-volumes/mayan:/var/lib/mayan mayanedms/mayanedms:latest
+70
View File
@@ -0,0 +1,70 @@
==============
Document types
==============
The basic unit of data in Mayan EDMS is the **document type**. A document
type can be interpreted also as a document category, a document class, or a
document template. Every other aspect of the system will rely or be tied to
one or more document type. Create one document type for each type or class of
document you intend to upload into Mayan EDMS.
Document types need to be created before documents can be
uploaded. It is not possible to upload documents without assigning them a
document type.
Document types usually mirror the type of physical, paper document they
represent.
Example document types:
* Letter
* Invoice
* Timesheet
* Blueprint
.. blockdiag::
blockdiag {
default_shape = roundedbox
document_type [ label = 'each document type' ];
documents [ label = 'many documents' ];
document_type -> documents;
}
Examples:
.. blockdiag::
blockdiag {
default_shape = roundedbox
document_type [ label = 'Invoice' ];
documents_1 [ label = 'invoice_001.pdf', width=200 ];
documents_2 [ label = 'invoice_032.pdf', width=200 ];
document_type -> documents_1, documents_2;
}
.. blockdiag::
blockdiag {
default_shape = roundedbox
document_type [ label = 'Receipts' ];
documents_1 [ label = 'groceries_18-01-11.pdf', width=200 ];
documents_2 [ label = 'car_payment-17-01-02.png', width=200 ];
document_type -> documents_1, documents_2;
}
Settings and attributes are applied to document types and documents will
inherit those settings and attributes based on the document type they were
assigned when uploaded into Mayan EDMS. A document can only be of one
type at a given moment, but if needed, the type of a document can be changed.
Upon changing its type, the document will lose its previous settings and
attributes, and will inherit the settings and attributes of its new type.
+36
View File
@@ -0,0 +1,36 @@
============
File storage
============
The files are stored and placed under Mayan EDMS "control" to avoid
filename clashes each file gets renamed to its ``UUID`` (Universally Unique ID),
without extension, and stored in a simple flat arrangement in a directory.
.. blockdiag::
blockdiag {
default_shape = roundedbox
file [ label = 'mayan_1-1.pdf', width=120];
document [ label = 'mayan/media/document_storage/ab6c1cfe-8a8f-4a30-96c9-f54f606b9248', width=450];
file -> document [label = "upload"];
file -> document;
}
This doesn't stop access to the files but renaming, moving or updating
directly them is not recommended because it would throw the database out
of sync.
Because Mayan EDMS components are as decoupled from each other as possible,
storage in this case is decoupled and its behavior is controlled
not by the project but by the ``Storage`` module class. All the other
modules don't make any assumptions about how the actual document files are
stored. This way files can be saved locally, over the network or even across
the Internet and everything will still operate exactly the same.
The default file storage backend: ``storage.backends.filebasedstorage.FileBasedStorage``
is a simple backend that only supports paths and not IP addresses. In case you
are interested in using remote volumes to store documents (NFS, SAMBA), first
mount these volumes so that they appear as a directories to Mayan EDMS. For
direct support for remote volumes a custom backend would be needed such as those
provided by the Django Storages project (https://django-storages.readthedocs.org/en/latest/).
+125
View File
@@ -0,0 +1,125 @@
==============
Index examples
==============
Index of document types
=======================
.. admonition:: Permissions required
:class: warning
- The "Create new document indexes" permission is required for this action.
- The "Edit document indexes" permission is required for this action, globally
of via an ACL for a document index.
- The "Edit document types" permission is required for this action, globally
of via an ACL for a document type.
This index will create one level for each document type in the system and place
links to the document of each respective type.
#. Go to the :menuselection:`System --> Setup --> Indexes` menu.
#. Create a new index using :guilabel:`Actions` > :guilabel:`Create new`.
#. Give it a label to describe it, and an internal name. The internal name is
used when referencing this index in other parts of the system.
#. Press the :guilabel:`Template` link of the newly created index.
#. Select :guilabel:`New child node` to create a new level in which the
following template code will be entered.
::
{{ document.document_type }}
#. Save the template.
#. Click on :guilabel:`Document types` and associate this index with
existing document types in the system.
#. Finally go to :menuselection:`Tools --> Rebuild indexes` to execute the
index template. The rebuild process is only necessary when changes are
made to the index templates. Otherwise they update automatically whenever
a new document is uploaded or existing documents properties are modified.
#. A new index should appear under :menuselection:`Indexes` menu.
You can also program different behavior based on the different document types,
by use a comparison and a conditional statement. As the document_type itself
is not a string you cannot directly use that for that comparison. You will have
to use the label of the document type.
For example::
{% if document.document_type.label == "Invoice" or document.document_type.label == "Letter" %}
Correspondence
{% else %}
{{ document.document_type }}
{% endif %}
This will create and index level for each document type. Except for documents
of types "Invoice" and "Letter", these will now go into the level "Correspondence".
Index document by department, taken from the first character of the invoice number metadata
===========================================================================================
Requires one index node with the template::
{% if document.metadata_value_of.invoice_number.0 == "A" %}Accounting
{% if document.metadata_value_of.invoice_number.0 == "H" %}Human Resources
{% endif %}
Nested date index from a date contained in a metadata
=====================================================
Assuming the metadata type is named **date_issued** with a date format
of YYYY-MM-DD. The target is to have two levels: one for years and another
sub level for months.
**First level: Year**
::
{{ document.metadata_value_of.date_issued|slice:"0:4" }}
**Second level: Months**
::
{{ document.metadata_value_of.date_issued|slice:"5:7" }}
**Optional: Third level: Day**
::
{{ document.metadata_value_of.date_issued|slice:"8:10" }}
Index by OCR content
====================
This example indexes documents in a "quarterly report" level if they have the
fragment “quarterly report” in the OCR text::
{% if "quarterly report" in document.latest_version.ocr_content|join:" "|lower %}Quarterly reports{% endif %}
The same applies to text content extracted for the document::
{% if "quarterly report" in document.latest_version.content|join:" "|lower %}Quarterly reports{% endif %}
Index documents not found in any cabinet
========================================
::
{% if document.cabinets.count == 0 %}No Cabinets{% endif %}
Index documents not tagged
==========================
::
{% if document.tags.count == 0 %}No Tags{% endif %}
Index documents specifically, by the year of a metadata field otherwise by their uploaded year
==============================================================================================
::
{% for tag in document.tags.all %}{% if tag.label == "Taxes" %}{% if document.metadata_value_of.tax_year|length_is:"4" %}{{ document.metadata_value_of.tax_year }}{% else %}{{ document.date_added|date:"Y" }}{% endif %}{% endif %}{% endfor %}
+23
View File
@@ -0,0 +1,23 @@
.. index:: Indexes
================
Document indexes
================
Document indexes are a multi level structure similar to folder in a filesystem,
however the hierarchy of the levels is automatically created, updated, or deleted
based on rules set by the administrator.
- :doc:`indexes`
- :doc:`examples`
- :doc:`mirroring`
.. toctree::
:hidden:
indexes
mirroring
examples
+78
View File
@@ -0,0 +1,78 @@
===============
Index structure
===============
Indexes are an automatic method to hierarchically organize documents in
relation to their properties (:doc:`../metadata`, label, MIME type,
etc). To use indexes you need to first create an index template. Once created,
associate the index to one or more :doc:`../document_types`.
Index are hierarchical models so a tree template needs to be specified for them.
This tree template will contain references to document metadata or properties
that will be replaced with the actual value for those metadata or properties.
Example:
- Document type: ``Product sheet``
- Metadata type: ``Product year``, associated as a required metadata for the document type ``Product sheet``.
- Index: ``Product sheets per year``, and associated to the document type ``Product sheet``.
- Index slug: ``product-sheets-per-year``. Slugs are internal unique identifiers that can be used by other Mayan EDMS modules to reference each index.
- Index tree template as follows:
.. blockdiag::
blockdiag {
default_shape = roundedbox
span_width = 30;
index [ label = 'Product sheets per year', width=180 ];
root [ label = 'Root (Has document links? No)', width=450];
level_2 [ label = '{{ document.metadata_value_of.product_year }} (Has document links? Yes)', width=450];
group {
label = "Tree template";
color = "#dddddd";
style = dashed;
root; level_2;
}
index -> root
root -> level_2 [folded];
}
Now every time a new ``Product sheet`` is uploaded a hierarchical unit with the value
of the metadata type ``Product year`` is created and a link to the uploaded ``Product sheet`` added to it.
Example:
Suppose three ``Product sheets`` are uploaded with the following values as their
``Product year`` metadata: 2001, 2002, 2001 respectively. The result index
that will be generate based on the tree template would be as follows:
.. blockdiag::
blockdiag {
default_shape = roundedbox
index [ label = 'Product sheets per year', width=180 ];
year_1 [ label = '2001', width = 60 ];
year_2 [ label = '2002', width = 60 ];
document_1 [ label = 'Product A data sheet (2001)', width = 200 ];
document_2 [ label = 'Product B data sheet (2002)', width = 200 ];
document_3 [ label = 'Product C data sheet (2001)', width = 200 ];
group {
label = "Index content";
color = "#dddddd";
style = dashed;
year_1, year_2, document_1, document_2, document_3;
}
index -> year_1;
index -> year_2;
year_1 -> document_1;
year_2 -> document_2;
year_1 -> document_3;
}
+35
View File
@@ -0,0 +1,35 @@
=========
Mirroring
=========
Indexes can be exported as `FUSE <https://en.wikipedia.org/wiki/Filesystem_in_Userspace>`_
filesystems. Using the management command ``mountindex`` we could export the
previous example index as follows::
mkdir -p ~/indexes/products
mayan-edms.py mountindex product-sheets-per-year ~/indexes/products
The ``~/indexes/products`` directory will now have a directory and files structure
identical to that of the index. Once indexes are mounted with this command, they
behave like any other filesystem directory and can even be further shared
via the network with network file system software like
`Samba <https://www.samba.org/>`_ or
`NFS <https://en.wikipedia.org/wiki/Network_File_System>`_.
.. blockdiag::
blockdiag {
orientation = portrait
span_width = 200;
index [ label = 'Product sheets per year', width=180 ];
block_device [ height = 100, label = "Block device\n(Hard drive)", shape = flowchart.database ];
network [ label = "Network", shape = cloud ];
user [ label = "Users", shape = actor ];
index -> block_device [ label = "mirroring", fontsize = 8 ];
block_device -> network -> user;
}
Indexes and mirrored indexes are Read Only as they are generated as a result of
prior activities like document uploads, metadata changes.
+36
View File
@@ -0,0 +1,36 @@
=========
Languages
=========
The list of languages choices in the language dropdown used for documents is
based on the current ISO 639 list. This list can be quite extensive. To reduce
the number of languages available use the setting ``DOCUMENTS_LANGUAGE_CODES``,
and set it to a nested list of abbreviations. This setting can be found in the
:menuselection:`System --> Setup --> Settings --> Common` menu.
For example, to reduce the list to just English and Spanish use
::
DOCUMENTS_LANGUAGE_CODES = ('eng', 'spa')
The default language to appear on the dropdown can also be configured using::
DOCUMENTS_LANGUAGE = 'spa'
Use the correct ISO 639-3 language abbreviation (https://en.wikipedia.org/wiki/ISO_639)
as this code is used in several subsystems in Mayan EDMS such as the OCR app
to determine how to interpret the document.
If using the Docker image, these settings can also be passed to the container
as environment variables by prepending the ``MAYAN_`` suffix.
Example::
-e MAYAN_DOCUMENTS_LANGUAGE_CODES='["eng", "spa"]'
For more information check out the
:ref:`environment variables <environment_variables>` chapter of the
:doc:`../parts/settings` topic.
+21
View File
@@ -0,0 +1,21 @@
=================
Mailing documents
=================
Sending emails in Mayan EDMS is controlled by two different system depending on
the type of email being sent. These are administrative emails like password
reset emails and user emails sent from the application. To configure
administrative email for things like password reset check the topic:
:doc:`../parts/administration`
Application emails
==================
To allow users to send emails or documents from within the web interface,
Mayan EDMS provides its our own email system called Mailing Profiles.
Mailing Profiles support access control per user role and can use different
email backends.
Once created mailing profiles allow users to send email messages from
within the user interface containing either an URL link to the document or
the actual document as an attachment.
+26
View File
@@ -0,0 +1,26 @@
===========
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 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``
Once you create you own backend, in your local.py settings add the option
OCR_BACKEND and point it to your new OCR backend class path.
The default value of OCR_BACKEND is ``"ocr.backends.tesseract.Tesseract"``
To add support to OCR more languages when using Tesseract, install the
corresponding language file. If using a Debian based OS, this command will
display the available language files:
apt-cache search tesseract-ocr
If using the Docker image, pass the environment variable MAYAN_APT_INSTALLS
with the corresponding Tesseract language option. Example::
-e MAYAN_APT_INSTALLS='tesseract-ocr-deu'
+38
View File
@@ -0,0 +1,38 @@
==============
Password reset
==============
To use the password reset feature, administrative emails need to be configured.
These are sent by the system itself and not by the users. Their usage and
configuration is different than the
:doc:`email system used to share documents via email<../chapters/mailing>`.
Sending administrative emails
=============================
To be able to send password reset emails configure the Django email settings
via the :ref:`configuration file <configuration_file>`.
Example::
EMAIL_BACKEND: django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST: '<your smtp ip address or hostname>'
EMAIL_HOST_PASSWORD: '<your smtp password>'
EMAIL_HOST_USER: '<your smtp username>'
EMAIL_PORT: 25 # or 587 or your server's SMTP port
EMAIL_TIMEOUT:
EMAIL_USE_SSL: true
EMAIL_USE_TLS: false
To change the reference URL in the password reset emails on in the
default document mailing template modify the ``COMMON_PROJECT_URL`` setting.
For information on the different ways to change a setting check the
:doc:`../parts/settings` topic.
To test the email settings use the management command ``sendtestemail``.
Example::
mayan-edms.py sendtestemail myself@example.com
+30
View File
@@ -0,0 +1,30 @@
===========
Permissions
===========
Mayan EDMS provides very fine control over which actions users can
perform. Action control works by allowing ``roles``, that are composed of
``groups`` of ``users`` to be granted a ``permission`` such that the holder of
that permission can exercise it throughout the entire system.
.. blockdiag::
blockdiag {
orientation = portrait
default_shape = roundedbox
span_width = 240;
span_height = 100;
user [ label = 'Users' ];
group [ label = 'Groups' ];
role [ label = 'Roles' ];
permission [ label = 'Permissions' ];
user -> group -> role <- permission;
}
In other words, users themselves can't hold a permission, permissions are
granted only to roles. Users can't directly belong to a role, they can only
belong to a group. Groups can be members of roles. Roles are system permission
units and groups are business organizational units.
+18
View File
@@ -0,0 +1,18 @@
============
Quick labels
============
Quick labels are predetermined filenames that allow the quick renaming of
documents as they are uploaded or after they have been uploaded.
Quick labels are added and associated to a document type.
Example of quick label: Invoice, Receipt from X store, Purchase order.
It is possible to preserve the file extension when using quick labels.
Extensions are required for some operating system to be able to detect the
correct file type to access the content.
For example if a document file is named "file0001.pdf" and the quick label
"Receipt from X store" is applied, the resulting document label will be
"Receipt from X store.pdf".
+102
View File
@@ -0,0 +1,102 @@
========
REST API
========
Mayan EDMS provides an HTTP REST Application Program Interface (or API). This
API allows integration with 3rd party software using simple HTTP requests.
Several API authentication methods are provides: **Session**, **Token**,
and **HTTP Basic**.
The URL for the API can be found via the :menuselection:`Tools --> REST API`
menu. The API is also self-documenting. The live API documentation can be
found in the :menuselection:`Tools --> API Documentation (Swagger)` menu for
the Swagger version and in the
:menuselection:`Tools --> API Documentation (ReDoc)` menu for the ReDoc version.
The are a few ways to structure REST APIs. In the case of Mayan EDMS, API
endpoints are structured by resource type. Examples:
* /cabinets - To view or create new cabinets
* /cabinets/<id> - To view the details, edit, or delete an existing cabinet.
* /cabinets/<id>/documents - To view, add, or remove documents from an existing
cabinet.
* /cabinets/<id>/documents/<id> - To view, add, or remove one document from an
existing cabinet.
The API supports the HTTP verbs: **GET**, **POST**, **PUT**, **PATCH**,
and **DELETE**.
Example use
===========
Install Python Requests (http://docs.python-requests.org/en/master/)::
pip install requests
Get a list of document types::
import requests
requests.get('http://127.0.0.1:8000/api/document_types/', auth=('username', 'password')).json()
{u'count': 1,
u'next': None,
u'previous': None,
u'results': [{u'delete_time_period': 30,
u'delete_time_unit': u'days',
u'documents_count': 12,
u'documents_url': u'http://127.0.0.1:8000/api/document_types/1/documents/',
u'filenames': [],
u'id': 1,
u'label': u'Default',
u'trash_time_period': None,
u'trash_time_unit': None,
u'url': u'http://127.0.0.1:8000/api/document_types/1/'}]}
Upload a new document::
with open('test_document.pdf', mode='rb') as file_object:
requests.post('http://127.0.0.1:8000/api/documents/', auth=('username', 'password'), files={'file': file_object}, data={'document_type': 1}).json()
{u'description': u'',
u'document_type': 1,
u'id': 19,
u'label': u'test_document.pdf',
u'language': u'eng'}
Use API tokens to avoid sending the username and password on every request. Obtain a token by making a POST request to ``/api/auth/token/obtain/?format=json``::
requests.post('http://127.0.0.1:8000/api/auth/token/obtain/?format=json', data={'username': 'username', 'password': 'password'}).json()
{u'token': u'4ccbc35b5eb327aa82dc3b7c9747b578900f02bb'}
Add the API token to the request header::
headers = {'Authorization': 'Token 4ccbc35b5eb327aa82dc3b7c9747b578900f02bb'}
requests.get('http://127.0.0.1:8000/api/document_types/', headers=headers).json()
{u'description': u'',
u'document_type': 1,
u'id': 19,
u'label': u'test_document.pdf',
u'language': u'eng'}
Use sessions to avoid having to add the headers on each request::
session = requests.Session()
headers = {'Authorization': 'Token 4ccbc35b5eb327aa82dc3b7c9747b578900f02bb'}
session.headers.update(headers)
session.get('http://127.0.0.1:8000/api/document_types/')
{u'description': u'',
u'document_type': 1,
u'id': 19,
u'label': u'test_document.pdf',
u'language': u'eng'}
+126
View File
@@ -0,0 +1,126 @@
========
Settings
========
Mayan EDMS can be configure via environment variables or by setting files.
.. _environment_variables:
Via environment variables
=========================
To use environment variables, lookup the name of the setting you want to
override in the "Settings" menu. The "Settings" menu is located inside the
"Setup" main menu. To pass a value via an environment variable append
``"MAYAN_"`` to the name of the settings option. For example, to change
the number of documents displayed per page (``COMMON_PAGINATE_BY``, by default 40),
use::
export MAYAN_COMMON_PAGINATE_BY=10
Restart Mayan EDMS and the new value will take effect. The "Settings" menu
can be used to verify if the overridden setting value is being interpreted
correctly.
.. _configuration_file:
Via YAML configuration file
===========================
.. versionadded:: 3.1
It is possible to modify the different settings by creating or editing the
``media/config.yml`` file. This file is formatted in the YAML markup language
(http://yaml.org/). Here is an example of what the looks like::
DOCUMENT_PARSING_AUTO_PARSING: true
DOCUMENT_PARSING_PDFTOTEXT_PATH: /usr/bin/pdftotext
EMAIL_BACKEND: django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST: localhost
EMAIL_HOST_PASSWORD: ''
EMAIL_HOST_USER: ''
EMAIL_PORT: 25
EMAIL_TIMEOUT: null
EMAIL_USE_SSL: false
EMAIL_USE_TLS: false
FILE_UPLOAD_MAX_MEMORY_SIZE: 2621440
HOME_VIEW: common:home
Every time Mayan EDMS is able to start correctly it will copy the ``config.yml``
and create a backup copy in the same directory named ``config_backup.yml``.
This file is used to revert to the last know configuration file known
to be valid. You can revert manually by copy the file or by using the
``revertsettings`` management command from the command line.
Via Python settings files
=========================
Another way to configure Mayan EDMS and the one required when more extensive
setup is required, such as when using external Python libraries, is via
Python-style, settings files.
If Mayan EDMS was installed using the Python package a ``mayan_settings``
folder will created for this purpose. If you installed Mayan EDMS
according to the :doc:`../chapters/deploying` instructions provided in this
documentation your ``mayan_settings`` folder should be located in the directory:
``|MAYAN_MEDIA_ROOT|/mayan_settings/``.
If Mayan EDMS was installed using Docker, the ``mayan_settings`` folder
will be found inside the install Docker volume. If you installed Mayan EDMS
according to the :doc:`../chapters/docker/index` instructions provided in this
documentation your ``mayan_settings`` folder should be located in the directory:
``/docker-volumes/mayan/mayan_settings``.
Create a file with any valid name and a ``.py`` extension in the
``mayan_settings`` folder. The file must starts with a global import of
``mayan.settings.production``. In the form::
from mayan.settings.production import *
Now add the corresponding lines to override the default settings.
In the settings file, it is not necessary to prepend the string ``MAYAN_`` to
the setting option. For example, to change the number of documents displayed
per page (``COMMON_PAGINATE_BY``, by default 40),
use::
COMMON_PAGINATE_BY=10
versus::
export MAYAN_COMMON_PAGINATE_BY=10
when using the environment variable method.
For this example let's assume the file was saved with the name ``mysettings.py``.
The way used to tell Mayan EDMS to import this file will vary based on the
installation method.
For the :doc:`../chapters/deploying` method, the full import path will be
``mayan.media.mayan_settings.mysettings`` and can be passed via the
``--settings`` command line argument like this::
|MAYAN_BIN| runserver --settings=mayan.media.mayan_settings.mysettings
or via the ``DJANGO_SETTINGS_MODULE`` environment variable like this::
export DJANGO_SETTINGS_MODULE=mayan.media.mayan_settings.mysettings
To make the use of the custom Python setting file permanent, update the ``|MAYAN_SUPERVISOR_CONF|``
file. In the ``[supervisord]`` section, update the ``environment=`` value of
``DJANGO_SETTINGS_MODULE`` from the default ``mayan.settings.production`` to
``mayan.media.mayan_settings.mysettings``. Pay attention to the indentation of
the ``environment=`` entries.
Force supervisor to read the changes and restart using::
sudo supervisorctl reread
sudo supervisorctl restart all
For the :doc:`../chapters/docker/index` installation method, the full import path will be
``mayan_settings.mysettings`` and can only be passed via the
``MAYAN_SETTINGS_MODULE`` environment variable like this::
docker run <...> -e MAYAN_SETTINGS_MODULE=mayan_settings.mysettings
+46
View File
@@ -0,0 +1,46 @@
===================
Document signatures
===================
Mayan EDMS supports two types of document signatures: embedded and
detached signatures. When a document with an embedded signature is
uploaded, this signature is readily detected as part of the document
inspection step. The status of the signature can be verified by accessing the
signatures sections of a document.
.. blockdiag::
blockdiag {
orientation = portrait
span_width = 240;
user [ shape = "actor" ];
key [ shape = flowchart.database, label = "Key" ];
document [ shape = "note", label = "Document" ];
document_signed [ label = "Signed\nDocument" ];
key -> user -> document -> document_signed;
}
Signed documents are tamper-proof. That means that if any part of the document's
file is edited (even just one character or one pixel), the document's
signature becomes invalid alerting that an unauthorized change has occurred.
Existing non signed documents can be signed in one of two ways:
by downloading the document, signing it, and uploading the signed document
as a new version of the existing one or by creating a detached signature for
the non signed document and uploading such detached signature file.
Maintenance of the public keyring can be done using the ``Key management``
functionality in the ``Setup menu``.
From this menu, key servers can be queried and the results imported. Public
keys no longer needed can also be deleted from this menu.
Only `GNU Privacy Guard`_ signatures are support at the moment.
Only version 1 of `GNU Privacy Guard`_ is supported at the moment.
.. _`GNU Privacy Guard`: www.gnupg.org/
+32
View File
@@ -0,0 +1,32 @@
===========
Smart links
===========
Smart links are a way to link documents without changing how they are organized
in their respective indexes. Smart links are useful when two documents are
related somehow but are of different type or different hierarchical units.
Example: A patient record can be related to a prescription drug information
document, but they each belong to their own :doc:`../chapters/indexes/index`.
Smart links are rule based, but don't create any organizational structure.
Smart links just show the documents that match the rules as evaluated against
the metadata or properties of the currently displayed document.
Indexes are automatic hierarchical units used to group documents, smart links
are automatic references between documents.
Example:
- Document type: ``Patient records``
- Metadata type: ``Prescription``, associated as an optional metadata for the document type ``Patient records``.
- Document type: ``Prescription information sheets``
A smart link with the following condition, will automatically links patient
records to the prescription information sheets based on the value of the
metadata type of the patient record.
.. code-block:: bash
foreign label is equal to {{ document.metadata_value_of.prescription }}
+65
View File
@@ -0,0 +1,65 @@
=======
Sources
=======
Document sources define places from which documents can be uploaded or gathered.
The current document sources supported are:
- Web - ``HTML`` forms with a ``Browse`` button that will open the file dialog
when clicked to allow selection of files in the user's computer to be
uploaded as documents.
- POP3 email - Provide the email, server and credential of a ``POP3`` based
email to be scanned periodically for email. The body of the email is uploaded
as a document and the attachments of the email are uploaded as separate
documents.
- IMAP email - Same as the ``POP3`` email source but for email accounts using
the ``IMAP`` protocol.
- Watch folder - A filesystem folder that is scanned periodically for files.
Any file in the watch folder is automatically uploaded. When the upload for a
file is completed, the file is removed from source folder.
- Staging folder - Folder where networked attached scanned can save image
files. The files in these staging folders are scanned and a preview is
generated to help the process of upload. Staging folders and Watch folders
work in a similar way with the main difference being that Staging folders are
interactive while Watch folders are automatic; documents in a Watch folder
are uploaded periodically and documents in a Staging folder remain indefinitely
there until an user uploads them. A preview for files in a Staging folder is
also provided. An example of Staging folder use is when multiple people
are scanning documents but only one person must be allowed to upload those
documents. This one person examines the scans quality and decides what to
upload and what to reject and have re-scanned. Watch folders can be used
when the quality of the scans is irrelevant or when they will be known
to be of good quality, such as when receiving e-faxes as PDFs.
.. blockdiag::
blockdiag {
mayan [shape = "roundedbox", label = "Mayan EDMS" ];
email_pop3 [shape = "mail", label = "e-mail (POP3)"];
email_imap [shape = "mail", label = "e-mail (IMAP)"];
staging [shape = "flowchart.database", label = "Staging folder" ];
watch [shape = "flowchart.database", label = "Watch folder" ];
automatic [shape = "box", label = "Automatic\n(via schedule)" ];
manual [shape = "actor", height=60, label = "Manual\n(user interaction)" ];
web [shape = "note", label = "Webform upload" ];
automatic -> mayan;
email_pop3 -> automatic;
email_imap -> automatic;
watch -> automatic;
manual -> mayan;
staging -> manual;
web -> manual;
}
Document sources can be configure to allow document bundles to uploaded as
compressed files which are decompressed and their content uploaded as separate
documents. This feature is useful when migrating from another document
manager system.
.. note::
If you deployed a Mayan EDMS Docker container and want to use watched folders
or staging folder, refer to the Docker chapter :ref:`docker-accessing-outside-data`.
+11
View File
@@ -0,0 +1,11 @@
====
Tags
====
Tags are color coded properties that can be attached or removed from documents.
Tags allow giving documents a binary property. Documents can also be tagged
with more than one tag.
Once tagged, documents can be searched by their tags. It is also possible to
show all the documents tagged with a particular
tag via the **Documents** link of each tag.
+21
View File
@@ -0,0 +1,21 @@
===============
Transformations
===============
Transformations are persistent manipulations to the previews of the stored
documents. For example: a scanning equipment may only produce landscape PDFs.
In this case a useful transformation for that document source would be to rotate
all scanned documents by 270 degrees after being uploaded. By adding this
transformation to the Mayan EDMS source that is connected to the scanner, all
pages scanned via that source will inherit the transformation as they are
created. The result is that whenever a document is uploaded from that scanner,
it will appear in portrait orientation, instead of landscape orientation.
Transformations can also be added to existing documents by clicking on a
document's page and then clicking on "transformations". In this view the Actions
menu will have a new option that reads "Create new transformation". Currently,
the available transformations are: rotation, zoom, crop, and resize. Once the
document image has been corrected, resubmit it for OCR for improved results.
Transformations are non destructive and do not physically modify the document
file, they just modify the document's graphical representation.
+48
View File
@@ -0,0 +1,48 @@
===================
Document versioning
===================
Mayan EDMS has the ability to store different versions of the same
document. A comment field is provided to allow users to summarize the new
version changes in comparison with the previous one. If a new version was
uploaded by mistake or such new version is no longer necessary the option to
revert to a previous version of the document is provided.
.. blockdiag::
blockdiag {
default_shape = roundedbox
orientation = portrait
node_width = 200;
version_1 [ label = "Version 1" ];
version_2 [ label = "Version 2" ];
document_1 [ label = "payroll_report.pdf" ];
document_2 [ label = "payroll_report_fixed.pdf" ];
upload_1 [ label = "payroll_report.pdf" ];
upload_2 [ label = "payroll_report_fixed.pdf" ];
upload_1 -> version_1 -> document_1;
upload_2 -> version_2 -> document_2;
document_1 -> document_2;
}
Only the interactive document sources (:doc:`../chapters/sources`)
(``Web`` and ``Staging folders``) are available to upload new document versions.
There is no limit to the number of versions a document can have.
.. blockdiag::
blockdiag {
default_shape = roundedbox
orientation = portrait
node_width = 200;
document [ label = "payroll_report.pdf" ];
versions [ label = "Versions", stacked ];
document -> versions;
}
By default, the last version will be showed when working with the document
but any of the versions can be inspected and viewed.
+113
View File
@@ -0,0 +1,113 @@
=========
Workflows
=========
Introduction
============
Workflows provide a structured method for storing a sequence of states over
which the a document will progress. Workflows keep track how a document has
been processed so far.
Workflows work by storing a series of states to help you know the "status"
of a document. To move a workflow from one state to another, transitions are
used.
Transitions connect two different states and help provide context to know
which state is possible to transition to, from a previous state. Transitions
provide and order for the sequence of possible states changes.
Transitions can be executed manually by users if they have the required access
level as configure by the system administrator.
.. blockdiag::
:caption: Example workflow. Circles represent states, rectangles represent transitions.
span_width = 30;
submitted [shape = circle, width = 60, height = 60];
approved [shape = circle, width = 60, height = 60];
rejected [shape = circle, width = 60, height = 60];
archived [shape = circle, width = 60, height = 60];
approve [label = approve];
reject [label = reject];
reopen [label = "re-open"];
submitted -> approve -> approved;
approved -> archived;
submitted -> reject -> rejected;
rejected -> archived;
archived -> reopen -> submitted;
Workflows in Mayan EDMS are implemented as finite state machines
(https://en.wikipedia.org/wiki/Finite-state_machine).
Workflows are mainly used to represent business processes. But they can also be
used an automation system to customized Mayan EDMS and have it perform some
tasks automatically.
Automation
==========
Besides being able to be executed manually by users, transitions can also be
programmed execute automatically based on system events. This is called in
Mayan EDMS transition triggering and is one of the tools available to
automate business processes.
For example:
* Move a document from a "scanned" state to a "billed" state
when a tag is attached to the document.
* Move a document from a "uploaded" state to a "OCR ready" state
when the OCR engine finishes processing the document.
The other tool provided for process automation is being able to execute an
action when a workflow state is reached or leaved. These are called state
events.
Some examples of state actions currently provided are:
* Attach a tag to a document
* Remove a tag from a document
* Do an HTTP POST request to an external IP address
* Edit the label or the description of a document.
Other time more state actions are being added. Some state actions like the one
that creates an HTTP POST request allow Mayan EDMS to trigger processes in
external systems based on the state of a document. One example of this is
triggering the billing process of an accounting system when an invoice is
scanned in Mayan EDMS.
Workflow state actions and transitions triggers are new features and are still
evolving.
Workflows allow translating business logic into a series of states. With the
addition of state actions and transition triggers, the workflows in Mayan EDMS
are no longer just informative but can be part of your actual business
automation process.
Implementation
==============
Internally, workflows are implemented as a finite state machines
(https://en.wikipedia.org/wiki/Finite-state_machine). To make them simpler to
use, workflow have been designed so that only one state can be the current
active state for a workflow being executed. Another design decision is that
every workflow needs at least one state marked as the initial state.
Visualizations
==============
The graphical representation of a workflow is similar to a flowchart. The
states are represented with circles. The transitions are represented with
arrows. Circle with a double border represent the initial state of the workflow.
To view the graphical representations of workflow use **Preview** button of
the workflow in the setup view.
+95 -35
View File
@@ -13,16 +13,26 @@ from __future__ import unicode_literals
# All configuration values have a default; values that are commented out # All configuration values have a default; values that are commented out
# serve to show the default. # serve to show the default.
import sys, os import os
import sys
from docutils.parsers.rst import directives
sys.path.insert(0, os.path.abspath('..')) sys.path.insert(0, os.path.abspath('..'))
sys.path.insert(1, os.path.abspath('.'))
import mayan import mayan
import callbacks
import patches
import utils
# If extensions (or modules to document with autodoc) are in another directory, # If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the # add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here. # documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "_ext"))) sys.path.append(
os.path.abspath(os.path.join(os.path.dirname(__file__), '_ext'))
)
# -- General configuration ----------------------------------------------------- # -- General configuration -----------------------------------------------------
@@ -31,19 +41,21 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "_ext"))
# Add any Sphinx extension module names here, as strings. They can be extensions # Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
#extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode'] # extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode', 'sphinx.ext.intersphinx']
#extensions = ["djangodocs", "sphinx.ext.intersphinx"] extensions = [
extensions = ['djangodocs', 'sphinxcontrib.blockdiag'] 'sphinx_sitemap', 'sphinx.ext.extlinks', 'sphinxcontrib.blockdiag',
'sphinxcontrib.spelling',
]
blockdiag_antialias = True blockdiag_antialias = True
blockdiag_html_image_format = "SVG" blockdiag_html_image_format = 'SVG'
blockdiag_latex_image_format = "PDF" blockdiag_latex_image_format = 'PDF'
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ['_templates']
# The suffix of source filenames. # The suffix of source filenames.
source_suffix = '.rst' source_suffix = '.txt'
# The encoding of source files. # The encoding of source files.
# source_encoding = 'utf-8-sig' # source_encoding = 'utf-8-sig'
@@ -53,7 +65,7 @@ master_doc = 'index'
# General information about the project. # General information about the project.
project = mayan.__title__ project = mayan.__title__
copyright = mayan.__copyright__ copyright = mayan.__copyright_short__
# The version info for the project you're documenting, acts as replacement for # The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the # |version| and |release|, also used in various other places throughout the
@@ -104,12 +116,14 @@ pygments_style = 'sphinx'
# The theme to use for HTML and HTML Help pages. See the documentation for # The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes. # a list of builtin themes.
html_theme = 'classic' html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme # Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the # further. For a list of options available for each theme, see the
# documentation. # documentation.
#html_theme_options = {} html_theme_options = {
'analytics_id': 'UA-52965619-6'
}
# Add any paths that contain custom themes here, relative to this directory. # Add any paths that contain custom themes here, relative to this directory.
# html_theme_path = [] # html_theme_path = []
@@ -137,7 +151,7 @@ html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format. # using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y' html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to # If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities. # typographically correct entities.
@@ -160,7 +174,7 @@ html_static_path = ['_static']
# html_split_index = False # html_split_index = False
# If true, links to the reST sources are added to the pages. # If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True html_show_sourcelink = False
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
# html_show_sphinx = True # html_show_sphinx = True
@@ -179,6 +193,7 @@ html_static_path = ['_static']
# Output file base name for HTML help builder. # Output file base name for HTML help builder.
htmlhelp_basename = 'MayanEDMSdoc' htmlhelp_basename = 'MayanEDMSdoc'
html_show_sphinx = False
# -- Options for LaTeX output -------------------------------------------------- # -- Options for LaTeX output --------------------------------------------------
@@ -191,8 +206,10 @@ htmlhelp_basename = 'MayanEDMSdoc'
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]). # (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [ latex_documents = [
('index', 'MayanEDMS.tex', 'Mayan EDMS Documentation', (
mayan.__author__, 'manual'), 'index', 'MayanEDMS.tex', 'Mayan EDMS Documentation',
mayan.__author__, 'manual'
),
] ]
# The name of an image file (relative to this directory) to place at the top of # The name of an image file (relative to this directory) to place at the top of
@@ -224,28 +241,71 @@ latex_documents = [
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
('index', 'mayanedms', 'Mayan EDMS Documentation', ('index', 'mayanedms', '{} Documentation'.format(mayan.__title__),
[mayan.__author__], 1) [mayan.__author__], 1)
] ]
# -- External links --
# -- Custom options extlinks = {
import alabaster 'django-docs': (
'https://docs.djangoproject.com/en/{}/%s'.format(
html_theme_path = [alabaster.get_path()] mayan.__django_version__
extensions.append('alabaster') ), 'Django documentation section: '
html_theme = 'alabaster' ),
html_sidebars = { 'forum-topic': (
'**': [ 'https://forum.mayan-edms.com/viewtopic.php?t=%s', 'Forum topic #'
'about.html', 'donate.html', 'navigation.html', 'searchbox.html', ),
] 'github-issue': (
} 'https://github.com/mayan-edms/mayan-edms/issues/%s', 'GitHub issue #'
html_theme_options = { ),
'description': mayan.__description__, 'gitlab-issue': (
'github_button': False, 'https://gitlab.com/mayan-edms/mayan-edms/issues/%s', 'GitLab issue #'
'travis_button': False, ),
'gratipay_user': 'rosarior', 'gitlab-merge': (
'github_banner': False, 'https://gitlab.com/mayan-edms/mayan-edms/merge_requests/%s',
'GitLab merge request #'
)
} }
html_logo = '_static/logo_pyramid_only.png' # -- Options for sitemap extension ---------------------------------------------
html_baseurl = 'https://docs.mayan-edms.com/'
def setup(app):
BASE_DIRECTORY = '/opt/'
MAYAN_INSTALLATION_DIRECTORY = os.path.join(BASE_DIRECTORY, 'mayan-edms')
MAYAN_MEDIA_ROOT = os.path.join(MAYAN_INSTALLATION_DIRECTORY, 'media')
MAYAN_PYTHON_BIN_DIR = os.path.join(MAYAN_INSTALLATION_DIRECTORY, 'bin')
MAYAN_GUNICORN_BIN = os.path.join(MAYAN_PYTHON_BIN_DIR, 'gunicorn')
MAYAN_PIP_BIN = os.path.join(MAYAN_PYTHON_BIN_DIR, 'pip')
MAYAN_BIN = os.path.join(MAYAN_PYTHON_BIN_DIR, 'mayan-edms.py')
SUPERVISOR_ETC_PATH = '/etc/supervisor/conf.d/'
MAYAN_SUPERVISOR_CONF = os.path.join(SUPERVISOR_ETC_PATH, 'mayan.conf')
environment_variables = utils.load_env_file()
environment_variables['DOCKER_MAYAN_IMAGE_VERSION'] = mayan.__version__
environment_variables['MAYAN_INSTALLATION_DIRECTORY'] = MAYAN_INSTALLATION_DIRECTORY
environment_variables['MAYAN_MEDIA_ROOT'] = MAYAN_MEDIA_ROOT
environment_variables['MAYAN_PYTHON_BIN_DIR'] = MAYAN_PYTHON_BIN_DIR
environment_variables['MAYAN_GUNICORN_BIN'] = MAYAN_GUNICORN_BIN
environment_variables['MAYAN_BIN'] = MAYAN_BIN
environment_variables['MAYAN_PIP_BIN'] = MAYAN_PIP_BIN
environment_variables['SUPERVISOR_ETC_PATH'] = SUPERVISOR_ETC_PATH
environment_variables['MAYAN_SUPERVISOR_CONF'] = MAYAN_SUPERVISOR_CONF
substitutions = utils.generate_substitutions(
dictionary=environment_variables
)
app.add_stylesheet(filename='css/custom.css')
app.connect(
event='source-read', callback=callbacks.get_source_read_callback(
substitutions=substitutions
)
)
directives.register_directive(
name='include', directive=patches.monkey_patch_include(
substitutions=substitutions
)
)
utils.patch_theme_template(app, templates_path=templates_path[0])
-33
View File
@@ -1,33 +0,0 @@
Welcome to Mayan EDMS!
======================
Mayan EDMS is a `Free Open Source`_ `Electronic Document Management System`_,
coded in the Python language using the Django_ web application framework and
released under the `Apache 2.0 License`_. It provides an electronic vault or
repository for electronic documents.
.. image:: /_static/overview.gif
:alt: Overview
.. toctree::
:hidden:
Installation <topics/installation>
Features <topics/features>
Advanced deployment <topics/deploying>
Release notes and upgrading <releases/index>
Concepts <topics/index>
Development <topics/development>
App creation <topics/app_creation>
Roadmap <topics/roadmap>
Translations <topics/translations>
Contributors <topics/contributors>
Licensing <topics/license>
FAQ <topics/faq>
Contact <topics/contact>
.. _Docker: https://www.docker.com/
.. _Django: http://www.djangoproject.com/
.. _Free Open Source: http://en.wikipedia.org/wiki/Open_source
.. _Electronic Document Management System: https://en.wikipedia.org/wiki/Document_management_system
.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt
+48
View File
@@ -0,0 +1,48 @@
Welcome to Mayan EDMS!
======================
.. image:: /_static/mayan_logo.png
:alt: Logo is a trademark of Roberto Rosario
:align: center
Mayan EDMS is a `Free Open Source`_ `Electronic Document Management System`_,
coded in the Python language using the Django_ web application framework and
released under the `Apache 2.0 License`_. It provides an electronic vault or
repository for electronic documents.
.. image:: /_static/overview.gif
:alt: Overview
.. toctree::
:hidden:
parts/features
parts/installation
releases/index
parts/getting_started
parts/access_control
parts/categorization
parts/collaboration
parts/settings
parts/storage
chapters/rest_api
chapters/docker/index
parts/advanced
parts/administration
parts/troubleshooting
chapters/development/index
parts/faq
parts/license
parts/contact
.. _Docker: https://www.docker.com/
.. _Django: http://www.djangoproject.com/
.. _Free Open Source: http://en.wikipedia.org/wiki/Open_source
.. _Electronic Document Management System: https://en.wikipedia.org/wiki/Document_management_system
.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt
..
parts/adding_documents
+210
View File
@@ -0,0 +1,210 @@
MERC 1: Purpose and Guidelines
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:MERC: 1
:Author: Michael Price
:Status: Accepted
:Type: Process
:Created: 2018-02-17
:Last-Modified: 2018-02-17
.. contents:: Table of Contents
:depth: 3
:local:
What is a MERC?
===============
A Mayan EDMS Request For Comment document or MERC document is a design
document providing information to the Mayan EDMS community, or
describing a new feature or process for Mayan EDMS. MERCs provide
concise technical specifications of features, along with rationales.
MERC Types
==========
There are three kinds of MERCs:
1. A **Feature** MERC describes a new feature or implementation
for Mayan EDMS. Most MERCs will be Feature MERCs.
2. An **Informational** MERC describes a Mayan EDMS design issue, or
provides general guidelines or information to the Mayan EDMS community,
but does not propose a new feature. Informational MERCs do not
necessarily represent a community consensus or recommendation, so users
and implementers are free to ignore Informational MERCs or follow their
advice.
3. A **Process** MERC describes a process surrounding Mayan EDMS, or
proposes a change to (or an event in) a process. Process MERCs are
like Feature MERCs but apply to areas other than the Mayan EDMS
framework itself. They may propose an implementation, but not to
Mayan EDMS's codebase; they often require community consensus; unlike
Informational MERCs, they are more than recommendations, and users
are typically not free to ignore them. Examples include
procedures, guidelines, changes to the decision-making process, and
changes to the tools or environment used in Mayan EDMS development.
Any meta-MERC is also considered a Process MERC. (So this document
is a Process MERC).
MERC submission workflow
========================
Pre-proposal
------------
The MERC process begins with a new idea for Mayan EDMS. It is highly recommended
that a single MERC contain a single key proposal or new idea. Small enhancements
or patches usually don't need a MERC and follow Mayan EDMS's normal contribution
process.
MERCs should be focused on a single topic. If in doubt, split your MERC
into several well-focused ones.
Once the idea's been vetted, a draft MERC should be presented to the
Mayan EDMS mailing list. This gives the author a chance to flesh out the
draft MERC to make sure it's properly formatted, of high quality, and to address
initial concerns about the proposal.
The Core Developers will be responsible for accepting or rejecting the MERC proposal.
Submitting the draft
--------------------
Following the discussion on Mayan EDMS mailing list, the proposal
should be sent as a merge request to the Mayan EDMS repository. The draft must
be written in MERC style; if it isn't the merge request may be rejected until proper
formatting rules are followed.
Implementation
--------------
Finally, once a MERC has been accepted, the implementation must be completed. In
many cases some (or all) implementation will actually happen during the MERC
process: Feature MERCs will often have fairly complete implementations before
being reviewed. When the implementation is complete and incorporated
into the main source code repository, the status will be changed to
"Final".
MERC format
===========
MERCs need to follow a common format and outline; this section describes
that format.
MERCs must be written in `reStructuredText <http://docutils.sourceforge.net/rst.html>`_
(the same format as Mayan EDMS's documentation).
Each MERC should have the following parts:
#. A short descriptive title (e.g. "User document filters"), which is also reflected
in the MERC's filename (e.g. ``0002-user-document-filters.rst``).
#. A preamble -- a rST `field list <http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#field-lists>`_
containing metadata about the MERC, including the MERC number and so forth. See
`MERC Metadata`_ below for specific details.
#. Abstract -- a short (~200 word) description of the technical issue
being addressed.
#. Specification -- The technical specification should describe the syntax and
semantics of any new feature. The specification should be detailed enough to
allow implementation -- that is, developers other than the author should
(given the right experience) be able to independently implement the feature,
given only the MERC.
#. Motivation -- The motivation is critical for MERCs that want to add
substantial new features or materially refactor existing ones. It should
clearly explain why the existing solutions are inadequate to address the
problem that the MERC solves. MERC submissions without sufficient motivation
may be rejected outright.
#. Rationale -- The rationale fleshes out the specification by describing what
motivated the design and why particular design decisions were made. It
should describe alternate designs that were considered and related work.
The rationale should provide evidence of consensus within the community and
discuss important objections or concerns raised during discussion.
#. Backwards Compatibility -- All MERCs that introduce backwards
incompatibilities must include a section describing these incompatibilities
and their severity. The MERC must explain how the author proposes to deal
with these incompatibilities. MERC submissions without a sufficient backwards
compatibility treatise may be rejected outright.
#. Reference Implementation -- The reference implementation must be completed
before any MERC is given status "Final", but it need not be completed before
the MERC is accepted. While there is merit to the approach of reaching
consensus on the specification and rationale before writing code, the
principle of "rough consensus and running code" is still useful when it comes
to resolving many discussions of API details.
The final implementation must include tests and documentation, per Mayan EDMS
development guide.
MERC Metadata
-------------
Each MERC must begin with some metadata given as an rST
`field list <http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#field-lists>`_.
The headers must contain the following fields:
``MERC``
The MERC number. In an initial merge request, this can be left out or given
as ``XXXX``; the reviewer who merges the pull request will assign the MERC
number.
``Type``
``Feature``, ``Informational``, or ``Process``
``Status``
``Draft``, ``Accepted``, ``Rejected``, ``Withdrawn``, ``Final``, or ``Superseded``
``Created``
Original creation date of the MERC (in ``yyyy-mm-dd`` format)
``Last-Modified``
Date the MERC was last modified (in ``yyyy-mm-dd`` format)
``Author``
The MERC's author(s).
``Implementation-Team``
The person/people who have committed to implementing this MERC
``Requires``
If this MERC depends on another MERC being implemented first,
this should be a link to the required MERC.
``Mayan EDMS-Version`` (optional)
For Feature MERCs, the version of Mayan EDMS (e.g. ``2.7.3``) that this
feature will be released in.
``Replaces`` and ``Superseded-By`` (optional)
These fields indicate that a MERC has been rendered obsolete. The newer MERC
must have a ``Replaces`` header containing the number of the MERC that it
rendered obsolete; the older MERC has a ``Superseded-By`` header pointing to
the newer MERC.
``Resolution`` (optional)
For MERCs that have been decided upon, this can be a link to the final
rationale for acceptance/rejection. It's also reasonable to simply update
the MERC with a "Resolution" section, in which case this header can be left
out.
Auxiliary Files
---------------
MERCs may include auxiliary files such as diagrams. Such files must be named
``XXXX-descriptive-title.ext``, where "XXXX" is the MERC number,
"descriptive-title" is a short slug indicating what the file contains, and
"ext" is replaced by the actual file extension (e.g. "png").
Reporting MERC Bugs, or Submitting MERC Updates
===============================================
How you report a bug, or submit a MERC update depends on several factors, such as
the maturity of the MERC, the preferences of the MERC author, and the nature of
your comments. For the early draft stages of the MERC, it's probably best to
send your comments and changes directly to the MERC author. For more mature, or
finished MERCs you can submit corrections as repository issues or merge requests
against the git repository.
When in doubt about where to send your changes, please check first with the MERC
author and/or a core developer.
MERC authors with git push privileges for the MERC repository can update the MERCs
themselves.
+82
View File
@@ -0,0 +1,82 @@
====================
MERC 2: Test writing
====================
:MERC: 2
:Author: Michael Price
:Status: Accepted
:Type: Feature
:Created: 2018-02-22
:Last-Modified: 2018-04-01
.. contents:: Table of Contents
:depth: 3
:local:
Abstract
========
This MERC proposes a standard methodology for writing tests for Mayan EDMS.
Motivation
==========
Having a standard methodology for writing tests has the following advantages:
1. Scaffolding can be reduced by providing the most frequently used
paradigms as methods or helper functions.
2. Reduce the probabilities of errors slipping through poorly written tests.
Specification
=============
1. Tests must test each view in at least two ways:
A. Object creations views must be tested with and without permissions.
B. Object detail, list and delete views must be tested with and without
object access.
2. Tests must assert the status code of the response even
when the expected status is HTTP 200.
3. The actual request performed must be enclosed in a private methods
so that the fail and pass tests use the same HTTP request.
4. Test must verify that changes happened and didn't happened in the
database regardless of the return code. Even is an edit view returns
and error 4XX (404-Not found, 403-Forbidden, etc), the test must
ensure that the data was not indeed modified.
5. All tests must use the test user created by the BaseAPITestCase and not
an super user unless absolutely required by the test.
6. Each test must test just one thing.
7. If a test object needs to be created before the execution of a request
this object must be created by a private method.
Example:
.. code-block:: python
def _request_tag_create(self):
return self.post(
viewname='rest_api:tag-list', data={
'label': TEST_TAG_LABEL, 'color': TEST_TAG_COLOR
}
)
def test_tag_create_view_no_permission(self):
response = self._request_tag_create()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(Tag.objects.count(), 0)
def test_tag_create_view_with_permission(self):
self.grant_permission(permission=permission_tag_create)
response = self._request_tag_create()
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
tag = Tag.objects.first()
self.assertEqual(response.data['id'], tag.pk)
self.assertEqual(response.data['label'], TEST_TAG_LABEL)
self.assertEqual(response.data['color'], TEST_TAG_COLOR)
self.assertEqual(Tag.objects.count(), 1)
self.assertEqual(tag.label, TEST_TAG_LABEL)
self.assertEqual(tag.color, TEST_TAG_COLOR)

Some files were not shown because too many files have changed in this diff Show More