Compare commits

...

2613 Commits

Author SHA1 Message Date
Roberto Rosario
757cf3d869 Update forms app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-30 23:38:23 -04:00
Roberto Rosario
5ea0b02964 Put deletion policies units before periods
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-25 15:07:54 -04:00
Roberto Rosario
3346a88f81 Update use of collectstatic to preparestatic
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-24 23:16:37 -04:00
Roberto Rosario
56c8e2741b Intial commit of the forms manager app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-22 03:37:14 -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
Roberto Rosario
ad3bce178c Merge remote-tracking branch 'origin/master' into master 2017-09-11 00:25:37 -04:00
Roberto Rosario
fea83c5bbc Bump version to 2.7.3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-11 00:23:28 -04:00
Roberto Rosario
c5ed81c130 Set release notes date.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-11 00:22:13 -04:00
Roberto Rosario
6ea647822f Tweak position of the document version links for clarity.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-11 00:19:33 -04:00
Roberto Rosario
02f28b1ac0 Cleanup source app test literals.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-11 00:00:52 -04:00
Roberto Rosario
da8fa6f91c Fix resolved link class URL mangling when the keep_query argument is used.
Fixes source navigation on the document upload wizard. Thanks to
Nick Douma (LordGaav) for the report and diagnostic information. GitLab
issue #436.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-10 20:32:13 -04:00
Roberto Rosario
51026cc55e Fix task manager queue list view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-07 23:12:02 -04:00
Roberto Rosario
bd4a48c42c Merge branch 'revert-273f94e9' into 'master'
Revert "Merge branch 'fix-context' into 'master'"

See merge request !21
2017-09-07 05:14:35 +00:00
Roberto Rosario
63a7bb0b86 Revert "Merge branch 'fix-context' into 'master'"
This reverts merge request !15
2017-09-07 05:12:21 +00:00
Roberto Rosario
273f94e9b6 Merge branch 'fix-context' into 'master'
Fix error in context: it must be a dict

See merge request !15
2017-09-07 05:09:54 +00:00
Roberto Rosario
7a30537d22 Bump version to 2.7.2.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-06 01:37:02 -04:00
Roberto Rosario
2793b832e9 Update setup.py with the new requirements.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-06 01:36:30 -04:00
Roberto Rosario
e37eea33c1 Update changelog and release notes. Add release date.
Make 2.7.2 release notes the default.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-06 01:35:47 -04:00
Roberto Rosario
5c0aa5357f Improve line formatting of the Makefile.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-06 01:23:36 -04:00
Roberto Rosario
a74910f055 Rename testing target using a database container to a more
descriptive name. Add help text for Oracle db testing
targets.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-06 00:11:28 -04:00
Roberto Rosario
2f290a5655 Install mock by default to allow easier testing of deployed
instances.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-06 00:09:42 -04:00
Roberto Rosario
a5170c0da9 Display a document's cabinet list in italics. GitLab issue #435.
Thanks to LeVon Smoker for the request.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-06 00:07:10 -04:00
Roberto Rosario
2850e4ee8d Update version 2.7.2 release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-05 03:44:51 -04:00
Roberto Rosario
99dc39783c Sort the list of document's cabinets.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-05 03:44:15 -04:00
Roberto Rosario
9fbcfcf00f Sort the list of root cabinets. Thanks to Thomas Plotkowiak
for the request.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-05 03:42:32 -04:00
Roberto Rosario
5c138c7dbc Silence the second properties edited event when the initial
version of a new document finishes processing. GitLab issue #433.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-05 03:27:05 -04:00
Roberto Rosario
233aca8421 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.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-05 03:22:37 -04:00
Roberto Rosario
a3e28d81e5 Improve user mailer delete view test.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-05 02:05:58 -04:00
Roberto Rosario
1c095f6b46 Add flake8 configuration file.
[Accidental merge] Add release notes for version 2.7.2

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-05 01:51:04 -04:00
Roberto Rosario
78d3dd8b9b Fix new mailer creation view. GitLab issue #431.
Thanks to Robert Schöftner (@robert.schoeftner) for the
report and the solution.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-05 01:48:34 -04:00
Roberto Rosario
9d65eeeee1 Add missing ampersants in the Makefile targets. Fixes missing unicode
test sample documents in distribution files.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-04 02:02:38 -04:00
Roberto Rosario
0d0880efed Make sure all Ubuntu docker containers switch to UTF.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-03 18:55:49 -04:00
Roberto Rosario
5092dc381b Update changelog and release notes for version 2.7.1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-03 02:57:40 -04:00
Roberto Rosario
4d9d91b121 Make sure the local.py created used unicode for strings
by default. GitLab issue #424. Thanks to Gustavo Teixeira
(@gsteixei) for the find.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-01 17:04:19 -04:00
Roberto Rosario
cbe5fc2ab7 Update release notes and changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 20:20:54 -04:00
Roberto Rosario
60f0dd5d24 Only ignore the ImportException if it is caused by a missing
local.py file.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 20:18:14 -04:00
Roberto Rosario
c3348c4e09 Bump version to 2.7.1. Add release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 03:24:59 -04:00
Roberto Rosario
ebff795ae9 Update setup.py requirements.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 03:22:25 -04:00
Roberto Rosario
5225d8d068 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 03:21:56 -04:00
Roberto Rosario
27468651ff Support unicode in URL querystring. GitLab issue #423.
Thanks to Gustavo Teixeira (@gsteixei) for the find.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 03:10:44 -04:00
Roberto Rosario
91acee7630 Add test for unicode metadata values during uploads.
Add furl to the requirements.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 02:18:56 -04:00
Roberto Rosario
93e95705f8 Allow passing url path and not just view names to the test
client.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 02:18:11 -04:00
Roberto Rosario
c375282de0 Remove repeated import.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 02:17:57 -04:00
Roberto Rosario
104e779087 Add a metadata test mixin.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 02:17:22 -04:00
Roberto Rosario
bcae72bb34 Add a test unicode metadata value.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-31 02:15:53 -04:00
Roberto Rosario
2e4cb03f2d Fix local setting file template indent.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-30 02:20:07 -04:00
Roberto Rosario
5e025ee8ca Bump version to 2.7.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-30 01:54:39 -04:00
Roberto Rosario
7ddc063209 Update release notes and changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-30 01:54:10 -04:00
Roberto Rosario
da82c7fe51 Use Django's get_random_secret_key instead of own code.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-30 01:46:24 -04:00
Roberto Rosario
ded6982a19 Improve workflow permission setup.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-30 01:12:41 -04:00
Roberto Rosario
861ee25c9c Add error log list view tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-30 01:12:15 -04:00
Roberto Rosario
5f1544154c Code cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-30 01:12:04 -04:00
Roberto Rosario
6a8236b5b3 Update tox.ini.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 21:52:09 -04:00
Roberto Rosario
e0d8a1d7b3 Add a test for the createsettings command.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 21:51:51 -04:00
Roberto Rosario
1d5e793c84 Make the local setting filename created a dynamic one.
Move the local setting file template into a separate module.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 21:51:05 -04:00
Roberto Rosario
2b8dd842e2 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:55:19 -04:00
Roberto Rosario
7be2c64abe Convert a UUID to string in a Python3 compatible way.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:31:12 -04:00
Roberto Rosario
942b7c93ef Use BytesIO.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:16:33 -04:00
Roberto Rosario
3ccebbe227 Use the urlparse method from django.six.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:15:43 -04:00
Roberto Rosario
b8ac9c7553 Don't mix bytes and text literals.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:15:00 -04:00
Roberto Rosario
8a0c8f47a0 Import xmlrpc from django.six. Use compatible dict_types. Use
compatible reduce since it has been removed from Python3.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:13:52 -04:00
Roberto Rosario
d8b3a17a7a Update statistics imports.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:13:24 -04:00
Roberto Rosario
669f50c504 Import unquote_plus fro django.six.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:13:03 -04:00
Roberto Rosario
9dba40a1d8 Use BytesIO instead of StringIO. Use text_type instead of unicode.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:12:18 -04:00
Roberto Rosario
83491dd7e1 Update urllib imports to use django.six. Use items(). Update usage
if sorted for Python 3.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:08:59 -04:00
Roberto Rosario
03c8834772 Import collapse_rfc2231_value for the compatibility module.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:05:33 -04:00
Roberto Rosario
93431c09ce Use items() instead of iteritems().
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:05:14 -04:00
Roberto Rosario
eab3b660cb Update exception detection to work with Python3 format.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:04:04 -04:00
Roberto Rosario
2762eeb4d4 Add compatibility module.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:02:00 -04:00
Roberto Rosario
32feb98874 Rename statistics app to mayan_statistics to avoid library class
with Python3 statistics app.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-29 02:01:41 -04:00
Roberto Rosario
69514767b6 Code cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-28 21:52:51 -04:00
Roberto Rosario
272c64d903 Create workflow action errors using the generic object error
namespace and not directly to the model.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-28 17:57:42 -04:00
Roberto Rosario
8d76120ac7 Add support for clearing the generic object error log.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-28 17:56:54 -04:00
Roberto Rosario
275229cd52 Fix failing tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 19:48:30 -04:00
Roberto Rosario
bdb8ea18a2 Update version to 2.7 beta 1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 14:12:51 -04:00
Roberto Rosario
a22aa5ba0c Update setup.py requirements.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 14:12:15 -04:00
Roberto Rosario
b6fcd784c6 Update release notes for version 2.7.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 14:11:17 -04:00
Roberto Rosario
9147b34409 Fix text typos. Update translations.
Merged: Remove PDFMiner from the requirments.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 13:50:13 -04:00
Roberto Rosario
31ba535dba PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 12:22:06 -04:00
Roberto Rosario
ac7f7a5a71 Add missing migrations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 12:18:48 -04:00
Roberto Rosario
41073a45f9 Fix failing tests in the linking app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 12:17:17 -04:00
Roberto Rosario
ec223dd54d PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 02:08:39 -04:00
Roberto Rosario
c27d922b3a Add base test for actions. Add tests for actions of the tag
and acls apps.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 01:39:02 -04:00
Roberto Rosario
c9bd9fb474 Avoid Maximum recursion depth exceeded exception on index document
list view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 00:55:12 -04:00
Roberto Rosario
056fd9095a Rename index nodes to index levels.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-27 00:54:49 -04:00
Roberto Rosario
8d80ab5257 Improve GrantAccessAction and add RemoveAccessAction class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 22:06:15 -04:00
Roberto Rosario
9af5835df5 Only execute enabled actions. Store action execution errors
in the error log.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 22:05:28 -04:00
Roberto Rosario
96e143208f User resolved_object to ensure proper link resolution when navigating
back from the action views.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 22:04:46 -04:00
Roberto Rosario
0337ab5d92 Implement field order for the action dynamic forms.
Perform action class validation by importing the class and
not relying on an instance of action model, which might not
exisit when still creating the action.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 22:03:56 -04:00
Roberto Rosario
f417219f61 Add custom exceptions to the document state app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 22:03:05 -04:00
Roberto Rosario
56c4e841c5 Don't import ContentType directly but use apps.get_model instead.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 22:02:21 -04:00
Roberto Rosario
267896ce2b Update existing dynamic forms for the new schema format.
Add timeout field to the HTTP POST action.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 22:01:47 -04:00
Roberto Rosario
7e7ba85a78 Add admin entry to inspect workflow state actions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 22:00:58 -04:00
Roberto Rosario
00e69e6f7e Pass the action class path to the dynamic form to allow
validation when the actions instance is not saved yet.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 22:00:17 -04:00
Roberto Rosario
b0b6ce7be8 When returning all permissions, return then as proxy (volatile)
by default. Same behavior as all() with default arguments.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 21:59:27 -04:00
Roberto Rosario
43665261cc Change the schema format for the dynamic form class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 21:59:00 -04:00
Roberto Rosario
abfce08baf Add access grant workflow state action.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 02:56:47 -04:00
Roberto Rosario
b63723feaf Implement a .clean method for the WorkflowAction class.
Pass the view request to the form so that it can be passed to the
WorkflowAction clean method.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 02:55:36 -04:00
Roberto Rosario
4dcaa5f883 Add text description to the PermissionDenied exception raised by
the acls managers.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 02:54:43 -04:00
Roberto Rosario
5e2d66d201 Fix typo in requriments list file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 02:02:30 -04:00
Roberto Rosario
3b7f25478a Add support for serializing model instances in the action
dynamic forms.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 02:01:27 -04:00
Roberto Rosario
f20810b2ae Add support for getting the list of all permissions as a choice
list.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 02:00:59 -04:00
Roberto Rosario
7fdd816a1a Pass the action dynamic form data to the class as a standard form_class
argument.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 02:00:22 -04:00
Roberto Rosario
718a49437a Add get_classes method to the ModelPermission class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-26 01:58:56 -04:00
Roberto Rosario
1117980894 Add events for adding and removing documents to cabinets.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 18:20:44 -04:00
Roberto Rosario
7908019499 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 04:16:08 -04:00
Roberto Rosario
7de4ff2740 Add error logging to the HTTP POST workflow action.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 04:14:58 -04:00
Roberto Rosario
60d157717f Sort WorkflowAction classes from the get_all() method.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 04:14:19 -04:00
Roberto Rosario
a11b0eb39a Style cleanup.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 04:13:39 -04:00
Roberto Rosario
eb7b189970 Add generic error log model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 04:12:52 -04:00
Roberto Rosario
a08a856533 Style cleanup.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 04:11:02 -04:00
Roberto Rosario
3669d7f3f2 Add HTTP Post workflow action.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 02:10:29 -04:00
Roberto Rosario
87e8320781 Add serialization of querysets to the dynamic state action form.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 02:09:11 -04:00
Roberto Rosario
a11d274d16 Add the "content" accessor to the DocumentVersion model to
return the parsed content.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 02:08:29 -04:00
Roberto Rosario
26f6152356 Add "ocr_content" accessor to the DocumentVersion class to return
the ocr content.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 02:07:58 -04:00
Roberto Rosario
ae60c52fe2 Add the tag remove workflow state action.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 00:37:41 -04:00
Roberto Rosario
36482cc903 Rebalance tag permissions. Change the required permission to attach
and remove a tag from view to attach and remove respectively.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 00:37:12 -04:00
Roberto Rosario
6c7432fc99 Add 'Action object' column to the event list. Display the
object or target type (document, tag, etc).

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 00:35:15 -04:00
Roberto Rosario
fd7ebff179 Add tag attach and tag remove events.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 00:34:43 -04:00
Roberto Rosario
257c5d9036 Add warning about the tech preview nature of the transition triggers
and state actions.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 00:01:36 -04:00
Roberto Rosario
27443a183c Rename workflow transition event link to transition triggers.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 00:01:16 -04:00
Roberto Rosario
26c2c86edd Make error messages persistent.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 00:01:03 -04:00
Roberto Rosario
6fae3152a9 Synchronize translations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-25 00:00:47 -04:00
Roberto Rosario
f2cdd52024 Make the document parsing app translatable. Sync translations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 21:01:42 -04:00
Roberto Rosario
9e40bbbcdc Remove the NoMimetype match exception. Not needed now that this is
a separate app from the OCR app.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 20:19:43 -04:00
Roberto Rosario
8b9e605e0b When changing document types, don't delete the old metadata that is
also found in the new document type. GitLab issue #421.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 19:44:08 -04:00
Roberto Rosario
61d064fb6d Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 04:58:20 -04:00
Roberto Rosario
85bc613d04 Improve event trigger workflow selection. Fix duplicate transitions trigger.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 04:51:48 -04:00
Roberto Rosario
3fe0d47126 Remove the view to submit all document for OCR.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 04:04:31 -04:00
Roberto Rosario
a944226814 Revert logger level used during debugging.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 04:04:08 -04:00
Roberto Rosario
15c5a36053 Don't error out when the document has no versions. Record
the document version's document as the action object.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 03:56:23 -04:00
Roberto Rosario
b26f0b08fb Use the literal 'System' instead of the target name when
the action user in unknown.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 03:55:27 -04:00
Roberto Rosario
f62406810d Allow test document to be overrided by test subclasses
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 03:54:22 -04:00
Roberto Rosario
a7eaf6b368 Finish the document parsing app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-24 03:54:07 -04:00
Roberto Rosario
e9591c92f9 Initial commit of the document parsing app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-23 02:23:14 -04:00
Roberto Rosario
317d07a355 Refactor OCR app. Removes document parsing. Moves OCR processing to
model manager. Add submit and finish events.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-23 02:04:57 -04:00
Roberto Rosario
2052caada4 Remove PreserveGetQuerySet mixin. Update SingleObjectList and
MultipleObjectFormActionView views to use a new get_object_list method.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-16 22:12:24 -04:00
Roberto Rosario
c43f5eb66e Merge branch 'patch-1' into 'master'
Fix typo in django.po

See merge request !18
2017-08-15 15:56:34 +00:00
Alessandro Pasotti
a8fef00ad4 Fix typo in django.po 2017-08-15 08:48:53 +00:00
Roberto Rosario
6aa47a26ae Remove the folders app. Reset English translation source files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-15 02:57:54 -04:00
Roberto Rosario
0ffd0f340d Remove the folders app from the language processing script.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-15 02:38:27 -04:00
Roberto Rosario
9147e30804 Remove the folders app from the transifex client config file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-15 02:37:01 -04:00
Roberto Rosario
eb1414e24a Update GenericViewTestCase to work with normal views's and
template widget views.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-15 00:19:21 -04:00
Roberto Rosario
1faa63f56c Move extension preservetation code to the model. Improve document,
version and API views to include proper mimetype and encoding.
Update respective tests. GitLab issue #415.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-15 00:18:34 -04:00
Roberto Rosario
1aa985051e Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-14 17:02:47 -04:00
Roberto Rosario
bc07bb154d Add support for preserving the file extenstion when downloading a document
version. GitLab issue #415.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-11 01:46:26 -04:00
Roberto Rosario
b8548a0982 Improve the link binding for document versions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-11 01:45:04 -04:00
Roberto Rosario
f4eee42683 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-11 00:24:35 -04:00
Roberto Rosario
172d6594c7 Fix version 2.5.1 release notes typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-11 00:24:24 -04:00
Roberto Rosario
5feecc725b Add support for dropdown menus for the item list view template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-11 00:19:57 -04:00
Roberto Rosario
0ba84f256d Convert the document version list view to item view mode.
Add document version preview and thumbnail widgets.
Update the new version upload event have the version
as the target and the document as the action object.

Backported from the development branch.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-11 00:19:26 -04:00
Roberto Rosario
17b79e4114 Call the index rebuild task the proper way.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-10 22:22:44 -04:00
Roberto Rosario
821fd3462f Fix source language (English) translation file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-10 22:22:09 -04:00
Roberto Rosario
31681c66a1 Fix menu test cases by not reseting the entire menu class cache,
but only specific temporary test menus.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-10 03:16:03 -04:00
Roberto Rosario
6ec235afc0 Add support for multiple dashboards.
Add support for removing dashboard widgets.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-10 02:56:40 -04:00
Roberto Rosario
bda44212b1 Disregard the last 3 dots that mark the end of the YAML document.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-10 01:23:27 -04:00
Roberto Rosario
bb663aa71a Fix mailing profile test view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-10 00:59:55 -04:00
Roberto Rosario
6be6b7e17a Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-09 01:40:59 -04:00
Roberto Rosario
0efbf79fa1 Add support for unbinding sub-menus.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-09 01:36:43 -04:00
Roberto Rosario
0ab396eeb8 Add the graphviz binary and Python requirements to the requirements
file, CI and deployment instructions.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-09 01:02:39 -04:00
Roberto Rosario
c7afc85826 Cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-08 02:47:49 -04:00
Roberto Rosario
8fea65e3f1 Add support for generating diagrams from workflows.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-08 02:47:20 -04:00
Roberto Rosario
28a1edbc72 Initial commit to support workflow actions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-07 05:23:02 -04:00
Roberto Rosario
45bfb8961e Include the dynamic form views in the view.py module.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-07 05:22:20 -04:00
Roberto Rosario
b925fd61dc Remove method with no effect.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-07 05:21:50 -04:00
Roberto Rosario
b2b27711c0 Use lowercase __all__ magic method.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-07 05:21:26 -04:00
Roberto Rosario
44f116cf68 Allow proper substitution of widget for dynamic fields.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-07 05:21:10 -04:00
Roberto Rosario
81f481fadf Add support for workflow transition triggers.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-03 04:01:11 -04:00
Roberto Rosario
4560009927 Synchronize translations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-03 02:30:08 -04:00
Roberto Rosario
b6ffeaeb32 Allow changing the output format, DPI of the pdftoppm command, and
the output format of the converter via the CONVERTER_GRAPHICS_BACKEND_CONFIG
setting sub options: pdftoppm_dpi: 300, pdftoppm_format: jpeg, pillow_format: jpeg
GitHub issues #256 #257 GitLab issue #416.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-03 01:10:39 -04:00
Roberto Rosario
790d606834 Update changelog. Add release notes for version 2.7.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-03 00:24:41 -04:00
Roberto Rosario
0eaf8cea79 Skip UUID migration on Oracle backends. GitHub issue #251.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-03 00:17:24 -04:00
Roberto Rosario
3d6a32c7b6 Add workaround for pycountry versions without the bibliographical key.
GitHub issue #250.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 23:58:52 -04:00
Roberto Rosario
a5a5690d66 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 21:19:25 -04:00
Roberto Rosario
c133b556d1 PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 21:16:14 -04:00
Roberto Rosario
11995e432b Place the document cabinet list under the document's preview
(order=1). GitLab issue #417.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 21:14:27 -04:00
Cornelius Ludmann
b7361059e2 Shows the cabinets in the document list.
Signed-off-by: Cornelius Ludmann <dev@cornelius-ludmann.de>
2017-08-02 21:11:49 -04:00
Roberto Rosario
c96745ce0e Add ordering support to the SourceColumn class. GitLab issue #417.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 20:56:42 -04:00
Roberto Rosario
68d8ce56c8 Update the index information colums to show the
total number of documents and nodes contained in a level.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 20:29:59 -04:00
Roberto Rosario
cd54f07ee5 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 16:29:43 -04:00
Roberto Rosario
b89b870e00 Improve mailer URL regex.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 16:28:23 -04:00
Roberto Rosario
83057af453 Add ACLs link and ACLs permissions to the mailer profile model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 16:27:59 -04:00
Roberto Rosario
4ab86c67c1 Fix mailing app permissions labels.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 16:27:26 -04:00
Roberto Rosario
95adcfa7f2 Add ACL list link with icon and use it for the document facet menu.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 16:26:33 -04:00
Roberto Rosario
e19ee79b56 Fix typo in migration. GitHub issue #263. Thanks to @simeon-walker
for the find.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-31 18:58:40 -04:00
Roberto Rosario
7a67604551 Add test and test document for PDFs with indirect object for the
rotation value. GitHub issue #261. Thanks to @Chluz for the issue,
the debug information and the test document!

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-30 20:08:34 -04:00
Roberto Rosario
28b4c9a546 Add workaround for PDF with IndirectObject as the
rotation value. GitHub #261.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-30 04:17:23 -04:00
Roberto Rosario
6a8868e632 Bump version to 2.6.4.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-25 08:23:51 -04:00
Roberto Rosario
d49a5f43ed Add missing replacements of reverse to resolve_url.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-25 08:23:26 -04:00
Roberto Rosario
ca643b23ba Add fade in animation to document image widget.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-25 07:18:20 -04:00
Roberto Rosario
ddee13ed66 Add missing migration.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-25 07:12:15 -04:00
Roberto Rosario
fe3805da95 Bump version to 2.6.3
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-25 07:09:14 -04:00
Roberto Rosario
95c5e339f2 Add release notes for version 2.6.3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-25 06:43:22 -04:00
Roberto Rosario
3d8557a0bf Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-25 06:35:53 -04:00
Roberto Rosario
9e083488f1 Add utility to generate a setup.py with updated
requirements. GitLab issue #200 #149

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-25 06:34:02 -04:00
Roberto Rosario
887b0e3e2a Add line numbers to the debug and production loggers.
Add date and time to the production logger.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-25 01:14:35 -04:00
Roberto Rosario
965f34a04c Makes Roles searchable. GitLab issue #402.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-25 00:08:57 -04:00
Roberto Rosario
09396cef00 Add overflow wrapping so wrap long titles in Firefox too.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-24 23:49:16 -04:00
Roberto Rosario
de303fb897 Add tag_ids keyword argument to the Source.handle_upload
model method. GitLab issue #413.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-24 20:36:42 -04:00
Roberto Rosario
4096b8b882 PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-24 20:30:46 -04:00
Roberto Rosario
459771ba4f Fix use of spaces instead of tabs in the Makefile.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-24 16:48:37 -04:00
Roberto Rosario
60cc0346fe Make the intialsetup and performupgrade management tasks
work with signals to allow customization from 3rd party apps.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-24 16:32:30 -04:00
Roberto Rosario
76539f9eb0 Use resolve_url instead of redirect to resolve the post
login URL in more ways.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-24 16:24:53 -04:00
Roberto Rosario
f1644cb572 Add makefile target to launch a PostgreSQL container.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-24 16:20:58 -04:00
Roberto Rosario
7ca568a613 Bump version to 2.6.2 2017-07-22 05:00:09 -04:00
Roberto Rosario
68a2b25f0d Disable select_for_update when checking the uniqueness of a
cabinet if the database backend is Oracle.
GitHub issue #258. Thanks to @simeon-walker for the report.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-22 04:58:19 -04:00
Roberto Rosario
22bb93ec13 Add support to test agains Oracle via Docker.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-22 04:41:29 -04:00
Roberto Rosario
906e2e36a6 Use named volumes for the database test containers.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-22 03:04:39 -04:00
Roberto Rosario
7fb19df18b Update changelog. Add release notes for 2.6.2.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-22 03:04:20 -04:00
Roberto Rosario
6dc45a1c7f Allow encrypted PDF total page number instrospection to work
when PDF has non ASCII user properties. GitLab issue #411.
Thanks to @corneliusludmann for the report and investigation.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-22 02:45:18 -04:00
Roberto Rosario
688571688c Switch test MySQL container DB character set to utf8mb4
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-22 01:10:25 -04:00
Roberto Rosario
711a0dac57 Tweak CSS to allow document page image sizes smaller than the view port.
GitLab issue #410.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-22 01:06:56 -04:00
Roberto Rosario
49444faed2 Improve code that waits to the tests containers to be available.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-22 00:14:51 -04:00
Roberto Rosario
0e39620047 Fix metadata view tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-22 00:14:35 -04:00
Roberto Rosario
8c18651c0c Upgrate changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 23:51:36 -04:00
Roberto Rosario
22e0604226 Add Makefile targets to run all or selected tests against a
MySQL or Postgres Docker container.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 23:49:51 -04:00
Roberto Rosario
1cb66a7c6b Improve tag widget by moving the markup to its own template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 17:22:20 -04:00
Roberto Rosario
a94fe43240 Fix document page widget appearance in the document page list view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 17:21:49 -04:00
Roberto Rosario
5fedc2c3b0 Make document version order deterministic.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 17:20:58 -04:00
Roberto Rosario
3b2f3d0426 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 01:54:43 -04:00
Roberto Rosario
2fe1ae425b Make the width of a document image and adjustable property.
Allows zoom to work again in the page view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 01:52:09 -04:00
Roberto Rosario
4019541581 Remove remarked code from the list item template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 01:44:52 -04:00
Roberto Rosario
b5b4185048 Use the list item template for the document download selection view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 01:40:32 -04:00
Roberto Rosario
2693b3f3f1 Add tests for the source app interactive upload view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 01:36:13 -04:00
Roberto Rosario
34f5fccd84 Add tests for the document download form view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 01:35:33 -04:00
Roberto Rosario
f09321f6ab Fix deprecation warnings for Django 1.11 and Django 2.0.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-21 00:25:18 -04:00
Roberto Rosario
42a762481b Fix issue when editing or removing metadata from multiple documents.
Bump version to 2.6.1.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-18 17:56:30 -04:00
Roberto Rosario
5dad91ca4e Update release date.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-18 03:19:10 -04:00
Roberto Rosario
2ab7eca665 Update container test Makefile targets to use the UTF-8 locale.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-18 03:07:34 -04:00
Roberto Rosario
7a8881c305 Increase the size of the mailing profile label field to 128 characters.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-17 21:23:59 -04:00
Roberto Rosario
20e0a2d7a1 Bump version to 2.6.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-17 21:19:16 -04:00
Roberto Rosario
922492169f Fix typos in tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-17 21:18:56 -04:00
Roberto Rosario
f9eb7d0fb5 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.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-17 20:41:11 -04:00
Roberto Rosario
3cbe90567f Add method to grant and revoke access via ACLs.
Granting will also check if the permission has been
authorized to the object class using ModelPermission.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-17 20:39:41 -04:00
Roberto Rosario
804b077115 Fix typos in new link unbinding code.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-16 04:04:52 -04:00
Roberto Rosario
524a0d0c35 Improve link unbinding code for all cases.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-16 02:20:47 -04:00
Roberto Rosario
e5685eee04 Improve code to unbind menu entries.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-15 15:57:27 -04:00
Roberto Rosario
a76c96e5df Bump version to 2.6rc1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-15 00:38:26 -04:00
Roberto Rosario
8f023a03e5 Synchronize translations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-15 00:38:02 -04:00
Roberto Rosario
56b76ca098 Force a complete pull of translations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-15 00:20:42 -04:00
Roberto Rosario
9af221e8b4 Remove unused script.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-15 00:16:40 -04:00
Roberto Rosario
b9a9118ae2 Add release notes for the upcomming version 2.6.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 22:46:06 -04:00
Roberto Rosario
d422da2c43 Apply the tag attach and remove permissions to tags too.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 22:43:45 -04:00
Roberto Rosario
6743752789 Add help texts to the document mailing form.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 22:19:28 -04:00
Roberto Rosario
16e0b0e0e7 Add new document version list view permission. GitLab issue #379
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 22:09:01 -04:00
Roberto Rosario
310d09586a Add missing document indexing migration to sort indexes by label.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 17:37:57 -04:00
Roberto Rosario
4b57870d29 Add release checklist step checking for migrations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 17:37:24 -04:00
Roberto Rosario
52785dd561 Add missing converter app migration, adding the lineart transformation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 17:35:38 -04:00
Roberto Rosario
43819b130f Add missing mailer app migration.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 17:34:46 -04:00
Roberto Rosario
4c9f986c7c Increase document thumbnail default size.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 17:23:08 -04:00
Roberto Rosario
386c9ec0cd Tweak document thumbnail widget initial height calculation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 17:22:33 -04:00
Roberto Rosario
abc34f7942 Switch the order of the DEFAULT_AUTHENTICATION_CLASSES of DRF. GitLab issue #400.
Thanks to @NiceGuyIT for the report and research.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 14:14:24 -04:00
Roberto Rosario
b8c74125e8 Use the item view for the search results.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 14:09:27 -04:00
Roberto Rosario
af3fed2a18 Use the item view for the document pages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 14:09:21 -04:00
Roberto Rosario
3f348c6260 Don't load matchHeight libary now that it is loaded in base.html.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 05:31:08 -04:00
Roberto Rosario
a2a089299f Equalize dashboard widgets height.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 05:30:43 -04:00
Roberto Rosario
bdc69b9860 Update changelog. Bump version to 2.6 beta1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 05:23:00 -04:00
Roberto Rosario
fb520d6f92 Add view mixin to make sure a subclass can't override its
parent's get_queryset method.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 05:19:50 -04:00
Roberto Rosario
0faa2117ec Perform check for cabinet add and remove permission to documents
too.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 05:17:29 -04:00
Roberto Rosario
79ecc3b432 Enable cabinet ACL inheritance from it's root.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 05:16:53 -04:00
Roberto Rosario
e04e3040bb Allow model ACL inheritance related to be a callable.
If it is a callable iterative queryset filter will be performed.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 05:13:32 -04:00
Roberto Rosario
076c7804e7 Don't display tags in the cabinets detail view. GitLab #397.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 03:52:20 -04:00
Roberto Rosario
aa3acdb99c Add cabinet list view tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-14 03:28:12 -04:00
Roberto Rosario
eff548d2e8 Sort indexes by label.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 21:34:43 -04:00
Roberto Rosario
32056761c8 Sort settings by namespace label and by global name second.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 21:27:10 -04:00
Roberto Rosario
a026fc9ae6 Ignore permission denied and not found errors in the middleware logger.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 18:21:58 -04:00
Roberto Rosario
5f9a052236 Improve wizard upload view test.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 18:21:19 -04:00
Roberto Rosario
ba6387021e Fix document print view, page URL resolve.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 17:53:33 -04:00
Roberto Rosario
ff59f34b7f Add document list item view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 17:20:02 -04:00
Roberto Rosario
c3d4884d34 Remove debug statement.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 03:32:19 -04:00
Roberto Rosario
2817ec17be 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.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 03:31:34 -04:00
Roberto Rosario
8c4db068af Remove debug statement.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 02:51:48 -04:00
Roberto Rosario
77b92b59c7 Only ignore the top level /build/ directory.
Include the missin Toastr build files.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-13 02:50:17 -04:00
Roberto Rosario
c088826789 Make users and groups searchable via the API.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-12 04:02:19 -04:00
Roberto Rosario
e66e954b93 Incorporate @Macrobb metadata widget and content visual changes.
GitLab issue #378

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-12 03:20:49 -04:00
Roberto Rosario
cc33e1d259 Add support for emailing documents to a recipient list. GitLab #396
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-12 02:50:29 -04:00
Roberto Rosario
b9994dbf40 Fix HTML mark up in window title. GitLab issue #397.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-12 00:55:09 -04:00
Roberto Rosario
bbb5c393a6 Fix typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-09 02:47:21 -04:00
Roberto Rosario
f582484693 Update translation source files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-09 02:33:57 -04:00
Roberto Rosario
4716932310 Update the roadmap.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-09 02:33:35 -04:00
Roberto Rosario
e91a608312 Bump version to 2.5.2 and add release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-08 14:12:54 -04:00
Roberto Rosario
e0e72e5426 Avoid sending the post_version_upload signal from inside an
uncommitted new document creation transaction.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-08 14:06:14 -04:00
Roberto Rosario
877572d2b3 Use class names for clarity.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-08 14:05:19 -04:00
Roberto Rosario
5cf5b09ffe Bump version to 2.5.1.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-07 20:43:53 -04:00
Roberto Rosario
45c8c43abb Update release date.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-07 20:39:22 -04:00
Roberto Rosario
c5691886c0 Bump version to 2.5.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-07 16:54:23 -04:00
Roberto Rosario
3f022ea0ee Update release notes and changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-07 16:53:58 -04:00
Roberto Rosario
e4c88e575f Improve document detection by workflow state including initial state.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-07 13:00:22 -04:00
Roberto Rosario
998af4931f Improve usability and appearance on medium and small
devices like tablets and smartphones.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-07 05:09:44 -04:00
Roberto Rosario
0177a45436 Do hard word break on form titles to avoid horizontal scroll on
small displays.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-07 04:51:37 -04:00
Roberto Rosario
91ba06c501 Remove animated spinners to lower browser memory usage and increase
responsiveness. Render a document page place holder while the real
document page loads. This change avoids "jumping" effect when
loading many thumbnails. Increase lazy load thresholds. More
thumbnails and document pages will be loaded and visible by
default when a view loads.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-07 04:20:31 -04:00
Roberto Rosario
829dcbf144 The trashed document deletion action is now a background task.
Also, the trash can emptying view calls the trash can document celery task
for each document.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-07 02:42:20 -04:00
Roberto Rosario
c6de76822e Add two new setting options to control the caching of page images.
DOCUMENTS_DISABLE_BASE_IMAGE_CACHE and
DOCUMENTS_DISABLE_TRANSFORMED_IMAGE_CACHE.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-07 02:16:23 -04:00
Roberto Rosario
fd67219af7 Add password reset unit test.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-06 23:31:27 -04:00
Roberto Rosario
ad96863cd9 Move the login template under the authentication namespace.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-06 23:11:17 -04:00
Roberto Rosario
00d0184bad Add support for requesting a password reset email.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-06 23:09:46 -04:00
Roberto Rosario
ff40b1effc Add a "Remember me" checkbox to the username and email login forms.
Add AUTHENTICATION_MAXIMUM_SESSION_LENGTH configuration setting for the maximum
time an user's login session will remain valid. Defaults to 30 days.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-06 12:50:22 -04:00
Roberto Rosario
d4e1a506ed Add duplicated document scan support.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-06 02:56:35 -04:00
Roberto Rosario
55eedc153e Convert document version checksum field from a text field to a char
field to be able to index across all db backends without problem.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-05 16:10:05 -04:00
Roberto Rosario
1041ea4e5e Bump version to 2.5rc1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-05 15:49:16 -04:00
Roberto Rosario
2ec939e595 Index the document checksum field for faster searches by checksum.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-05 15:44:16 -04:00
Roberto Rosario
0820d0c0e6 Add support to search documents and document pages by checksum.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-05 15:41:56 -04:00
Roberto Rosario
6c6ca38374 Replace all instances of unicode only handling to use force_text.
Replace all __unicode__ methods to __str__ and the
@python_2_unicode_compatible decorator.
Replace all instance of smart_str, smart_unicode, force_uncode
with force_text.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-05 15:03:24 -04:00
Roberto Rosario
95157460cb Add new UI method to switch between required metadata and optional
metadata without incurring in metadata value loss.
Add modifying relationship of document type and metadata type
from the document type and from the metadata type views.
Closes GitLab issues #337 #373.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-05 04:39:54 -04:00
Roberto Rosario
32c53343f1 Fix converter bug introduced in previous commit merge.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-05 01:03:14 -04:00
Roberto Rosario
b0912947fc Give every libreoffice instance its own separate $HOME directory.
Additionally give every libreoffice its own UserInstallation
file in the $HOME directory. Works around Libre Office issue:
https://bugs.documentfoundation.org/show_bug.cgi?id=37531
Solves or affects GitLab issues #393 #258 #198 #175

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-04 23:58:04 -04:00
Roberto Rosario
2f4ea29633 Add name property of the wrapped model lock instance to the wrapper.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-04 20:50:47 -04:00
Roberto Rosario
6b424b0eb1 Improve the documentation of the document creation API endpoint.
GitHub issue #255. Thanks to @lcerliani opening the issue.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-04 20:28:36 -04:00
Roberto Rosario
7343223f59 PDF compatibility improvements. Support simple encrypted PDF.
Improve PDF page count detection. Improve PDF orientation
detection. Merge CONVERTER_LIBREOFFICE_PATH and
CONVERTER_PDFTOPPM_PATH config settings into
CONVERTER_GRAPHICS_BACKEND_CONFIG.
GitLab issue #384 #376 #377.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-04 04:02:29 -04:00
Roberto Rosario
5629033578 Menu reorganization.
The "About" menu has been renamed to "System".
The "Tools" and "Setup" sub menus, were moved from the "Profile" menu
to the "System" menu.
The "Profile" menu has been renamed to "User".

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-04 02:06:32 -04:00
Roberto Rosario
2cc9efc5b2 Make sure lookup selection widgets also trigger the
metadata update checkbox on change.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-04 02:02:25 -04:00
Roberto Rosario
326644f355 Rename the mailing setup link to say "Mailing profile" for
consistency.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-04 00:48:16 -04:00
Roberto Rosario
31d53a6137 Add the Use TLS and Use SSL option to the Django
SMTP mailing profile backend.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-04 00:46:41 -04:00
Roberto Rosario
6bad5e02d1 Add lineart transformation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-03 14:05:13 -04:00
Roberto Rosario
77bcc41903 Decrease verbosity of MayanAppConfig debug messages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-03 13:52:16 -04:00
Roberto Rosario
e19a723c41 Decreased smart settings import debug messages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-03 13:48:13 -04:00
Roberto Rosario
fd9916ddec Update required versions of Pillow and django-suit.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-03 13:46:34 -04:00
Roberto Rosario
5f24183a22 Update changelog and release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-03 13:41:44 -04:00
Roberto Rosario
a72ac6eadb Add user mailer backends support. GitLab issue #286.
Add support for creating dynamic forms.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-03 13:37:56 -04:00
Roberto Rosario
793fd74d7f Fix tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-02 01:16:31 -04:00
Roberto Rosario
489b6ae190 Cleanup and encapsulate javascript module into classes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-01 17:54:27 -04:00
Roberto Rosario
9bf878d87a Make all select2 widgets width automatic.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-01 16:25:49 -04:00
Roberto Rosario
a488c865e1 Substitute bootstrap alerts with toastr.js notifications.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-01 16:25:17 -04:00
Roberto Rosario
e1a0ffd25c Make sure the indexing lock is released,
even when an error occurs.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-01 14:49:52 -04:00
Roberto Rosario
c2854d094b Improve error message display when uploading documents via the
AJAX drag & drop widget.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-01 02:32:28 -04:00
Roberto Rosario
c42a2c8a94 Add debug logging to the lock manager.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-01 02:31:17 -04:00
Roberto Rosario
916c3497c4 Add support for downloading a document's OCR text.
Closes GitLab issue #215.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-01 01:07:23 -04:00
Roberto Rosario
610e10e85a Include django-downloadview's assert_download_response as a
BaseTest member.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-01 00:54:21 -04:00
Roberto Rosario
bb5330fced Add Turkish to the list of processes languages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 18:21:46 -04:00
Roberto Rosario
d056655a4e Fix link typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 18:09:35 -04:00
Roberto Rosario
e72ce3bff2 Fix translation settings for the task manager app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 18:03:25 -04:00
Roberto Rosario
1345d98e92 Make the task manager translatable.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 18:00:03 -04:00
Roberto Rosario
0d8081ad9d Rename the mayan_task_manager app to task_manager.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 17:55:47 -04:00
Roberto Rosario
219c82630a Code cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 17:48:07 -04:00
Roberto Rosario
3cb52c96be Allow null for the SANE source resolution field.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 17:47:47 -04:00
Roberto Rosario
6a9c66ff3f Return False for the document's exists() method when it doesn't have
a document version.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 17:47:01 -04:00
Roberto Rosario
e46bf51022 Do a complete pull and synchronization of the translations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 17:46:34 -04:00
Roberto Rosario
eac89b4d80 Enable the mathfilters app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 15:05:03 -04:00
Roberto Rosario
7d0cd339bf Improve error output of the performupgrade command.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 15:03:06 -04:00
Roberto Rosario
8fb76f2af4 Add missing OCR migration.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-30 14:47:23 -04:00
Roberto Rosario
a24add7886 Update README files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 18:28:18 -04:00
Roberto Rosario
8327b015c9 Switch order of release checklist.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 18:23:46 -04:00
Roberto Rosario
9389d1663c Update installation instructions to point to Docker Hub.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 18:22:03 -04:00
Roberto Rosario
86aff5f75a Update changelog and release notes release date.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 18:18:56 -04:00
Roberto Rosario
a164a3c6d1 Bump version to 2.4
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 18:17:23 -04:00
Roberto Rosario
d4d0b7129b Reserved task don't have a start_time attribute, return None instead.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 14:32:20 -04:00
Roberto Rosario
f39fde8b4b Display error when not able to retrieve tasks.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 14:32:00 -04:00
Roberto Rosario
84d12d3932 Increase sleep time to allow Postgress container to accept connections.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 14:31:17 -04:00
Roberto Rosario
0faf9bf67e Add release notes for version 2.4.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 04:36:52 -04:00
Roberto Rosario
17a662de03 Add release checklist to development documentation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 03:53:59 -04:00
Roberto Rosario
0dd886f5fe Add new targets to help test packages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 03:52:31 -04:00
Roberto Rosario
e920ad1036 Syncronize translations.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-23 03:51:55 -04:00
Roberto Rosario
b5858ad6f8 Add link to show a document's OCR errors. GitLab issue #291.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-21 15:57:53 -04:00
Roberto Rosario
538b66b238 Add test document label explicitly.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-21 15:26:16 -04:00
Roberto Rosario
c79b21e875 Stop indexing when a node template doesn't return a value.
GitLab issue #391. Thanks to @jacekkow for the find and diagnostics.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-21 14:39:08 -04:00
Roberto Rosario
ac9d72d451 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-21 02:27:25 -04:00
Roberto Rosario
eb29cd502c Fix typos.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-21 02:26:33 -04:00
Roberto Rosario
739596e4ee Add task manager app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-21 02:25:28 -04:00
Roberto Rosario
638cbba237 Hide combobox navigation icons on small and extra small displays.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-20 04:28:22 -04:00
Roberto Rosario
e6fbd0b84f Add support for truncating view titles via the APPEARANCE_MAXIMUM_TITLE_LENGTH
setting. The default value is 80 characters.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-20 04:26:44 -04:00
Roberto Rosario
b79a64c5ed Add template tag to fetch the value of a smart setting.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-20 04:15:38 -04:00
Roberto Rosario
fd601037a1 Switch to the Python version of the CodeCov client.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-20 03:42:35 -04:00
Roberto Rosario
0a24bbfabe Update coverage util versions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-20 03:39:27 -04:00
Roberto Rosario
a7d6ab15f8 Fix index rebuilding for multi value first levels. GitLab issue #391.
Thanks to @jacekkow for the report and diagnosis.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-20 03:28:25 -04:00
Roberto Rosario
5a82c93d47 Add support for default lock expiration to the file lock backend.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-20 02:46:08 -04:00
Roberto Rosario
5d13f46548 Add purgelock management command. Closes GitLab issue #221.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-20 01:57:16 -04:00
Roberto Rosario
ea636aac7e Add test for the setting environment support.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-20 01:35:12 -04:00
Roberto Rosario
a105fe46a5 Add support for updating configuration options from environment variables.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-18 03:08:03 -04:00
Roberto Rosario
bcf835cd03 Add hardware requirements. GitHub issue #247.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-17 03:39:00 -04:00
Roberto Rosario
e9e4060f8c Add SearchFieldSerializer to show the fields available for each
SearchModel.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-17 03:28:54 -04:00
Roberto Rosario
9ae3696f61 Add cabinet labels as search field for documents and document pages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-17 03:23:46 -04:00
Roberto Rosario
0deff19202 Make tags, metadata types and cabinets searchable via the dynamic search API.
GitLab issue #344.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-17 03:20:16 -04:00
Roberto Rosario
40ab6b6f9f Fix role creation API not returning id of new role. GitLab issue #390.
Thanks to @lokeshmanmode for the find.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-17 03:00:58 -04:00
Roberto Rosario
215b76bfab Fix repeated permissions list API URL. GitLab issue #389.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-17 02:53:02 -04:00
Roberto Rosario
4150fea2ad Add PDF orientation detection. Closes GitLab issue #387.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-16 22:30:07 -04:00
Roberto Rosario
86a351e826 Update the versions of the development and testing packages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-16 20:59:23 -04:00
Roberto Rosario
ceb2af3fda Merge branch 'feature/sane_source'
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-16 18:18:48 -04:00
Roberto Rosario
14533da646 Merge branch 'master' into feature/sane_source
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-16 18:15:12 -04:00
Roberto Rosario
0041b2118b Improve rendering of documents with no pages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-16 17:22:00 -04:00
Alessandro Pasotti
13bb415187 Fix error in context: it must be a dict 2017-06-15 08:05:17 +02:00
Roberto Rosario
2742d0df6e Merge branch 'master' of gitlab.com:mayan-edms/mayan-edms 2017-06-12 16:23:11 -04:00
Roberto Rosario
c857da5a49 Add django-mathfilters==0.4.0 to requirements.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-12 16:21:12 -04:00
Roberto Rosario
08dcbef2fc Don't silence validation errors.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-12 16:18:03 -04:00
Roberto Rosario
6af1010f3a Preload metadata add form with metadata type valid for the context document.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-12 16:16:28 -04:00
Roberto Rosario
6bea213039 Update instructions to specify version 2.3 of the docker image.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-11 19:29:11 -04:00
Roberto Rosario
b1ae091746 Update README files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-10 18:57:39 -04:00
Roberto Rosario
c769f7bd1b Don't silence exceptions in production mode.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-10 18:13:23 -04:00
Roberto Rosario
382ee8cc1f Update the installation instructions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-10 18:13:00 -04:00
Roberto Rosario
d5b7cbefdc Fix changelog and release notes dates.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-08 14:04:09 -04:00
Roberto Rosario
7497907293 Add Makefile recipe to generate a release using Docker builder.
Add separate requirements file for the build requirements.
GitLab issue #362.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-07 21:06:38 -04:00
Roberto Rosario
64c6c27957 Add RestructuredText version of the README and remove
pandoc dependency.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-07 20:23:30 -04:00
Roberto Rosario
eeb0b2bef3 Fix changelog markup typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-07 20:22:19 -04:00
Roberto Rosario
53d3d7392f Update version of twine to 1.9.1.
Fixes packaging issues with unicode filenames.
https://github.com/pypa/twine/issues/235

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-07 14:29:32 -04:00
Roberto Rosario
ca12bdcced Add API endpoint to show all available search models.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-07 13:54:32 -04:00
Roberto Rosario
ff5ac7ff4e Update Travis CI configuration to use Ubuntu Trusty instead of
Ubuntu Precise.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-07 10:27:18 -04:00
Roberto Rosario
845826ba70 Add make file entries to launch a MySQL container
as use as a testing database.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-07 02:06:10 -04:00
Roberto Rosario
9840851109 No need to launch the document indexing task
on document state log entries deletion.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-07 02:04:30 -04:00
Roberto Rosario
196d00897d Fix overwritten document app test.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-06 20:30:33 -04:00
Roberto Rosario
5798cabd7c Add support to update the document indexes from workflow state changes.
Add a new workflow field called internal_name for easier workflow
reference in document index templates.
Generalize the PropertyHelper class.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-06 20:07:15 -04:00
Roberto Rosario
f7f0d27a05 Fix URL query string encoding for the document page navigation views.
GitLab issue #383.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-30 02:02:07 -04:00
Roberto Rosario
6f8792dded Committed changes are more than bugfixes rename release from
2.2.1 to 2.3. Bump version number.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-29 14:50:51 -04:00
Roberto Rosario
68dbdb111a Add custom script_prefix aware resolve function and use it for the
document page navigation views. Fixes issue with Mayan installed
as a sub URL app. Fixes GitLab issue #383. Thanks to @gsteixei
for the issue and investigation.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-29 14:42:55 -04:00
Roberto Rosario
42c72001b6 Use Django 1.10.7.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-28 16:03:52 -04:00
Roberto Rosario
6d5d102984 Translations synchronization.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-28 16:02:01 -04:00
Roberto Rosario
e1283484e1 Update release notes and changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-28 15:25:34 -04:00
Roberto Rosario
84d83a3c9b Merge branch 'hotfix' 2017-05-28 15:23:02 -04:00
Roberto Rosario
88151df2bc Rewrite the document indexer to allow single index rebuilds,
less locks and improve performance.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-28 15:22:13 -04:00
Roberto Rosario
a1dbd532fe Use a predictable file path for the lock file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-28 01:06:49 -04:00
Roberto Rosario
fede3ec0ba Return an empty DocumentPage Queryset when a document has no latest version.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-28 01:06:33 -04:00
Roberto Rosario
3e3e247997 Update release notes and changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-27 10:46:42 -04:00
Roberto Rosario
579595fe7f Add support for check for the latest released version of Mayan.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-26 17:37:23 -04:00
Roberto Rosario
4ffc6fc94f Added support for passing the options allow-other and allow-root to the
FUSE index mirror. GitLab issue #385

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-24 03:24:23 -04:00
Roberto Rosario
d00f3aaff4 Add FAQ entry about LDAP authentication. GitLab issue #363.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-24 02:37:21 -04:00
Roberto Rosario
76e8fd2b07 Auto select checkbox when updating metadata values.
Closes GitLab issue #371.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-24 02:28:31 -04:00
Roberto Rosario
ce563bfb6a Update the index node template expression field from a 128 char field
to a text field.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-24 00:59:59 -04:00
Roberto Rosario
30caed211b Add link to Ubuntu supervisor enable bug ticket.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-11 21:22:55 -04:00
Roberto Rosario
0e6cfc1879 Merge branch 'davpaez/mayan-edms-proofread_docs' into documentation_merge
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-11 21:18:40 -04:00
Roberto Rosario
a889a58a39 Sort multi form view methods.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-27 00:57:41 -04:00
Roberto Rosario
eb8808cb09 Add release day to HISTORY file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-27 00:56:16 -04:00
Roberto Rosario
22cc5334c5 Fix issue with new style plural defition expression. Switch to old style.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-26 00:53:16 -04:00
Roberto Rosario
6c4af20356 Update source and compiled language files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-26 00:46:07 -04:00
Roberto Rosario
0db28c75b2 Bump version to 2.2
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-26 00:24:13 -04:00
Roberto Rosario
ad1a2ed197 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-26 00:08:27 -04:00
Roberto Rosario
116fb5155d Update the document version link's current version conditional to
work in all cases: when the document version is an object
of a list (versions list) and when it is the context object
(signatures list).
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-25 16:44:09 -04:00
Roberto Rosario
7a0c2224bb Add model docstrings.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-25 14:21:30 -04:00
Roberto Rosario
f7ca0a8ddc Remove accidental translation of an icon specification.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-21 22:41:36 -04:00
Roberto Rosario
02a984398a Fix minor cabinet link typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-21 13:49:22 -04:00
Roberto Rosario
36ccb92e51 Update translation configuration files and processing script.
Removes the installation app and add the cabinets app.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-21 12:31:00 -04:00
Roberto Rosario
a68d7e41db Add updates translation source files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-21 12:30:35 -04:00
Roberto Rosario
6060924ee3 Use the context variable 'object' instead of 'resolved_object' to
make sure the document version in the list is being resolved and
not the view's Document or a document signature isntance.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-20 12:28:46 -04:00
Roberto Rosario
a6f58a62ee Add help text line for the test_release target.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-19 23:26:39 -04:00
Roberto Rosario
5192b3af02 Bump version to 2.2rc1
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-19 22:56:20 -04:00
Roberto Rosario
db987d47c4 Add reminder remark for future removal.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-19 22:55:16 -04:00
Roberto Rosario
9124209aa3 Add document comment field search.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-04-19 22:54:16 -04:00
David Paez
ced28963ad Style improvements in transformations.rst
Signed-off-by: David Paez <davpaez@gmail.com>
2017-04-05 23:56:22 -05:00
David Paez
78365a7d4c Typo fixes and style improvements in installation.rst
Signed-off-by: David Paez <davpaez@gmail.com>
2017-04-05 23:55:29 -05:00
David Paez
7bd88561d5 Style fixes in features.rst
Signed-off-by: David Paez <davpaez@gmail.com>
2017-04-05 23:54:22 -05:00
David Paez
2fc462bad5 Character and style fixes in development.rst
Signed-off-by: David Paez <davpaez@gmail.com>
2017-04-05 23:53:41 -05:00
David Paez
25c66a5101 Fix typo in deploying.rst
Signed-off-by: David Paez <davpaez@gmail.com>
2017-04-05 23:50:10 -05:00
David Paez
d041f205fb Add http:// to address in index.rst
Signed-off-by: David Paez <davpaez@gmail.com>
2017-04-05 23:47:58 -05:00
Roberto Rosario
5ebc615b80 Add support to the change submit icon in the multiform template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-28 05:13:54 -04:00
Roberto Rosario
9753146785 Add the FormExtraKwargsMixin to SingleObjectDetailView view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-25 00:50:24 -04:00
Roberto Rosario
55d6710630 Update required Sphinx version to latest.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-25 00:49:24 -04:00
Roberto Rosario
5982eba0ce Add missing document states migration.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-25 00:49:16 -04:00
Roberto Rosario
042d31db93 Update python-magic to version 0.4.13 and sh to version 1.12.9
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-22 03:45:11 -04:00
Roberto Rosario
20f7967241 Initialize PyOCR backend tool attribute to a sane default.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-22 03:14:21 -04:00
Roberto Rosario
2d5667a1af Bump version to 2.2 beta3.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-20 02:20:20 -04:00
Roberto Rosario
ff7091cd80 Make sure the smart setting instance value cache is valid before
display its serialize version.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-20 01:44:39 -04:00
Roberto Rosario
2d3f09266e Disable the Folders app by default.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-20 01:21:52 -04:00
Roberto Rosario
2ad4b9c06f Display the work "Profile" instead of the user's full name or username.
This avoid style breakage on long full names or usernames.
The user's full name or username is no longer displayed in the main menu.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-20 01:18:17 -04:00
Roberto Rosario
69c1eacb75 Update Font Awesome to version 4.7.0.
Improve dashboard widget CSS class names.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-20 00:37:48 -04:00
Roberto Rosario
abcf53f778 Update .gitignore to ignore the mayan/media directory. 2017-03-20 00:24:46 -04:00
Roberto Rosario
b7040cd271 Include all test arguments from the test runner parent class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-15 00:17:10 -04:00
Roberto Rosario
106816ab7f Do not impot psutils for test if it is not going to be used.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-15 00:16:44 -04:00
Roberto Rosario
cc851588b6 Add further test files to the MANIFEST: zip and GPG files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-15 00:16:33 -04:00
Roberto Rosario
0708184be2 Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-14 23:51:26 -04:00
Roberto Rosario
10faf2bb49 Update MANIFEST to not include static files and to include
test files.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-14 23:48:51 -04:00
Roberto Rosario
8179c35189 Simplify test runner by adding a new option '--mayan-apps' that
automatically tests all Mayan apps that report to have tests.
Change the app flag that indicates when an app has test
from 'test' to the more explicit 'has_test'.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-14 23:47:40 -04:00
Roberto Rosario
89512be546 Fix test import typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-14 23:28:43 -04:00
Roberto Rosario
59241cb831 Update the Makefile help text. Add the -O fair flat to the Celery worker.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-14 17:43:00 -04:00
Roberto Rosario
5fdfdcae78 Use new way to request permissions by pk.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-14 16:56:34 -04:00
Roberto Rosario
765530b386 Add missing field in field registration tuple.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-14 16:55:57 -04:00
Roberto Rosario
63682a2945 Merge remote-tracking branch 'origin/master' into feature/master_merge
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-14 15:57:38 -04:00
Roberto Rosario
ca7b8301a1 Bump version to 2.1.11. Add changelog and release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-13 23:58:54 -04:00
Roberto Rosario
9acbaf7274 Merge branch 'feature/transition_acls' into feature/hotfix 2017-03-13 23:25:42 -04:00
Roberto Rosario
5ddb3f1cff Add support for adding or editing document types to smart links the API.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-13 22:55:29 -04:00
Roberto Rosario
7341971c86 The deleted document restore API endpoint doesn't need a serializer.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-13 22:38:22 -04:00
Roberto Rosario
cc174a563c Display a placeholder error document image for documents with no pages.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-13 21:33:19 -04:00
Roberto Rosario
858eb8b020 Add writable ACLs API endpoints.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-13 21:04:12 -04:00
Roberto Rosario
f6b58655e8 Permissions are read only always.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-13 21:02:34 -04:00
Roberto Rosario
ffb98cdba6 Add ACL creation API endpoint. 2017-03-10 01:27:10 -04:00
Roberto Rosario
31580ee51d Add size field to the document version serializer.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 13:32:03 -04:00
Roberto Rosario
aaa9578047 Update MANIFEST to add *.gif *.eot *.svg from cabinets app.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 02:21:27 -04:00
Roberto Rosario
c598f87d7f Hide the static tag import to avoid errors with static file
processors

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 02:21:00 -04:00
Roberto Rosario
f30cf440fe PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 02:20:41 -04:00
Roberto Rosario
ff703b32a2 Integrate the Cabinets app into the core.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 01:59:13 -04:00
Roberto Rosario
286e9517c3 Add Makefile targets to run testing instance against local
Docker REDIS and Postgres services

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 01:04:22 -04:00
Roberto Rosario
5abb678433 Fix formatting of the production template engine overrides
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 01:02:45 -04:00
Roberto Rosario
38f5ce86d8 Move the document section on unused Python package removal to the git section.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 00:46:21 -04:00
Roberto Rosario
9c4410c0fd Fix HISTORY formatting typos.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 00:46:08 -04:00
Roberto Rosario
f64ec81a1a Update required version of django-celery for Django 1.10 compatibility.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-09 00:43:10 -04:00
Roberto Rosario
7a4a78c2ca Move favicon redirect code from common.urls to common.views as
FaviconRedirectView. This removed the
django.contrib.staticfiles.templatetags.staticfiles.static URL runtime
computation from common.urls. GitLab issue #340.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-07 00:43:32 -04:00
Roberto Rosario
85cb1a0f71 Point Flatly's Glyphicons references to the include bootstrap distribution files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-07 00:37:17 -04:00
Roberto Rosario
ef6c98660b Disable loading the base Bootstrap CSS, Flatly seems to include it already.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-07 00:36:54 -04:00
Roberto Rosario
21140dfad2 Remove optional theme CSS files.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-07 00:17:02 -04:00
Roberto Rosario
ccc77cdaf7 Add documentation section of version numbering. 2017-03-06 23:47:37 -04:00
Roberto Rosario
26a7029140 Add a "Check now" button to the interval sources for testing.
Ref: GitLab issue #313 Thanks to @gersilex for the suggestion.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-06 23:46:11 -04:00
Roberto Rosario
772e8cbeff Bump version to 2.2 beta 1 2017-03-06 23:10:18 -04:00
Roberto Rosario
f11ffdec52 Use force_text for debug print to avoid showing non critical unicode errors in the console.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-06 23:09:53 -04:00
Roberto Rosario
ae31800432 Update the requirements in the setup.py file.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-06 22:49:57 -04:00
Roberto Rosario
fd905e4e3e Update required Django version to 1.10.6
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-06 22:49:11 -04:00
Roberto Rosario
90f1df76bb Revert "Update required Django version to Django 1.10.6"
This reverts commit c03ae5649b.
2017-03-06 22:47:11 -04:00
Roberto Rosario
c03ae5649b Update required Django version to Django 1.10.6
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-06 22:46:54 -04:00
Roberto Rosario
0ad37366fd Update expected view test response code.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-03-06 22:32:53 -04:00
Roberto Rosario
432a2c5155 Don't user referer URL blindly, recompose using know view name. 2017-03-03 05:03:23 -04:00
Roberto Rosario
ba467e2749 Add support for overriding the celery class. 2017-03-02 02:31:54 -04:00
Roberto Rosario
406f8cb245 PEP8 cleanups.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 23:42:18 -04:00
Roberto Rosario
137c9daa57 Fix typo in test literal string.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 23:41:01 -04:00
Roberto Rosario
206776441c Add transition ACLs support to the API view and serializer.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 23:40:32 -04:00
Roberto Rosario
dda2bfd7a8 Move transition ACLs filtering from the form to the model.
This way it is usable from many places without duplication.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 23:39:31 -04:00
Roberto Rosario
01c2e262eb Ignore LibreOffice fontconfig cache dir when testing for orphan
temporary files.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 20:06:55 -04:00
Roberto Rosario
cca5a44dc1 Merge branch 'feature/transition_acls' into 'feature/transition_acls'
Feature/transition acls

See merge request !10
2017-02-24 00:04:54 +00:00
Roberto Rosario
976e6d552f Turn off permission checking for the workflow transition link
to allow it to display even when users have been granted the transition
permission to only a few transitions and no for the whole workflow
itself. GitLab issue #321.  cc: @roger.hunwicks

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 13:26:10 -04:00
Roger Hunwicks
f27e882ad2 Merge branch 'feature/transition_acls' of gitlab.com:kimetrica/mayan-edms into feature/transition_acls 2017-02-23 16:31:27 +02:00
Roger Hunwicks
ed0145cc1c More detailed logging for permissions checks - see #321
Signed-off-by: Roger Hunwicks <roger@tonic-solutions.com>
2017-02-23 16:29:20 +02:00
Roger Hunwicks
6e75cba4c7 More detailed logging for permissions checks - see #321 2017-02-23 16:22:21 +02:00
Roberto Rosario
d2ead4e1fb Add view to list documents by their workflow and by their
current workflow state.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 05:36:33 -04:00
Roberto Rosario
803d56ccf7 Add missing 'hide_columns' condition in the list sub template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 05:36:14 -04:00
Roberto Rosario
dd63bf3c7c Fix key name typo in document page image generation.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 04:07:24 -04:00
Roberto Rosario
5e886d9eaf Add tool to launch all workflows. Already running workflows are unaffected.
Closes GitLab issue #355.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 03:03:20 -04:00
Roberto Rosario
77996157f2 Merge remote-tracking branch 'origin/master' into merge_test
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 02:21:41 -04:00
Roberto Rosario
a993ec7796 Merge branch 'feature/metadata_api' into development 2017-02-23 02:14:59 -04:00
Roberto Rosario
70dfb1561d Refactor the metadata API to conform to best practices.
Perform model validation on document type metadata type and
document type API endpoints.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-23 02:13:59 -04:00
Roberto Rosario
eaa9af55c4 Silence the PEP8 warning F405 "may be undefined, or defined from star imports".
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-22 17:17:02 -04:00
Roberto Rosario
958ce912a0 AccessControlList.objects.check_access was updated to do a
Permission.check_permissions too. Remove duplicity.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-22 16:48:59 -04:00
Roberto Rosario
81c0f90b4f Add document comments API endpoints. GitHub issue #249.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-21 02:48:02 -04:00
Roberto Rosario
54372d966d Merge branch 'master' into feature/hotfix 2017-02-20 02:46:12 -04:00
Roberto Rosario
3c090bc6a3 Merge branch '2_1_10-hotfix' into feature/hotfix 2017-02-20 02:44:00 -04:00
Roberto Rosario
7ded52be09 Add per document type, workflow list API view. GitLab issue #357, GitLab merge request #!9. cc @jeverling 2017-02-20 02:41:37 -04:00
Roberto Rosario
0625bcf44a Add per document type, workflow list API view. GitLab issue #357, GitLab merge request #!9. cc @jeverling 2017-02-20 02:40:31 -04:00
Roberto Rosario
6e1cf57079 Implement document workflows transition ACLs. GitLab issue #321.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-20 02:37:42 -04:00
Roberto Rosario
2544b569f0 Add new read only endpoints for the ACL app API. 2017-02-19 02:35:19 -04:00
Roberto Rosario
e3f9dd9d20 Add a generic relation to any model that registers itself for ACLs.
This helps reference the ACLs of the model with using ContentType.
2017-02-19 02:34:17 -04:00
Roberto Rosario
05e5363bfc Add the url of a permission in the permission serializer. 2017-02-19 02:33:29 -04:00
Roberto Rosario
c8e9a625da PEP8 cleanups. 2017-02-17 18:56:05 -04:00
Roberto Rosario
e090628d72 Make testing for orphaned file handles and temporary files optional.
Allows for running tests in parallel.
2017-02-17 18:50:36 -04:00
Roberto Rosario
0078600e62 Add custom tests runner that replaces the custom "runtests"
management command.
2017-02-17 18:12:48 -04:00
Roberto Rosario
df4aabcc0a Merge remote-tracking branch 'origin/master' into merge_test 2017-02-16 22:12:09 -04:00
Roberto Rosario
708c7ea776 Lower the default verbosity of the non debug console logger from
INFO to ERROR.
2017-02-16 22:10:52 -04:00
Roberto Rosario
a9597c81dd Add missing setUp call to the text extractor test case. 2017-02-16 22:10:31 -04:00
Roberto Rosario
8c4d53b218 Remove unnecessary cache invalidation from test, it is done by the test's
parent class.
2017-02-16 21:48:37 -04:00
Roberto Rosario
76f8f8f046 Add missing teartDown call to test. 2017-02-16 21:48:11 -04:00
Roberto Rosario
5ff3ea9317 Don't override the DEBUG variable value of local.py 2017-02-16 21:47:43 -04:00
Roberto Rosario
cd32c5bda5 Return the corresponing keyword arguments to the view of the document
thumbnail widget depending on the view type: template or API.
2017-02-16 21:46:40 -04:00
Roberto Rosario
80f64d7fcf Add BaseAPITestCase class that invalidates the permission and smart settings caches.
Use BaseAPITestCase for all API test cases.
2017-02-16 21:12:55 -04:00
Roberto Rosario
9942da601e Add links to the contributing document and the roadmap wiki.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-16 02:05:24 -04:00
Roberto Rosario
37f0597b34 Add Developer Certificate of Origin.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-02-16 01:50:00 -04:00
Roberto Rosario
8b20015f64 Add per document type, workflow list API view. GitLab issue #357, GitLab merge request #!9. cc @jeverling 2017-02-15 20:20:14 -04:00
Roberto Rosario
722007702c Merge branch 'feature/add-quicklinks-to-documenttypeserializer' into 'master'
Feature/add quicklinks to documenttypeserializer

See merge request !8
2017-02-15 22:22:28 +00:00
Jesaja Everling
0b2406d616 Added DocumentTypeFilenameSerializer to display Quick links inline 2017-02-14 19:56:11 +02:00
Roberto Rosario
81e090f375 Update the document app API endpoints.
Use resource/<pk>/subresource/<pk> scheme.
2017-02-14 02:42:40 -04:00
Roberto Rosario
f67443f0d5 Add dhasboard widgets removed by the merge with master. 2017-02-13 21:15:27 -04:00
Roberto Rosario
ce6f59b9bd Merge remote-tracking branch 'origin/master' into feature/merge_master 2017-02-13 21:00:56 -04:00
Roberto Rosario
cd910e8ae9 Bump version to 2.1.10 2017-02-13 02:46:08 -04:00
Roberto Rosario
fa38b5b135 Add version 2.1.10 changelog and release notes. 2017-02-13 02:45:28 -04:00
Roberto Rosario
4469f020a6 Update Makefile to use twine for releases. Add target to make test releases. 2017-02-13 02:42:01 -04:00
Roberto Rosario
1f230c843a Call the wheel target instead of executing setup.py 2017-02-13 02:04:49 -04:00
Roberto Rosario
e65b453bc1 Bump version to v.2.1.9. Add changelog and release notes.
This is a micro version release to due to the Python
Package Index not allowing re-uploads.
2017-02-12 23:18:00 -04:00
Roberto Rosario
26f17b6ede Workaround long standing pypa wheel bug #99
https://bitbucket.org/pypa/wheel/issues/99/cannot-exclude-directory
2017-02-12 23:08:11 -04:00
Roberto Rosario
9c7ba66d1f Update MANIFEST to include the markdown version of the README.
Convert the markdown README to .rst for PyPI. Add pypandoc to the
development requirements.
2017-02-12 22:35:04 -04:00
Roberto Rosario
55a905236b Update README file. Switch format to markdown. 2017-02-12 15:27:49 -04:00
Roberto Rosario
00a2fce71d Add changelog. Bump version to 2.1.8. 2017-02-12 13:03:01 -04:00
Roberto Rosario
36db1f4e06 Return metadata type lookup values as list of unicode not list of strings.
Fixed GitLab issue #310, thank for @fordguo for the find and fix suggestion.
2017-02-12 03:15:49 -04:00
Roberto Rosario
92ac4dc2f7 Add writable versions of the Document and Document Type serializers (GitLab issues #348 and #349). 2017-02-12 03:11:24 -04:00
Roberto Rosario
a3959aaf79 Add resolved smart link API views. Add Smart link manager method
.get_for(document).
2017-02-12 02:22:26 -04:00
Roberto Rosario
dbd614f504 Fix typo 2017-02-11 02:13:06 -04:00
Roberto Rosario
651f659a05 Add linking app setup API views and tests. 2017-02-11 02:12:25 -04:00
Roberto Rosario
3b9bc3fe78 Merge remote-tracking branch 'origin/master' into merge 2017-02-11 00:35:21 -04:00
Roberto Rosario
de92764067 Merge branch 'feature/enable_json_post_to_documenttypenewmetadatatypeserializer' into 'master'
Passing `self.request.data` to serializer not `self.request.POST`

Closes #353

See merge request !7
2017-02-11 02:09:03 +00:00
Roberto Rosario
49b2fcae6c Merge branch 'feature/handle_integrityerror_in_documentnewmetadataserializer' into 'master'
Raise ValidationError when IntegrityError occurs for metadata_type_pk

Closes #352

See merge request !6
2017-02-11 02:07:24 +00:00
Roberto Rosario
c218819728 Add API endpoints for the message of the day app. 2017-02-10 18:16:46 -04:00
Roberto Rosario
7a1b3e2ee2 Unify tag API test names and methodology. 2017-02-10 17:46:03 -04:00
Roberto Rosario
75b77d6059 Add workflow instance API endpoints and tests. 2017-02-10 03:13:26 -04:00
Jesaja Everling
280f0e74be Passing self.request.data to serializer not self.request.POST 2017-02-09 20:14:25 +02:00
Jesaja Everling
448400dc21 Raise ValidationError when IntegrityError occurs for metadata_type_pk 2017-02-09 18:49:35 +02:00
Roberto Rosario
0ff0841826 Add workflow transition API endpoints and tests. 2017-02-09 05:16:06 -04:00
Roberto Rosario
ab68723cf6 Commit working workflow state serializer, API views and tests. 2017-02-09 04:04:58 -04:00
Roberto Rosario
d12d2d9865 Initial commit to support workflow states API endpoints. 2017-02-09 00:19:42 -04:00
Roberto Rosario
e4da3eb786 Finish base document states API views. 2017-02-08 20:46:34 -04:00
Roberto Rosario
3b7a241c02 Tag API tests cleanups. 2017-02-08 17:04:40 -04:00
Roberto Rosario
5de3a60725 Rename the document type serializer link to its documents to documents_url
according to the new guidelines.
2017-02-08 17:03:57 -04:00
Roberto Rosario
146459d5bc Inital work on the document states API 2017-02-08 17:03:36 -04:00
Roberto Rosario
651e370191 Add key serializer, API endpoints and API tests to the django_gpg app. 2017-02-08 01:28:30 -04:00
Roberto Rosario
f885d886bd Improve the document tag serializer. Add document tag detail view.
Add more API tests. Tweak URLs to conform with API design best practices.
2017-02-08 00:53:33 -04:00
Roberto Rosario
66fb3a4530 Keep the django-mptt version mayan-cabinets may have installed. 2017-02-07 23:53:35 -04:00
Roberto Rosario
84e8330d5b Fix markup typo 2017-02-07 22:07:09 -04:00
Roberto Rosario
10e106ba83 Improve tag serializer adding bulk document tagging on creation and editing.
Improve and add additiona tag API tests.
2017-02-07 22:06:03 -04:00
Roberto Rosario
7340989dc5 Fix trashed document list API view. Add addition trashed document API tests. 2017-02-07 20:46:30 -04:00
Roberto Rosario
091bac591d Add source and adf-mode fields to the sane scanner source. Make all fields optional.
Improve error handling.
2017-02-06 04:44:04 -04:00
Roberto Rosario
25f1f7d067 Add experimental SANE scanner source. 2017-02-05 04:02:12 -04:00
Roberto Rosario
b58fa7e241 Return metadata type lookup values as list of unicode not list of strings.
Fixed GitLab issue #310, thank for @fordguo for the find and fix suggestion.
2017-02-03 16:20:45 -04:00
Roberto Rosario
5f99b123d7 Merge branch 'master' into master_merge 2017-02-03 14:08:34 -04:00
Roberto Rosario
8c3a19cf56 Bump version to 2.1.7. Add release note and changelog. 2017-02-02 01:42:27 -04:00
Roberto Rosario
1030db134b Add metadata type list, patch and detail API view tests. 2017-02-02 01:08:07 -04:00
Roberto Rosario
be39120e3f Enable the parser and validation fields of the metadata type serializer. 2017-02-02 01:06:28 -04:00
Roberto Rosario
73a4b685f0 Merge branch 'feature/hotfixes' of gitlab.com:mayan-edms/mayan-edms into feature/hotfixes 2017-02-02 00:44:11 -04:00
Roberto Rosario
e2c8f7b3fc Add complete role API endpoints (role create, patch, put, delete,
add/update role groups, add/update role permissions).
2017-01-30 18:33:06 -04:00
Roberto Rosario
3634284c5c Set the document type in the document serializer to read only.
This change improves PUT requests and changing the document type
via the API is not supported anyways.
2017-01-30 00:46:56 -04:00
Roberto Rosario
c81a15f4f0 Add permission list API endpoint. 2017-01-30 00:21:57 -04:00
Roberto Rosario
8a1f426715 Add object event list API view. 2017-01-29 02:41:51 -04:00
Roberto Rosario
6fbd166f3c Add event list API view 2017-01-29 01:25:59 -04:00
Roberto Rosario
914c5e7146 Code cleanups. 2017-01-28 22:56:52 -04:00
Roberto Rosario
562a9dea70 Add event type list api view. 2017-01-28 22:56:22 -04:00
Roberto Rosario
3a13027be0 Add content type list API view to the common app. 2017-01-28 22:55:48 -04:00
Roberto Rosario
7edb08a7cd This is an issue of the DRF browseable interface. The exception is shown
in the Swagger interface or via CURL.
Revert "Model.save() errors are being silently ignored by Django REST Framework."

This reverts commit 288de26d2b.
2017-01-28 20:50:42 -04:00
Roberto Rosario
2f67f0cffa Improve document version comment API tests.
Add document description update API tests.
GitLab issues #348 and #349.
2017-01-28 18:15:25 -04:00
Roberto Rosario
288de26d2b Model.save() errors are being silently ignored by Django REST Framework.
Force raising a ValidationError on Model.save() errors.
GitLab issue #348 and #349.
2017-01-28 18:13:27 -04:00
Roberto Rosario
b55b6dc117 Add API test for document version comment editing via PUT and PATCH.
GitLab issue #348.
2017-01-28 11:20:24 -04:00
Roberto Rosario
059237e4b9 Backport user creation and update API endpoints improvements. 2017-01-27 02:06:09 -04:00
Roberto Rosario
42b07013a6 Add missing timezone migrations. 2017-01-18 14:02:58 -04:00
Roberto Rosario
28697ce34c Add missing migration adding new transformations. 2017-01-18 14:02:42 -04:00
Roberto Rosario
05eafbe18c Add missing tag sorting migration 2017-01-18 14:02:26 -04:00
Roberto Rosario
182386e4ee Add group API tests. 2017-01-18 03:32:14 -04:00
Roberto Rosario
5c302c2fea Make the group field in the user create API read only. 2017-01-18 03:31:39 -04:00
Roberto Rosario
92d2f9cbdd Add mirror, flip, gaussian blur and unsharpen masking transformations. 2017-01-18 03:01:27 -04:00
Roberto Rosario
9cb5758245 Add 3 new "prepared" transformations: Rotate 90, 180 and 270 degrees.
Sort transformation list.
2017-01-18 02:35:14 -04:00
Roberto Rosario
5007d77425 PEP8 cleanups. 2017-01-18 02:02:32 -04:00
Roberto Rosario
bb8b606c92 Add additional tests. 2017-01-18 01:59:00 -04:00
Roberto Rosario
83149a09e7 Convert the document page view navigation views to CBV.
Fix the document page transformation navigation bug.
2017-01-18 01:10:30 -04:00
Roberto Rosario
5acdfee6bd Show a link as disable when it is disabled using the CSS markup of the theme. 2017-01-18 01:09:01 -04:00
Roberto Rosario
2259cbde40 Update installation instruction using Docker. 2017-01-16 02:31:19 -04:00
Roberto Rosario
a3c1b0873d Add links to the documentation, support page, forum and source in
the about menu. Make the about menu a nested menu.
2017-01-16 01:50:14 -04:00
Roberto Rosario
617df3bedb Default the runserver target to use the development settings. 2017-01-16 01:06:54 -04:00
Roberto Rosario
9f837aaade Add view to clone a document page transformations to other pages. 2017-01-16 01:05:34 -04:00
Roberto Rosario
3e898fd71b Make the file_lock.FileLock the new default lock backend. 2017-01-16 00:16:35 -04:00
Roberto Rosario
1e91f62575 Update release notes. 2017-01-16 00:12:20 -04:00
Roberto Rosario
ea2f6f1c85 Make sure the permission serializer is set to read only. 2017-01-15 23:59:16 -04:00
Roberto Rosario
23ffecdd30 Simplify permission lookup method. Add refresh class method to make sure
stored permissions are in sync with proxy permission.
Add __repr__ method.
2017-01-15 23:55:16 -04:00
Roberto Rosario
ef2f4f929b Generalize the LDAP connection example setting file. 2017-01-15 18:26:21 -04:00
Roberto Rosario
a0810ed355 Rewrite contributed permission list, role permissions list get and post, role
group list get and post API views.
2017-01-15 18:21:20 -04:00
Roberto Rosario
b32bc93a70 Update the user group map API view to match the rest of the user management API endpoints. 2017-01-15 02:40:08 -04:00
Roberto Rosario
0ddd766dfa Merge branch 'development' into lokeshmanmode/mayan-edms-master 2017-01-15 01:51:02 -04:00
Roberto Rosario
5fafbd5e7a Bump up some requirement versions. 2017-01-15 01:28:53 -04:00
Roberto Rosario
f5660cd629 Update all test for 100% passed (348 tests). 2017-01-14 17:43:55 -04:00
Roberto Rosario
6d54ecc10a Enable password validation on all the views and API endpoints that change password. 2017-01-14 17:13:03 -04:00
Roberto Rosario
da27edf981 Don't decode the date string of the build. Python3 comptibility. 2017-01-14 16:34:55 -04:00
Roberto Rosario
bf94973caa PEP8 cleanup. 2017-01-14 03:09:27 -04:00
Roberto Rosario
22a14d6a20 Fix document add metadata view and form to work when there are no documents in the view.
ie: when the user has no permissions.
2017-01-14 03:08:53 -04:00
Roberto Rosario
5ea31554bc Update and fix failing tests. 2017-01-14 03:08:32 -04:00
Roberto Rosario
4e7559d396 Add settings class cache invalidation method. Update common.tests.base.BaseTestCase
class to invalidate settings cache. Update tests using Django's TestCase to
BaseTestCase.
2017-01-14 00:13:35 -04:00
Lokesh
863c435bf5 Added above file for ldap backend authentication using mayan-edms. This is settings file which is used to run mayan-edms. 2017-01-11 08:09:36 +00:00
Lokesh
93e178a1e2 Update urls.py As in your creation of user API, group is not mapped with user so we added new API for mapping.
So api_urls is changed for the same.
2017-01-11 08:05:27 +00:00
Lokesh
b5c6fa40fa Update api_views.py In your API while creting user group field is not working i.e user not mapped with the group.
So we added above API for the same.
2017-01-11 08:02:16 +00:00
Lokesh
789120f4cb Updated urls.py, As we have added new APIs for role group mapping, role permission mapping, role group delete and get all permissions so in api_urls we added respective patterns for the same. 2017-01-11 07:56:41 +00:00
Lokesh
1bfeda382a There was no REST APIs for role permissions mapping, role group mapping, role group mapping delete and get list of all permissions.
So we have added all above APIs in this file.
2017-01-11 07:52:18 +00:00
Roberto Rosario
53d356d992 Fix and streamline user_management app tests. 2017-01-07 02:06:24 -04:00
Roberto Rosario
ea64515490 Fix and streamline document app tests. 2017-01-07 01:53:05 -04:00
Roberto Rosario
57485a0b58 Folder app test cleanups. 2017-01-07 01:09:47 -04:00
Roberto Rosario
8ae57a0fb6 Don't cache settings on creation but on first use. 2017-01-07 01:09:19 -04:00
Roberto Rosario
a013ab0bf5 Fix and streamline the folder app view tests. 2017-01-07 01:03:51 -04:00
Roberto Rosario
3d90fdb490 Don't silence removals during upgrade. 2017-01-06 19:13:00 -04:00
Roberto Rosario
86a602aa34 PEP8 cleanups. 2016-12-31 02:25:02 -04:00
Roberto Rosario
27171597de Use the select2 widget for the user language and locale.
Remove the ModelForm class.
2016-12-31 02:22:11 -04:00
Roberto Rosario
895dd9dc33 Optimize setting retrieval. Remove support for path settings checking.
Settings should be just a key, value storage.
2016-12-31 02:21:23 -04:00
Roberto Rosario
4f889fc21d Move the document language choice list from the model to the form.
Pycoutry upgrades or user changes to the language choice list won't
trigger a migration anymore. Closes GitLab issue #328.
2016-12-31 02:20:56 -04:00
Roberto Rosario
6bfdb053e3 Add new OCR backend using PyOCR. Remove current direct call Tesseract backend. 2016-12-30 00:36:45 -04:00
Roberto Rosario
5b94b419e9 Update base development settings to work with Django 1.10.x 2016-12-29 13:14:34 -04:00
Roberto Rosario
5167bbadee Refactor the document metadata add, edit and remove views. 2016-12-28 00:57:04 -04:00
Roberto Rosario
66a49ccefc Refactor the document transformation clear view. 2016-12-23 15:35:56 -04:00
Roberto Rosario
a6fdb73d05 Improve new version block check to ensure only block new document versions,
not versions being updated.
2016-12-23 15:24:52 -04:00
Roberto Rosario
e41537d22c Refactor the document page count update view. 2016-12-23 15:24:36 -04:00
Roberto Rosario
7941b90ea8 Refactor the document mailing views.
Add support for sending multiple documents via email at the same time.
2016-12-23 14:03:43 -04:00
Roberto Rosario
116a45f5d2 Refactor the user create, user delete and user set password views. 2016-12-23 03:07:51 -04:00
Roberto Rosario
6c5d0a16ef Update conveter tests hash literals. 2016-12-23 02:17:53 -04:00
Roberto Rosario
58a445a923 Cleanups 2016-12-23 02:14:17 -04:00
Roberto Rosario
b265dea1eb Refactor the document change type views to use the MultipleObjectFormActionView CBV. 2016-12-23 02:10:31 -04:00
Roberto Rosario
cff1dd7b5d Show the attach and remove tag in all the document tag views. 2016-12-23 01:53:02 -04:00
Roberto Rosario
6a13aaad4d Refactor the remove documents from folders view to allowing removing documents
from multiple folders at the same time.
2016-12-23 01:52:22 -04:00
Roberto Rosario
52fe5c556c Refactor folder add document using MultipleObjectFormActionView.
Add support for adding a document to multiple folders at the same time.
2016-12-23 01:20:52 -04:00
Roberto Rosario
ddabe28490 Update release notes. 2016-12-22 03:43:12 -04:00
Roberto Rosario
2f2c5d5b09 Make tests import from local setting to inherit the user's overrides.
Force tests to enable the DEBUG variable.
2016-12-22 03:37:36 -04:00
Roberto Rosario
9b3b54eb75 Make DEBUG False by default. 2016-12-22 03:37:07 -04:00
Roberto Rosario
2d7dc91928 Fix path of test document for the document signatures app. 2016-12-22 03:36:15 -04:00
Roberto Rosario
31b748a868 Update runtests management command to work with Django 1.10 2016-12-22 03:35:51 -04:00
Roberto Rosario
79b0763fe9 Cleanups 2016-12-22 03:15:32 -04:00
Roberto Rosario
92130608fb Integrate sample documents into distributable code.
This is to allow tests to run in production.
2016-12-22 03:14:43 -04:00
Roberto Rosario
5662b56714 Update project to work with Django 1.10.x 2016-12-22 02:53:06 -04:00
Roberto Rosario
1e194e04fa Move new version creation blocking from the documents app to the checkouts app.
Closes GitLab #294.
2016-12-22 01:45:43 -04:00
Roberto Rosario
71af09c1fc Add caret to the "Actions" menu for visual consistency. 2016-12-22 01:14:35 -04:00
Roberto Rosario
5b1779fe59 Update tag app tests. 2016-12-21 04:41:43 -04:00
Roberto Rosario
61c5f6eaa0 Refactor the workflow for removing tags from single or multiple documents. 2016-12-21 04:37:26 -04:00
Roberto Rosario
272c8a2628 Refactor the single and multiple tag delete views using MultipleObjectConfirmActionView. 2016-12-21 03:28:43 -04:00
Roberto Rosario
50a2a6c0f0 Add support to change the submit icon and label in the generic confirm template. 2016-12-21 03:28:17 -04:00
Roberto Rosario
c21eb6d4cf Refacto ActionView into MultipleObjectFormActionView and MultipleObjectConfirmActionView.
Split ActionView into smaller mixins.
2016-12-21 03:27:27 -04:00
Roberto Rosario
c262ccabbd Add tag container and CSS for extra spacing. 2016-12-21 01:58:57 -04:00
Roberto Rosario
a0bcbdbce9 Add support for attaching multiple tags to single or multiple documents in a single action. GitLab issue #307. Thanks to @zabeloliver for the initial request and to @gersilex for the implementation ideas. 2016-12-20 05:25:51 -04:00
Roberto Rosario
477869bd3b Add entry about removing the installation app in the changelog and release note. 2016-12-20 01:09:13 -04:00
Roberto Rosario
cc02ab19d5 Merge branch 'development' of gitlab.com:mayan-edms/mayan-edms into development 2016-12-20 01:00:49 -04:00
Roberto Rosario
90de742deb Merge remote-tracking branch 'origin/series/2.0' into merge 2016-12-19 21:59:00 -04:00
Roberto Rosario
0801682569 Don't load theme fonts from the web. GitLab #343. Thanks to @thestorm for the find. 2016-12-19 21:23:15 -04:00
Roberto Rosario
727766cbf0 Update Flatly stylesheet to version 3.3.7. 2016-12-19 21:03:45 -04:00
Roberto Rosario
2f46e49937 Sort tags by label. GitLab issue #342. Thanks to @gersilex for the find. 2016-12-19 19:12:36 -04:00
Roberto Rosario
c71a8f4e13 Bump version to 2.1.6 2016-11-23 03:14:00 -04:00
Roberto Rosario
ba65611c81 Update release notes and changelog. 2016-11-23 03:13:45 -04:00
Roberto Rosario
3e63010338 Synchronize translations. 2016-11-23 03:09:56 -04:00
Roberto Rosario
375948c1dc Add step to enable the supervisor service.
Ubuntu bug report: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740
Update nginx restart command to use systemctl too.
2016-11-22 22:25:15 -04:00
Roberto Rosario
108102219c Don't supply the entire license file to PyPI, only the name. 2016-11-22 22:22:13 -04:00
Roberto Rosario
ced3211318 Add upcomming version 2.1.6 release log and changelog. 2016-11-22 22:21:24 -04:00
Roberto Rosario
6aa0590b33 Update badges.
Update license badge to retrieve license from PyPI. Add Python version bagde.
2016-11-22 22:20:08 -04:00
Roberto Rosario
e950ea6698 Add missing decorator to get_collections tags. 2016-11-17 01:34:12 -04:00
Roberto Rosario
844511340d Add template tags to expose the license and copyright of the project. 2016-11-16 22:54:43 -04:00
Roberto Rosario
a94745ab9e Add the Collection class to the common app. 2016-11-16 22:53:20 -04:00
Roberto Rosario
b5c5602301 Expose more module attributes as project variables. 2016-11-16 22:50:40 -04:00
Roberto Rosario
ba11e63364 Improve transformation hashing algorithm. 2016-11-16 19:11:55 -04:00
Roberto Rosario
4578eacce9 Consolidate the page thumbnail and staging folder thumbnail widgets.
Update the staging folder file image API end point to work
in the same way the document page image API works.
2016-11-16 19:05:56 -04:00
Roberto Rosario
8b02ea7134 Fix variable name typo in the rotation transformation class. 2016-11-15 01:22:48 -04:00
Roberto Rosario
1133577e4d Fix ACL resolution for non model objects. 2016-11-14 02:57:41 -04:00
Roberto Rosario
7adf3621b7 Remove ununsed task. 2016-11-14 02:36:05 -04:00
Roberto Rosario
a335f39e2a Add support for the --reverse test parameter. 2016-11-14 02:34:56 -04:00
Roberto Rosario
a5a6afe240 Update MultiFormView CBV to work with Django 1.9.x 2016-11-14 01:47:19 -04:00
Roberto Rosario
3663521899 Split document app views into different modules. 2016-11-13 18:16:01 -04:00
Roberto Rosario
90c08b707d Optimize the FileLock backend. 2016-11-13 17:28:52 -04:00
Roberto Rosario
44531bd92a Add plugable locking backend support. Add threadsafe file lock backend. 2016-11-13 03:50:09 -04:00
Roberto Rosario
f5e3d5a8f2 Remove screenshot documentation section. 2016-11-13 00:14:09 -04:00
Roberto Rosario
c5ab1a22a9 Add checkedout documents dashboard widget 2016-11-13 00:07:08 -04:00
Roberto Rosario
9ed20091d2 Rename the licenses modules from packages.py to licenses.py 2016-11-12 23:59:50 -04:00
Roberto Rosario
99302e9300 Move package licenses to their own modules within the apps. 2016-11-12 02:28:06 -04:00
Roberto Rosario
aa91bce3ab Add support for drop down menu in the navigation bar. Simplify the home screen. 2016-11-12 01:56:31 -04:00
Roberto Rosario
248d3886e0 Add dashboard feature 2016-11-11 02:12:42 -04:00
Roberto Rosario
d4a95ddb8b Add new menu instance for user related links. 2016-11-10 23:32:43 -04:00
Roberto Rosario
aa2e8f3a11 Merge remote-tracking branch 'origin/master' into merge_test 2016-11-09 01:27:34 -04:00
Roberto Rosario
9c0d2ac60c Bump version to 2.1.5 2016-11-08 20:00:26 -04:00
Roberto Rosario
1867b2e08d Update release notes and changelog. 2016-11-08 19:59:05 -04:00
Roberto Rosario
df3f7c38c3 Update changelog and release notes. 2016-11-08 19:23:06 -04:00
Roberto Rosario
7f4dee8d69 Fix testing settings for GitLab CI. 2016-11-08 18:19:49 -04:00
Roberto Rosario
95a23c8f7a Expland staging folder and watch folder explanation. 2016-11-08 18:14:54 -04:00
Roberto Rosario
98327ae877 Return the same image when rotation degrees are 0. 2016-11-08 17:47:51 -04:00
Roberto Rosario
e4a4e6b0c8 Don't open a new browser window when running makefile commands. 2016-11-08 17:47:00 -04:00
Roberto Rosario
048960ae52 Fix ACL create view HTML response type. GitLab issue #335. Thanks to @DocCyblade for the report. 2016-11-08 13:54:20 -04:00
Roberto Rosario
d072c0af55 Merge remote-tracking branch 'origin/master' into test 2016-11-08 02:34:40 -04:00
Roberto Rosario
6b9b280d71 Improve documentation regarding the use of GPG version 1. GitLab issue #333. Thank to @Albe for the report. 2016-11-08 02:26:17 -04:00
Roberto Rosario
14bde36c1f Backport trash can navigation link resolution fix, GitLab issue #331. Thanks to @DocCyblade for the report. 2016-11-08 02:14:08 -04:00
Roberto Rosario
4222035cc1 Backport zoom transformation performance improvement, GitLab issue #334. Thanks to @startmat for the patch. 2016-11-08 02:03:10 -04:00
Roberto Rosario
43264f23b1 Update Pillow to version 3.1.2 2016-11-08 01:58:48 -04:00
Roberto Rosario
f98063835a Backport resize transformation math operation fix, GitLab issue #319. Thanks to @startmat for the find. 2016-11-08 01:51:27 -04:00
Roberto Rosario
19d20ff9d1 Prevent unnecessary image.resize in TransformationZoom. Thanks to @startmat for the suggestion. GitLab issue #334. 2016-11-05 02:56:43 -04:00
Roberto Rosario
7c8fc51ad1 Make sure lazy images are loaded only once. 2016-11-05 02:21:46 -04:00
Roberto Rosario
2df6cb7985 Remove usage of url.patterns as per Django's deprecation warnings. 2016-11-04 04:02:48 -04:00
Roberto Rosario
bc7f5f44ed Improve document page image lazy loading. Use font awesome spinner and CSS3 animation. 2016-11-04 03:33:24 -04:00
Roberto Rosario
69bcade6fb Don't asume all non model instances have the get_deferred_fields method (ie: Statistics).
GitLab issue #331
2016-11-04 01:52:33 -04:00
Roberto Rosario
d473245fb2 Rename the document_html_widget to document_page_html_widget for clarity of purpose. 2016-11-04 01:45:40 -04:00
Roberto Rosario
3df30b63f3 Make sure the method has sensible defaults. 2016-11-04 01:34:12 -04:00
Roberto Rosario
0992e22568 Typecast to integers only when there is querystring data. 2016-11-04 01:33:44 -04:00
Roberto Rosario
011db7c0f6 Convert the document print view to CBV. Tweak the print template. Make 'print all' pages the default. 2016-11-04 01:32:59 -04:00
Roberto Rosario
31b2464899 Add explicit test for deferred fields instances in menu resolution.
Fixes document link appearing in deleted document views. Fixes GitLab issue #331.
2016-11-03 18:33:25 -04:00
Roberto Rosario
b2ba2c70dc Fix typo in user_add view url definition. 2016-11-03 17:47:45 -04:00
Roberto Rosario
a59c4e8fc1 Fix dynamic search tests. 2016-11-03 17:47:30 -04:00
Roberto Rosario
4d9da58890 Update search api test to work with the new url scheme. 2016-11-03 15:50:38 -04:00
Roberto Rosario
b9791287d3 Fix typo defining user_delete view. 2016-11-03 15:50:23 -04:00
Roberto Rosario
2b335e9454 Add test for deleted document restore link. 2016-11-03 15:49:56 -04:00
Roberto Rosario
877772f80d Add another temporary directory to be ignored during tests. 2016-11-03 15:49:28 -04:00
Roberto Rosario
12e500e55d Display a message instead of a UI specific icon when there are not pages to show. 2016-11-03 15:35:03 -04:00
Roberto Rosario
2cdee10d50 Make sure transformation arguments are always valid. 2016-11-03 15:34:32 -04:00
Roberto Rosario
6fbbc7bacb Fix tag url typo. 2016-11-02 19:01:51 -04:00
Roberto Rosario
2777dc1070 Convert document page zoom and rotation views to CBV. 2016-11-02 19:01:30 -04:00
Roberto Rosario
3ab4778814 Remove lazy view string loading from urls.py as per Django's deprecation plan. 2016-11-02 17:38:54 -04:00
Roberto Rosario
696c2be2f3 Fix link global permission check. 2016-11-02 16:09:16 -04:00
Roberto Rosario
43d2539c95 Update OCR backend to work with the new document image caching system. 2016-11-02 05:05:25 -04:00
Roberto Rosario
5893e149e0 Reduce the check_access boilerplate code. 2016-11-02 04:58:05 -04:00
Roberto Rosario
621c988809 Simplify filter_by_access boilerplate code 2016-11-02 03:48:16 -04:00
Roberto Rosario
c0194c63dc Refactor document page image generation and transformation classes
to cache all transformed versions of a document page.
2016-11-02 02:34:57 -04:00
Roberto Rosario
ff67b11110 Improve upgrade process. Make removing obsolete requirements easier. 2016-10-31 15:21:00 -04:00
Roberto Rosario
de6564c264 Fix height calculation and remove disabled "fit" code. Thanks to @startmat for finding this one. Closes GitLab issue #319. 2016-10-31 15:08:43 -04:00
Roberto Rosario
9eb9c93afc Remove obsolete document printing tag 2016-10-31 01:14:39 -04:00
Roberto Rosario
6e3d99670c Complete conversion of download views to CBV views using django-downloadview.
This also removes dependency on the filetransfers library.
2016-10-31 01:00:35 -04:00
Roberto Rosario
24ef702e9c Update some direct model importing to use Django's apps.get_model instead. 2016-10-30 02:46:36 -04:00
Roberto Rosario
aca0491941 Update testing requirements. 2016-10-29 17:06:14 -04:00
Roberto Rosario
52b2ae3c84 Update documentation requirements. 2016-10-29 17:06:03 -04:00
Roberto Rosario
27943dca8c Update project requirements. 2016-10-29 17:05:55 -04:00
Roberto Rosario
1f648c5e86 Add command to execute runserver_plus 2016-10-29 16:28:49 -04:00
Roberto Rosario
ed7955f8e7 Update development requirements. 2016-10-29 16:26:37 -04:00
Roberto Rosario
1e50676f11 Merge branch 'master' into development 2016-10-29 16:22:12 -04:00
Roberto Rosario
6b6a238039 Add safety check Python package 2016-10-29 15:17:22 -04:00
Roberto Rosario
f978bd4982 Tweak installation instructions for easy of interpretation. 2016-10-28 04:56:35 -04:00
Roberto Rosario
b6784ee173 Don't import the base requirements just to build the documentation. 2016-10-28 04:47:49 -04:00
Roberto Rosario
718582f09d Add documentation badge 2016-10-28 04:43:34 -04:00
Roberto Rosario
b9bdf5c315 Fix release list formatting 2016-10-28 04:39:10 -04:00
Roberto Rosario
6c2f00e0d7 Bump version to 2.1.4 2016-10-28 04:26:17 -04:00
Roberto Rosario
49ea4ff2f6 Update release notes and changelog. 2016-10-28 04:26:06 -04:00
Roberto Rosario
2a0c50a313 Update setup with latest version requirements. 2016-10-28 04:25:51 -04:00
Roberto Rosario
6a48de5029 Update translations. 2016-10-28 04:19:15 -04:00
Roberto Rosario
e556c16117 Add migration to remove recent search data. 2016-10-28 03:07:45 -04:00
Roberto Rosario
5c9a34ab5e PEP8 cleanups 2016-10-28 03:06:29 -04:00
Roberto Rosario
5193009447 Update history 2016-10-28 03:04:02 -04:00
Roberto Rosario
5ddd0c861d Merge branch 'development' into feature/per_page_search 2016-10-28 02:51:17 -04:00
Roberto Rosario
80623e4436 Merge branch 'master' into development 2016-10-28 02:50:46 -04:00
Roberto Rosario
c10637aaa4 Update dynamic_search app API to support document page searches. 2016-10-28 02:44:02 -04:00
Roberto Rosario
2ad40a0970 Invert the search boxes order 2016-10-27 05:01:51 -04:00
Roberto Rosario
dbad54bf6b Merge branch 'master' into feature/per_page_search 2016-10-27 04:57:45 -04:00
Roberto Rosario
da250a6a9e Update the FAQ. 2016-10-27 04:57:11 -04:00
Roberto Rosario
3bb47c20db Add CONTRIBUTING document. 2016-10-27 04:53:43 -04:00
Roberto Rosario
eb2a3bba30 Update v2.2 change log 2016-10-27 04:00:21 -04:00
Roberto Rosario
aef395f4df Remove support for recent searches 2016-10-27 03:59:14 -04:00
Roberto Rosario
b8b2e0e929 Initial commit to support per page search. 2016-10-27 02:48:40 -04:00
Roberto Rosario
f66f815ba6 Remove the installation app 2016-10-26 23:04:59 -04:00
Roberto Rosario
62c0918acf Update appearance of install commands to reflect virtualenv activation. 2016-10-26 22:54:20 -04:00
Roberto Rosario
61e2925a61 Update release notes. 2016-10-26 19:39:51 -04:00
Roberto Rosario
d488c8271b Merge branch 'development' 2016-10-26 04:46:36 -04:00
Roberto Rosario
7cc5064df3 Add curl to the GitLab CI script to be able to send the coverage report. 2016-10-26 04:43:11 -04:00
Roberto Rosario
7b9a2bcfcc Ignore GitLab's CI .config temporary file. 2016-10-26 04:26:22 -04:00
Roberto Rosario
fa7c6ae8d7 Set the GitLab ci mysql service db server character set to utf8mb4. 2016-10-26 04:06:00 -04:00
Roberto Rosario
72980f09a6 Update TempfileCheckMixin to show list of oprhaned files. 2016-10-26 04:05:32 -04:00
Roberto Rosario
0b5edb4ad6 Add support to ignore certain temporary file patterns to the TempfileCheckMixin 2016-10-26 02:16:44 -04:00
Roberto Rosario
9d527ae423 Improve the UTF locale generation for the GitLab CI image. 2016-10-26 01:41:22 -04:00
Roberto Rosario
7ead59a408 Force locale previous of tests (GitLab CI). 2016-10-25 19:05:24 -04:00
Roberto Rosario
d779676724 Set the locale to avoid unicode tests from failing. 2016-10-25 18:43:00 -04:00
Roberto Rosario
1f1954161e Merge branch 'development' 2016-10-25 02:50:50 -04:00
Roberto Rosario
6abf3384c7 Update Python-gnupg to version 0.3.9 2016-10-25 02:49:50 -04:00
Roberto Rosario
f59d7ad0bd Add missing events app tests. 2016-10-24 18:50:19 -04:00
Roberto Rosario
d3e6b21146 Encapsulate python-gnupg code into its own backend class. 2016-10-24 18:48:26 -04:00
Roberto Rosario
665b814641 Add shell_plus command to the makefile 2016-10-24 18:43:14 -04:00
Roberto Rosario
56feae6e0e Install DB development libraries for the required GitLab CI service. 2016-10-24 02:27:10 -04:00
Roberto Rosario
3db472b0cd Update the expected HTML content type of failing view tests. 2016-10-24 02:26:43 -04:00
Roberto Rosario
07c8d36545 Add missing python-pip install for GitLab CI 2016-10-24 01:44:37 -04:00
Roberto Rosario
1b9a40dc5c Update GitLab CI to use the ubuntu 16.10 image. 2016-10-24 01:31:52 -04:00
Roberto Rosario
f28b797f0a Update default testing config to use GPG version 1. 2016-10-24 01:21:58 -04:00
Roberto Rosario
35c96034a7 Re-enable mysql testing and install GPG version 1. 2016-10-24 01:21:36 -04:00
Roberto Rosario
d13c444312 Add tesseract homepage link and note on how to add extra languages. 2016-10-24 01:20:43 -04:00
Roberto Rosario
9e7ffc1e99 Update release notes. 2016-10-24 01:20:22 -04:00
Roberto Rosario
07ecc60b63 Update documentation to specify usage of GPG version 1. GitLab issue #324. 2016-10-24 00:59:45 -04:00
Roberto Rosario
03d13ff224 Update documentation configuration option as per deprecation warning. 2016-10-24 00:55:15 -04:00
Roberto Rosario
652b0f13d0 Update release notes 2016-10-21 04:29:23 -04:00
Roberto Rosario
bf29846b54 Set the proper expected response content type in the document download views tests. 2016-10-21 04:27:41 -04:00
Roberto Rosario
89af7e9f12 Add tests for the events_for_object view and fix the content type of the same view response.
Fixes GitLab issue #311 for the events link.
2016-10-21 03:59:36 -04:00
Roberto Rosario
c881641ae8 Don't override the content_type CBV attribute.
These views (get method views) used it to set the content type of the response.
Fixes GitLab issue #311 for the ACL list view.
Note to Django developers: self.content_type should be a private attribute -> self._content_type
2016-10-21 03:46:18 -04:00
Roberto Rosario
a44c76165b Add test view mixin to check for responses content types. Relates to GitLab issue #311. 2016-10-21 03:41:15 -04:00
Roberto Rosario
91144a749f Add ACL list view tests. 2016-10-21 03:35:45 -04:00
Roberto Rosario
221301abd1 Add upcomming 2.1.4 release notes. 2016-10-21 02:22:36 -04:00
Roberto Rosario
8250085703 Statistics navigation links are not tied to querysets or model instances,
don't fail when failing to access their _meta field. Fixes GitLab issue #316.
2016-10-20 03:46:49 -04:00
Roberto Rosario
5fedada0f5 Update required Django version from 1.8.13 to 1.8.15
https://docs.djangoproject.com/en/1.10/releases/1.8.14/
https://docs.djangoproject.com/en/1.10/releases/1.8.15/
2016-10-20 03:07:26 -04:00
Roberto Rosario
ce8377da03 Update changelog. 2016-06-30 16:03:17 -04:00
Roberto Rosario
4b7c4335e1 Improve TempfileCheckMixin. 2016-06-30 16:02:17 -04:00
Roberto Rosario
4f2744f916 Add missing link to the 2.1.3 release notes in the index file. 2016-06-30 14:40:18 -04:00
Roberto Rosario
9483309332 Bump version to 2.1.3. 2016-06-29 19:05:38 -04:00
Roberto Rosario
07ac1cbbbe Add version 2.1.3 release notes and update the changelog. 2016-06-29 19:02:34 -04:00
Roberto Rosario
e62e6a9a08 Remove downloads badge as PyPI downloads tracking is broken and has been marked as "Won't Fix".
https://bitbucket.org/pypa/pypi/issues/396/download-stats-have-stopped-working-again
2016-06-29 18:44:51 -04:00
Roberto Rosario
97089670ee Change the file descriptor check to use open files instead. Add decorator to skip open file check. GitLab issue #309. 2016-06-29 18:40:15 -04:00
Roberto Rosario
063b325986 Fix file descriptor leak in document signature download test. 2016-06-28 03:01:29 -04:00
Roberto Rosario
2ea3c08c97 Add _future_ import to force unicode. 2016-06-28 03:01:04 -04:00
Roberto Rosario
f3f5cff36e Add missing temporary cleanup for the office documents section. 2016-06-28 01:53:53 -04:00
Roberto Rosario
d0aee4f72b Add parameter to fs_cleanup function to close a file descriptor before closing it. GitLab issue #309. 2016-06-27 19:21:42 -04:00
Roberto Rosario
5ac1276f25 Add base test class that includes unclaimed temporary and file descriptor test mixins. GitLab issue #309. 2016-06-27 19:20:42 -04:00
Roberto Rosario
113ad144e0 Add test mixins for file descriptor leaks and unclaimed temporary files. GitLab issue #309. 2016-06-27 19:19:37 -04:00
Roberto Rosario
c531631a37 Update Changelog. 2016-06-23 22:32:12 -04:00
Roberto Rosario
a76a55f70a Incorporate temp file check in teh GenericViewTestCase class. 2016-06-23 22:31:08 -04:00
Roberto Rosario
98e6ba2b50 Cleanup temporary files after running the poppler parser. GitLab issue #309. Thanks to @miek770 for finding the issue and solution. 2016-06-23 20:56:53 -04:00
Roberto Rosario
945158bd60 Normalize handling of temporary file and directory creation. 2016-06-23 20:54:10 -04:00
Roberto Rosario
ab831aa493 Fix setting message, no longer are temp project wide temp folders created by default. 2016-06-23 20:28:39 -04:00
Roberto Rosario
043233f79e The UserEditView view add the "user" context variable and confuses the base.html template. Update the base template to use *request.user* instead of just *user* to access the currently logged user. GitLab issue #295. 2016-06-06 05:17:28 -04:00
Roberto Rosario
883e623a15 User self.setdout instead of print as per documentation: https://docs.djangoproject.com/en/1.8/howto/custom-management-commands/#django.core.management.BaseCommand.style 2016-06-06 04:55:07 -04:00
Roberto Rosario
728121b1bb Add help message when initialsetup migration phase fails. GitLab issue #296. 2016-06-06 04:54:05 -04:00
Roberto Rosario
5ba861f4aa Bump version to 2.1.2 2016-05-20 02:41:46 -04:00
Roberto Rosario
c09a237af1 Add development makefile. Update changelog. Add release notes for version 2.1.2 2016-05-20 02:34:18 -04:00
Roberto Rosario
d1c87fe102 Allow MetadataLookup to receive callables. Update the {{ users }} and {{ groups }} metadata lookup options to be callables that return a current list of users and groups and not a queryset. Add integrations test user_managements -> metadata app. Fixes GitLab #290. Thanks to @camiloforero for finding this one. 2016-05-19 19:33:58 -04:00
Roberto Rosario
4de3bb99e2 Add custom ModelForm class that supports field choice sorting. Use the new form class to sort the user profile language field and the document language fields. Thanks to Baptiste GAILLET @bat79a for the original idea. GitLab issue #292. 2016-05-19 18:18:45 -04:00
Roberto Rosario
004b8c9054 Bump version to 2.1.1 2016-05-17 05:08:45 -04:00
Roberto Rosario
8712c6ee37 PEP8 cleanups. 2016-05-17 05:08:21 -04:00
Roberto Rosario
11da303529 Update changelog. 2016-05-17 05:04:27 -04:00
Roberto Rosario
c97208f609 Ensure that the automatic index is created after the default document type is created. 2016-05-17 05:02:57 -04:00
Roberto Rosario
0bebef5ba9 Add documentation chapter on document languages. 2016-05-17 04:07:03 -04:00
Roberto Rosario
27aae995f0 The Tesseract OCR backend now reports if the requested language file is missing. GitLab issue #289. 2016-05-17 03:49:23 -04:00
Roberto Rosario
4e55b28c43 Update build status badge URL. 2016-05-17 01:37:03 -04:00
Roberto Rosario
3d722325ca Fix navigation object column resolution. Fixes GitLab issue #288. 2016-05-17 01:36:12 -04:00
Roberto Rosario
5959e7362d Merge remote-tracking branch 'origin/master' into merge 2016-05-14 01:55:36 -04:00
Roberto Rosario
352457f576 Don't add the current user to the template context to avoid triggering user managment action links. 2016-05-14 01:49:29 -04:00
Roberto Rosario
7a746653da Bump version to 2.1 2016-05-13 21:16:05 -04:00
Roberto Rosario
715d3c6768 Change log updates. 2016-05-13 21:15:54 -04:00
Roberto Rosario
3f9d21167d Update requirements in setup.py 2016-05-13 21:03:12 -04:00
Roberto Rosario
7fc5f24da9 Update release notes. 2016-05-13 21:02:55 -04:00
Roberto Rosario
5a885868f8 Remove unpaper from installation scripts. 2016-05-13 21:02:40 -04:00
Roberto Rosario
fdf4984468 Add jquery plugin matchHeigh and use it for the tools and setup buttons. GitLab issue #274. 2016-05-12 03:12:14 -04:00
Roberto Rosario
7da6408de0 Add second attempt to match a navigation object as an instance of a source. Use for instances from a queryset using .defer() or .only(). 2016-05-12 01:48:42 -04:00
Roberto Rosario
084f6d4b2f Add an aditional step to verify that the update button is checked on required metadata types. 2016-05-12 01:35:08 -04:00
Roberto Rosario
516920f833 Be more explicit about which requied metadata type is missing. 2016-05-12 01:33:10 -04:00
Roberto Rosario
bc79798723 Improve printable ACL representation. 2016-05-11 03:39:07 -04:00
Roberto Rosario
9c22fc9714 Fix link related object ACL resolution. GitLab issue #274. Thanks to Baptiste GAILLET @bat79a. 2016-05-11 03:37:51 -04:00
Roberto Rosario
39ba601074 Fix API endpoint view name in trashed document API tests. 2016-05-11 00:40:42 -04:00
Roberto Rosario
24df09ba71 Fix switch name, fake initial migrations not all. 2016-05-11 00:40:22 -04:00
Roberto Rosario
80e12b2020 Create a sample document index after the initial setup. GitLab issue #275. 2016-05-10 19:56:20 -04:00
Roberto Rosario
6dcbd62c15 Update all mention of "deleted documents" to "trashed documents" in the document app API. GitLab issue #276. 2016-05-10 19:03:00 -04:00
Roberto Rosario
5a15a34818 Add document metadata API tests. Fix document metadata list API view. 2016-05-10 18:57:50 -04:00
Roberto Rosario
a817aa887f Add document type metadata type API tests. Improve document type metadata type delete API view. 2016-05-10 16:52:29 -04:00
Roberto Rosario
f4a415a3e8 Add metadata type API tests. 2016-05-10 01:11:38 -04:00
Roberto Rosario
8ef65a82f5 Add missing minor migrations 2016-05-09 20:27:09 -04:00
Roberto Rosario
f80fa49166 Defer heavy fields when showing a simple list of all documents. 2016-05-09 19:57:05 -04:00
Roberto Rosario
55d53bf4d5 Equate queryset model instances with deffered fields to their parent model class when resolving UI model columns.
This will allow models using .defer or .only optimizations to render properly on list views.
2016-05-09 19:55:03 -04:00
Roberto Rosario
8d549df088 Index the is_stub and is_deleted document boolean fields. 2016-05-09 19:54:32 -04:00
Roberto Rosario
8075bfd0bc Update Spanish translation. 2016-05-08 21:57:23 -04:00
Roberto Rosario
ddc7dc39b0 Update to use Django 1.8.13 2016-05-08 01:31:00 -04:00
Roberto Rosario
2a5264bc2c Fix view context document resolution for the document smart link list view. Fixes GitLab issue #266. Thanks to Baptiste GAILLET @bat79a for the find. 2016-05-08 01:13:54 -04:00
Roberto Rosario
d934b2ee1e Now that autoadmin has an initial migration don't error out on existing tables. 2016-05-07 20:28:34 -04:00
Roberto Rosario
94b968963e Bump version to 2.1rc2 2016-05-05 23:44:18 -04:00
Roberto Rosario
bd648d0cb1 Postgresql needs typecasting for turning char fields into native UUID fields.
Conditionally run the necesary SQL for this to happen. GitLab issue #266 Thanks to Baptiste GAULLET @bat79a for finding the solution.
2016-05-05 23:17:32 -04:00
Roberto Rosario
e3d49e1352 Use now django-autoadmin 1.1.1 2016-05-05 23:17:08 -04:00
Roberto Rosario
06ecbfeba2 Flake8 cleanups. 2016-05-04 15:58:17 -04:00
Roberto Rosario
b15d419172 Fix statistics detail view error. GitLab issue #270. @bat79a 2016-05-04 15:57:09 -04:00
Roberto Rosario
09640d3e43 Change the permission_document_restore permission label from 'deleted' to 'trashed'. 2016-05-04 01:40:51 -04:00
Roberto Rosario
924cb21a83 Add the permission_document_restore permission to the available permission for document's ACLs. GitLab issue #267 @bat79a 2016-05-04 01:39:32 -04:00
Roberto Rosario
5da301a861 Change the variable name to better represent the class of the instance. 2016-05-04 00:11:18 -04:00
Roberto Rosario
afb44798e0 Parent object of the index node being passed to the ACL module for permission test was a function by mistake and not the result of the function which is the index isntance. Fixes Gitlab issue #268 @bat79a 2016-05-04 00:08:44 -04:00
Roberto Rosario
a179a19749 Improve document indexing tests and add test for GitLab issue #268 @bat79a 2016-05-04 00:07:19 -04:00
Roberto Rosario
269d8fb5b3 Remove 'is_staff' and 'is_superadmin' from views and serializers. Add user API tests. 2016-05-01 17:06:37 -04:00
Roberto Rosario
0a8f429d04 Bump version to 2.1.0rc1 2016-04-28 02:44:42 -04:00
Roberto Rosario
b41c2ce02d Add missing dependency to setup.py 2016-04-28 02:44:17 -04:00
Roberto Rosario
15ed0a10e2 User self.stderr instead of print. Colorize the error message. 2016-04-28 01:54:17 -04:00
Roberto Rosario
ea734db79e Update mirror argument parsing to work with Django 1.8. 2016-04-28 01:34:18 -04:00
Roberto Rosario
23f40ac4aa PEP8 cleanups. 2016-04-27 20:31:02 -04:00
Roberto Rosario
3384c06c03 Mock the gpg tests that require internet access. 2016-04-27 20:19:26 -04:00
Roberto Rosario
f944f9ebbc Add smart link dynamic label test. 2016-04-27 18:46:58 -04:00
Roberto Rosario
c6eea8ba64 Don't perform OCR in folder model tests. 2016-04-27 18:19:30 -04:00
Roberto Rosario
af273fbfc3 Remove the creation of a test user. 2016-04-27 18:10:21 -04:00
Roberto Rosario
8a58ee2124 Expand the documentation chapter on file storage. 2016-04-27 15:16:11 -04:00
Roberto Rosario
e824fbffcf Add a documentation chapter regarding settings. 2016-04-27 15:15:57 -04:00
Roberto Rosario
9ab03d2c16 Expand the documentation chapter on transformations. 2016-04-27 14:54:50 -04:00
Roberto Rosario
232cb5e38d Synchronize and compile translations. 2016-04-27 14:54:33 -04:00
Roberto Rosario
5775f5aeaa Run makemessage for apps. 2016-04-27 14:20:45 -04:00
Roberto Rosario
1bda472287 Update roadmap 2016-04-26 18:31:48 -04:00
Roberto Rosario
6931d2ad81 Add direct to watched folder scanning issue to roadmap. 2016-04-26 18:02:59 -04:00
Roberto Rosario
f5609d402a Add backup and ocr backend documentation chapters. 2016-04-26 18:02:45 -04:00
Roberto Rosario
9d7e8d6123 Add roadmap documentation chapter. 2016-04-26 17:10:38 -04:00
Roberto Rosario
0299353fb7 Remove bold markup from all mentions of "Mayan EDMS" 2016-04-26 16:52:17 -04:00
Roberto Rosario
0fa26cda8b Add mailing documentation. 2016-04-26 16:42:25 -04:00
Roberto Rosario
19b43e9504 Remove donation options, add support info. 2016-04-25 14:42:02 -04:00
Roberto Rosario
232b7f644b Update sphinx autorebuild version used. 2016-04-25 14:37:29 -04:00
Roberto Rosario
f020a7a1c6 Expand v2.1 release notes. 2016-04-21 17:01:45 -04:00
Roberto Rosario
756108af8d Disable GitLab CI MySQL testing until GitLab mysql container isssue are fixed. 2016-04-04 23:05:06 -04:00
Roberto Rosario
e3200511ac Small query optimization. 2016-04-04 23:04:35 -04:00
Roberto Rosario
b04421438e Update changelog. 2016-04-04 23:04:20 -04:00
Roberto Rosario
e5743d8964 Remove Django 1.7 and add Django 1.9 to the tox test matrix. 2016-04-04 16:25:52 -04:00
Roberto Rosario
be392823bb Remove all GPG interface module. 2016-04-04 14:55:37 -04:00
Roberto Rosario
f042533576 Put event action description in past tense. 2016-04-04 13:51:23 -04:00
Roberto Rosario
33aefdaef7 Add document download and document preview event logging. Add corresponding tests. Closes GitLab issue #261. 2016-04-04 13:49:14 -04:00
Roberto Rosario
c6fb008562 Workaround problem with gpg embedded signatures corrupting the source file by using clearsign=False by default. 2016-04-01 23:28:34 -04:00
Roberto Rosario
9a0dd8c192 Add embedded signing test. 2016-04-01 12:43:06 -04:00
Roberto Rosario
07cd6d078f No need to typecast the result 2016-04-01 12:33:11 -04:00
Roberto Rosario
3d74bdb590 Add document embedded signature signing support. 2016-03-31 19:06:31 -04:00
Roberto Rosario
14988bab34 Add key upload view, permission, link and test. 2016-03-30 19:05:53 -04:00
Roberto Rosario
e8c0951b0d Add key download view, permission, link and test. 2016-03-30 18:29:39 -04:00
Roberto Rosario
94b00c7ce5 Replace document type selection widget with an opened select list HTML control. 2016-03-30 17:19:27 -04:00
Roberto Rosario
09b71144b6 Add support for signing documents from the UI. Mayan EDMS is now in the major leagues :) 2016-03-30 03:47:58 -04:00
Roberto Rosario
bc59613945 Add key content sign tests. 2016-03-30 02:32:08 -04:00
Roberto Rosario
24d8287072 Add Key usage for signing permission. 2016-03-30 02:30:50 -04:00
Roberto Rosario
8baca70ef5 Add link to document facet menu to display its latest version signatures. 2016-03-30 02:00:17 -04:00
Roberto Rosario
1e7e17bdce Insert the resolved_object context variable in the test views. 2016-03-30 01:42:17 -04:00
Roberto Rosario
c6890c487a Extract a file like object's file name as per docs (using the .name property) and not an unicode representation of the file object instance. Reference: https://docs.python.org/2.7/library/stdtypes.html#file-objects 2016-03-30 01:32:53 -04:00
Roberto Rosario
8b28bdd443 Add missing icon to the all document signature verification tool link. 2016-03-29 21:03:16 -04:00
Roberto Rosario
7da6cf1863 Add view, task and post upgrade signal handler to verify all documents for embedded signatures. 2016-03-29 20:13:58 -04:00
Roberto Rosario
d83a80c65b Add document signature app link tests. 2016-03-29 16:28:24 -04:00
Roberto Rosario
739b96ed37 Add related object link permission support. 2016-03-29 16:27:53 -04:00
Roberto Rosario
0783806fd1 Add signature deletion view tests. 2016-03-29 13:52:35 -04:00
Roberto Rosario
b9d75e525f Convert the signature download view to CBV and add corresponding test. 2016-03-29 05:12:04 -04:00
Roberto Rosario
3b593e10fd Add django-downloadview to the used packages. Add a Mayan generic sub class download view based on django-downloadviews' virtual download view class. 2016-03-29 05:11:08 -04:00
Roberto Rosario
c1cb983869 Just display the signature type to conserve UI space. 2016-03-28 14:57:19 -04:00
Roberto Rosario
e5c47f16d4 Update document version signature upload view to CBV and add test. 2016-03-28 14:56:49 -04:00
Roberto Rosario
35df61bca1 Add view test for the document signatures app. 2016-03-27 03:29:19 -04:00
Roberto Rosario
e708e0250e Support related object permission ACLs for more than just 1 level of relationship. 2016-03-27 03:28:14 -04:00
Roberto Rosario
fa1450fe5a PEP8 cleanups. 2016-03-27 03:27:56 -04:00
Roberto Rosario
0ffe20befd Fix link resolution in the document signature list view. This view exposes 3 navigable objects, use 'resolved_object' for correct link resolution. 2016-03-26 16:28:08 -04:00
Roberto Rosario
5de63c4477 Add support for verifying and unverifying signatures after a key is added or deleted. 2016-03-26 04:23:16 -04:00
Roberto Rosario
1f0dedc9aa Add more fields to signature detail form. 2016-03-26 04:06:43 -04:00
Roberto Rosario
779a14977d Add admin interface for embedded and detached signatures. 2016-03-26 04:06:08 -04:00
Roberto Rosario
9744cdd358 Redirect to public or private key list after deletion of a key. 2016-03-26 04:05:40 -04:00
Roberto Rosario
4a4573fb1b Add missing gpg directory chmod. 2016-03-26 04:05:15 -04:00
Roberto Rosario
467ad0dadb Add more logging. Add preloading of keys to decrypt_file method. Cleanups. 2016-03-26 04:04:34 -04:00
Roberto Rosario
ffb29e0f54 Remove obsolete Document property. Use resolved_object in documents links to avoid context variable clashes with signatures. 2016-03-25 04:12:44 -04:00
Roberto Rosario
7e801ef02e Fix verifyresult timestamp field. Remove Key ID property and verify return a separate small key id without a fingerprint when the signing key is not available. 2016-03-25 04:09:30 -04:00
Roberto Rosario
09b92858d9 Raise MayanAppConfig initialization exception if they are not bening about missing URLs. 2016-03-25 04:08:25 -04:00
Roberto Rosario
355190e919 Start of document_signatures app refactor. 2016-03-25 04:07:57 -04:00
Roberto Rosario
ab6e2d8c23 Fix verification using detached signature. 2016-03-24 02:47:53 -04:00
Roberto Rosario
d41dac5587 Add support for verification of detached signatures. 2016-03-24 00:27:49 -04:00
Roberto Rosario
a5f3d46373 Add a cleartext test file with a detached signature. 2016-03-24 00:26:53 -04:00
Roberto Rosario
c8f7c4ef86 Update document signature app to work with new django_gpg changes. 2016-03-23 19:57:45 -04:00
Roberto Rosario
e96f748439 Add key_id property to SignatureVerification class 2016-03-23 19:57:16 -04:00
Roberto Rosario
048ba4b5cd Add file decryption support. 2016-03-23 19:47:41 -04:00
Roberto Rosario
45774ccdcf Add SignatureVerification class to return verification results. Add support for specifing against which key to verify a signature. Add support to preload all keys before verifing a signature. All test for specific key verificatio and all key preloading. 2016-03-23 18:56:29 -04:00
Roberto Rosario
2f7c6ed0d9 Add embedded file signature verification. 2016-03-23 13:03:48 -04:00
Roberto Rosario
cd077cb076 Add more tests for the Key model. Remove the key_id field and made it a property derived from the fingerprint. 2016-03-23 11:58:08 -04:00
Roberto Rosario
f82b2000c3 Properly render date widgets on form instances. 2016-03-23 00:37:26 -04:00
Roberto Rosario
2748d5959f Place KeyManage on a seprate module. Convert views to use the new Key model. Add KeyStub class and use it to return query results. Add Key detail link and view. Remove the setting for multiple keyservers. 2016-03-23 00:35:32 -04:00
Roberto Rosario
189cda437f Add model test. Finish file signing method. Add key signing exceptions. 2016-03-22 18:02:40 -04:00
Roberto Rosario
dc5d25fd00 Initial code for database stored GPG keys. 2016-03-22 05:10:54 -04:00
Roberto Rosario
ccd6e8c88c Add document mailing view tests. 2016-03-21 18:59:22 -04:00
Roberto Rosario
c9010f6b5e Add test for the document link mailing view. 2016-03-21 17:42:24 -04:00
Roberto Rosario
3d970036b2 Sync translations with Transifex 2016-03-21 17:38:15 -04:00
Roberto Rosario
6fe778051e Update translation source files for all apps. Add Message of the Day source message file. 2016-03-21 16:53:09 -04:00
Roberto Rosario
7dc260046b Update the document type quick label model verbose name from 'Quick rename template' to 'Quick label'. 2016-03-21 16:25:16 -04:00
Roberto Rosario
dda0bbdba9 Add test for the document type quick label creation view. 2016-03-21 16:24:41 -04:00
Roberto Rosario
66d2baafb8 Convert document type quick label creation view to CBV. 2016-03-21 16:24:23 -04:00
Roberto Rosario
18a3773b65 Update changelog 2016-03-21 15:53:27 -04:00
Roberto Rosario
c43fe38ac9 Use Python's string.partition instead of find. 2016-03-21 04:11:50 -04:00
Roberto Rosario
26fce66451 Change pngtoppm to convert PDFs to JPEG instead of PNGs. 2016-03-21 03:49:11 -04:00
Roberto Rosario
28f3b7551d Consolidate document page image generation as binary or base64 to a single place at the converter class level. 2016-03-21 03:44:45 -04:00
Roberto Rosario
37d6070cab Convert the document version revert view to CBV. Add document version revert view tests. 2016-03-21 02:37:39 -04:00
Roberto Rosario
c07f5a7820 Add object permission checking to the generic ConfirmView. 2016-03-21 02:37:14 -04:00
Roberto Rosario
ad0643b62a Convert document cache clear view to CBV. Update message and link label to include the word 'image'. 2016-03-21 02:11:56 -04:00
Roberto Rosario
bd3e31efa4 Update document_reset_view to CBV. 2016-03-21 02:05:05 -04:00
Roberto Rosario
308472b92b Delete temporary directory after testing. 2016-03-20 16:35:08 -04:00
Roberto Rosario
a0b31d4bfe Convert the staging file deletion view to CBV. Add staging file deletion permission. 2016-03-20 16:34:39 -04:00
Roberto Rosario
7be6e8c6ed Add unicode filename test for the StagingFile class. 2016-03-20 15:59:49 -04:00
Roberto Rosario
6ec7a2ca4d Support unicode filenames in staging folders. 2016-03-20 15:40:42 -04:00
Roberto Rosario
b32563ac8e Add python 3.5 and remove python 3.2 from tox.ini. 2016-03-20 01:21:48 -04:00
Roberto Rosario
9191c04eb9 Update changelog. 2016-03-19 03:00:18 -04:00
Roberto Rosario
145161cef4 PEP8 cleanups. 2016-03-19 03:00:03 -04:00
Roberto Rosario
7cde1fe78f Add ACLs to document indexes. Convert all document indexing views to CBV. Remove the document index setup permission. Add view tests to the document indexing app. Use MPTT methods and stop relying on undocumented API. 2016-03-19 02:51:45 -04:00
Roberto Rosario
286a6ba9b8 Enable object access check via related attribute in generic CBV. 2016-03-19 02:51:03 -04:00
Roberto Rosario
2328355754 Don't error out when inspecting ACL permissions for an object with no registered permissions. 2016-03-19 02:20:36 -04:00
Roberto Rosario
45f90cce50 Return the instance when a document is added as recent for an user. 2016-03-19 02:20:01 -04:00
Roberto Rosario
50f473b698 Improve translation template. 2016-03-19 02:00:30 -04:00
Roberto Rosario
ed8ac47240 Extract context object name from the models meta options. 2016-03-19 01:57:30 -04:00
Roberto Rosario
34184e0726 Fix typo in management command name. 2016-03-18 20:58:06 -04:00
Roberto Rosario
66a49c8335 Don't assume all object have a proxy access accessor. 2016-03-18 20:57:39 -04:00
Roberto Rosario
042cef3d0e Add ACL view tests. 2016-03-18 20:57:22 -04:00
Roberto Rosario
adcf946fbb Sort ACL app views. Don't error out on duplicate ACL entry creation (same document + role), but instead redirect to existing ACL entry. 2016-03-18 20:56:41 -04:00
Roberto Rosario
5ac21faced Sort folder app views. 2016-03-18 19:51:29 -04:00
Roberto Rosario
de4948b84f Rename acl creation view from acl_new to acl_create for uniformity. 2016-03-18 19:44:25 -04:00
Roberto Rosario
8302e13d80 Add deleted document list filtering tests. 2016-03-18 18:47:32 -04:00
Roberto Rosario
30738a922c Properly filter deleted document queryset. 2016-03-18 18:46:26 -04:00
Roberto Rosario
473fc09e1a .index is a function not an attribute, add missing parentheses. 2016-03-18 00:23:43 -04:00
Roberto Rosario
4c4409aa1e PEP8 cleanups. 2016-03-17 00:44:54 -04:00
Roberto Rosario
5079b2790e Add Smart link view tests. 2016-03-17 00:39:04 -04:00
Roberto Rosario
67bb84c778 Convert smart link condition create, edit and delete views to CBV. 2016-03-16 18:26:40 -04:00
Roberto Rosario
c3149a58d6 Sort variables. 2016-03-16 18:26:12 -04:00
Roberto Rosario
5bb04cc8f4 Add newly uploaded document to the recent document list of the user. 2016-03-16 16:42:01 -04:00
Roberto Rosario
a6c9393aa0 Permission app's views are all CBV, don't specify view module to preload. 2016-03-16 16:40:39 -04:00
Roberto Rosario
e2bfece9ff Update document OCR content view to a CBV. 2016-03-16 16:40:17 -04:00
Roberto Rosario
0ecfb83d14 Fix metadata edit view test. 2016-03-15 19:03:42 -04:00
Roberto Rosario
6bf352ecbb Fix queryset assigment, should always be of MetadataType not DocumentTypeMetadataType, errors out on Postgres. 2016-03-15 18:39:48 -04:00
Roberto Rosario
8ae61b87b5 Update requirements in setup.py. 2016-03-15 04:22:04 -04:00
Roberto Rosario
aeff40331d Update changelog and release notes. 2016-03-15 04:14:51 -04:00
Roberto Rosario
86af663e91 Use MPTT's native get_level method. 2016-03-15 04:14:34 -04:00
Roberto Rosario
1a20d93e4c Add new split move index navigation. 2016-03-15 04:11:44 -04:00
Roberto Rosario
3d36f1b828 Update Document model's uuid field to use Django's native UUIDField class. 2016-03-15 01:44:34 -04:00
Roberto Rosario
928d86088a Update release notes for 2.1 2016-03-14 22:35:54 -04:00
Roberto Rosario
adcc37d8a4 Remove ununsed metadata function. 2016-03-14 22:35:27 -04:00
Roberto Rosario
c2c95787cb Improve folder and tag creation api test. 2016-03-14 20:38:00 -04:00
Roberto Rosario
9823202405 Remove typecasting of file objects into Django's File class, not needed in Django >1.8.x. 2016-03-14 20:20:54 -04:00
Roberto Rosario
f5d2ea7d9e Update Django version to 1.8.11. 2016-03-14 20:08:51 -04:00
Roberto Rosario
858648782b Update Folder creation and Tag creation API calls to return the id of the created instances. 2016-03-14 04:48:22 -04:00
Roberto Rosario
35cc0ea1d6 Exclude root API and API doc URLs. 2016-03-14 04:15:13 -04:00
Roberto Rosario
3fa9092d57 Complete changes needed to add the Message of the Day app. Closes GitLab issue #222. 2016-03-14 01:53:15 -04:00
Roberto Rosario
71946491b3 Show exception message when an app's URL can't be loaded. 2016-03-14 01:52:40 -04:00
Roberto Rosario
9ba03ff0cb Fix datetime widget rendering. 2016-03-14 01:52:16 -04:00
Roberto Rosario
ba2be644f6 Add note about accessing runserver from other machines. 2016-03-14 01:51:39 -04:00
Roberto Rosario
fba236b0fc Remove Patreon donation link. 2016-03-14 01:51:22 -04:00
Roberto Rosario
083d6e6fc5 Add links, views and urls. Rename main model to just 'Message'. 2016-03-13 21:05:49 -04:00
Roberto Rosario
daa3ca2430 Initial commit to support messages of the day. GitLab issue #222. 2016-03-13 00:56:31 -04:00
Roberto Rosario
6eb868bdfb Add missing migration. 2016-03-12 23:16:18 -04:00
Roberto Rosario
d444835f99 Update changelog. 2016-03-12 04:27:49 -04:00
Roberto Rosario
6b79824daf Update uploader style to better match theme and template used. Use the new uploader for new documents only not for document versions. 2016-03-12 04:25:42 -04:00
Roberto Rosario
642c46ec6f Move dropzone code and style loading to the sources app. Improve dropzone widget appearance. Add Javascript translation catalog support. 2016-03-12 00:49:18 -04:00
Roberto Rosario
452bd45407 Initial support for HTML5 uploads. GitLab issue #162. 2016-03-10 05:20:49 -04:00
Roberto Rosario
ed2f2480e6 Fix Dutch locale typo, close GitLab issue #256. Add placeholder for 2.1 release notes. 2016-03-10 03:39:50 -04:00
Roberto Rosario
60b7ed6a6d PEP8 cleanups 2016-03-10 03:35:15 -04:00
Roberto Rosario
e10ff8e8bd Fix tests. 2016-03-10 03:34:50 -04:00
Roberto Rosario
dd2cef50c8 Fix document preview view. 2016-03-10 03:21:20 -04:00
Roberto Rosario
3532ed7c1e Update changelog. 2016-03-09 23:35:34 -04:00
Roberto Rosario
180c38b746 PEP8 cleanups. 2016-03-09 23:31:03 -04:00
Roberto Rosario
45e90da219 Convert the checkout detail view to use the DetailView CBV. Update usage the DetailView CBV in the DocumentProperties view. Add checkout details view permission. 2016-03-09 23:27:02 -04:00
Roberto Rosario
6f02d96212 Update current user detail view to use DetailView CBV. 2016-03-09 23:26:00 -04:00
Roberto Rosario
2c9a01bdfc Improve the date localte handling of the DetailView and DetailForm. 2016-03-09 23:22:31 -04:00
Roberto Rosario
216673c691 Sort variables 2016-03-09 15:58:53 -04:00
Roberto Rosario
17f129e9e6 Add admin interface to the checkouts app. 2016-03-09 15:40:39 -04:00
Roberto Rosario
ba4768bcbb Revert icons to their original sizes. 2016-03-09 15:40:22 -04:00
Roberto Rosario
5b6b35f1c3 Make document type deletion period optional. 2016-03-09 14:39:16 -04:00
Roberto Rosario
9b315a7cf4 Simple list to tupple and queryset count optimizations. 2016-03-09 14:25:43 -04:00
Roberto Rosario
bccf511178 Add per document type document creation access control test. 2016-03-09 14:24:57 -04:00
Roberto Rosario
330e01972c Hide document facet menu links on small displays. 2016-03-08 04:21:29 -04:00
Roberto Rosario
4d362c3957 Add icons to the document face menu links. Increase icon size by 10%. Increase icon to text spacing to 3px. 2016-03-08 04:17:57 -04:00
Roberto Rosario
5a70bd0995 Remove document clone function. 2016-03-08 03:44:22 -04:00
Roberto Rosario
a7faf7f427 Implement per document type document creation permission. Closes GitLab issue #232. 2016-03-08 03:39:23 -04:00
Roberto Rosario
9da4710c0f Deselect the update checkbox for optional metadata by default. 2016-03-08 02:38:15 -04:00
Roberto Rosario
d05345ed3c Update tests to match generic CBV success message. 2016-03-08 02:37:22 -04:00
Roberto Rosario
ad328b2c3b Silence lock manager model import warning. 2016-03-08 02:32:03 -04:00
Roberto Rosario
927c0bf657 Remove remaining usage of django.contrib.auth.model.User. GitLab issue #225. 2016-03-08 02:21:03 -04:00
Roberto Rosario
5d8dd19895 Merge remote-tracking branch 'origin/development' into development 2016-03-08 01:23:36 -04:00
Roberto Rosario
730cbe922d Update changelog. 2016-03-08 01:23:16 -04:00
Roberto Rosario
1c65b389ee Remove concept of ownership from folders by removing the user field.
"Ownership" now is now determined by ACL of a folder, like the rest of the objects in the system.
2016-03-08 01:20:10 -04:00
Roberto Rosario
74fd47d86e Unify handling for generic CBV views errors and 'object_name'. 2016-03-08 01:13:06 -04:00
Roberto Rosario
014ba4f4fe Remove strip spaces middleware and use spaceless template tag instead. Closes GitLab issue #255. 2016-03-07 20:02:26 -04:00
Roberto Rosario
e85002d4ac Add view test to check for duplicated folder creation. 2016-03-07 17:02:19 -04:00
Roberto Rosario
ce6a1f4020 Merge branch 'master' into feature/merge_master 2016-03-03 16:46:11 -04:00
Roberto Rosario
652613452b Add new document upload wizard step to attach tags. GitLab issue #208. 2016-02-05 03:25:27 -04:00
Roberto Rosario
74d8f1d994 Add debug logging during general exception catch. 2016-02-04 22:22:05 -04:00
Roberto Rosario
10eb7d49b2 Update API tests to use login instead of force_authenticate. 2016-02-04 17:39:27 -04:00
Roberto Rosario
8614bc4bfc Remove included login required middleware using django-stronghold instead (http://mikegrouchy.com/django-stronghold/). GitLab Issue #206 2016-02-04 15:33:20 -04:00
Roberto Rosario
2bb96ca98d Add HISTORY entry for upcomming version 2.1. 2016-01-28 06:09:27 -04:00
Roberto Rosario
eae11a1b0c Fix remaining tests for Django 1.8. Closes GitLab issue #246. 2016-01-28 06:04:28 -04:00
Roberto Rosario
2ebb84f18f Remove remaining direct references to the User model. Closes GitLab issue #225. 2016-01-28 05:55:15 -04:00
Roberto Rosario
27d8644438 Silence 90% of remaining Django 1.8 model warnings. 2016-01-28 05:43:08 -04:00
Roberto Rosario
d5c73eaad6 Rename the 'Content' search label to 'OCR' for proper meaning. 2016-01-28 04:42:26 -04:00
Roberto Rosario
09f4d674a4 Pass the request instance to properly resolve the setup and tools links. 2016-01-28 04:40:31 -04:00
Roberto Rosario
830e83d107 Remove unused template. 2016-01-28 04:21:18 -04:00
Roberto Rosario
24644e3538 Remove select_related using reverse related name field. 2016-01-27 18:34:32 -04:00
Roberto Rosario
2dd4ca1f13 Workaround undocumented backward incompatible change in python-gnupy 0.3.8. 2016-01-26 05:14:07 -04:00
Roberto Rosario
59661f643b Update API pagination for DRF 3.3.2. 2016-01-26 03:55:44 -04:00
Roberto Rosario
0b830c380d Silence furder Django 1.8 warnings about ContentType imports. Fix get_model in handlers. 2016-01-26 03:55:10 -04:00
Roberto Rosario
6b3fe7a876 Fix futher Django Warnings. 2016-01-22 04:52:47 -04:00
Roberto Rosario
20535529dc Fix address in about template. 2016-01-22 04:51:48 -04:00
Roberto Rosario
ac9bc9454d Update source app code for new extracted formtools package. 2016-01-22 04:02:12 -04:00
Roberto Rosario
ca15cadc5e Add missing migration for pycountry update. 2016-01-22 04:01:49 -04:00
Roberto Rosario
5ec3025120 Use OneToOneField instead of a ForeignKey with unique=True. 2016-01-22 04:01:15 -04:00
Roberto Rosario
fbb22affaa Update pycountry code to new 1.19 backwards incompatible changes. 2016-01-22 04:00:30 -04:00
Roberto Rosario
b19225e95d Load models by calling AppConfig.get_model method instead. 2016-01-22 03:59:42 -04:00
Roberto Rosario
2f344f299f Update all requirements to most recent version. Update Django to 1.8.8 LTS. 2016-01-22 03:58:00 -04:00
3690 changed files with 281673 additions and 193497 deletions

10
.dockerignore Normal file
View File

@@ -0,0 +1,10 @@
.git
.gitignore
HISTORY.md
mayan/media
db.sqlite*
docker
!docker/rootfs
./.*
docs

3
.flake8 Normal file
View File

@@ -0,0 +1,3 @@
[flake8]
exclude = node_modules,static,templates
ignore = E501, N801, N802, N804, N805, N806

45
.gitignore vendored
View File

@@ -3,26 +3,31 @@
*.pyo
*.sqlite
*.sqlite3
settings_local.py
/celerybeat-schedule
document_storage/
/misc/mayan.geany
mayan/media/document_cache/
build/
_build/
gpg_home/
/mayan/media/static/
/whoosh_index/
/fabfile_install
/venv/
.coverage
/dist/
.idea/
static_collected/
*egg-info*
mayan/settings/local.py
.vagrant
.tox/
coverage.xml
.coverage
.coverage.tox*
.idea/
*.swp
.tox/
.vagrant
_build/
/build/
coverage.xml
document_storage/
gpg_home/
htmlcov/
mayan/media/
mayan/media/document_cache/
mayan/settings/local.py
mayan/error.log
settings_local.py
static_collected/
/celerybeat-schedule
/fabfile_install
/dist/
/misc/mayan.geany
/mayan/media/static/
/venv/
/venv3/
/whoosh_index/
node_modules/

View File

@@ -1,35 +1,227 @@
image: python:2.7
services:
- mysql
- postgres
before_script:
- apt-get update -qq
- apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
variables:
POSTGRES_DB: "mayan_edms"
POSTGRES_PASSWORD: "postgres"
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "mayan_edms"
test:mysql:
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:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- pip install -r requirements/testing.txt
- pip install -q 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 "ALTER DATABASE $MYSQL_DATABASE CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
- docker build --pull -t "$CI_REGISTRY_IMAGE" -f docker/Dockerfile .
- VERSION=`cat docker/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/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
- locale-gen en_US.UTF-8
- update-locale LANG=en_US.UTF-8
- export LC_ALL=en_US.UTF-8
script:
- 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 gcc ghostscript gnupg1 graphviz libfuse2 libjpeg-dev libmagic1 libpng-dev libtiff-dev poppler-utils libreoffice poppler-utils python-dev python-pip tesseract-ocr tesseract-ocr-deu
- pip install -r requirements.txt -r requirements/testing-base.txt
only:
- releases/all
- releases/docker
- releases/python
- master
- 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 mysql-client
- pip install mysqlclient
- 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-postgres:
<<: *test_base
variables:
POSTGRES_DB: "mayan_edms"
POSTGRES_PASSWORD: "postgres"
services:
- postgres
script:
- pip install -r requirements/testing.txt
- pip install -q psycopg2
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
- apt-get install -qq libpq-dev
- pip install psycopg2
- python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
tags:
- postgres
test:sqlite:
test-sqlite:
<<: *test_base
script:
- pip install -r requirements/testing.txt
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
- python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations
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

View File

@@ -1,3 +1,5 @@
dist: trusty
sudo: required
language: python
python:
- 2.7
@@ -8,7 +10,7 @@ env:
- DB=sqlite
before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev poppler-utils libreoffice
- sudo apt-get install -qq python-dev python-pip gcc tesseract-ocr tesseract-ocr-deu ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
install:
- "pip install -r requirements/testing.txt"
- if [[ $DB == mysql ]]; then pip install -q mysql-python; fi
@@ -17,9 +19,9 @@ before_script:
- mysql -e 'create database mayan_edms;'
- psql -c 'create database mayan_edms;' -U postgres
script:
- if [[ $DB == mysql ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi
- if [[ $DB == postgres ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi
- if [[ $DB == sqlite ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.base --nomigrations; fi
- if [[ $DB == mysql ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi
- if [[ $DB == postgres ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi
- if [[ $DB == sqlite ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.base --nomigrations; fi
after_success:
- coveralls
branches:

View File

@@ -19,6 +19,18 @@ source_lang = en
source_file = mayan/apps/authentication/locale/en/LC_MESSAGES/django.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]
file_filter = mayan/apps/cabinets/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/cabinets/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.checkouts-2-0]
file_filter = mayan/apps/checkouts/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -37,18 +49,24 @@ source_lang = en
source_file = mayan/apps/converter/locale/en/LC_MESSAGES/django.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]
file_filter = mayan/apps/django_gpg/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.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]
file_filter = mayan/apps/document_comments/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -61,6 +79,12 @@ source_lang = en
source_file = mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.document_parsing-2-0]
file_filter = mayan/apps/document_parsing/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/document_parsing/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.document_signatures-2-0]
file_filter = mayan/apps/document_signatures/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -73,6 +97,12 @@ source_lang = en
source_file = mayan/apps/document_states/locale/en/LC_MESSAGES/django.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]
file_filter = mayan/apps/dynamic_search/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -85,16 +115,10 @@ source_lang = en
source_file = mayan/apps/events/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.folders-2-0]
file_filter = mayan/apps/folders/locale/<lang>/LC_MESSAGES/django.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/folders/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.installation-2-0]
file_filter = mayan/apps/installation/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/installation/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/file_metadata/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.linking-2-0]
@@ -127,10 +151,10 @@ source_lang = en
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.navigation-2-0]
file_filter = mayan/apps/navigation/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.motd-2-0]
file_filter = mayan/apps/motd/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/navigation/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/motd/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.ocr-2-0]
@@ -145,6 +169,12 @@ source_lang = en
source_file = mayan/apps/permissions/locale/en/LC_MESSAGES/django.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]
file_filter = mayan/apps/rest_api/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -164,9 +194,9 @@ source_file = mayan/apps/sources/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.statistics-2-0]
file_filter = mayan/apps/statistics/locale/<lang>/LC_MESSAGES/django.po
file_filter = mayan/apps/mayan_statistics/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/statistics/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/mayan_statistics/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.storage-2-0]
@@ -181,6 +211,12 @@ source_lang = en
source_file = mayan/apps/tags/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.task_manager-2-0]
file_filter = mayan/apps/task_manager/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/task_manager/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.user_management-2-0]
file_filter = mayan/apps/user_management/locale/<lang>/LC_MESSAGES/django.po
source_lang = en

79
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,79 @@
Contributing to Mayan EDMS
==========================
Issues
------
- Before submitting a new issue, check for **open issues** first and join the
discussion.
- If your issue is not attended in a while, **be patient**, the core team is
small and the codebase big.
- Try to reproduce the issue using a **separate, clean installation**, sometimes
the issue can be caused by an error in a configuration file and not with the
code itself.
- **Do not upload** sensitive, private or classified information or files with
your issue. If the issue is triggered by a user file, create a dummy 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**.
- **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
----
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. Choose the version for which you want to develop. The code is divided in the
following branches:
a. **master:** Current stable version.
a. **series/X.Y:** There will be a **series** branch for each major version
release (1.0, 2.0). The **master** branch will be in sync with the latest
**series** branch.
a. **development:** Unstable branch where the development for the next minor or
major release is happening.
a. **feature/X:** These are branches dealing with a specific bug or feature
that is not yet ready to be merged.
a. The **master** and **series** branches are stable and not braking changes
must be submitted or merged. The **development** and **feature** branches
are unstable and should not be used in production.
1. Start making your changes in your own separate branch.
1. Write a test which shows that the bug was fixed or that the feature works as
expected.
1. Sign your work. Your signature certifies your submission according to the
articles of the [Developer Certificate of Origin](https://gitlab.com/mayan-edms/mayan-edms/blob/master/DCO).
The sign-off should be in the form:
````
Signed-off-by: John Doe <john.doe@example.com>
````
You must use your real name and email, pseudonyms or anonymous contributions
are not allowed. If you set your user.name and user.email git configs, you can
sign your commit automatically with git commit -s.
1. Submit a merge request for your changes.
Feature requests
----------------
- Opening issues to start a discussion around a new feature or idea are welcomed.
- Be explicit about your idea and provide a simple scenario, others need to really
understand the concepts behind your idea if it is to be implemented.
- Be realistic in your expectation and scope of your idea.
Translations
------------
- Translations are handled using [Transifex](https://www.transifex.com/rosarior/mayan-edms/).
- Join an existing team for the language to which you wish to contribute,
if there is no team for your language, request for one to be created.
- Don't request the creation of a new language and expect others to do all the
work. If you request the creation of a new language try to do some of the
translation. Language teams that don't see activity for a while are deleted.
Code style
----------
- Refer to the [Development](https://docs.mayan-edms.com/topics/development.html)
chapter for information and examples of the code style.

36
DCO Normal file
View File

@@ -0,0 +1,36 @@
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

File diff suppressed because it is too large Load Diff

60
HISTORY_1_x.rst Normal file
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
HISTORY_2_x.rst Normal file
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

View File

@@ -1,4 +1,4 @@
Copyright 2011-2015 Roberto Rosario
Copyright 2011-2018 Roberto Rosario
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@@ -1,3 +1,6 @@
include README.rst LICENSE HISTORY.rst
recursive-include mayan *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 LICENSE
global-exclude mayan/settings/local.py mayan/settings/travis/* mayan/media/*
include README.md LICENSE HISTORY.rst mayan/LICENSE
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 *.po
prune mayan/apps/*/static/*/node_modules/*
prune mayan/settings/travis/*
prune mayan/media/*

313
Makefile Normal file
View File

@@ -0,0 +1,313 @@
.PHONY: clean-pyc clean-build
help:
@echo "Usage: make <target>\n"
@awk 'BEGIN {FS = ":.*##"} /^[a-zA-Z_-]+:.*?## / { printf " * %-40s -%s\n", $$1, $$2 }' $(MAKEFILE_LIST)|sort
# Cleaning
clean: ## Remove Python and build artifacts.
clean: clean-build clean-pyc
clean-build: ## Remove build artifacts.
rm -fr build/
rm -fr dist/
rm -fr *.egg-info
clean-pyc: ## Remove Python artifacts.
find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} +
# Testing
test: clean-pyc
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: ## Run all tests.
test-all: clean-pyc
./manage.py test --mayan-apps --settings=mayan.settings.testing.development --nomigrations $(ARGUMENTS)
test-launch-postgres:
@docker rm -f 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
sudo apt-get install -q libpq-dev
pip install psycopg2
while ! docker inspect --format='{{json .State.Health}}' test-postgres|grep 'Status":"healthy"'; 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
./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_postgres --nomigrations
@docker rm -f 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
./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_postgres --nomigrations
@docker rm -f test-postgres || true
@docker volume rm test-postgres || true
test-launch-mysql:
@docker rm -f 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
sudo apt-get install -q libmysqlclient-dev mysql-client
pip install mysqlclient
while ! docker inspect --format='{{json .State.Health}}' test-mysql|grep 'Status":"healthy"'; do sleep 1; done
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
./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_mysql --nomigrations
@docker rm -f 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
./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_mysql --nomigrations
@docker rm -f test-mysql || true
@docker volume rm test-mysql || true
test-launch-oracle:
@docker rm -f 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
# https://gist.github.com/kimus/10012910
pip install cx_Oracle
while ! nc -z 127.0.0.1 49161; do sleep 1; done
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
./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_oracle --nomigrations
@docker rm -f 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
./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_oracle --nomigrations
@docker rm -f test-oracle || true
@docker volume rm test-oracle || true
# Documentation
docs-serve: ## Run the livehtml documentation generator.
cd docs;make livehtml
docs-spellcheck: ## Spellcheck the documentation.
sphinx-build -b spelling -d docs/_build/ docs docs/_build/spelling
# Translations
translations-make: ## Refresh all translation files.
contrib/scripts/process_messages.py -m
translations-compile: ## Compile all translation files.
contrib/scripts/process_messages.py -c
translations-push: ## Upload all translation files to Transifex.
tx push -s
translations-pull: ## Download all translation files from Transifex.
tx pull -f
# 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
python-test-release: ## Package (sdist and wheel) and upload to the PyPI test server.
python-test-release: clean wheel
twine upload dist/* -r testpypi
@echo "Test with: pip install -i https://testpypi.python.org/pypi mayan-edms"
python-release: ## Package (sdist and wheel) and upload a release.
python-release: clean python-wheel
twine upload dist/* -r pypi
python-sdist: ## Build the source distribution package.
python-sdist: clean
python setup.py sdist
ls -l dist
python-wheel: ## Build the wheel distribution package.
python-wheel: clean python-sdist
pip wheel --no-index --no-deps --wheel-dir dist dist/*.tar.gz
ls -l dist
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 "\
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/* . && \
apt-get update && \
apt-get install make python-pip -y && \
pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \
make test-release"
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 "\
apt-get update && \
apt-get -y install 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 && \
cp -r /host_source/* . && \
apt-get install make python-pip -y && \
pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \
make release"
test-sdist-via-docker-ubuntu: ## Make an sdist package and test it using an Ubuntu Docker container.
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/* . && \
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 update && \
apt-get install make python-pip libreoffice tesseract-ocr tesseract-ocr-deu poppler-utils -y && \
pip install -r requirements/development.txt && \
make sdist-test-suit \
"
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 "\
cp -r /host_source/* . && \
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 update && \
apt-get install make python-pip libreoffice tesseract-ocr tesseract-ocr-deu poppler-utils -y && \
pip install -r requirements/development.txt && \
make wheel-test-suit \
"
python-sdist-test-suit: sdist
rm -f -R _virtualenv
virtualenv _virtualenv
sh -c '\
. _virtualenv/bin/activate; \
pip install `ls dist/*.gz`; \
_virtualenv/bin/mayan-edms.py initialsetup; \
pip install mock==2.0.0; \
_virtualenv/bin/mayan-edms.py test --mayan-apps \
'
python-wheel-test-suit: wheel
rm -f -R _virtualenv
virtualenv _virtualenv
sh -c '\
. _virtualenv/bin/activate; \
pip install `ls dist/*.whl`; \
_virtualenv/bin/mayan-edms.py initialsetup; \
pip install mock==2.0.0; \
_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 testing > requirements/testing-base.txt
@./manage.py generaterequirements production --exclude=django > requirements/base.txt
@./manage.py generaterequirements production --only=django > requirements/common.txt
# Dev server
runserver: ## Run the development server.
./manage.py runserver --settings=mayan.settings.development $(ADDRPORT)
runserver_plus: ## Run the Django extension's development server.
./manage.py runserver_plus --settings=mayan.settings.development $(ADDRPORT)
shell_plus: ## Run the shell_plus command.
./manage.py shell_plus --settings=mayan.settings.development
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 postgres -p 5432:5432 postgres
while ! nc -z 127.0.0.1 6379; do sleep 1; done
while ! nc -z 127.0.0.1 5432; do sleep 1; done
sleep 4
./manage.py initialsetup --settings=mayan.settings.staging.docker
test-with-docker-services-off: ## Stop and delete the Docker production-like services.
docker stop postgres redis
docker rm postgres redis
test-with-docker-frontend: ## Launch a front end instance that uses the production-like services.
./manage.py runserver --settings=mayan.settings.staging.docker
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
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
while ! nc -z 127.0.0.1 3306; do sleep 1; done
docker-mysql-off: ## Stop and delete the MySQL Docker container.
docker stop mysql
docker rm mysql
docker-postgres-on: ## Launch and initialize a PostgreSQL Docker container.
docker run -d --name postgres -p 5432:5432 postgres
while ! nc -z 127.0.0.1 5432; do sleep 1; done
docker-postgres-off: ## Stop and delete the PostgreSQL Docker container.
docker stop postgres
docker rm postgres
# Security
safety-check: ## Run a package 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

72
README.md Normal file
View File

@@ -0,0 +1,72 @@
[![pypi][pypi]][pypi-url]
[![builds][builds]][builds-url]
[![coverage][cover]][cover-url]
![python][python]
![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/)
[![Docker layers](https://images.microbadger.com/badges/image/mayanedms/mayanedms.svg)](https://microbadger.com/images/mayanedms/mayanedms)
[pypi]: http://img.shields.io/pypi/v/mayan-edms.svg
[pypi-url]: http://badge.fury.io/py/mayan-edms
[builds]: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
[builds-url]: https://gitlab.com/mayan-edms/mayan-edms/pipelines
[cover]: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
[cover-url]: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master
[python]: https://img.shields.io/pypi/pyversions/mayan-edms.svg
[python-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
[license]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
[license-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
<div align="center">
<a href="http://www.mayan-edms.com">
<img width="200" heigth="200" src="https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png">
</a>
<br>
<br>
<p>
Mayan EDMS is a document management system. Its main purpose is to store,
introspect, and categorize files, with a strong emphasis on preserving the
contextual and business information of documents. It can also OCR, preview,
label, sign, send, and receive thoses files. Other features of interest
are its workflow system, role based access control, and REST API.
<p>
<p align="center">
<img width="400" src="https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif">
</p>
</div>
<h2 align="center">Installation</h2>
The easiest way to use Mayan EDMS is by using the official
[Docker](https://www.docker.com/) image. Make sure Docker is properly installed
and working before attempting to install Mayan EDMS.
For the complete set of installation instructions visit the Mayan EDMS documentation
at: https://docs.mayan-edms.com/topics/installation.html
<h2 align="center">Hardware requirements</h2>
- 2 Gigabytes of RAM (1 Gigabyte if OCR is turned off).
- Multiple core CPU (64 bit, faster than 1 GHz recommended).
<h2 align="center">Important links</h2>
- [Homepage](http://www.mayan-edms.com)
- [Documentation](https://docs.mayan-edms.com)
- [Wiki](https://wiki.mayan-edms.com/)
- [Contributing](https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md)
- [Forum](https://forum.mayan-edms.com/)
- [Source code, issues, bugs](https://gitlab.com/mayan-edms/mayan-edms)
- [Plug-ins, other related projects](https://gitlab.com/mayan-edms/)
- [Translations](https://www.transifex.com/rosarior/mayan-edms/)
- [Videos](https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw)

View File

@@ -1,79 +1,60 @@
|Build Status| |Coverage badge| |PyPI badge| |Installs badge| |License badge|
|Logo|
Description
-----------
Free Open Source Electronic Document Management System.
`Website`_
`Video demostration`_
`Documentation`_
`Translations`_
`Mailing list (via Google Groups)`_
|Animation|
Support
-------
Help support further improvements and development by donating at: https://www.patreon.com/siloraptor
License
-------
This project is open sourced under `Apache 2.0 License`_.
Installation
------------
To install **Mayan EDMS**, simply do:
.. code-block:: bash
$ virtualenv venv
$ source venv/bin/activate
$ pip install mayan-edms
$ mayan-edms.py initialsetup
$ mayan-edms.py runserver
Point your browser to 127.0.0.1:8000 and use the automatically created admin
account.
Contribute
----------
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- Fork `the repository`_ on GitLab to start making your changes to the **development** branch (or branch off of it).
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Add yourself to the `contributors file`_.
- Send a merge request.
|pypi| |builds| |coverage| |python| |license| |docker_pulls| |docker_stars| |docker_layers|
.. _Website: http://www.mayan-edms.com
.. _Video demostration: http://bit.ly/pADNXv
.. _Documentation: http://readthedocs.org/docs/mayan/en/latest/
.. _Translations: https://www.transifex.com/projects/p/mayan-edms/
.. _Mailing list (via Google Groups): http://groups.google.com/group/mayan-edms
.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt
.. _`the repository`: http://gitlab.com/mayan-edms/mayan-edms
.. _`contributors file`: https://gitlab.com/mayan-edms/mayan-edms/blob/master/docs/topics/contributors.rst
.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
:align: center
:width: 200
:height: 200
.. |Build Status| image:: https://gitlab.com/ci/projects/6169/status.png?ref=master
:target: https://gitlab.com/ci/projects/6169?ref=master
.. |Logo| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
.. |Animation| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif
.. |Installs badge| image:: http://img.shields.io/pypi/dm/mayan-edms.svg?style=flat
:target: https://crate.io/packages/mayan-edms/
.. |PyPI badge| image:: http://img.shields.io/pypi/v/mayan-edms.svg?style=flat
Mayan EDMS is a document management system. Its main purpose is to store,
introspect, and categorize files, with a strong emphasis on preserving the
contextual and business information of documents. It can also OCR, preview,
label, sign, send, and receive thoses files. Other features of interest
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
:align: center
:width: 300
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
Mayan EDMS.
For the complete set of installation instructions visit the Mayan EDMS documentation
at: https://docs.mayan-edms.com/topics/installation.html
.. _Docker: https://www.docker.com/
Hardware requirements
- 2 Gigabytes of RAM (1 Gigabyte if OCR is turned off).
- Multiple core CPU (64 bit, faster than 1 GHz recommended).
Important links
- `Homepage <http://www.mayan-edms.com>`__
- `Documentation <https://docs.mayan-edms.com>`__
- `Wiki <https://wiki.mayan-edms.com>`__
- `Contributing <https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md>`__
- `Forum <https://forum.mayan-edms.com>`__
- `Source code, issues, bugs <https://gitlab.com/mayan-edms/mayan-edms>`__
- `Plug-ins, other related projects <https://gitlab.com/mayan-edms/>`__
- `Translations <https://www.transifex.com/rosarior/mayan-edms/>`__
- `Videos <https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw>`__
.. |pypi| image:: http://img.shields.io/pypi/v/mayan-edms.svg
:target: http://badge.fury.io/py/mayan-edms
.. |License badge| image:: http://img.shields.io/badge/license-Apache%202.0-green.svg?style=flat
.. |Analytics| image:: https://ga-beacon.appspot.com/UA-52965619-2/mayan-edms/readme?pixel
.. |Coverage badge| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
.. |builds| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
:target: https://gitlab.com/mayan-edms/mayan-edms/pipelines
.. |coverage| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
:target: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master
|Analytics|
.. |python| image:: https://img.shields.io/pypi/pyversions/mayan-edms.svg
.. |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

33
Vagrantfile vendored
View File

@@ -1,33 +0,0 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provider :lxc do |v, override|
override.vm.box = "fgrehm/trusty64-lxc"
end
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
# Development box
config.vm.define "development", autostart: false do |development|
development.vm.network "forwarded_port", guest: 8000, host: 8000
development.vm.synced_folder ".", "/mayan-edms-repository"
development.vm.provision :shell, :path => "contrib/scripts/install/development.sh", privileged: false
development.vm.provision "file", destination: "/home/vagrant/mayan-edms/mayan/settings/celery_redis.py", source: "contrib/settings/celery_redis.py"
development.vm.provision "file", destination: "/home/vagrant/mayan-edms/mayan_edms_worker.sh", source: "contrib/misc/mayan_edms_worker.sh"
end
# Production box
config.vm.define "production", autostart: false do |production|
production.vm.network "forwarded_port", guest: 80, host: 8080
production.vm.provision :shell, :path => "contrib/scripts/install/production.sh", privileged: true
end
end

14
__init__.py.tmpl Normal file
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-2018 Roberto Rosario'
__copyright__ = '{} {}'.format('Copyright', __copyright_short__)
__website__ = 'https://www.mayan-edms.com'

View File

@@ -1,3 +0,0 @@
#!/bin/sh
DJANGO_SETTINGS_MODULE='mayan.settings.celery_redis' celery -A mayan worker -l DEBUG -Ofair -B

View File

@@ -1,22 +0,0 @@
server {
listen 80;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass unix:/usr/share/mayan-edms/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 /usr/share/mayan-edms/mayan/media/static;
expires 1h;
}
location /favicon.ico {
alias /usr/share/mayan-edms/mayan/media/static/appearance/images/favicon.ico;
expires 1h;
}
}

View File

@@ -1 +0,0 @@
flake8 --ignore=E501 mayan/apps | grep -v "F401 'models' imported but unused" | grep -v "F811 redefinition of unused 'models'"| grep -v "F401 'db' imported but unused" | grep -v "F812 list comprehension redefines 'user_id'" | grep -v "F812 list comprehension redefines 'document_id'" |less

View File

@@ -0,0 +1,10 @@
#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y --no-install-recommends tesseract-ocr-deu
$MAYAN_PIP_BIN install -r ${MAYAN_INSTALL_DIR}/requirements-testing.txt
$MAYAN_BIN test --mayan-apps --settings=mayan.settings.testing

View File

@@ -18,7 +18,7 @@ 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 unpaper libreoffice
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

File diff suppressed because it is too large Load Diff

131
contrib/scripts/install/docker.sh Executable file
View File

@@ -0,0 +1,131 @@
#!/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: 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
# before executing.
: ${VERBOSE:=true}
: ${INSTALL_DOCKER:=false}
: ${DELETE_VOLUMES:=false}
: ${DATABASE_USER:=mayan}
: ${DATABASE_NAME:=mayan}
: ${DATABASE_PASSWORD:=mayanuserpass}
: ${DOCKER_POSTGRES_IMAGE:=postgres:9.6}
: ${DOCKER_POSTGRES_CONTAINER:=mayan-edms-postgres}
: ${DOCKER_POSTGRES_VOLUME:=/docker-volumes/mayan-edms/postgres}
: ${DOCKER_POSTGRES_PORT:=5432}
: ${DOCKER_MAYAN_IMAGE:=mayanedms/mayanedms:latest}
: ${DOCKER_MAYAN_CONTAINER:=mayan-edms}
: ${DOCKER_MAYAN_VOLUME:=/docker-volumes/mayan-edms/media}
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 "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_MAYAN_IMAGE: $DOCKER_MAYAN_IMAGE"
echo "DOCKER_MAYAN_CONTAINER: $DOCKER_MAYAN_CONTAINER"
echo "DOCKER_MAYAN_VOLUME: $DOCKER_MAYAN_VOLUME"
echo "\nStarting in 10 seconds."
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)..."
true || docker stop $DOCKER_MAYAN_CONTAINER >/dev/null 2>&1
true || docker rm $DOCKER_MAYAN_CONTAINER >/dev/null 2>&1
true || docker stop $DOCKER_POSTGRES_CONTAINER >/dev/null 2>&1
true || docker rm $DOCKER_POSTGRES_CONTAINER >/dev/null 2>&1
echo "Done"
if [ "$DELETE_VOLUMES" = true ]; then
echo -n "* Deleting Docker volumes in 5 seconds (warning: this delete all document data)..."
sleep 5
true || rm DOCKER_MAYAN_VOLUME -Rf
true || rm DOCKER_POSTGRES_VOLUME -Rf
echo "Done"
fi
echo -n "* Pulling (downloading) the Mayan EDMS Docker image..."
docker pull $DOCKER_MAYAN_IMAGE >/dev/null
echo "Done"
echo -n "* Pulling (downloading) the PostgreSQL Docker image..."
docker pull $DOCKER_POSTGRES_IMAGE > /dev/null
echo "Done"
echo -n "* Deploying the PostgreSQL container..."
docker run -d \
--name $DOCKER_POSTGRES_CONTAINER \
--restart=always \
-p $DOCKER_POSTGRES_PORT:5432 \
-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 "* Waiting for the PostgreSQL container to be ready (10 seconds)..."
sleep 10
echo "Done"
echo -n "* Deploying Mayan EDMS container..."
docker run -d \
--name $DOCKER_MAYAN_CONTAINER \
--restart=always \
-p 80:8000 \
-e MAYAN_DATABASE_ENGINE=django.db.backends.postgresql \
-e MAYAN_DATABASE_HOST=172.17.0.1 \
-e MAYAN_DATABASE_NAME=$DATABASE_NAME \
-e MAYAN_DATABASE_PASSWORD=$DATABASE_PASSWORD \
-e MAYAN_DATABASE_USER=$DATABASE_USER \
-e MAYAN_DATABASE_PORT=$DOCKER_POSTGRES_PORT \
-e MAYAN_DATABASE_CONN_MAX_AGE=0 \
-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:80; do sleep 1 && echo -n .; done;
echo "Done"

View File

@@ -20,7 +20,7 @@ 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 unpaper poppler-utils -y
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}
@@ -161,7 +161,7 @@ priority = 998
EOF
echo -e "\n -> Collecting the static files \n"
mayan-edms.py collectstatic --noinput
mayan-edms.py preparestatic --noinput
echo -e "\n -> Making the installation directory readable and writable by the webserver user \n"
chown www-data:www-data ${INSTALLATION_DIRECTORY} -R

View File

@@ -1,4 +0,0 @@
#!/bin/sh
python setup.py sdist
pip wheel --no-index --no-deps --wheel-dir dist dist/*.tar.gz

View File

@@ -1,3 +0,0 @@
#!/bin/sh
find 'fabfile' -depth -name '*.pyc' -exec rm {} \;
tar -czvf contrib/fabfile.tar.gz fabfile

View File

@@ -1,26 +1,30 @@
#!/usr/bin/env python
from __future__ import print_function
import os
import optparse
import sh
APP_LIST = (
'acls', 'appearance', 'authentication', 'checkouts', 'common',
'converter', 'django_gpg', 'document_comments', 'document_indexing',
'document_signatures', 'document_states', 'documents', 'dynamic_search',
'events', 'folders', 'installation', 'linking', 'lock_manager', 'mailer',
'metadata', 'mirroring', 'navigation', 'ocr', 'permissions', 'rest_api',
'smart_settings', 'sources', 'statistics', 'storage', 'tags',
'acls', 'appearance', 'authentication', 'autoadmin', 'cabinets',
'checkouts', 'common', 'converter', 'dashboards', 'dependencies',
'django_gpg', 'document_comments', 'document_indexing',
'document_parsing', 'document_signatures', 'document_states',
'documents', 'dynamic_search', 'events', 'file_metadata', 'linking',
'lock_manager', 'mayan_statistics', 'mailer', 'metadata', 'mirroring',
'motd', 'navigation', 'ocr', 'permissions', 'platform', 'rest_api',
'smart_settings', 'sources', 'storage', 'tags', 'task_manager',
'user_management'
)
LANGUAGE_LIST = (
'ar', 'bg', 'bs_BA', 'da', 'de_DE', 'en', 'es', 'fa', 'fr', 'hu', 'id',
'it', 'nl_NL', 'pl', 'pt', 'pt_BR', 'ro_RO', 'ru', 'sl_SI', 'vi_VN',
'zh_CN',
)
# Inactive translations
# 'de_CH', 'hr_HR', 'lv', 'nb', 'sq', 'tr_TR', 'zh_TW'
LANGUAGE_LIST = (
'ar', 'bg', 'bs_BA', 'cs', 'da_DK', 'de_DE', 'en', 'es', 'el', 'fa', 'fr',
'hu', 'id', 'it', 'nl_NL', 'pl', 'pt', 'pt_BR', 'ro_RO', 'ru', 'sl_SI',
'tr_TR', 'vi_VN', 'zh',
)
makemessages = sh.Command('django-admin.py')
makemessages = makemessages.bake('makemessages')
@@ -39,29 +43,29 @@ BASE_DIR = os.path.abspath(
def process(command, app_list, language_list):
if command == makemessages:
print 'Making messages'
print('Making messages')
elif command == compilemessages:
print 'Compiling messages'
print('Compiling messages')
elif command == pull_translations:
print 'Pulling translation files'
print('Pulling translation files')
elif command == push_translations:
print 'Pushing translation files'
print('Pushing translation files')
if command in [compilemessages, makemessages]:
for app in app_list:
print 'Processing app: %s...' % app
print('Processing app: %s...' % app)
app_path = os.path.join(BASE_DIR, 'apps', app)
os.chdir(app_path)
for lang in language_list:
print 'Doing language: %s' % lang
print('Doing language: %s' % lang)
command(locale=lang)
elif command == pull_translations:
for lang in language_list:
print 'Doing language: %s' % lang
print('Doing language: %s' % lang)
command('-f', '-l', lang)
elif command == push_translations:
for lang in language_list:
print 'Doing language: %s' % lang
print('Doing language: %s' % lang)
command('-s', '-l', lang)

105
contrib/scripts/statistics.py Executable file
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))

View File

@@ -1,5 +0,0 @@
from .local import *
CELERY_ALWAYS_EAGER = False
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'

View File

@@ -0,0 +1,64 @@
from __future__ import absolute_import
import ldap
from django_auth_ldap.config import LDAPSearch
from .base import * # NOQA
from django.contrib.auth import get_user_model
SECRET_KEY = '<your secret key>'
# makes sure this works in Active Directory
ldap.set_option(ldap.OPT_REFERRALS, 0)
# This is the default, but I like to be explicit.
AUTH_LDAP_ALWAYS_UPDATE_USER = True
LDAP_USER_AUTO_CREATION = "False"
LDAP_URL = "ldap://<your ldap server IP>:389/"
LDAP_BASE_DN = "dc=paramatrix,dc=co,dc=in"
LDAP_ADDITIONAL_USER_DN = "dc=people"
LDAP_ADMIN_DN = ""
LDAP_PASSWORD = ""
AUTH_LDAP_SERVER_URI = LDAP_URL
AUTH_LDAP_BIND_DN = LDAP_ADMIN_DN
AUTH_LDAP_BIND_PASSWORD = LDAP_PASSWORD
AUTH_LDAP_USER_SEARCH = LDAPSearch(
'%s,%s' % (LDAP_ADDITIONAL_USER_DN, LDAP_BASE_DN),
ldap.SCOPE_SUBTREE, '(uid=%(user)s)'
)
AUTH_LDAP_USER_ATTR_MAP = {
'first_name': 'cn',
'last_name': 'sn',
'email': 'mail'
}
AUTHENTICATION_BACKENDS = (
'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 get_user_model().DoesNotExist:
return None
def get_user(self, username):
try:
return get_user_model().objects.get(pk=username)
except get_user_model().DoesNotExist:
return None

View File

@@ -1,26 +0,0 @@
[program:mayan-worker]
command = /usr/share/mayan-edms/bin/python /usr/share/mayan-edms/bin/mayan-edms.py celery --settings=mayan.settings.production worker -Ofair -l ERROR
directory = /usr/share/mayan-edms
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 = /usr/share/mayan-edms/bin/python /usr/share/mayan-edms/bin/mayan-edms.py celery --settings=mayan.settings.production beat -l ERROR
directory = /usr/share/mayan-edms
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

View File

@@ -1,6 +0,0 @@
[program:mayan-uwsgi]
command = /usr/share/mayan-edms/bin/uwsgi --ini /usr/share/mayan-edms/uwsgi.ini
user = root
autostart = true
autorestart = true
redirect_stderr = true

157
docker/Dockerfile Executable file
View File

@@ -0,0 +1,157 @@
# vim:set ft=dockerfile:
####
# BASE_IMAGE - Bare bones image with the base packages needed to run Mayan EDMS
####
FROM debian:9.8-slim as BASE_IMAGE
LABEL maintainer="Roberto Rosario roberto.rosario@mayan-edms.com"
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 \
exiftool \
ghostscript \
gpgv \
gnupg1 \
graphviz \
libfuse2 \
libmagic1 \
libmariadbclient18 \
libreoffice \
libpq5 \
poppler-utils \
redis-server \
sane-utils \
sudo \
supervisor \
tesseract-ocr \
# 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 \
# Discard data when Redis runs out of memory
&& echo "maxmemory-policy allkeys-lru" >> /etc/redis/redis.conf \
# Disable saving the Redis database
echo "save \"\"" >> /etc/redis/redis.conf \
# Only provision 1 database
&& echo "databases 1" >> /etc/redis/redis.conf
####
# BUILDER_IMAGE - This image buildS the Python package and is discarded afterwards
####
# Reuse image
FROM BASE_IMAGE as BUILDER_IMAGE
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 \
python-dev \
python-virtualenv \
&& mkdir -p "${PROJECT_INSTALL_DIR}" \
&& chown -R mayan:mayan "${PROJECT_INSTALL_DIR}" \
&& chown -R mayan:mayan /src
USER mayan
RUN python -m virtualenv "${PROJECT_INSTALL_DIR}" \
&& . "${PROJECT_INSTALL_DIR}/bin/activate" \
&& pip install --no-cache-dir --no-use-pep517 \
librabbitmq==1.6.1 \
mysql-python==1.2.5 \
psycopg2==2.7.3.2 \
redis==2.10.6 \
# 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 --no-use-pep517 \
psutil==5.6.2 \
; fi \
# Install the Python packages needed to build Mayan EDMS
&& pip install --no-cache-dir --no-use-pep517 -r /src/requirements/build.txt \
# Build Mayan EDMS
&& python setup.py sdist \
# Install the built Mayan EDMS package
&& pip install --no-cache-dir --no-use-pep517 dist/mayan* \
# Install the static content
&& mayan-edms.py installjavascript \
&& 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 + Mayan install directory from the builder image
####
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 ["mayan"]
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;

25
docker/Makefile Executable file
View File

@@ -0,0 +1,25 @@
APT_PROXY ?= `/sbin/ip route|awk '/docker0/ { print $$9 }'`:3142
IMAGE_VERSION ?= `cat docker/rootfs/version`
CONSOLE_COLUMNS ?= `echo $$(tput cols)`
CONSOLE_LINES ?= `echo $$(tput lines)`
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 -t mayanedms/mayanedms:$(IMAGE_VERSION) -f docker/Dockerfile --build-arg APT_PROXY=$(APT_PROXY) .
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-test-container: ## Build and run a test container.
docker-test-container: docker-build-with-proxy docker-test-cleanup
docker run -d --name test-mayan-edms -p 80:8000 -v test-mayan_data:/var/lib/mayan mayanedms/mayanedms:$(DOCKER_VERSION)
docker-test-cleanup: ## Delete the test container and the test volume.
@docker rm -f test-mayan-edms || true
@docker volume rm test-mayan_data || true
docker-test-all: ## Build and executed the test suite in a test container.
docker-test-all: docker-build-with-proxy
docker run --rm run-tests

1
docker/README-short.txt Executable file
View File

@@ -0,0 +1 @@
Mayan EDMS is a free open source electronic document management system.

554
docker/README.md Executable file

File diff suppressed because it is too large Load Diff

549
docker/README.md.tmpl Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,72 @@
version: '2.1'
volumes:
broker:
driver: local
app:
driver: local
db:
driver: local
results:
driver: local
services:
broker:
container_name: mayan-edms-broker
image: healthcheck/rabbitmq
environment:
RABBITMQ_DEFAULT_USER: mayan
RABBITMQ_DEFAULT_PASS: mayan
RABBITMQ_DEFAULT_VHOST: mayan
volumes:
- broker:/var/lib/rabbitmq
results:
container_name: mayan-edms-results
image: healthcheck/redis
volumes:
- results:/data
#db:
# container_name: mayan-edms-db
# image: healthcheck/mysql
# environment:
# MYSQL_DATABASE: mayan
# MYSQL_PASSWORD: mayan-password
# MYSQL_ROOT_PASSWORD: root-password
# MYSQL_USER: mayan
# volumes:
# - db:/var/lib/mysql
db:
container_name: mayan-edms-db
image: healthcheck/postgres
environment:
POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayan-password
POSTGRES_USER: mayan
volumes:
- db:/var/lib/postgresql/data
mayan-edms:
container_name: mayan-edms-app
image: mayan-edms/next
build:
context: ./
args:
- APT_PROXY=172.18.0.1:3142
depends_on:
broker:
condition: service_healthy
db:
condition: service_healthy
results:
condition: service_healthy
environment:
MAYAN_BROKER_URL: amqp://mayan:mayan@broker:5672/mayan
MAYAN_CELERY_RESULT_BACKEND: redis://results:6379/0
MAYAN_DATABASE_ENGINE: django.db.backends.postgresql
MAYAN_DATABASE_HOST: db
MAYAN_DATABASE_NAME: mayan
MAYAN_DATABASE_PASSWORD: mayan-password
MAYAN_DATABASE_USER: mayan
ports:
- "80:80"
volumes:
- app:/var/lib/mayan

58
docker/docker-compose.yml Executable file
View File

@@ -0,0 +1,58 @@
version: '2.1'
volumes:
broker:
driver: local
app:
driver: local
db:
driver: local
results:
driver: local
services:
broker:
container_name: mayan-edms-broker
image: healthcheck/rabbitmq
environment:
RABBITMQ_DEFAULT_USER: mayan
RABBITMQ_DEFAULT_PASS: mayan
RABBITMQ_DEFAULT_VHOST: mayan
volumes:
- broker:/var/lib/rabbitmq
results:
container_name: mayan-edms-results
image: healthcheck/redis
volumes:
- results:/data
db:
container_name: mayan-edms-db
image: healthcheck/postgres
environment:
POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayan-password
POSTGRES_USER: mayan
volumes:
- db:/var/lib/postgresql/data
mayan-edms:
container_name: mayan-edms-app
image: mayanedms/mayanedms:latest
depends_on:
broker:
condition: service_healthy
db:
condition: service_healthy
results:
condition: service_healthy
environment:
MAYAN_BROKER_URL: amqp://mayan:mayan@broker:5672/mayan
MAYAN_CELERY_RESULT_BACKEND: redis://results:6379/0
MAYAN_DATABASE_ENGINE: django.db.backends.postgresql
MAYAN_DATABASE_HOST: db
MAYAN_DATABASE_NAME: mayan
MAYAN_DATABASE_PASSWORD: mayan-password
MAYAN_DATABASE_USER: mayan
ports:
- "80:8000"
volumes:
- app:/var/lib/mayan

View File

@@ -0,0 +1,127 @@
#!/bin/sh
set -e
echo "mayan: starting entrypoint.sh"
INSTALL_FLAG=/var/lib/mayan/system/SECRET_KEY
CONCURRENCY_ARGUMENT=--concurrency=
DEFAULT_USER_UID=1000
DEFAULT_USER_GUID=1000
export MAYAN_DEFAULT_BROKER_URL=redis://127.0.0.1:6379/0
export MAYAN_DEFAULT_CELERY_RESULT_BACKEND=redis://127.0.0.1:6379/0
export MAYAN_ALLOWED_HOSTS='["*"]'
export MAYAN_BIN=/opt/mayan-edms/bin/mayan-edms.py
export MAYAN_BROKER_URL=${MAYAN_BROKER_URL:-${MAYAN_DEFAULT_BROKER_URL}}
export MAYAN_CELERY_RESULT_BACKEND=${MAYAN_CELERY_RESULT_BACKEND:-${MAYAN_DEFAULT_CELERY_RESULT_BACKEND}}
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 MAYAN_GUNICORN_BIN=${MAYAN_PYTHON_BIN_DIR}gunicorn
export MAYAN_GUNICORN_WORKERS=${MAYAN_GUNICORN_WORKERS:-2}
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:-1}
MAYAN_WORKER_MEDIUM_CONCURRENCY=${MAYAN_WORKER_MEDIUM_CONCURRENCY:-1}
MAYAN_WORKER_SLOW_CONCURRENCY=${MAYAN_WORKER_SLOW_CONCURRENCY:-1}
echo "mayan: changing uid/guid"
usermod mayan -u ${MAYAN_USER_UID:-${DEFAULT_USER_UID}}
groupmod mayan -g ${MAYAN_USER_GUID:-${DEFAULT_USER_GUID}}
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
export CELERY_ALWAYS_EAGER=False
export PYTHONPATH=$PYTHONPATH:$MAYAN_MEDIA_ROOT
chown mayan:mayan /var/lib/mayan -R
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/*
}
initialize() {
echo "mayan: initialize()"
su mayan -c "${MAYAN_BIN} initialsetup --force --no-javascript"
}
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
}
start() {
echo "mayan: start()"
rm -rf /var/run/supervisor.sock
exec /usr/bin/supervisord -nc /etc/supervisor/supervisord.conf
}
upgrade() {
echo "mayan: upgrade()"
su mayan -c "${MAYAN_BIN} performupgrade --no-javascript"
}
os_package_installs || true
pip_installs || true
case "$1" in
mayan) # Check if this is a new install, otherwise try to upgrade the existing
# installation on subsequent starts
if [ ! -f $INSTALL_FLAG ]; then
initialize
else
upgrade
fi
start
;;
run-tests) # Check if this is a new install, otherwise try to upgrade the existing
# installation on subsequent starts
if [ ! -f $INSTALL_FLAG ]; then
initialize
else
upgrade
fi
run-tests.sh
;;
*) su mayan -c "$@";
;;
esac

View File

@@ -0,0 +1,10 @@
#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y --no-install-recommends gcc python-dev tesseract-ocr-deu
su mayan -c "$MAYAN_PIP_BIN install -r ${MAYAN_INSTALL_DIR}/testing-base.txt"
su mayan -c "$MAYAN_BIN test --mayan-apps --settings=mayan.settings.testing"

1
docker/rootfs/version Executable file
View File

@@ -0,0 +1 @@
3.2b1

32
docker/stack.yml Normal file
View File

@@ -0,0 +1,32 @@
version: '3.1'
volumes:
app:
driver: local
db:
driver: local
services:
db:
image: postgres
environment:
POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayan-password
POSTGRES_USER: mayan
volumes:
- db:/var/lib/postgresql/data
app:
image: mayanedms/mayanedms:latest
ports:
- 80:8000
environment:
MAYAN_DATABASE_ENGINE: django.db.backends.postgresql
MAYAN_DATABASE_HOST: db
MAYAN_DATABASE_NAME: mayan
MAYAN_DATABASE_PASSWORD: mayan-password
MAYAN_DATABASE_USER: mayan
MAYAN_DATABASE_CONN_MAX_AGE: 0
volumes:
- app:/var/lib/mayan

BIN
docs/_static/api.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

5
docs/_static/css/custom.css vendored Normal file
View File

@@ -0,0 +1,5 @@
.menuselection {
color: white;
background: #2c3e50;
padding: 3px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

BIN
docs/_static/main.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 KiB

After

Width:  |  Height:  |  Size: 6.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

BIN
docs/_static/setup.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/_static/tools.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

View File

@@ -1,15 +1,16 @@
<h3>Donate</h3>
<p>Help support further improvements and development, via:
<ul>
<li>
- <a href="https://www.paypal.me/RobertoRosario">PayPal.Me</a>
</li>
<li>
- <a href="https://www.patreon.com/siloraptor">Patreon</a>
</li>
<li>- or Gumroad:
<script type="text/javascript" src="https://gumroad.com/js/gumroad.js"></script>
<a href="https://gumroad.com/l/UNApl" class="gumroad-button">Buy Mayan EDMS</a>
</li>
</ul>
<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 />

View File

@@ -1,21 +1,23 @@
====================
********************
Access control lists
====================
********************
Besides the permissions system explained in :doc:`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.
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 -> document <- permission;
role -> permission -> document;
}
Example:
@@ -23,11 +25,13 @@ Example:
.. blockdiag::
blockdiag {
default_shape = roundedbox
document [ label = '2015 Payroll report.txt', width=200 ];
role [ label = 'Accountants' ];
permission [ label = 'View document' ];
role -> document <- permission;
role -> permission -> document;
}
In this scenario only users in groups belonging to the ``Accountants`` role
@@ -36,18 +40,22 @@ 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:`document_types`).
Under this scheme all users in groups belonging to that role will inherit that
permission for all documents of that type.
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 -> document_type <- permission;
role -> permission -> document_type ;
document_type -> documents [folded, label = "inherit" ];
}
Example:
@@ -55,11 +63,14 @@ 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 -> document_type <- permission;
role -> permission -> document_type ;
document_type -> documents [folded, label = "inherit" ];
}
The role ``Accountants`` is given the permission ``document view`` for the

102
docs/chapters/api.rst Normal file
View File

@@ -0,0 +1,102 @@
***
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
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'}

View File

@@ -1,8 +1,8 @@
============
************
App creation
============
************
**Mayan EDMS** apps are essentially Django app with some extra code to register
Mayan EDMS apps are essentially Django app with some extra code to register
navigation, permissions and other relationships.
@@ -21,7 +21,7 @@ App modules
- api_views.py
REST API views go here. **Mayan EDMS** uses Django REST Framework API view
REST API views go here. Mayan EDMS uses Django REST Framework API view
classes.
- apps.py
@@ -59,6 +59,17 @@ App modules
corresponding signal in the ready() method of the MayanAppConfig subclass in
apps.py
- html_widgets.py
Classes to render an HTML widget. HTML widget are not the same as Django's
native form widgets. Form widgets only work as part of a form field.
HTML widgets are for use outside of forms, such as in a table cell.
- licenses.py
This module outlines the license text of the third party content used in
the app. It could be other Python libraries, JavaScript libraries, etc.
- links.py
Defines the links to be used by the app. Import only from the navigation app
@@ -92,6 +103,11 @@ App modules
This module acts as a shared memory space for the other modules of the app or
other apps.
- search.py
Search model definitions. Define which field of the app's models are
searchable.
- serializers.py
Hold Django REST Framework serializers used by the api_views.py module.
@@ -127,7 +143,7 @@ App modules
- widgets.py
HTML widgets go here. This should be the only place with presentation
Custom form widgets go here. This should be the only place with presentation
directives in the app (aside the templates).
@@ -135,7 +151,7 @@ Views
=====
The module common.generics provides custom generic class based views to be used.
The basic views used to create, edit, view and delete objects in **Mayan EDMS**
The basic views used to create, edit, view and delete objects in Mayan EDMS
are: SingleObjectCreateView, SingleObjectDetailView, SingleObjectEditView,
and SingleObjectListView

70
docs/chapters/backups.rst Normal file
View File

@@ -0,0 +1,70 @@
*******
Backups
*******
To backup your install of Mayan EDMS just copy the actual document files and
the database content. If you are using the default storage backend, the
document files should be found in the ``media`` folder of your installation.
To dump the content of your database manager refer to the documentation chapter
regarding database data "dumping".
Here is an example of how to perform a backup and a restore of a PostgreSQL
database.
To dump the database into an SQL text file::
pg_dump -h <host> -U <database user> -c <database name> -W > `date +%Y-%m-%d"_"%H-%M-%S`.sql
Example::
pg_dump -h 127.0.0.1 -U mayan -c mayan -W > `date +%Y-%m-%d"_"%H-%M-%S`.sql
To restore the database from the SQL text file::
psql -h <host> -U <database user> -d <database name> -W -f <sql dump file>
Example::
psql -h 127.0.0.1 -U mayan -d mayan -W -f 2018-06-07_18-10-56.sql
Here is an example of how to perform a backup and a restore of a PostgreSQL
Docker container using a compressed dump file. A dump file is not compatible or
can be used interchangeable with an SQL text file.
To backup a PostgreSQL Docker container::
docker exec <container name> pg_dump -U <database user> -Fc -c <database name> > `date +%Y-%m-%d"_"%H-%M-%S`.dump
Example::
docker exec mayan-edms-db pg_dump -U mayan -Fc -c mayan > `date +%Y-%m-%d"_"%H-%M-%S`.dump
This will produce a compressed dump file with the current date and time as the filename.
To restore a PostgreSQL Docker container::
docker exec -i <container name> pg_restore -U <database user> -d <database name> < <dump file>
Since it is not possible to drop a currently open PostgreSQL database, this
command must be used on a new and empty PostsgreSQL container.
Example::
docker run -d \
--name mayan-edms-pg-new \
--restart=always \
-p 5432:5432 \
-e POSTGRES_USER=mayan \
-e POSTGRES_DB=mayan \
-e POSTGRES_PASSWORD=mayanuserpass \
-v /docker-volumes/mayan-edms/postgres-new:/var/lib/postgresql/data \
-d postgres:9.6
docker exec -i mayan-edms-pg-new pg_restore -U mayan -d mayan < 2018-06-07_17-09-34.dump
More information at:
- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
- MySQL: https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
- SQLite: Just copy the file ``mayan/media/db.sqlite3``

View File

@@ -0,0 +1,233 @@
**************************************************
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

View File

@@ -0,0 +1,234 @@
******************************************************
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

View File

@@ -0,0 +1,14 @@
Cabinets
========
Cabinets are a multi-level method to organize documents. Each cabinet can
contain documents as well as other sub level cabinets. Cabinets can
be added from the :menuselection:`Cabinets --> Add new` menu.
With a cabinet structure created, the next step is to add documents to them.
To add documents to a cabinet, select the cabinet tab of a document, and
select :menuselection:`Actions --> Add to cabinets` link.
Documents can also be added in bulk to one or more cabinets from any view
that lists documents.

View File

@@ -1,6 +1,6 @@
=========
*********
Checkouts
=========
*********
Checkouts are a way to block certain accesses or actions of a document for a
period of time.

View File

@@ -0,0 +1,103 @@
*******************
Database conversion
*******************
Version 3.1.x added a new management command to help convert data residing in
an SQLite database to other database managers like PostgreSQL. Here is the
conversion procedure.
Direct install
==============
* Make a backup of your existing SQLite database and documents by copying the
``/opt/mayan-edms/media`` folder.
* :doc:`Upgrade to at least version 3.1.3. <../releases/3.1.3>`
* Migrate the existing SQLite database with the command ``performupgrade``::
sudo -u mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media /opt/mayan-edms/bin/mayan-edms.py performupgrade
* Install PostgreSQL::
sudo apt-get install postgresql libpq-dev
* Provision a PostgreSQL database::
sudo -u postgres psql -c "CREATE USER mayan WITH password 'mayanuserpass';"
sudo -u postgres createdb -O mayan mayan
* Install the Python client for PostgreSQL::
sudo -u mayan /opt/mayan-edms/bin/pip install --no-cache-dir --no-use-pep517 psycopg2==2.7.3.2
* Copy the newly created fallback config file::
cp /opt/mayan-edms/media/config_backup.yml /opt/mayan-edms/media/config.yml
* Edit the configuration file to add the entry for the PostgreSQL database and
rename the SQLite database to 'old'::
# Before
DATABASES:
default:
ATOMIC_REQUESTS: false
AUTOCOMMIT: true
CONN_MAX_AGE: 0
ENGINE: django.db.backends.sqlite3
HOST: ''
NAME: /opt/mayan-edms/media/db.sqlite3
OPTIONS: {}
PASSWORD: ''
PORT: ''
TEST: {CHARSET: null, COLLATION: null, MIRROR: null, NAME: null}
TIME_ZONE: null
USER: ''
# After
DATABASES:
old:
ATOMIC_REQUESTS: false
AUTOCOMMIT: true
CONN_MAX_AGE: 0
ENGINE: django.db.backends.sqlite3
HOST: ''
NAME: /opt/mayan-edms/media/db.sqlite3
OPTIONS: {}
PASSWORD: ''
PORT: ''
TEST: {CHARSET: null, COLLATION: null, MIRROR: null, NAME: null}
TIME_ZONE: null
USER: ''
default:
ATOMIC_REQUESTS: false
AUTOCOMMIT: true
CONN_MAX_AGE: 0
ENGINE: django.db.backends.postgresql
HOST: '127.0.0.1'
NAME: /opt/mayan-edms/media/db.sqlite3
OPTIONS: {}
PASSWORD: 'mayanuserpass'
PORT: ''
TEST: {CHARSET: null, COLLATION: null, MIRROR: null, NAME: null}
TIME_ZONE: null
USER: 'mayan'
* Migrate the new database to create the empty tables::
sudo -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media /opt/mayan-edms/bin/mayan-edms.py migrate
* Convert the data in the SQLite and store it in the PostgreSQL database::
sudo -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media /opt/mayan-edms/bin/mayan-edms.py convertdb --from=old --to=default --force
* Update the supervisor config file to have Mayan EDMS run from the PostgreSQL database::
[supervisord]
environment=
<...>
MAYAN_DATABASE_ENGINE=django.db.backends.postgresql,
MAYAN_DATABASE_HOST=127.0.0.1,
MAYAN_DATABASE_NAME=mayan,
MAYAN_DATABASE_PASSWORD=mayanuserpass,
MAYAN_DATABASE_USER=mayan,
MAYAN_DATABASE_CONN_MAX_AGE=0,
<...>

256
docs/chapters/deploying.rst Normal file
View File

@@ -0,0 +1,256 @@
******************
Direct deployments
******************
Mayan EDMS should be deployed like any other Django_ project and
preferably using virtualenv_. Below are some ways to deploy and use Mayan EDMS.
Do not use more than one method.
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 (http://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.
1. Install binary dependencies:
-------------------------------
If using a Debian_ or Ubuntu_ based Linux distribution, get the executable
requirements using::
sudo apt-get install g++ gcc ghostscript gnupg1 graphviz libfuse2 \
libjpeg-dev libmagic1 libpq-dev libpng-dev libreoffice libtiff-dev \
poppler-utils postgresql python-dev python-virtualenv redis-server \
sane-utils supervisor tesseract-ocr zlib1g-dev -y
.. note::
Platforms with the ARM CPU might also need additional requirements.
::
apt-sudo get libffi-dev libssl-dev -y
2. Create the user account for the installation:
------------------------------------------------
This will create an unpriviledge user account that is also unable to login.
::
sudo adduser mayan --disabled-password --disabled-login --no-create-home --gecos ""
3. 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)
::
sudo mkdir /opt
4. Create the Python virtual environment:
-----------------------------------------
This will keep all the Python packages installed here isolated from the rest
of the Pythoon packages in the system.
::
sudo virtualenv /opt/mayan-edms
5. Make the mayan user the owner of the installation directory:
---------------------------------------------------------------
::
sudo chown mayan:mayan /opt/mayan-edms -R
6. Install Mayan EDMS from PyPI:
--------------------------------
::
sudo -u mayan /opt/mayan-edms/bin/pip install --no-cache-dir --no-use-pep517 mayan-edms
7. Install the Python client for PostgreSQL and Redis:
------------------------------------------------------
::
sudo -u mayan /opt/mayan-edms/bin/pip install --no-cache-dir --no-use-pep517 psycopg2==2.7.3.2 redis==2.10.6
.. note::
Platforms with the ARM CPU might also need additional requirements.
::
sudo -u mayan /opt/mayan-edms/bin/pip install --no-cache-dir --no-use-pep517 psutil==5.6.2
8. Create the database for the installation:
--------------------------------------------
::
sudo -u postgres psql -c "CREATE USER mayan WITH password 'mayanuserpass';"
sudo -u postgres createdb -O mayan mayan
9. 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_MEDIR_ROOT``
variable in this and all subsequent steps. Be sure to first create the
folder and give owership 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 no be created in some cases. Make sure all
environment variable and values are correct. If this happens, refer to the
troubleshooting chapters: :ref:`troubleshooting-autoadmin-account` and
:ref:`troubleshooting-admin-password`.
::
sudo -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \
MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \
MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py initialsetup
10. Collect the static files:
-----------------------------
This step merges and compressed static media files so they can be served more
effectively.
::
sudo -u mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py preparestatic --noinput
11. Create the supervisor file at ``/etc/supervisor/conf.d/mayan.conf``:
------------------------------------------------------------------------
::
MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \
MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \
MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord > /etc/supervisor/conf.d/mayan.conf
12. Configure Redis:
--------------------
Configure Redit to discard data when it runs out of memory, not save its
database and only keep 1 database:
::
echo "maxmemory-policy allkeys-lru" >> /etc/redis/redis.conf
echo "save \"\"" >> /etc/redis/redis.conf
echo "databases 1" >> /etc/redis/redis.conf
systemctl restart redis
13. Enable and restart the services [1_]:
-----------------------------------------
::
systemctl enable supervisor
systemctl restart supervisor
14. Cleaning up:
----------------
The following operating system dependencies are only needed during
installation and can be removed.
::
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.
1. Install RabbitMQ:
--------------------
If using a Debian_ or Ubuntu_ based Linux distribution, get the executable
requirements using::
sudo apt-get install rabbitmq-server -y
2. Install the Python client for RabbitMQ:
------------------------------------------
::
sudo -u mayan /opt/mayan-edms/bin/pip install --no-cache-dir --no-use-pep517 librabbitmq==2.0.0
3. Create the RabbitMQ user and vhost:
--------------------------------------
::
sudo rabbitmqctl add_user mayan mayanrabbitmqpassword
sudo rabbitmqctl add_vhost mayan
sudo rabbitmqctl set_permissions -p mayan mayan ".*" ".*" ".*"
4. Edit the supervisor file at ``/etc/supervisor/conf.d/mayan.conf``:
---------------------------------------------------------------------
Replace (paying attention to the comma at the end)::
MAYAN_BROKER_URL="redis://127.0.0.1:6379/0",
with::
MAYAN_BROKER_URL="amqp://mayan:mayanuserpass@localhost:5672/mayan",
increase the number of Gunicorn workers to 3 in the line (``-w 2`` section)::
command = /opt/mayan-edms/bin/gunicorn -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``).
5. Restart the services:
------------------------
::
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

File diff suppressed because it is too large Load Diff

447
docs/chapters/docker.rst Normal file
View File

@@ -0,0 +1,447 @@
============
Docker image
============
How to use this image
=====================
.. _docker_install:
Start a Mayan EDMS Docker image
-------------------------------
With Docker properly installed, proceed to download the Mayan EDMS image using
the command::
docker pull mayanedms/mayanedms:<version>
Instead of a specific version tag you may use then generic ``:latest`` tag
to the get latest version available automatically. If you use the ``:latest``
tag here, remember to do so in the next steps also.::
docker pull mayanedms/mayanedms:latest
Then download version 9.6 of the Docker PostgreSQL image::
docker pull postgres:9.6
Create and run a PostgreSQL container::
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 \
-d postgres:9.6
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.
Finally create and run a Mayan EDMS container.
docker run -d \
--name mayan-edms \
--restart=always \
-p 80:8000 \
-e MAYAN_DATABASE_ENGINE=django.db.backends.postgresql \
-e MAYAN_DATABASE_HOST=172.17.0.1 \
-e MAYAN_DATABASE_NAME=mayan \
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
-e MAYAN_DATABASE_USER=mayan \
-e MAYAN_DATABASE_CONN_MAX_AGE=0 \
-v /docker-volumes/mayan-edms/media:/var/lib/mayan \
mayanedms/mayanedms:<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 container will keep connections to the database
for up to 60 seconds in an attempt to reuse them increasing response time
and reducing memory usage. 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``.
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::
docker network create mayan
Launch the PostgreSQL container with the network option and remove the port
binding (``-p 5432:5432``)::
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 \
-d postgres:9.6
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``)::
docker run -d \
--name mayan-edms \
--network=mayan \
--restart=always \
-p 80:8000 \
-e MAYAN_DATABASE_ENGINE=django.db.backends.postgresql \
-e MAYAN_DATABASE_HOST=mayan-edms-postgres \
-e MAYAN_DATABASE_NAME=mayan \
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
-e MAYAN_DATABASE_USER=mayan \
-e MAYAN_DATABASE_CONN_MAX_AGE=0 \
-v /docker-volumes/mayan-edms/media:/var/lib/mayan \
mayanedms/mayanedms:<version>
Stopping and starting the container
-----------------------------------
To stop the container use::
docker stop mayan-edms
To start the container again::
docker start mayan-edms
.. _docker_environment_variables:
Environment Variables
---------------------
The Mayan EDMS image can be configure via environment variables.
``MAYAN_DATABASE_ENGINE``
Defaults to ``None``. This environment variable configures the database
backend to use. If left unset, SQLite will be used. The database backends
supported by this Docker image are:
- ``'django.db.backends.postgresql'``
- ``'django.db.backends.mysql'``
- ``'django.db.backends.sqlite3'``
When using the SQLite backend, the database file will be saved in the Docker
volume. The SQLite database as used by Mayan EDMS is meant only for development
or testing, never use it in production.
``MAYAN_DATABASE_NAME``
Defaults to 'mayan'. This optional environment variable can be used to define
the database name that Mayan EDMS will connect to. For more information read
the pertinent Django documentation page:
:django-docs:`Connecting to the database <ref/databases/#connecting-to-the-database>`
``MAYAN_DATABASE_USER``
Defaults to 'mayan'. This optional environment variable is used to set the
username that will be used to connect to the database. For more information
read the pertinent Django documentation page:
:django-docs:`Settings, USER <ref/settings/#user>`
``MAYAN_DATABASE_PASSWORD``
Defaults to ''. This optional environment variable is used to set the
password that will be used to connect to the database. For more information
read the pertinent Django documentation page:
:django-docs:`Settings, PASSWORD <ref/settings/#password>`
``MAYAN_DATABASE_HOST``
Defaults to `None`. This optional environment variable is used to set the
hostname that will be used to connect to the database. This can be the
hostname of another container or an IP address. For more information read
the pertinent Django documentation page:
:django-docs:`Settings, HOST <ref/settings/#host>`
``MAYAN_DATABASE_PORT``
Defaults to `None`. This optional environment variable is used to set the
port number to use when connecting to the database. An empty string means
the default port. Not used with SQLite. For more information read the
pertinent Django documentation page:
:django-docs:`Settings, PORT <ref/settings/#port>`
``MAYAN_BROKER_URL``
This optional environment variable determines the broker that Celery will use
to relay task messages between the frontend code and the background workers.
For more information read the pertinent Celery Kombu documentation page: `Broker URL`_
.. _Broker URL: http://kombu.readthedocs.io/en/latest/userguide/connections.html#connection-urls
This Docker image supports using Redis and RabbitMQ as brokers.
Caveat: If the `MAYAN_BROKER_URL` and `MAYAN_CELERY_RESULT_BACKEND` environment
variables are specified, the built-in Redis server inside the container will
be disabled.
``MAYAN_CELERY_RESULT_BACKEND``
This optional environment variable determines the results backend that Celery
will use to relay result messages from the background workers to the frontend
code. For more information read the pertinent Celery Kombu documentation page:
`Task result backend settings`_
.. _Task result backend settings: http://docs.celeryproject.org/en/3.1/configuration.html#celery-result-backend
This Docker image supports using Redis and RabbitMQ as result backends.
Caveat: If the `MAYAN_BROKER_URL` and `MAYAN_CELERY_RESULT_BACKEND` environment
variables are specified, the built-in Redis server inside the container will
be disabled.
``MAYAN_SETTINGS_MODULE``
Optional. Allows loading an alternate settings file.
``MAYAN_DATABASE_CONN_MAX_AGE``
Amount in seconds to keep a database connection alive. Allow reuse of database
connections. For more information read the pertinent Django documentation
page: :django-docs:`Settings, CONN_MAX_AGE <ref/settings/#conn-max-age>`
According to new information Gunicorn's microthreads don't share connections
and will exhaust the available Postgres connections available if a number
other than 0 is used. Reference: https://serverfault.com/questions/635100/django-conn-max-age-persists-connections-but-doesnt-reuse-them-with-postgresq
and https://github.com/benoitc/gunicorn/issues/996
``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_GUID``
Optional. Changes the GUID of the ``mayan`` user internal to the Docker
container. Defaults to 1000.
.. _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:/srv/watch_folder
The command line would look like this::
docker run ... -v /opt/scanned_files:/srv/watch_folder mayanedms/mayanedms:latest
Now create a watch folder in Mayan EDMS using the path ``/srv/watch_folder``
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 folderes. In this example ``/srv/watch_folder`` was as the
container directory, but any path can be used as long as it is not an
already existing path or a path used by any other program.
Performing backups
==================
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:/srv/watch_folder mayanedms/mayanedms:latest
That would be the ``/docker-volumes/mayan folder``::
sudo tar -zcvf backup.tar.gz /docker-volumes/mayan
sudo chown `whoami` backup.tar.gz
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.
Restoring from a backup
=======================
Uncompress the backup archive in the original docker volume using::
sudo tar -xvzf backup.tar.gz -C /
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
Building the image
==================
Clone the repository with::
git clone https://gitlab.com/mayan-edms/mayan-edms.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 cacher 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.
Customizing the image
=====================
Simple method
-------------
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.
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.
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:
https://gitlab.com/mayan-edms/mayan-edms/container_registry

View File

@@ -0,0 +1,88 @@
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.
Creating document types
=======================
.. admonition:: Permissions required
:class: warning
The "Create document types" permission is required for this action.
#. Go to the :menuselection:`System --> Setup --> Document types` menu.
#. From the :guilabel:`Actions` dropdown select :guilabel:`Create document type`.
#. Enter a label to be shown to users when using this document type.
#. Optional: Enter a period of time after which documents of this type will be moved to the trash.
#. Optional: Select the unit of time for the period after which the document will be moved to the trash.
#. Optional: Enter a period of time after which documents moved to the trash will be permanently deleted.
#. Optional: Select the unit of time for the period of time after which the documents moved to the trash will be permanently deleted
#. Press :guilabel:`Submit`.

View File

@@ -1,14 +1,15 @@
============
************
File storage
============
************
The files are stored and placed under **Mayan EDMS** "control" to avoid
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"];
@@ -20,9 +21,16 @@ 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,
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/).

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 untagged documents
^^^^^^^^^^^^^^^^^^^^^^^^
::
{% 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 %}

View File

@@ -1,11 +1,10 @@
=======
Indexes
=======
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`.
relation to their properties (:doc:`../chapters/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:`../chapters/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
@@ -17,12 +16,15 @@ Example:
- 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 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];
@@ -50,6 +52,8 @@ 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 ];
@@ -72,8 +76,11 @@ that will be generate based on the tree template would be as follows:
}
.. include:: ../chapters/index_examples.rst
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
@@ -89,5 +96,20 @@ 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.

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:`../topics/settings` topic.

22
docs/chapters/mailing.rst Normal file
View File

@@ -0,0 +1,22 @@
*****************
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:`../topics/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. Mailing Profiles are created from the
:menuselection:`System --> Setup` menu.
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.

View File

@@ -0,0 +1,99 @@
********
Metadata
********
Metadata is the name of the attribute of a document. The concept of metadata is
divided in two: **metadata types** (size, color, distance) and **metadata values** for
those types. Metadata types are defined in the setup menu and associated with
document types. Then when a document is uploaded, a value for that metadata
can be entered. There are two kinds of metadata type to document type relations:
optional and required. When a metadata type is optional for a document type,
it can be left blank for a document being uploaded and the upload will still
be successful. On the other hand required metadata type must be given a value
or it will not be possible to upload the document at hand.
Examples of metadata type: Invoice number, color, employee id.
The data entry of metadata types can be set to allow any value to be provided
(the default) or a list of possible values can be entered in the ``Lookup``
configuration option and users will be presented with a drop down list of options
instead of the default text entry box.
If metadata types are setup to allow any value to be entered a ``validation``
option can be chosen to block the entry of invalid data. Metadata types also
provide ``parsers`` which will not block the entry of data but are able to
interpret and modify the value provided by the user to a conform to a specific
format. An example of a provided parser is the date parser which will interpret
and correct dates provided by users regardless of the format in which they are
entered.
Creating metadata types
=======================
.. admonition:: Permissions required
:class: warning
The "Create new metadata types" permission is required for this action.
#. Go to the :menuselection:`System --> Setup --> Metadata types` menu.
#. From the :guilabel:`Actions` dropdown select :guilabel:`Create new`.
#. Provide a name to reference this metadata type in other parts of the system.
#. Enter a label to be shown to users when using this metadata type.
#. Optional: Enter a default value for the metadata type.
#. Optional: Provide a comma separated list of options to restrict the data entry
when using this metadata type.
#. Optional: Select a validator and a parser to validate and cleanup the data
entry when not using a predetermined list of values.
#. Press :guilabel:`Submit`.
Assigning a metadata type to a document type
============================================
.. admonition:: Permissions required
:class: warning
- The "Edit metadata types" permission is required for this action, globally or
via an ACL for a metadata type.
- Also the "Edit document type" permission
is required, globally or via an ACL for a document type.
This action can be performed in two ways.
Option 1: Via the metadata type view
------------------------------------
#. Go to the :menuselection:`System --> Setup --> Metadata types` menu.
#. Click on the button :guilabel:`Document types` of the metadata type you which
to associate.
#. From the list of existing document types press either:
- :guilabel:`None` if this metadata type will not be available for documents
of the type.
- :guilabel:`Optional` if this metadata type will be available and is
optional to provide a value for documents of the type.
- :guilabel:`Required` if this metadata type will be available and is
required to provide a value for documents of the type.
#. Press :guilabel:`Save`.
Option 2: Via the document type view
------------------------------------
#. Go to the :menuselection:`System --> Setup --> Document types` menu.
#. Click on the button :guilabel:`Metadata types` of the metadata type you which
to associate.
#. From the list of existing metadata types press either:
- :guilabel:`None` if this metadata type will not be available for documents
of the type.
- :guilabel:`Optional` if this metadata type will be available and is
optional to provide a value for documents of the type.
- :guilabel:`Required` if this metadata type will be available and is
required to provide a value for documents of the type.
#. Press :guilabel:`Save`.

View File

@@ -0,0 +1,31 @@
**************
Object storage
**************
It is possible to use object storage instead of the default filesystem based
storage. One such object storage system is Amazon S3 (Simple Storage Service)
API compatible object storage. The following steps will configure Mayan EDMS
to use a S3 style storage for documents.
1. Install the django-storages and boto3 Python libraries.
* For the direct deployment method of installation use::
pip install django-storages boto3
* or if using the Docker image, add the following the command line that runs the container::
-e MAYAN_PIP_INSTALLS='django-storages boto3'
2. From the web interface navigate to the :menuselection:`System --> Setup --> Setting --> Documents` menu.
3. Locate the **DOCUMENTS_STORAGE_BACKEND** setting, press **Edit** and enter::
storages.backends.s3boto3.S3Boto3Storage
4. Save and locate the setting **DOCUMENTS_STORAGE_BACKEND_ARGUMENTS**, press **Edit** and enter::
'{access_key: <your S3 access key>, secret_key: <your S3 secret key>, bucket_name: <S3 bucket name>}'
5. Save and restart your Mayan EDMS installation for the setting to take effect.

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 crate 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'

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:`../topics/settings` topic.
To test the email settings use the management command ``sendtestemail``.
Example::
mayan-edms.py sendtestemail myself@example.com

View File

@@ -1,8 +1,8 @@
===========
***********
Permissions
===========
***********
**Mayan EDMS** provides very fine control over which actions users can
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.
@@ -10,6 +10,11 @@ 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' ];

View File

@@ -0,0 +1,70 @@
************
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".
Creating quick labels
=====================
.. admonition:: Permissions required
:class: warning
The "Edit document types" permission is required for this action, either
globally or via an ACL for a document type.
Since quick labels are associated with document types, creating quick labels
must be done from the document type view.
#. Go to the :menuselection:`System --> Setup --> Document types` menu.
#. In the document type list, click on the :guilabel:`Quick labels` button of
the document type for which you wish to create a quick label.
#. In the view titled "Quick labels for document type: <your document type>",
from the :guilabel:`Actions` dropdown select :guilabel:`Add quick label to document type`.
#. At the quick label creation form enter the desired label and press :guilabel:`Save`.
Using quick labels during upload
================================
#. Use the new document upload wizard from :menuselection:`Documents --> New document`.
#. Select a document type and navigate to the penultimate step, where you have
the option to drag and drop files to upload.
#. Select a an option from the :guilabel:`Quick document rename` dropdown.
#. Optionally select the :guilabel:`Preserve extension` checkbox to keep the file
extension.
#. Upload your documents.
Using quick labels for existing documents
=========================================
.. admonition:: Permissions required
:class: warning
The "Edit document properties" permission is required for this action, either
globally or via an ACL for a document or document type.
#. Navigate to the document preview view of the document to rename. Make sure
quick labels for the document type of the document select have been created.
#. From the :guilabel:`Actions` dropdown select :guilabel:`Edit Properties`.
#. Select a an option from the :guilabel:`Quick document rename` dropdown.
#. Optionally select the :guilabel:`Preserve extension` checkbox to keep the file
extension.
#. Press :guilabel:`Save` to rename the document.

View File

@@ -0,0 +1,155 @@
**********
Scaling up
**********
The default installation method fits most use cases. If you use case requires
more speed or capacity here are some suggestion that can help you improve the
performance of your installation.
Change the database manager
===========================
Use PostgreSQL or MySQL as the database manager.
Tweak the memory setting of the database manager to increase memory allocation.
More PostgreSQL specific examples are available in their wiki page:
https://wiki.postgresql.org/wiki/Performance_Optimization
Increase the number of Gunicorn workers
=======================================
The Gunicorn workers process HTTP requests and affect the speed at which the
website responds.
If you are using the Docker image, change the value of the
``MAYAN_GUNICORN_WORKERS`` environment variable (check the Docker image chapter:
:ref:`docker_environment_variables`). Normally this variable defaults to 2.
Increase this number to match the number of CPU cores + 1.
If you are using the direct deployment methods, change the line that reads::
command = /opt/mayan-edms/bin/gunicorn -w 2 mayan.wsgi --max-requests 500 --max-requests-jitter 50 --worker-class gevent --bind 0.0.0.0:8000 --timeout 120
And increase the value of the ``-w 2`` argument. This line is found in the
``[program:mayan-gunicorn]`` section of the supervisor configuration file.
Background task processing
==========================
The Celery workers are system processes that take care of the background
tasks requested by the frontend interactions like document image rendering
and periodic tasks like OCR. There are several dozen tasks defined in the code.
These tasks are divided into queues based on the app of the relationship
between the tasks. The queues by default are divided into three groups
based on the speed at which they need to be processed. The document page
image rendering for example is categorized as a high volume, short duration
task. The OCR is a high volume, long duration task. Email checking is a
low volume, medium duration tasks. It is not advisable to have the same
worker processing OCR to process image rendering too. If the worker is
processing several OCR tasks it will not be able to provide fast images
when an user is browsing the user interface. This is why by default the
queues are split into 3 workers: fast, medium, and slow. Each worker will handle
queues based on the latency required by each queue group.
Optimizations
-------------
* Increase the number of workers and redistribute the queues among them
(only possible with direct deployments).
* Launch more workers to service a queue. For example for faster document
image generation launch 2 workers to process the converter queue only
possible with direct deployments).
* By default each worker process uses 1 thread. You can increase the thread
count of each worker process with the Docker environment options:
* ``MAYAN_WORKER_FAST_CONCURRENCY``
* ``MAYAN_WORKER_MEDIUM_CONCURRENCY``
* ``MAYAN_WORKER_SLOW_CONCURRENCY``
* If using direct deployment, increase the value of the ``--concurrency=1``
argument of each worker in the supervisor file. You can also remove this
argument and let the Celery algorithm choose the number of threads to
launch. Usually this defaults to the number of CPU cores + 1.
Change the message broker
=========================
Messages are the method of communication between front end interactive code
and background tasks. In this regard messages can be thought as homologous
to tasks requests. Improving how many messages can be sent, stored and
sorted will impact the number of tasks the system can handle. To save on
memory, the basic deployment method and the Docker image default to using
Redis as a message broker. To increase capacity and reduce volatility of
messages (pending tasks are not lost during shutdown) use RabbitMQ to
shuffle messages.
For direct installs refer to the :ref:`deployment_advanced` documentation
section for the required changes.
For the Docker image, launch a separate RabbitMQ container
(https://hub.docker.com/_/rabbitmq/)::
docker run -d --name mayan-edms-rabbitmq -e RABBITMQ_DEFAULT_USER=mayan -e RABBITMQ_DEFAULT_PASS=mayanrabbitmqpassword -e RABBITMQ_DEFAULT_VHOST=mayan rabbitmq:3
Pass the MAYAN_BROKER_URL environment variable (https://kombu.readthedocs.io/en/latest/userguide/connections.html#connection-urls)
to the Mayan EDMS container so that it uses the RabbitMQ container the
message broker::
-e MAYAN_BROKER_URL="amqp://mayan:mayanrabbitmqpassword@localhost:5672/mayan",
When tasks finish, they leave behind a return status or the result of a
calculation, these are stored for a while so that whoever requested the
background task, is able retrieve the result. These results are stored in the
result storage. By default a Redis server is launched inside the Mayan EDMS
container. You can launch a separate Docker Redis container and tell the Mayan
EDMS container to use this via the ``MAYAN_CELERY_RESULT_BACKEND`` environment
variable. The format of this variable is explained here: http://docs.celeryproject.org/en/3.1/configuration.html#celery-result-backend
Deployment type
===============
Docker provides a faster deployment and the overhead is not high on modern
systems. It is however memory and CPU limited by default and you need to
increase this limits. The settings to change the container resource limits
are here: https://docs.docker.com/config/containers/resource_constraints/#limit-a-containers-access-to-memory
For the best performance possible use the advanced deployment method on a
host dedicated to serving only Mayan EDMS.
Storage
=======
For best input and output speed use a block based local filesystem on an
SSD drive for the ``/media`` sub folder. The location of the ``/media`` folder
will be specified by the ``MEDIA_ROOT`` setting.
If capacity is your bottom line, switch to an
:doc:`object storage <../chapters/object_storage>` system.
Use additional hosts
====================
When one host is not enough you can use multiple hosts and share the load.
Make sure that all hosts share the ``/media`` folder as specified by the
``MEDIA_ROOT`` setting, also the database, the broker, and the result storage.
One setting that needs to be changed in this configuration is the lock
manager backend.
Resource locking is a technique to avoid two processes or tasks to modify
the same resource at the same time causing a race condition. Mayan EDMS uses
its own lock manager. By default the lock manager with use a simple file
based lock backend ideal for single host installations. For multiple hosts
installation the database backend must be used in other to coordinate the
resource locks between the different hosts over a share data medium. This is
accomplished by modifying the environment variable ``LOCK_MANAGER_BACKEND`` in
both the direct deployment or the Docker image. Use the value
``lock_manager.backends.model_lock.ModelLock`` to switch to the database
resource lock backend. If you can also write your own lock manager backend
for other data sharing mediums with better performance than a relational
database like Redis, Memcached, Zoo Keeper.

113
docs/chapters/settings.rst Normal file
View File

@@ -0,0 +1,113 @@
********
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 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:
``/usr/share/mayan-edms/mayan/media/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` 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::
python manage.py 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
For the :doc:`../chapters/docker` 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

View File

@@ -1,13 +1,33 @@
===================
*******************
Document signatures
===================
*******************
**Mayan EDMS** supports two types of document signatures: embedded and
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
@@ -21,4 +41,6 @@ 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/

View File

@@ -1,4 +1,3 @@
===========
Smart links
===========
@@ -7,7 +6,7 @@ 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:`indexes`.
document, but they each belong to their own :doc:`../chapters/indexes`.
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

79
docs/chapters/sources.rst Normal file
View File

@@ -0,0 +1,79 @@
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.
- 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`.
Creating new sources
====================
.. admonition:: Permissions required
:class: warning
The "Create new document sources" permission is required for this action.
#. Go to the :menuselection:`System --> Setup --> Sources` menu.
#. From the :guilabel:`Actions` dropdown select the new type of source to create.
#. Each source type will have different fields to customize its behaviour. Enter
the required information in each field based on the help text provided.
#. Press :guilabel:`Save`.

46
docs/chapters/tags.rst Normal file
View File

@@ -0,0 +1,46 @@
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.
To view, add, or remove tags from a specific document, go to the document view
and click on the **Tags** tab. This view will show the current tags of a
document. The **Actions** menu will now show two new options: one to attach
more tags to the document and another to remove tags from the document.
It is also possible to tag documents in bulk by selecting several documents
from any view that displays a list documents and selecting the **Attach tag**
or **Remove tags** from the dropdown menu.
Creating tags
=============
.. admonition:: Permissions required
:class: warning
The "Create new tags" permission is required for this action.
#. Go to the :menuselection:`Tags --> Create` menu.
#. Enter a label to identify the tag.
#. Select a color for the tag.
#. Press :guilabel:`Submit`.
View all tags
=============
.. admonition:: Permissions required
:class: warning
The "View tags" permission is required for this action, globally or via an
ACL for a tag.
#. Go to the :menuselection:`Tags --> All` menu.

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 not destructive and do not physically modify the document
file, they just modify the document's graphical representation.

View File

@@ -1,6 +1,6 @@
============
************
Translations
============
************
Translations are handled online via the **Transifex** website:
https://www.transifex.com/projects/p/mayan-edms/. To create a translation team

View File

@@ -0,0 +1,84 @@
*************
Upload wizard
*************
The steps needed to upgrade a document using form-tools' ``SessionWizard``
were hardcoded in the ``source`` app. This made it very difficult to add or remove
wizard steps.
The steps of the wizard are now defined by a new class called
``sources.wizard.WizardStep``. The existing steps to select a document type,
enter metadata and tag the document, have been converted to function as
``WizardSteps`` subclasses. The converted steps now live in
``sources.wizards.WizardStepDocumentType``, ``tag.wizard_steps.WizardStepTags``,
and ``metadata.wizard_steps.WizardStepMetadata``.
The steps need to define the following methods:
- ``done``: This method is execute when the wizard finished the last step
an enter the step where the actual file are uploaded. This steps is used
to encode form data into the URL query string that will be passed to the
document upload view for each file uploaded.
- ``condition``: This method is used to display the step conditionally.
If this method return True it will be displayed during the upload wizard
execution. To skip the step, return False or None.
- ``get_form_initial``: This method is used to return the initial data
for the step form. Use this method to set up initial values for the step's
form fields.
- ``step_post_upload_process``: This method will be executed once the
document finishes uploading. Use this method to process the information
encoded in the URL querystring by the step's `done`` method.
Once the ``WizardStep`` subclass is defined, it needs to be registered. This
is done by calling the ``.register`` method of the ``WizardStep`` class with
the subclass as the argument. Example::
WizardStep.register(WizardStepMetadata)
This statement must be located after the subclass definition. Finally,
the module defining the wizard step must be imported so that it is loaded
with the rest of the code and enabled. The best place to do this is in the
``.ready`` method of the apps' ``apps.py`` module. Example::
class TagsApp(MayanAppConfig):
has_rest_api = True
has_tests = True
name = 'tags'
verbose_name = _('Tags')
def ready(self):
super(TagsApp, self).ready()
from actstream import registry
from .wizard_steps import WizardStepTags # NOQA
The ``WizardStep`` class also allows for unregistering existing steps. This
is accomplished by calling the ``.deregister`` method of the ``WizardStep``
class and passing the subclass as the argument. This method should
also be called inside the ``.ready`` method of an apps' ``apps.py``
module. Example::
class TagsApp(MayanAppConfig):
has_rest_api = True
has_tests = True
name = 'tags'
verbose_name = _('Tags')
def ready(self):
super(TagsApp, self).ready()
from actstream import registry
from metadata.wizard_steps import WizardStepMetadata # NOQA
from sources.wizards import WizardStep # NOQA
from .wizard_steps import WizardStepTags # NOQA
WizardStep.deregister(WizardStepTags)
This will cause the tags assignment step to not be assigned to the upload
wizard anymore.

View File

@@ -0,0 +1,80 @@
*******************
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.
View a document version list
============================
.. admonition:: Permissions required
:class: warning
The "View documents' versions list" permission is required for this action,
either globally or via an ACL for a document or document type.
#. Navigate to the select document's preview view.
#. Click on the sibebar's :guilabel:`Versions` button.
Uploading a new document version
================================
.. admonition:: Permissions required
:class: warning
The "Create new document versions" permission is required for this action,
either globally or via an ACL for a document or document type.
#. Navigate to the select document's versions list view.
#. From the :guilabel:`Actions` dropdown select :guilabel:`Upload new version`.
#. Optionally type a comment explaining the changes in the new version.
#. Press the :guilabel:`Browse` button and select a new file.
#. Press :guilabel:`Save` upload the new verision.

113
docs/chapters/workflows.rst Normal file
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.

View File

@@ -33,12 +33,13 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "_ext"))
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
#extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode']
#extensions = ["djangodocs", "sphinx.ext.intersphinx"]
extensions = ['djangodocs', 'sphinxcontrib.blockdiag']
extensions = [
'sphinx.ext.extlinks', 'sphinxcontrib.blockdiag', 'sphinxcontrib.spelling'
]
blockdiag_antialias = True
blockdiag_html_image_format = "SVG"
blockdiag_latex_image_format = "PDF"
blockdiag_tex_image_format = "PDF"
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -54,7 +55,7 @@ master_doc = 'index'
# General information about the project.
project = mayan.__title__
copyright = mayan.__copyright__
copyright = mayan.__copyright_short__
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -180,6 +181,9 @@ html_static_path = ['_static']
# Output file base name for HTML help builder.
htmlhelp_basename = 'MayanEDMSdoc'
html_show_sourcelink = False
html_show_sphinx = False
# -- Options for LaTeX output --------------------------------------------------
@@ -225,28 +229,26 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'mayanedms', 'Mayan EDMS Documentation',
('index', 'mayanedms', '{} Documentation'.format(mayan.__title__),
[mayan.__author__], 1)
]
html_theme = 'sphinx_rtd_theme'
# -- Custom options
import alabaster
html_theme_path = [alabaster.get_path()]
extensions.append('alabaster')
html_theme = 'alabaster'
html_sidebars = {
'**': [
'about.html', 'donate.html', 'navigation.html', 'searchbox.html',
]
}
html_theme_options = {
'description': mayan.__description__,
'github_button': False,
'travis_button': False,
'gratipay_user': 'rosarior',
'github_banner': False,
# -- External links --
extlinks = {
'django-docs': (
'https://docs.djangoproject.com/en/{}/%s'.format(
mayan.__django_version__
), 'Django documentation section: '
),
'github-issue': (
'https://github.com/mayan-edms/mayan-edms/issues/%s', 'GitHub issue #'
),
'gitlab-issue': (
'https://gitlab.com/mayan-edms/mayan-edms/issues/%s', 'GitLab issue #'
)
}
html_logo = '_static/logo_pyramid_only.png'
def setup(app):
app.add_stylesheet('css/custom.css')

View File

@@ -1,24 +1,15 @@
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/mayan_logo.png
:alt: Logo is a trademark of Roberto Rosario
:align: center
The easiest way to install and try **Mayan EDMS** is by using a Debian based Linux distribution
and installing it from PyPI with the following commands:
.. code-block:: bash
sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr unpaper poppler-utils -y
virtualenv venv
source venv/bin/activate
pip install mayan-edms
mayan-edms.py initialsetup
mayan-edms.py runserver
Point your browser to 127.0.0.1:8000 and use the automatically created admin
account.
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
@@ -26,20 +17,27 @@ account.
.. toctree::
:hidden:
Features <topics/features>
Installation <topics/installation>
Deploying <topics/deploying>
Release notes and upgrading <releases/index>
Concepts <topics/index>
Development <topics/development>
App creation <topics/app_creation>
Translations <topics/translations>
Contributors <topics/contributors>
Screenshots <topics/screenshots>
Licensing <topics/license>
FAQ <topics/faq>
Contact <topics/contact>
topics/features
topics/installation
releases/index
topics/getting_started
topics/adding_documents
topics/access_control
topics/categorization
topics/collaboration
topics/settings
topics/storage
topics/integration
topics/docker
topics/advanced
topics/administration
topics/troubleshooting
topics/development
topics/faq
topics/license
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

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.

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)

View File

@@ -0,0 +1,74 @@
==================================
MERC 3: Using JavaScript libraries
==================================
:MERC: 3
:Author: Eric Riggs
:Status: Accepted
:Type: Feature
:Created: 2018-03-08
:Last-Modified: 2018-06-04
.. contents:: Table of Contents
:depth: 3
:local:
Abstract
========
This MERC proposes a standard way to use JavaScript libraries.
Rationale
=========
Mayan EDMS uses several JavaScript libraries for user interface features.
Currently, the libraries are not installed using any JavaScript package
manager but copied uncompressed. Installing the libraries in this manner
carries some disadvantages.
Motivation
==========
The inclusion of the libraries in source form is required by many licenses
if the library is not installed by a package manager in distributable form.
There are several disadvantages with the current approach:
1. Having the library in source form means that the entire weight of the
library's size carries over the overall size of the Mayan EDMS distribution files.
The justification for not doing this is the same as with the Python libraries
which are not copied with the code but downloaded upon installation.
2. Upgrading the libraries means manually examining the version of the
installed in the project and manually searching, downloading, compressing
and adding the files to the repository.
3. The source form of the libraries includes normal and minified versions
of the code and the accompanying CSS files. There is no define preference
and through the project both versions of the libraries are loaded
interchangeably. Using a packager manager the minified version would be
used of a pipeline to minify the installed libraries should be added.
Backwards Compatibility
=======================
There are no backwards compatibility issues with this proposal.
Specification
=============
Changes needed:
1. Python based JavaScript package manager. Alternatively a Python wrapper
for a JavaScript package manager could be used.
2. Package manifest for the JavaScript libraries used.
3. Installation pipeline to install the JavaScript libraries during the
installation and setup of the project.
References:
- https://github.com/JDeuce/powser
- https://github.com/javrasya/version-manager
- https://github.com/inveniosoftware-attic/setuptools-bower
- https://pypi.python.org/pypi/django-bower-cache/0.5.0
- http://django-pipeline.readthedocs.io/en/latest/index.html
- https://github.com/nvbn/django-bower

View File

@@ -0,0 +1,46 @@
=====================
MERC 4: Support forum
=====================
:MERC: 4
:Author: Michael Price
:Status: Accepted
:Type: Process
:Created: 2018-02-27
:Last-Modified: 2018-09-04
.. contents:: Table of Contents
:depth: 3
:local:
Abstract
========
This MERC proposes the move of the official community meeting place
from Google Group to a self hosted forum platform.
Motivation
==========
Google Groups is not a proper forum platform and as such is lacking many
features that would increase participation. Google Groups has not had any
significant update in years and the age of the platform is visible. There
are no official mobile apps for Google Groups, no responsible template
is not provided. There are not integration options. These factors
contribute to the problems of knowledge dilution and one time
participation being experienced in the Mayan EDMS community.
Other concerns for moving the community to a self hosted forum solution
are that Google Groups presents a single point of failure by relying on
a free product hosted by a commercial company with no continuation plan
for the product. Google Groups doesn't provide archiving features and
the current archive solution relies on other third party services, one
of which (GMANE) has stopped working. Recent user privacy and censorship
issues regarding Google, reinforce the need for a self hosted solution.
Specification
=============
Platform chosen was phpBB. Factors were: written in PHP, ease of installation,
compatible with several database managers, mature, extensive development history.

View File

@@ -0,0 +1,149 @@
==========================
MERC 5: Explicit arguments
==========================
:MERC: 5
:Author: Roberto Rosario
:Status: Accepted
:Type: Feature
:Created: 2018-12-30
:Last-Modified: 2018-12-31
.. contents:: Table of Contents
:depth: 3
:local:
Abstract
========
This MERC proposes the adoption of a new methodology when performing calls.
It seeks to reduce the use of positional arguments in favor of keyword
arguments in as many places as possible.
Motivation
==========
As the project grows, legibility of code becomes more important. Keyword
argument help document the use of services, clases and functions. Refactors
that affect the interface of services are also easier to find and update and
fix. Positional argument can cause a call to continue working as long as the
datatype of the argument remains the same. Usage of keyword arguments will
automatically raise and error that will prevent such situations. Keyword
argument further eliminate the relevance of position or the arguments, and
the arguments can be sorted alphabetically for easier visual scanning or by
semantic significance improving code readability.
Specification
=============
Adoption of this MERC will require an audit of existing calls and the use
of the method proposed for new calls. Every call regardless of the type or
origin of the source callable will name each argument used. By type it is
meant: classes, functions, methods. Origin means: local from the project,
from the framework, third party libraries or the standard library.
Backwards Compatibility
=======================
No backwards compatibility issues are expected. New errors arising from the use
if keyword arguments could be interpreted as existing latent issues that
have not been uncovered.
Reference Implementation
========================
Example:
Before:
.. code-block:: python
from mayan.apps.common.classes import Template
Template(
'menu_main', 'appearance/menu_main.html'
)
After:
.. code-block:: python
from mayan.apps.common.classes import Template
Template(
name='menu_main', template_name='appearance/menu_main.html'
)
When calls use a mixture or positional and keyword arguments, the keywords
arguments can only be found after the positional arguments. Complete use
of keyword arguments allow the reposition of arguments for semantic
purposes.
Example:
Before:
.. code-block:: python
from django.conf.urls import url
from .views import AboutView, HomeView, RootView
urlpatterns = [
url(r'^$', RootView.as_view(), name='root'),
url(r'^home/$', HomeView.as_view(), name='home'),
url(r'^about/$', AboutView.as_view(), name='about_view'),
]
After:
.. code-block:: python
from django.conf.urls import url
from .views import AboutView, HomeView, RootView
urlpatterns = [
url(regex=r'^$', name='root', view=RootView.as_view()),
url(regex=r'^home/$', name='home', view=HomeView.as_view()),
url(regex=r'^about/$', name='about_view', view=AboutView.as_view()),
]
Keyword arguments should also be used for callables that pass those to others
down the line like Django's ``reverse`` function. Any change to the name of
the ``pk`` URL parameter will raise an exception in this code alerting to
any posible incompatible use.
Example:
.. code-block:: python
def get_absolute_url(self):
return reverse(
viewname='documents:document_preview', kwargs={'pk': self.pk}
)
This becomes even more important when multiple URL parameters are used. Since
the API documentation is auto generated from the code itself, it would make
sense to rename the first URL parameter from ``pk`` to ``document_pk``. Such
change will cause all address to view resolutions to break forcing their
update and allowing all consumers' interface usage to remain synchonized to the
callable's interface.
.. code-block:: python
url(
regex=r'^documents/(?P<pk>[0-9]+)/versions/(?P<document_version_pk>[0-9]+)/pages/(?P<document_page_pk>[0-9]+)/image/$',
name='documentpage-image', view=APIDocumentPageImageView.as_view()
),

View File

@@ -0,0 +1,81 @@
==================================
MERC 6: Lower information disclose
==================================
:MERC: 6
:Author: Michael Price
:Status: Accepted
:Type: Feature
:Created: 2018-12-30
:Last-Modified: 2018-12-31
.. contents:: Table of Contents
:depth: 3
:local:
Abstract
========
This MERC proposes the use of errors that don't disclose the existance of a
resource in the event that the requester doesn't have the required credentials.
Motivation
==========
When an user tries to perform an action like opening a view to a document for
which the required permission is missing, a permission required or access
denied error is presented. This is semantically correct, but from the stand
point of security it is still failing because it is letting the user know
that such document exists in the first place. This MERC proposes changing the
error message for existing resource to one that doesn't divulge any information
to unauthorized parties, like "Not Found".
Specification
=============
Out of the 4 basic CRUD operations, Read, Update and Delete should return an
HTTP 404 error instead of an HTTP 403 error. Only the Create operation will
continue returning the current HTTP 403 error, unless it is creating a
new resource that is related to an existing resource.
Since most view use the internal custom CRUD classes making a change to the
``ObjectPermissionCheckMixin`` class to raise an HTTP 404 on object access
failure will fulfill the proposal of this MERC.
Adding the ``object_permission_raise_404`` class attribute and setting it
to default to False will allow fulfullin the goal of this MERC while
keeping the existing functionality intact.
Example:
.. code-block:: python
class ObjectPermissionCheckMixin(object):
"""
If object_permission_raise_404 is True an HTTP 404 error will be raised
instead of the normal 403.
"""
object_permission = None
object_permission_raise_404 = False
def get_permission_object(self):
return self.get_object()
def dispatch(self, request, *args, **kwargs):
if self.object_permission:
try:
AccessControlList.objects.check_access(
permissions=self.object_permission, user=request.user,
obj=self.get_permission_object(),
related=getattr(self, 'object_permission_related', None)
)
except PermissionDenied:
if self.object_permission_raise_404:
raise Http404
else:
raise
return super(
ObjectPermissionCheckMixin, self
).dispatch(request, *args, **kwargs)

55
docs/mercs/index.rst Normal file
View File

@@ -0,0 +1,55 @@
*****
MECRs
*****
Mayan EDMS Request For Comment documents index.
.. contents:: Table of Contents
:depth: 2
:local:
Status
======
Accepted
--------
.. toctree::
:maxdepth: 1
../mercs/0001-merc-process
../mercs/0002-test-writing
../mercs/0003-using-javascript-libraries
../mercs/0005-explicit-arguments
../mercs/0006-lower-information-disclose
Draft
-----
.. toctree::
:maxdepth: 1
../mercs/merging-roles-and-groups
Type
====
Process
-------
.. toctree::
:maxdepth: 1
../mercs/0001-merc-process
../mercs/0004-support-forum
Feature
-------
.. toctree::
:maxdepth: 1
../mercs/0002-test-writing
../mercs/0003-using-javascript-libraries
../mercs/0005-explicit-arguments
../mercs/0006-lower-information-disclose

View File

@@ -0,0 +1,67 @@
===============================
MERC XX: Unify Roles and Groups
===============================
:MERC: XX
:Author: Michael Price
:Status: Draft
:Type: Feature
:Created: 2018-02-27
:Last-Modified: 2018-02-27
.. contents:: Table of Contents
:depth: 3
:local:
Abstract
========
This MERC proposes the merging of the Roles and Group models.
Rationale
=========
Mayan EDMS uses Groups as units of users that are meant to mirror an
organization's actual user hierarchy. Roles are used as permission units.
Separation of concerns is a concept Mayan EDMS executes very successfully
but when it comes to the Roles/Groups relationship that execution causes
overheads without providing advantages in the day to day operations.
In reality there is almost a 1 to 1 correlation between Roles and Groups.
Other permissions systems already use Groups as permission units without
disadvantages. An example of this is LDAP and its commercial counterpart
Active Directory.
Motivation
==========
Merging the Role and Group model will reduce some complexity when initially
setting up Mayan EDMS. The merge allows removing a Mayan EDMS model in
favor of using a native Django model for the same task.
Merging the Role and Group models will also provide a speed boost in every
permission check and queryset filtering. These checks are nested in nature.
Since the access checks are performed for every view and for every link
in the view the performance gain should be substantial.
Backwards Compatibility
=======================
To avoid loss of role configuration a data migration will be needed to
convert existing roles to groups.
Specification
=============
Changes needed:
1. Data migration to convert existing roles to groups.
2. Prepend or append an identifier to the migrated roles.
3. Intermediate model to map permissions to a group. This will substitute
the Role model's permissions many to many field.
4. Update the ``AccessControlList`` models roles field to point to the group
models.
5. Update the role checks in the ``check_access`` and ``restrict_queryset``
``AccessControlList`` model manager methods.

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