Compare commits

...

865 Commits

Author SHA1 Message Date
Roberto Rosario
25854a0a1c Merge branch 'cherry-pick-273f94e9' into 'development'
Merge branch 'fix-context' into 'development'

See merge request !22
2017-09-07 05:14:16 +00:00
Roberto Rosario
6006fc9b74 Merge branch 'fix-context' into 'master'
Fix error in context: it must be a dict

See merge request !15
2017-09-07 05:13:42 +00:00
Roberto Rosario
57baf76a50 Add information on installing flake8's git hook.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-07 01:08:01 -04:00
Roberto Rosario
8385ef13b0 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-07 01:05:13 -04:00
Roberto Rosario
dd1e4cb685 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-07 01:01:11 -04:00
Roberto Rosario
6dcfd1b861 Ignore ProgramminError exception too while initializing the Quota model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-07 01:00:31 -04:00
Roberto Rosario
d867614c1c Update requirements versions.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-07 00:52:42 -04:00
Roberto Rosario
6cc574e631 Fix method name typo.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-07 00:22:00 -04:00
Roberto Rosario
5b94d202dc Use get_object_list instead of get_queryset.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-07 00:13:28 -04:00
Roberto Rosario
3e7d3946f8 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-07 00:12:17 -04:00
Roberto Rosario
2cbb1bc9e1 Add get_absolute_url method to document types.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-07 00:12:06 -04:00
Roberto Rosario
f0505db3b7 Update apps to use the new event type namespace class.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-07 00:11:25 -04:00
Roberto Rosario
39995764eb Merge remote-tracking branch 'origin/series/2.0' into development
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-06 23:09:54 -04:00
Roberto Rosario
d0aad4cb35 Merge branch 'feature/textfield_metadata#426' into 'development'
add migration for documentmetadata value to textfield

See merge request !20
2017-09-07 02:50:56 +00:00
Gustavo Selbach Teixeira
7abf8a7fc0 add migration for documentmetadata value to textfield 2017-09-06 08:45:11 -03: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
fc0127c7ad Merge branch 'feature/textfield_metadata#426' into 'development'
Makes documentmetadata value a textfield

See merge request !19
2017-09-06 03:10:59 +00:00
Gustavo Selbach Teixeira
bbef5fd570 Makes documentmetadata value a textfield 2017-09-05 10:23:11 -03: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
7a492b28f3 Merge branch 'feature/decode-base64-encoded-attachment-filename' into 'development'
Decode base64 encoded e-mail attachment filename.

See merge request !16
2017-08-15 15:58:08 +00: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
Cornelius Ludmann
abd720bf10 Test for base64 encoded e-mail attachment filename
Signed-off-by: Cornelius Ludmann <dev@cornelius-ludmann.de>
2017-08-02 14:35:11 +02:00
Cornelius Ludmann
25c1391649 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>
2017-08-02 13:28:43 +02:00
Roberto Rosario
95c0be45fb Remove the 'folders' app. GitLab issue #380.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 04:30:39 -04:00
Roberto Rosario
944ddd682b 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 04:27:25 -04:00
Roberto Rosario
c6bf3b00cd Fix mailing app permissions labels.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 04:24:36 -04:00
Roberto Rosario
bd419dc943 Add missing events app migration.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 04:23:42 -04:00
Roberto Rosario
70e2ca3334 Update changelog.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 04:22:50 -04:00
Roberto Rosario
5dd88ad690 Add ACLs link and ACLs permissions to the mailer profile model.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 04:20:44 -04:00
Roberto Rosario
ae57b97a1b Improve document creation via sources app to trigger
correct event.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 04:16:43 -04:00
Roberto Rosario
cb15e40f70 Improve mailer URL regex.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 04:16:04 -04:00
Roberto Rosario
01420c42dd Add support for quotas. GitLab issue #284.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 04:10:55 -04:00
Roberto Rosario
20e3634f5a Add support for dropdown menus for the item list view template.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 04:10:24 -04:00
Roberto Rosario
48fc36d54e 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.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-02 04:10:09 -04:00
Roberto Rosario
7a29b2496b Update release notes.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-01 01:20:44 -04:00
Roberto Rosario
c0407652c0 Add support for global and object event notification. GitLab issue #262.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-08-01 01:18:07 -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
5083a2d261 Fix tests.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-29 02:13:46 -04:00
Roberto Rosario
ba1ab5d4f1 Merge remote-tracking branch 'origin/master' into development
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-07-29 01:55:42 -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
17b7d6f25e Merge remote-tracking branch 'origin/master' into development 2017-07-05 16:03:50 -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
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
ca1f674d78 Merge remote-tracking branch 'origin/master' into merge_master
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-06-07 13:56:35 -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
93aeb8cffe Merge remote-tracking branch 'origin/master' into merge_master
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-24 15:02:36 -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
8eeee5b5a4 Update the required versions of Pillow, django-compressor, django-suit,
pyocr and sh.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-16 23:16:28 -04:00
Roberto Rosario
6221187070 Merge branch 'development' into feature/sane_source 2017-05-12 18:06:19 -04:00
Roberto Rosario
acdc7dca48 Convert the API URL system from an App based one
to a resource based one.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-12 17:55:12 -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
105eab0740 Add new document version list view permission. GitLab issue #379
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-04 01:04:53 -04:00
Roberto Rosario
b91f7f685a Incorporate @Macrobb metadata widget and content visual changes.
GitLab issue #378

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-05-04 00:42:59 -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
3023 changed files with 233669 additions and 124307 deletions

2
.flake8 Normal file
View File

@@ -0,0 +1,2 @@
[flake8]
ignore = E501

42
.gitignore vendored
View File

@@ -3,26 +3,28 @@
*.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/
.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/
/whoosh_index/

View File

@@ -1,35 +1,41 @@
image: python:2.7
image: ubuntu:16.10
services:
- mysql
- mysql:latest
- postgres
before_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
- 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
- apt-get install -qq curl graphviz python-dev python-pip gcc gnupg1 tesseract-ocr tesseract-ocr-deu ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
variables:
POSTGRES_DB: "mayan_edms"
POSTGRES_PASSWORD: "postgres"
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "mayan_edms"
#test:mysql:
# 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
# tags:
# - mysql
test:mysql:
script:
- apt-get install -qq libmysqlclient-dev
- pip install -r requirements/testing.txt
- pip install mysql-python
- apt-get install -qq mysql-client
- mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "set global character_set_server=utf8mb4;"
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
- codecov
tags:
- mysql
test:postgres:
script:
- apt-get install -qq libpq-dev
- 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
- pip install psycopg2
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
- codecov
tags:
- postgres
test:sqlite:
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
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations
- codecov

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,12 @@ source_lang = en
source_file = mayan/apps/authentication/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
@@ -61,6 +67,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
@@ -85,18 +97,6 @@ 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
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
type = PO
[mayan-edms.linking-2-0]
file_filter = mayan/apps/linking/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -127,12 +127,6 @@ source_lang = en
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.mirroring-2-0]
file_filter = mayan/apps/mirroring/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.motd-2-0]
file_filter = mayan/apps/motd/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -170,9 +164,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]
@@ -187,6 +181,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

78
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,78 @@
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. 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](http://mayan.readthedocs.io/en/latest/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.

View File

@@ -1,3 +1,313 @@
3.0 (2017-XX-XX)
================
- Add support for notifications. GitLab #262.
- Add quota support. GitLab #284.
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 extenstion 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.

View File

@@ -1,3 +1,3 @@
include README.rst LICENSE HISTORY.rst
recursive-include mayan *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 LICENSE
include README.md LICENSE HISTORY.rst mayan/LICENSE
recursive-include mayan/apps *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 *.gif *.eot *.svg *.doc *.pdf *.tiff *.sig *.asc *.gpg *.zip
global-exclude mayan/settings/local.py mayan/settings/travis/* mayan/media/*

261
Makefile
View File

@@ -1,21 +1,22 @@
.PHONY: clean-pyc clean-build
define BROWSER_PYSCRIPT
import sys, webbrowser
webbrowser.open(sys.argv[1])
endef
export BROWSER_PYSCRIPT
BROWSER := python -c "$$BROWSER_PYSCRIPT"
help:
@echo
@echo "clean-build - Remove build artifacts."
@echo "clean-pyc - Remove Python artifacts."
@echo "clean - Remove Python and build artifacts."
@echo "generate_setup - Create and updated setup.py"
@echo "test MODULE=<python module name> - Run tests for a single App, module or test class."
@echo "test-all - Run all tests."
@echo "test MODULE=<python module name> - Run tests for a single app, module or test class."
@echo "test-with-postgres-all - Run all tests against a Postgres database container."
@echo "test-postgres MODULE=<python module name> - Run tests for a single app, module or test class against a Postgres database container."
@echo "test-with-mysql-all - Run all tests against a MySQL database container."
@echo "test-mysql MODULE=<python module name> - Run tests for a single app, module or test class against a MySQL database container."
@echo "test-with-oracle-all - Run all tests against a Oracle database container."
@echo "test-oracle MODULE=<python module name> - Run tests for a single app, module or test class against a Oracle database container."
@echo "docs_serve - Run the livehtml documentation generator."
@echo "translations_make - Refresh all translation files."
@@ -30,8 +31,28 @@ help:
@echo "sdist - Build the source distribution package."
@echo "wheel - Build the wheel distribution package."
@echo "release - Package (sdist and wheel) and upload a release."
@echo "test_release - Package (sdist and wheel) and upload to the PyPI test server."
@echo "release_test_via_docker_ubuntu - Package (sdist and wheel) and upload to the PyPI test server using an Ubuntu Docker builder."
@echo "release_test_via_docker_alpine - Package (sdist and wheel) and upload to the PyPI test server using an Alpine Docker builder."
@echo "release_via_docker_ubuntu - Package (sdist and wheel) and upload to PyPI using an Ubuntu Docker builder."
@echo "release_via_docker_alpine - Package (sdist and wheel) and upload to PyPI using an Alpine Docker builder."
@echo "test_sdist_via_docker_ubuntu - Make an sdist packange and test it using an Ubuntu Docker container."
@echo "test_wheel_via_docker_ubuntu - Make a wheel package and test it using an Ubuntu Docker container."
@echo "runserver - Run the development server."
@echo "runserver_plus - Run the Django extension's development server."
@echo "shell_plus - Run the shell_plus command."
@echo "docker_services_on - Launch and initialize production-like services using Docker (Postgres and Redis)."
@echo "docker_services_off - Stop and delete the Docker production-like services."
@echo "docker_services_frontend - Launch a front end instance that uses the production-like services."
@echo "docker_services_worker - Launch a worker instance that uses the production-like services."
@echo "docker_service_mysql_on - Launch and initialize a MySQL Docker container."
@echo "docker_service_mysql_off - Stop and delete the MySQL Docker container."
@echo "docker_service_postgres_on - Launch and initialize a PostgreSQL Docker container."
@echo "docker_service_postgres_off - Stop and delete the PostgreSQL Docker container."
@echo "safety_check - Run a package safety check."
# Cleaning
@@ -55,13 +76,67 @@ test:
./manage.py test $(MODULE) --settings=mayan.settings.testing --nomigrations
test-all:
./manage.py runtests --settings=mayan.settings.testing --nomigrations
./manage.py test --mayan-apps --settings=mayan.settings.testing --nomigrations
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 -qq libpq-dev
pip install psycopg2
while ! docker inspect --format='{{json .State.Health}}' test-postgres|grep 'Status":"healthy"'; do sleep 1; done
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: 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 -qq libmysqlclient-dev mysql-client
pip install mysql-python
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: 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: 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: 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: 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:
$(BROWSER) http://127.0.0.1:8000
cd docs;make livehtml
@@ -77,7 +152,7 @@ translations_push:
tx push -s
translations_pull:
tx pull
tx pull -f
# Requirements
@@ -91,23 +166,175 @@ requirements_docs:
requirements_testing:
pip install -r requirements/testing.txt
generate_setup:
@./generate_setup.py
@echo "Complete."
# Releases
release: clean
python setup.py sdist bdist_wheel upload
test_release: clean wheel
twine upload dist/* -r testpypi
@echo "Test with: pip install -i https://testpypi.python.org/pypi mayan-edms"
release: clean wheel
twine upload dist/* -r pypi
sdist: clean
python setup.py sdist
ls -l dist
wheel: clean
python setup.py bdist_wheel
wheel: clean sdist
pip wheel --no-index --no-deps --wheel-dir dist dist/*.tar.gz
ls -l dist
release_test_via_docker_ubuntu:
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"
release_via_docker_ubuntu:
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 release"
release_test_via_docker_alpine:
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -c "\
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8 && \
cp -r /host_source/* . && \
apk update && \
apk add python2 py2-pip make && \
pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \
make test_release"
release_via_docker_alpine:
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -c "\
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8 && \
cp -r /host_source/* . && \
apk update && \
apk add python2 py2-pip make && \
pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \
make release"
test_sdist_via_docker_ubuntu:
docker run --rm --name mayan_sdist_test -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\
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:
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 \
"
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 \
'
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 \
'
# Dev server
runserver:
$(BROWSER) http://127.0.0.1:8000
./manage.py runserver
./manage.py runserver --settings=mayan.settings.development
runserver_plus:
./manage.py runserver_plus --settings=mayan.settings.development
shell_plus:
./manage.py shell_plus --settings=mayan.settings.development
docker_services_on:
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 2
./manage.py initialsetup --settings=mayan.settings.staging.docker
docker_services_off:
docker stop postgres redis
docker rm postgres redis
docker_services_frontend:
./manage.py runserver --settings=mayan.settings.staging.docker
docker_services_worker:
./manage.py celery worker --settings=mayan.settings.staging.docker -B -l INFO -O fair
docker_service_mysql_on:
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_service_mysql_off:
docker stop mysql
docker rm mysql
docker_service_postgres_on:
docker run -d --name postgres -p 5432:5432 postgres
while ! nc -z 127.0.0.1 5432; do sleep 1; done
docker_service_postgres_off:
docker stop postgres
docker rm postgres
# Security
safety_check:
safety check

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]
[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 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, configuration, upgrade, and backup
instructions visit the Mayan EDMS Docker Hub page at:
https://hub.docker.com/r/mayanedms/mayanedms/
<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)
- [Videos](https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw)
- [Documentation](http://mayan.readthedocs.io/en/stable/)
- [Paid support](http://www.mayan-edms.com/providers/)
- [Roadmap](https://gitlab.com/mayan-edms/mayan-edms/wikis/roadmap)
- [Contributing](https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md)
- [Community forum](https://groups.google.com/forum/#!forum/mayan-edms)
- [Community forum archive](http://mayan-edms.1003.x6.nabble.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/)

View File

@@ -1,75 +1,58 @@
|PyPI badge| |Build Status| |Coverage 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|
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|
.. _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/mayan-edms/mayan-edms/badges/master/build.svg
:target: https://gitlab.com/mayan-edms/mayan-edms/commits/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
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, configuration, upgrade, and backup
instructions visit the Mayan EDMS Docker Hub page at:
https://hub.docker.com/r/mayanedms/mayanedms/
.. _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>`__
- `Videos <https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw>`__
- `Documentation <http://mayan.readthedocs.io/en/stable/>`__
- `Paid support <http://www.mayan-edms.com/providers/>`__
- `Roadmap <https://gitlab.com/mayan-edms/mayan-edms/wikis/roadmap>`__
- `Contributing <https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md>`__
- `Community forum <https://groups.google.com/forum/#!forum/mayan-edms>`__
- `Community forum archive <http://mayan-edms.1003.x6.nabble.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/>`__
.. |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

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

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

@@ -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

@@ -4,20 +4,21 @@ import optparse
import sh
APP_LIST = (
'acls', 'appearance', 'authentication', 'checkouts', 'common',
'acls', 'appearance', 'authentication', 'cabinets', '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', 'motd', 'navigation', 'ocr', 'permissions',
'rest_api', 'smart_settings', 'sources', 'statistics', 'storage', 'tags',
'user_management'
'document_parsing', 'document_signatures', 'document_states', 'documents',
'dynamic_search', 'events', 'linking', 'lock_manager', 'mayan_statistics',
'mailer', 'metadata', 'mirroring', 'motd', 'navigation', 'ocr',
'permissions', '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',
'it', 'nl_NL', 'pl', 'pt', 'pt_BR', 'ro_RO', 'ru', 'sl_SI', 'tr_TR',
'vi_VN', 'zh_CN',
)
makemessages = sh.Command('django-admin.py')

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,63 @@
from __future__ import absolute_import
import ldap
from django_auth_ldap.config import LDAPSearch
from .base import *
from django.conf import settings
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 User.DoesNotExist:
return None
def get_user(self, username):
try:
return get_user_model().objects.get(pk=username)
except get_user_model().DoesNotExist:
return None

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

BIN
docs/_static/api.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

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: 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,4 +1,16 @@
<h3>Support</h3>
<p>
Consulting, support, customization, rebranding, and plug-in development are available. Email for information to: <a href='mailto:info@mayan-edms.com'>info@mayan-edms.com</a>
<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

@@ -38,7 +38,6 @@ extensions = ['djangodocs', 'sphinxcontrib.blockdiag']
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']

View File

@@ -1,24 +1,10 @@
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.
The easiest way to use Mayan EDMS is by using a Debian based Linux distribution
and install 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 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,9 +12,9 @@ account.
.. toctree::
:hidden:
Features <topics/features>
Installation <topics/installation>
Deploying <topics/deploying>
Features <topics/features>
Advanced deployment <topics/deploying>
Release notes and upgrading <releases/index>
Concepts <topics/index>
Development <topics/development>
@@ -36,11 +22,11 @@ account.
Roadmap <topics/roadmap>
Translations <topics/translations>
Contributors <topics/contributors>
Screenshots <topics/screenshots>
Licensing <topics/license>
FAQ <topics/faq>
Contact <topics/contact>
.. _Docker: https://www.docker.com/
.. _Django: http://www.djangoproject.com/
.. _Free Open Source: http://en.wikipedia.org/wiki/Open_source
.. _Electronic Document Management System: https://en.wikipedia.org/wiki/Document_management_system

75
docs/releases/2.1.10.rst Normal file
View File

@@ -0,0 +1,75 @@
================================
Mayan EDMS v2.1.10 release notes
================================
Released: February 13, 2017
What's new
==========
This is a micro release equal to the previews version from the user's point of view.
The version number was increase to workaround some issues with the Python
Package Index not allowing re-uploads.
Changes
-------------
- Update Makefile to use twine for releases.
- Add Makefile target to make test releases.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

94
docs/releases/2.1.11.rst Normal file
View File

@@ -0,0 +1,94 @@
================================
Mayan EDMS v2.1.11 release notes
================================
Released: March 14, 2017
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade. The focus
of this micro release was REST API improvement.
Changes
-------------
- Added a quick rename serializer to the document type API serializer.
- Added per document type, workflow list API view. The URL for this endpoint is
GET /api/document_states/document_type/{pk}/workflows/
- Added Developer Certificate of Origin. Mayan EDMS was adopted a version 1.1 of
the Linux Foundation Developer Certificate of Origin. All commits must be
signed (`git commit -s`) in order to be merged.
- 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. The setting is named
MAYAN_CELERY_CLASS and expects a dotted python path to the class to use.
- 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
it doesn't need a serializer being just an action POST endpoint.
- Added support for adding or editing document types to smart links via the
API.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `Github issue #249 <https://github.com/mayan-edms/mayan-edms/issues/249>`_ Add document comments API [$50 US]
* `GitLab issue #321 <https://gitlab.com/mayan-edms/mayan-edms/issues/321>`_ Transition ACLS
* `GitLab issue #357 <https://gitlab.com/mayan-edms/mayan-edms/issues/357>`_ It should be possible to retrieve all workflows for a given DocumentType from the API
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

87
docs/releases/2.1.3.rst Normal file
View File

@@ -0,0 +1,87 @@
===============================
Mayan EDMS v2.1.3 release notes
===============================
Released: June 29, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Temporary files cleanup
-----------------------
When uploading PDF files that had been OCRed by previous software, the text
parser backend that uses Poppler, would leave behind some temporary files in
the /tmp folder. The issue has been resolved and from the fix a test mixin
system check has been devised that will identify places in the codebase with
similar behaviors, reducing the recurrence of similar issues in the future.
Other changes
-------------
- 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.
- 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.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #295 <https://gitlab.com/mayan-edms/mayan-edms/issues/295>`_ When editing a user the top bar jumps to the name of the user
* `GitLab issue #309 <https://gitlab.com/mayan-edms/mayan-edms/issues/309>`_ Temp files quickly filling-up my /tmp (1GB tmpfs)
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

81
docs/releases/2.1.4.rst Normal file
View File

@@ -0,0 +1,81 @@
===============================
Mayan EDMS v2.1.4 release notes
===============================
Released: October 28, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Other changes
-------------
- 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
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #311 <https://gitlab.com/mayan-edms/mayan-edms/issues/311>`_ acl page return ContentType:Document
* `GitLab issue #316 <https://gitlab.com/mayan-edms/mayan-edms/issues/316>`_ Error when trying to access the statistics
* `GitLab issue #324 <https://gitlab.com/mayan-edms/mayan-edms/issues/324>`_ Document signature tests fail in Ubuntu 16.10
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

87
docs/releases/2.1.5.rst Normal file
View File

@@ -0,0 +1,87 @@
===============================
Mayan EDMS v2.1.5 release notes
===============================
Released: November 8, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Other changes
-------------
- Backport resize transformation math operation fix (GitLab #319).
- Update Pillow to 3.1.2
- https://pillow.readthedocs.io/en/3.4.x/releasenotes/3.1.1.html
- https://pillow.readthedocs.io/en/3.4.x/releasenotes/3.1.2.html
- Backport zoom 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.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #319 <https://gitlab.com/mayan-edms/mayan-edms/issues/319>`_ TransformationResize issue with very "long" image
* `GitLab issue #331 <https://gitlab.com/mayan-edms/mayan-edms/issues/331>`_ Trash List View: Items actions should be limited
* `GitLab issue #333 <https://gitlab.com/mayan-edms/mayan-edms/issues/333>`_ "Unable to run gpg - it may not be available."
* `GitLab issue #334 <https://gitlab.com/mayan-edms/mayan-edms/issues/334>`_ Perfomance improvment: prevent unnecessary image.resize in TransformationZoom
* `GitLab issue #335 <https://gitlab.com/mayan-edms/mayan-edms/issues/335>`_ Wrong HTML Content-Type in ACL->NEW
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

73
docs/releases/2.1.6.rst Normal file
View File

@@ -0,0 +1,73 @@
===============================
Mayan EDMS v2.1.6 release notes
===============================
Released: November 23, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Changes
-------------
- Fix variable name typo in the rotation transformation class.
- Update translations
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

102
docs/releases/2.1.7.rst Normal file
View File

@@ -0,0 +1,102 @@
===============================
Mayan EDMS v2.1.7 release notes
===============================
Released: February 2, 2017
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade. The focus
of this micro release was REST API improvement.
Changes
-------------
- Improved user management API endpoints (initial work by @lokeshmanmode):
- Improved user creation API endpoint to allow specifying the group
membership.
- Improved user editing API endpoint to allow specifying the group
membership.
- Improved permissions API endpoints (initial work by @lokeshmanmode):
- Add permission list API endpoint. This API endpoint lists all possible
permissions in the system.
- Improved role creation API endpoint to allow specifying the role's group
membership and role's permissions.
- Improved role editing API endpoint to allow specifying the role's group
membership and role's permissions.
- Improvements in the API tests of a few apps.
- Add content type list API view to the common app. Content type is required
when querying the events of an object, this view show list of content types
available.
- Add event type list api view. This API view shows all the possible events
that are registered in the system.
- Add event list API view. This view shows all the events that have taken
place in the system.
- Add object event list API view. This view show all the events for a specific
object (document, etc). The content type of the object whose events are being
requested must be specified. The list of available content types is provided
now by the common app API.
- The parser and validation fields of the metadata type model have been enable
in the metadata type API serializer.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

83
docs/releases/2.1.8.rst Normal file
View File

@@ -0,0 +1,83 @@
===============================
Mayan EDMS v2.1.8 release notes
===============================
Released: February 12, 2017
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade. The focus
of this micro release was REST API improvement.
Changes
-------------
- 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 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).
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #310 <https://gitlab.com/mayan-edms/mayan-edms/issues/310>`_ Metadata's lookup with chinese messages when new document
* `GitLab issue #348 <https://gitlab.com/mayan-edms/mayan-edms/issues/348>`_ REST API: Document version comments are not getting updated
* `GitLab issue #349 <https://gitlab.com/mayan-edms/mayan-edms/issues/349>`_ REST API: Document Label, Description are not able to update
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

74
docs/releases/2.1.9.rst Normal file
View File

@@ -0,0 +1,74 @@
===============================
Mayan EDMS v2.1.9 release notes
===============================
Released: February 13, 2017
What's new
==========
This is a micro release equal to the previews version from the user's point of view.
The version number was increase to workaround some issues with the Python
Package Index not allowing re-uploads.
Changes
-------------
- Update make file to Workaround long standing pypa wheel bug #99
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

258
docs/releases/2.2.rst Normal file
View File

@@ -0,0 +1,258 @@
=============================
Mayan EDMS v2.2 release notes
=============================
Released: April 26, 2017
What's new
==========
API changes
-----------
Refactor of the metadata API URLs to use the resource/sub resource paradigm.
Before:
/api/metadata/metadata_types/
/api/metadata/metadata_types/{pk}/
/api/metadata/document/metadata/{pk}/
/api/metadata/document/{pk}/metadata/
/api/metadata/document_type/{document_type_pk}/metadata_types/optional/
/api/metadata/document_type/{document_type_pk}/metadata_types/required/
After:
/api/metadata/metadata_types/
/api/metadata/metadata_types/{metadata_type_pk}/
/api/metadata/document_types/{document_type_pk}/metadata_types/
/api/metadata/document_types/{document_type_pk}/metadata_types/{metadata_type_pk}/
/api/metadata/documents/{document_pk}/metadata/
/api/metadata/documents/{document_pk}/metadata/{metadata_pk}/
Document API URLs updated to use the resource/sub resource paradigm.
Before:
/api/documents/document_version<pk>
/api/documents/document_pages<pk>
After:
/api/documents/<pk>/version/<version_pk>
/api/documents/<pk>/version/<version_pk>/pages/<page_pk>
Fields that reference a resource by URL now have the suffix '_url' to differentiate
then from fields include the resource.
Before:
'document': '/api/documents/10'
After:
'document_url': '/api/documents/10'
Removal of the document version revert API endpoint. To revert a document to a
previous version using the API, use the DELETE verb to delete the most recent
document version to be discarded.
Pages data is no longer included as part of the version data. Instead a link to
the document version's pages has been added by the name 'pages_url'. This
resolved to '/api/documents/<pk>/pages/<page_pk>/pages'.
- New API endpoints (initial work by @lokeshmanmode):
- API endpoint to change an user's groups subscription.
- API endpoint that list all available permissions types.
- API endpoint to view or change a role's groups.
- API endpoint to view or change a role's permissions.
Code cleanups
-------------
As with every release time was dedicated to improve the organization, size, and
readability of code. To this end the licenses of each app were moved to their
own module in every app, called licenses.py. As part of the code cleanup the
seldom used app called 'installation' which tracked runtime Python packages
installed alongside Mayan EDMS for debugging purposes has been removed. The
dependency on django-filetransfer has been removed by using
django-downloadviews which allows the creation of class based download views.
Performance
-----------
The document language list has been moved from the document model to the
document form. This change speeds up loading time, document properties views
and API documentation views. This version includes the new image caching
pipeline which stores transformed (rotated, scaled, etc) versions of the
document's images resulting in an overall display loading speed up. The fonts
used are now loaded from Mayan EDMS itself and not from the web. This change
also allow Mayan EDMS to work in a completely off-line manner.
Searching
---------
Support for searching pages as well as documents has been added. This
functionality has been exposed in the API too.
Security
--------
This release enables the password validation for the user password validation
support provided by Django. This change allows administrator to set password
policies limiting the minimum amount of characters needed for example. For
more information on how to configure the password validation feature refer
to Django's documentation at: https://docs.djangoproject.com/en/1.11/topics/auth/passwords/#enabling-password-validation
Sources
-------
To help test the interval sources (POP3 Email, IMAP Email, Watch folders) a
"Check now" button was added that allows users to trigger the source's
document fetching code instantly. Previously users had to wait until the next
scheduled interval to verify if their source's settings were correct.
Testing
-------
The testing process has been simplified by adding a new option '--mayan-apps'
to the test runner that automatically tests all Mayan EDMS apps that report to
include tests. The app flag that indicates when an app has test was changed
from 'test' to the more explicit 'has_test'. The packaging manifest now
includes test files, this means that tests can now be executed in production.
The total number of tests was raised to 359 and the total coverage increased
to 81%.
A custom test runner replacing the previous custom management command
called `runtests`. Testing for orphaned temporary files and orphaned file
handles is now optional and controlled by the COMMON_TEST_FILE_HANDLES and
COMMON_TEST_FILE_HANDLES settings.
User interface
--------------
To avoid warping on long full names or usernames, the user's full name or
username is no longer displayed in the main menu. Instead the word "Profile"
is displayed and the users's full name or username is displayed when the
"Profile" icon is clicked. Drop down menus support has been added and enabled
for several apps like documents, folders, and tags. This change make navigation
much faster and required less mouse travel.
Support was added for a dashboard widgets and several default widgets are
included and enabled.
A view to clone a document page transformation to other pages has been added.
A document page transformation navigation bug has been fixed. To aid visual
lookup, tags are now alphabetically ordered by label.
A new workflow view that lists documents currently executing a workflow and
documents by their specific current workflow state has been added to the
main menu.
Other changes
-------------
- Cabinets app is now integrated as a core app.
- Now that the Cabinets app is included, the Folders app has been disabled
by default. To enable the Folders apps add the following line to your
settings/local.py file::
INSTALLED_APPS += ('folders',)
- Fix height calculation in resize transformation.
- Improve upgrade instructions.
- Update project to work with Django 1.10.
- Add support for attaching multiple tags to single or multiple documents.
- Refactor the workflow for removing tags from single and multiple documents.
- Move new version creation blocking from the documents app to the checkouts app.
- DEBUG now defaults to False.
- Production settings don't override the DEBUG variable. DEBUG can be set to True
on production install to debug errors live.
- Refactor add document to folder view to allow adding a documents to multiple folders at the same time.
- Refactor the remove document from folder view to allow removing documents from multiple folders at the same time.
- Refactor the document mailing views and add support for sending multiple documents via email at the same time.
- Refactor the document metadata views and add support for adding multiple metadata types to a document at the same time.
- Addition of a new OCR backend using PyOCR. This backend tries first to do OCR
using libtesseract. If libtesseract is not available the backend defaults to
calling the Tesseract executable.
- Make the lock_manager.backends.file_lock.FileLock the new default locking backend.
- New transformations added:
- Rotate 90 degrees
- Rotate 180 degrees
- Rotate 270 degrees
- Mirror (horizontal)
- Flip (vertical)
- Gaussian blur
- Unsharp masking
- Add tool to launch all workflows. GitLab issue #355
Removals
--------
- Removal of the OCR_TESSERACT_PATH configuration setting.
- Removal of the Tesseract OCR backend. Replaced with a PyOCR backend.
- Remove usage of pytesseract Python library.
- Installation app.
- Recent searches feature.
Upgrading from a previous version
---------------------------------
If installed via PIP
~~~~~~~~~~~~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
If installed using Git
~~~~~~~~~~~~~~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Manually upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Remove deprecated requirements::
$ pip uninstall -y -r removals.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #185 <https://gitlab.com/mayan-edms/mayan-edms/issues/185>`_ Add support for nested menus
* `GitLab issue #285 <https://gitlab.com/mayan-edms/mayan-edms/issues/285>`_ Dashboard widgets
* `GitLab issue #294 <https://gitlab.com/mayan-edms/mayan-edms/issues/294>`_ Move new version creation blocking from the documents app to the checkouts app
* `GitLab issue #301 <https://gitlab.com/mayan-edms/mayan-edms/issues/301>`_ Remove the installation app
* `GitLab issue #303 <https://gitlab.com/mayan-edms/mayan-edms/issues/303>`_ Update urlpatterns in urls.py files to be a list of django.conf.urls.url() instances instead.
* `GitLab issue #304 <https://gitlab.com/mayan-edms/mayan-edms/issues/304>`_ Remove string view arguments of url() in urls.py files.
* `GitLab issue #307 <https://gitlab.com/mayan-edms/mayan-edms/issues/307>`_ Enter multiple Tags at once
* `GitLab issue #310 <https://gitlab.com/mayan-edms/mayan-edms/issues/310>`_ Metadata's lookup with chinese messages when new document
* `GitLab issue #311 <https://gitlab.com/mayan-edms/mayan-edms/issues/311>`_ acl page return ContentType:Document
* `GitLab issue #319 <https://gitlab.com/mayan-edms/mayan-edms/issues/319>`_ TransformationResize issue with very "long" image
* `GitLab issue #328 <https://gitlab.com/mayan-edms/mayan-edms/issues/328>`_ Upgrade Warning/Error during performupgrade (v2.1.3 to v2.1.4)
* `GitLab issue #342 <https://gitlab.com/mayan-edms/mayan-edms/issues/342>`_ Tags should be of unordered / unsorted data type
* `GitLab issue #343 <https://gitlab.com/mayan-edms/mayan-edms/issues/343>`_ Bootstrap's dependency on fonts.googleapis.com causes Mayan EDMS web interface load slowly if public internet is unreachable
* `GitLab issue #355 <https://gitlab.com/mayan-edms/mayan-edms/issues/355>`_ Workflow changes only on new added documents
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

101
docs/releases/2.3.rst Normal file
View File

@@ -0,0 +1,101 @@
=============================
Mayan EDMS v2.3 release notes
=============================
Released: June 08, 2017
What's new
==========
This is a bug-fix and minor feature release and all users are encouraged to
upgrade.
Changes
-------------
- Index node expression template field changed from a 128 character field to an
unlimited size text field to allow for complex indexing expressions.
- When updating the metadata of a document, any input in the value form field
will select the adjacent checkbox.
- Support for passing the FUSE option `allow-other` and `allow-root` was added
to the index mirroring management command.
- Added support for checking for the latest released version of Mayan from the
About menu.
- Added support for rebuilding specific indexes instead of only being able to
rebuild all index. GitLab issue #372.
- Rewrite document indexing code to be faster and use less locking. Thanks to
Macrobb Simpson (@Macrobb) for the initial implementation.
- Use a predefined file path for the file lock.
- Catch documents with not document version when displaying their thumbnails.
- Add custom script_prefix aware resolve function and use it for the
document page navigation views. Fixes an issue when Mayan is installed
as a sub URL app. Thanks to Gustavo Teixeira(@gsteixei) for the issue and
investigation.
- Support was added to update document indexes after workflow state changes.
- An helper was added to access a documents workflow by name. To this end
a new field was added to the Workflow class called `Internal name`.
This new field makes it much easier to get a document's workflow instance.
If for example a document has a workflow called `Publish` with the internal
name `publish_workflow`, it will be accessible in the indexing template as
{{ document.workflow.publish_workflow }}. The latest state of the workflow
can be accessed using {{ document.workflow.publish_workflow.get_current_state }}.
- Added a new API endpoint to display a list of all the available search models.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #371 <https://gitlab.com/mayan-edms/mayan-edms/issues/371>`_ Auto select checkbox when updating metadata
* `GitLab issue #372 <https://gitlab.com/mayan-edms/mayan-edms/issues/372>`_ (Feature request) Allow 'rebuild index' to rebuild only a selected index
* `GitLab issue #383 <https://gitlab.com/mayan-edms/mayan-edms/issues/383>`_ Page not found when deployed to sub-uri
* `GitLab issue #385 <https://gitlab.com/mayan-edms/mayan-edms/issues/385>`_ mountindex: how to specify FUSE mount option allow_other?
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

156
docs/releases/2.4.rst Normal file
View File

@@ -0,0 +1,156 @@
=============================
Mayan EDMS v2.4 release notes
=============================
Released: June 23, 2017
What's new
==========
SANE document source
--------------------
A new document source has been added with the ability to retrieve documents from
scanners directly. This new document source uses the SANE (Scanner Access Now Easy)
(https://en.wikipedia.org/wiki/Scanner_Access_Now_Easy) API client to communicate
with USB and network scanners. SANE must be properly installed for this document
source to work. Your scanner must also be supported by the SANE API
(http://www.sane-project.org/sane-supported-devices.html).
Automatic PDF orientation detection
-----------------------------------
The orientation of PDF documents is now detected at creation and a rotation
transformation applied to each of the document's pages to correct the orientation.
Environment variables
---------------------
Configuration options can now be updated from environment variables. To update
a configuration option, prepend the string `MAYAN_` to the name of the configuration
option. For example, to increase the number of documents displayed per search results
page (from a default of 40) to 50 documents, set the environment variable
MAYAN_COMMON_PAGINATE_BY to 50 with::
$ export MAYAN_COMMON_PAGINATE_BY=50
and restart Mayan EDMS. A list of the configuration options can be found in the
`Setup` menu, under `Settings`.
Math filters
------------
The django-mathfilters (https://pypi.python.org/pypi/django-mathfilters) package
has been included to provide proper math filters in the indexes. An example of
this is indexing documents by quarter::
{% load mathfilters %}{{ document.metadata_value_of.date|date:"Y"}}Q{{ document.metadata_value_of.date|date:"m"|sub:1|intdiv:3|add:1 }}
Expand searchable objects
-------------------------
Previously, only documents and later on document pages were searchable. This release
add support for searching for tags, metadata types and cabinets. This search support
is available via the dynamic search API.
Management command to reset locks
---------------------------------
During testing or development error occur and locks can remain behind, blocking
execution of a process or task until they expire. To help resolve this a
management command has been added called `purgelocks` that will delete all locks
in the system.
Index by workflow state
-----------------------
Support was added to update the a document indexes from workflow state changes.
To make workflow referencing easier from the index template, a new fields was
added to the workflow model called internal_name. For example, for a workflow
called `Publishing Workflow` with an internal name of `publishing_workflow`,
use the following string to reference the current state in an index::
{{ document.workflow.publishing_workflow.get_current_state }}
Task manager
------------
A new app to monitor the distribution and consumption of background task has been
added. This app is call `Task manager` and can be found in the `Tools` menu.
Use this new tool to diagnose your background task workers or to determine when
to scale up the number of workers.
Other Changes
-------------
- Improve render of documents with no pages.
- Fix repeated permission list API URL. GitLab issue #389.
- Fix role creation API endpoint not returning id. GitLab issue #390.
- Fix index rebuilding for multi value first levels. GitLab issue #391.
- Add hardware requirements. GitHub issue #247.
- Fix URL query string encoding for the document page navigation views. GitLab
issue #383.
- Truncate views titles via the APPEARANCE_MAXIMUM_TITLE_LENGTH setting.
GitLab issue #217.
- Add link to show a document's OCR errors. GitLab issue #291.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitHub issue #247 <https://github.com/mayan-edms/mayan-edms/issues/247>`_ Hardware requirements
* `GitLab issue #132 <https://gitlab.com/mayan-edms/mayan-edms/issues/132>`_ Task queue viewer
* `GitLab issue #217 <https://gitlab.com/mayan-edms/mayan-edms/issues/217>`_ [Documents] Truncate document label for avoid double lines in mobile or reduce font
* `GitLab issue #221 <https://gitlab.com/mayan-edms/mayan-edms/issues/221>`_ Add flush lock management command
* `GitLab issue #291 <https://gitlab.com/mayan-edms/mayan-edms/issues/291>`_ Link to OCR error log from document OCR tab
* `GitLab issue #344 <https://gitlab.com/mayan-edms/mayan-edms/issues/344>`_ Add support for searching folders, tags, metadata.
* `GitLab issue #383 <https://gitlab.com/mayan-edms/mayan-edms/issues/383>`_ Page not found when deployed to sub-uri
* `GitLab issue #387 <https://gitlab.com/mayan-edms/mayan-edms/issues/387>`_ Document Scanning not Functioning on rotated landscape PDF's
* `GitLab issue #389 <https://gitlab.com/mayan-edms/mayan-edms/issues/389>`_ How can we map permissions with a particular role using REST API?
* `GitLab issue #390 <https://gitlab.com/mayan-edms/mayan-edms/issues/390>`_ Id is not getting in response
* `GitLab issue #391 <https://gitlab.com/mayan-edms/mayan-edms/issues/391>`_ "Rebuild indexes" does not work in Mayan EDMS 2.3
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

71
docs/releases/2.5.1.rst Normal file
View File

@@ -0,0 +1,71 @@
===============================
Mayan EDMS v2.5.1 release notes
===============================
Released: July 07, 2017
What's new
==========
This version is identical to version 2.5. It was released to workaround some
issues with the recent migration of PyPI (https://mail.python.org/pipermail/distutils-sig/2017-June/030766.html)
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
=======
* `GitLab issue #378 <https://gitlab.com/mayan-edms/mayan-edms/issues/378>`_ Add metadata widget changes from @Macrobb
* `GitLab issue #379 <https://gitlab.com/mayan-edms/mayan-edms/issues/379>`_ Add new document version list view permission.
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

74
docs/releases/2.5.2.rst Normal file
View File

@@ -0,0 +1,74 @@
===============================
Mayan EDMS v2.5.2 release notes
===============================
Released: July 08, 2017
What's new
==========
Improve duplicate document scan
-------------------------------
Previously the way document creation code was enclosed in a single database
transactions. This cause the duplicate scan at upload code to received a
document reference to uncommitted database data. The single database
transaction was split into smaller units to make sure the duplicate scan
recevies saved and committed data.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

243
docs/releases/2.5.rst Normal file
View File

@@ -0,0 +1,243 @@
=============================
Mayan EDMS v2.5 release notes
=============================
Released: July 07, 2017
What's new
==========
OCR text download
-----------------
A link and view were added to download the entire OCR text of a document as a
separate file. The link can be found under the "Actions" dropdown when the
"OCR" tab of a document is selected.
SANE document source
--------------------
A validation error was being raised when the resolution field of the SANE
document source was left blank. This issue has been fixed and works as expected
now.
Mailing profiles
----------------
Previously, the way documents were emailed was controlled by configuration
settings that only system administrator could change as the OS level. It is
now possible to create mailing profiles from within the user interface. This
allows for Mayan administrators to add mailing profiles without the
intervention system administrators. It also provides the opportunity to create
multiple mailing profiles. This is useful for sending documents via different
email providers depending on things like priority of delivery, or email size
limitations. For multi-tenant environments, this also means that each tenant
can now send documents via email with their own respective email accounts.
For system administrators, this means there is no longer a need to rely on a
single email profile for the entirety of all the tenants in a deployment,
which could be taxing email quota limits or triggering spam filters. For
more information on the multi-tenant plugin visit the Mayan app store at:
http://www.mayan-edms.com/store/
New transformation
------------------
A lineart transformation was added to reduce the amount of colors in a
document's image to just 2. This is useful to increase the OCR accuracy on
some kind of documents whose color or layout may confuse the OCR engine
and lower the accuracy of the text recognition.
UI reorganization
-----------------
The main menu was been reorganization for clarity of function. The "About" menu
has been renamed to "System" to signify that the items in this menu relate
to system configuration topics. The "Tools" and "Setup" sub-menus, were moved
from the "Profile" menu to the new "System" menu. The "Profile" menu has been
renamed to "User". Additionally, the "User" menu is now part of the main menu
instead of floating right on the layout. This change along with others
improve the usability on small devices like tablets and smartphones.
PDF compatibility updates
-------------------------
Support for non-compliant, "broken", and PDFs encrypted with no passwords has
been added. Previously no effort was made to process the images for these
files. The code for detecting the number of pages in a PDF has also been
improved to retry several methods when failing on non-compliant PDF documents.
Office documents compatibility updates
--------------------------------------
Improvements to the Libre Office conversion code were added, including a
workaround for Libre Office bug #37531 (https://bugs.documentfoundation.org/show_bug.cgi?id=37531)
which sometimes manifested when uploading multiple office documents
sequentially.
Metadata setup UI improvements
------------------------------
A new widget to define the document type to metadata type relationship has been
added. The new widget provides a method to switch between required metadata
and optional metadata for a document type. This new method is not only faster
but does not force users to remove a metadata type before making the switch
and thus avoid deletion of existing metadata entries. A new view was also added
to change the document type to metadata type relation not only the document
type view but also from the metadata type view eliminating travel between these
two views when creating new metadata types and assigning them to document
types.
Duplicated document scanning
----------------------------
Support to scan and list duplicated document scanning was added in the form of
a new document list link under the "Documents" main menu. Every time a document
is uploaded, a document scan will be triggered to determine if the new document
is a duplicate of an existing document. Duplicate documents will be listed
in a new "Duplicated documents" link in the main menu. A full document list
scan can also be triggered by using the new "Duplicated document scan" button
in the tools menu. Finally, a new tab in the document view has been added
called "Duplicates" that will list all duplicates of the currently
selected document when in the document's view. Related to this feature is the
addition of being able to search documents by their checksum. This was done by
indexing the checksum database field and by adding the checksum as a search
field in the advanced document search view and via the API.
Login session control
---------------------
Support was added to control the length of time a log in session lasts. First
from the user interface side of things a "Remember me" checkbox was added to
the log in form that will cause the session to persist after the browser is
closed. If this checkbox is left blank the session will be destroyed when the
browser closes and the user will need to log in again when accessing any of the
URLs. The second part of this feature is for administrators. The configuration
setting AUTHENTICATION_MAXIMUM_SESSION_LENGTH was added to control the maximum
time a logged in session will persist when users click the "Remember me"
checkbox. The default of this setting is 30 days.
Document image cache disabling
------------------------------
It is now possible to disable the document page image caching. The document
image cache works on two level and hence two setting options were added.
The first is the DOCUMENTS_DISABLE_BASE_IMAGE_CACHE option which disables the
first layer of caching, the generation of a master image file for each document
page. This means that subsequent request for a page's image will trigger the
conversion of the document from its original uploaded file. The second option,
DOCUMENTS_DISABLE_TRANSFORMED_IMAGE_CACHE, disables just the caching of the
transformed (rotated, resized, zoomed) images of document pages. The settings
can be used together or separately depending on how much disk space saving is
desired. These settings give control over the trade-off between disk space
savings and higher CPU utilization. These settings are ideal for installations
with a lot of documents, that want to conserve disk space, and have CPU capacity
to spare. Multi-tenant installations can also benefit from these new settings.
Document filter by workflow state
---------------------------------
A few versions over, a main menu item was added to list documents by their
workflow and/or their current workflow state. Support for filtering by the
initial workflow state has been added to this feature.
Support for restoring forgotten password
----------------------------------------
Views and templates were added to enable the typical "Forgotten
password" worflow using a signed token via email.
Other Changes
-------------
- Add missing OCR migration.
- Improve error output of the performupgrade command to debug upgrade errors
that could stop an upgrade (missing document files, etc).
- Enable the django-mathfilters app added in version 2.4.
- Do a complete pull and synchronization of the translations to fix missing
translations for Polish. Thanks to Wojtek Warczakowski for the report.
- Allow null for the SANE source resolution field. Even though the field was
marked as allowing blank values it was failing because it is a number field
and number fields need to allow explicit null values when left blank.
- Rename the mayan_task_manager app to task_manager.
- Make the task manager translatable.
- Add Turkish to the list of processes languages.
- Use Toastr libary for screen messages.
- Reduce verbosity of some debug messages in the MayanAppConfig, settings and,
mailing discovery.
- Make sure lookup selection widgets also trigger the metadata update
checkbox on change.
- Usability improvements on small displays.
- Removal of the CONVERTER_LIBREOFFICE_PATH and CONVERTER_PDFTOPPM_PATH
settings. These setting have been consolidated into
CONVERTER_GRAPHICS_BACKEND_CONFIG.
- Improve the documentation of the document creation API endpoint.
GitHub issue #255. Thanks to @lcerliani opening the issue.
- Libre Office conversion improvements. 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
- The trashed document deletion action is now a background task. This
feature results is much faster trashed document deletion and trash
can emptying.
- Remove animated spinners to lower browser memory usage and increase
responsiveness.
- Render a document page placeholder 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.
- Improve usability and appearance on medium and small devices like
tablets and smartphones.
- Do hard word break on form titles to avoid horizontal scroll on
small displays.
- Python3 compatilibty improvements by removing all explicit conversion
using the unicode() function.
- Unicode handling improvements.
- Update required versions of Pillow and django-suit.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitHub issue #255 <https://github.com/mayan-edms/mayan-edms/issues/255>`_ Uploading a local file via api
* `GitLab issue #215 <https://gitlab.com/mayan-edms/mayan-edms/issues/215>`_ Download text contents
* `GitLab issue #286 <https://gitlab.com/mayan-edms/mayan-edms/issues/286>`_ User configurable mailer
* `GitLab issue #337 <https://gitlab.com/mayan-edms/mayan-edms/issues/337>`_ Better way to switch Optional to Required Metadata
* `GitLab issue #373 <https://gitlab.com/mayan-edms/mayan-edms/issues/373>`_ (feature request) Allow selecting document types for metadata
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

69
docs/releases/2.6.1.rst Normal file
View File

@@ -0,0 +1,69 @@
=============================
Mayan EDMS v2.6 release notes
=============================
Released: July 18, 2017
What's new
==========
Other Changes
-------------
- Fix issue when editing or removing metadata from multiple documents.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

78
docs/releases/2.6.2.rst Normal file
View File

@@ -0,0 +1,78 @@
===============================
Mayan EDMS v2.6.2 release notes
===============================
Released: July 22, 2017
What's new
==========
This is a bug fix release and users are encouraged to upgrade.
Other Changes
-------------
- Fix deprecation warning to prepare upgrade to Django 1.11 and 2.0.
- Fix zoom feature in document page view.
- Add support to run tests against a MySQL or Postgres 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.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

87
docs/releases/2.6.3.rst Normal file
View File

@@ -0,0 +1,87 @@
===============================
Mayan EDMS v2.6.3 release notes
===============================
Released: July 25, 2017
What's new
==========
This is a bug fix release and users are encouraged to upgrade.
Changes
-------
- 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.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #149 <https://gitlab.com/mayan-edms/mayan-edms/issues/149>`_ Autogenerate setup.py
* `GitLab issue #200 <https://gitlab.com/mayan-edms/mayan-edms/issues/200>`_ dependencies in setup.py not up to date with requirements
* `GitLab issue #402 <https://gitlab.com/mayan-edms/mayan-edms/issues/402>`_ Make permissions and roles searchable.
* `GitLab issue #413 <https://gitlab.com/mayan-edms/mayan-edms/issues/413>`_ source.models.Source.handle_upload does not support tag_ids but upload_document does
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

71
docs/releases/2.6.4.rst Normal file
View File

@@ -0,0 +1,71 @@
===============================
Mayan EDMS v2.6.4 release notes
===============================
Released: July 25, 2017
What's new
==========
This is a bug fix release and users are encouraged to upgrade.
Changes
-------
- Add missing replacements of reverse to resolve_url.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

143
docs/releases/2.6.rst Normal file
View File

@@ -0,0 +1,143 @@
=============================
Mayan EDMS v2.6 release notes
=============================
Released: July 18, 2017
What's new
==========
Sending documents to multiple recipients
----------------------------------------
Support was added to send a document as an attachment, or a link to a document
to multiple email recipients. To use this feature enter a comman separated
list of email recipients in the "Email address" field.
Visual changes
--------------
Several patches to change and improve the user interface landed on this release.
The first, by Macrobb Simpson @Macrobb, makes the content area width, match
window area. This means that on almost all device screen sizes the content area
will be almost fullscreen. Another path from Macrobb Simpson, improves the
visual appearance of the document metadata widget. The other big change is the
new list item view template which lists documents in an column, row layout.
With this layout document thumbnails are more clearly visible, much more
information can be displayed for each document, and works much better on small
screen devices like tablets and smartphone than a responsive table which
requires two axis navigation on small screens. The height of the dashboard
items is now adjusted via javascript to ensure correct layout regardless of
screen size of message length when translated.
Search
------
This release adds users and groups to the list of objects that are searchable
via the API. The current list of searchable objects is: metadata types,
users, groups, tags, documents, document pages, and cabinets.
Logging
-------
The logging configuration was improved to create a log for critical errors
when running on production mode. The default location for this log file is:
/mayan/error.log. This path can be changed with the COMMON_PRODUCTION_ERROR_LOG_PATH
setting. This log file will capture application errors and request exceptions.
Cabinets
--------
The access control for cabinets has been fixed in some regards and improved in
others. The permission to add and remove documents can now be applied to
individual root cabinets instead of globally for a role. Also, the permission
to add or remove documents from cabinets must also now be granted to a document
or document type. In other words, to add a document to a cabinet, the user's
role must have the permission to add documents to cabinet, for the cabinet
to recieve the document and for the document about to be added.
New permission
--------------
The patch to add a permission to view a document's version list was backported
from the development branch to make it accesible now. Like cabinets, the tag
access control now works on two levels. Now to attach a tag to a document,
the permission to attach tags must be granted to the tag to attach and to the
document that will receive the tag.
ACL changes
-----------
The document type permissions namespace was renamed from "Document setup" to
"Document types" for clarity. Along with that change, support was added
for granting the document type edit, document type delete, and document type view
permissions to individual document type instances instead of just globally.
Testing
-------
The documents app view tests now test for view access and not just permission.
Testing against access is more robust and also tests for permissions
implicitly.
Other Changes
-------------
- Fix HTML mark up in window title. GitLab #397.
- Sort setting by namespace label and by global name second.
- Sort indexes by label.
- Switch the order of the DEFAULT_AUTHENTICATION_CLASSES of DRF. GitLab #400.
- Improve code to unbind menu entries.
- Increase the size of the mailing profile label field to 128 characters.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #378 <https://gitlab.com/mayan-edms/mayan-edms/issues/378>`_ Add metadata widget changes from @Macrobb
* `GitLab issue #396 <https://gitlab.com/mayan-edms/mayan-edms/issues/396>`_ Add support for emailing documents to a recipient list.
* `GitLab issue #397 <https://gitlab.com/mayan-edms/mayan-edms/issues/397>`_ Title on Index Page is Broken
* `GitLab issue #400 <https://gitlab.com/mayan-edms/mayan-edms/issues/400>`_ Django REST framework's BasicAuthentication doesn't work with Oauth2_proxy
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

97
docs/releases/2.7.1.rst Normal file
View File

@@ -0,0 +1,97 @@
===============================
Mayan EDMS v2.7.1 release notes
===============================
Released: September 3, 2017
What's new
==========
Unicode metadata when uploading a document
------------------------------------------
An issue with Django's unquote_plus caused documents being uploaded with an
unicode, no English character in an initial metadata value field to fail.
The unquote_plus usage was remove in favor of a dedicate URL parsing library
called furl. GitLab issue #423. Thanks to Gustavo Teixeira (@gsteixei) for the
find.
Silent errors during initialization
-----------------------------------
When Python raises an ImportError exception, it is not possible to determine
the cause of the error. The local.py import code was updated to interpret the
text of the ImportError exception and ignore it only if the local.py was
missing, which is the case during the initialization commands execute after
the initial installation. Any error in the local.py file will now cause Mayan
to exit. Thanks to MacRobb Simpson for the report and solution.
String usage in the local.py file
---------------------------------
Python 2.7 uses byte strings by default. Byte strings cannot be used in
conjunction with unicode strings. A missing import was causing strings in
the local.py file to be interpreted as byte string while the rest of Mayan
uses unicode strings. Using non English special characters in a string located
in the local.py file would have cause a Unicode errors. For new installations
from Mayan version 2.7.1 onwards, the line
`from __future__ import absolute_imports, unicode_literals` is included when
generating the local.py for the first time. For existing installations,
adding this line at the top is all that's needed. GitLab issue #424. Thanks to
Gustavo Teixeira (@gsteixei) for the find and researching the cause.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #423 <https://gitlab.com/mayan-edms/mayan-edms/issues/423>`_ Metadata can't handle non ascii chars on upload
* `GitLab issue #424 <https://gitlab.com/mayan-edms/mayan-edms/issues/424>`_ DjangoUnicodeDecodeError on document proprieties due document language field
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

101
docs/releases/2.7.2.rst Normal file
View File

@@ -0,0 +1,101 @@
===============================
Mayan EDMS v2.7.2 release notes
===============================
Released: September 06, 2017
What's new
==========
Fixes to the new mailer creation view
-------------------------------------
Some last minute changes to the dynamic form creation code added to support
workflow state actions broke the creation of new mailer profiles. This is fixed
now and a test was added to avoid future regressions. GitLab issue #431.
Thanks to Robert Schöftner(@robert.schoeftner) for the report and the solution.
Event consolidation
-------------------
Several events were created to audit the creation of new documents. These events
caused some confusion and were improved. When creating a new document the two
'document properties edited' events were removed as this is an internal process
and not an user event. Another change is the preservation of the user ID that
submits the file to create the document. Now instead of 'System' the actual
username of the user that uploaded the document will appear in the events log.
GitLab issue #433. Thanks to Jesaja Everling(@jeverling) for the report.
Cabinet list sorting
--------------------
The root cabinet list is now displayed alphabetically sorted. The list of
cabinets to which a document belongs to is now displayed sorted too. Thanks
to Thomas Plotkowiak for the request.
Visual cue for the document cabinet list
----------------------------------------
In the document list item view, a simple visual cue in the form of italized
text was added to the document cabinet list. GitLab issue #435. Thanks to LeVon
Smoker for the request.
Easier testing of production deployments
----------------------------------------
The testing library mock is now installed by default, making it easier to run
the entire test suit on deployed instances.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #431 <https://gitlab.com/mayan-edms/mayan-edms/issues/431>`_ can't create new mailer
* `GitLab issue #433 <https://gitlab.com/mayan-edms/mayan-edms/issues/433>`_ Events are not created correctly for document upload
* `GitLab issue #435 <https://gitlab.com/mayan-edms/mayan-edms/issues/435>`_ Add visual cue to differentiate the Cabinet list on a document's preview card.
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

279
docs/releases/2.7.rst Normal file
View File

@@ -0,0 +1,279 @@
=============================
Mayan EDMS v2.7 release notes
=============================
Released: August 30, 2017
What's new
==========
Beta Python 3 support
---------------------
Preliminary support for Python 3 has landed in this version. More testing
is still needed but for the most part seems to be usable. This is just
initial support and not meant for production. Please submit any issue with
Python 3 to help improve the support for it.
PDF introspection improvements
------------------------------
Some PDF files encode their page rotation information using indirect values
instead of actually storing the rotation value as an integer. Support these
types of PDF files was added.
3rd party apps
--------------
Support was added to allow 3rd party app adding data columns to existing
models to specify the order in which such new columns will appear. Support
was also added to allow any app to remove existing main menus. App can now in
addition to adding their own dashboard widget, remove existing widgets. As
part of the dashboard updates support was also added to allow app developers to
create multiple dashboards.
Converter customization improvements
------------------------------------
For users wanting more control over the document image conversion process,
support was added to change the internal format used for image conversion.
By default JPG used but via the `pdftoppm_format` and `pillow_format` entries
of the CONVERTER_GRAPHICS_BACKEND_CONFIG setting option any other format
support by Python's Pillow can use used. Support was also added to change the
DPI value used by the conversion process of PDF files to images. The default
value for this coversion was set to 300 DPI. The entry used to specify this
value is `pdftoppm_dpi`.
Workflow refactor
-----------------
This version includes a preview release of the workflow refactor that includes
three new features: transition triggers, state actions, and graphical previews.
The transition triggers allow setting document events as triggers to perform
a workflow transition automatically. State actions allow performing system
actions when a workflow enters or leaves a specify state. For this release
5 actions were included: attaching and removing tags to a document, granting
or revoking access via the ACL, and performing a HTTP POST request. As the
feature matures more actions will be added. These two features make the
workflow app the automation center for Mayan. This feature allow users to program
behaviors to perform, even provoke changes in 3rd party software using the HTTP
POST. This feature works very much like services like IFTTT [ifttt.com]
(If This Then That) or conditionals in programming languages. The last
improvement added to the workflow app is the ability to render a workflow
in a graphical manner, useful for visually understanding, explaining and
debugging workflows.
OCR refactor
------------
As part of the plan to add OCR zone and barcode support the first set of
changes was included in this version. These initial changes bring the OCR
app up to standard with the rest of the system and splits the OCR app into two
new apps: the OCR app and the Document parsing app. The document parsing app
will read text content from documents that provide them and display the result
under the "Content" document tab. The OCR app will also launch for each
document even if they provide text content to recognize any text on images.
This separation gives users the two choices of text information one extracted
from the document (not always available or of quality) and the other recognized
by OCR.
Document parsing
----------------
Historically Mayan has had two methods to extract text from PDF files. First
it will try the program called `pdftotext` and failing that will try the
PDFMiner Python library. The official PDFMiner library is unmaintained and
doesn't support Python 3 will be a requirement for Django 2.0, which will
force Mayan to move to Python 3 exclusively in the near future. For this
reason the PDFMiner parser has been removed. A new library called PyPDF2 was
added in a past version to improve the PDF page count and rotation detection,
initial experience with this library has been positive and since it supports
text extraction might also replace PDFMiner as the secondary PDF text
extraction strategy.
Document version UI
-------------------
The list of versions of a document was updated to use the new item list
view templated added in version 2.6 for document lists. Along with this update
preview support was added for individual document version. It is also possible
to explore and navigate different versions of a document much easier and with
more information that previously available, being able to visually see for
example the difference in a document's versions.
Events system
-------------
The events system has been updated to provide more information and improve
navigation. The `Actor` field will now display `System` when an event was
performed by the system instead of displaying the document name. The
column `Action object` was added to help identify via which object the
event was performed. This is significant when performing actions on objects
which are children of another like document versions. The number and types
of events that are monitored has been increased all of which can also be used
to trigger a workflow transition. The current list:
- Document added to cabinet
- Document removed from cabinet
- Document automatically checked in
- Document checked in
- Document checked out
- Document forcefully checked in
- Document comment created
- Document comment deleted
- Document created
- Document downloaded
- Document properties edited
- New version uploaded
- Document type changed
- Document version reverted
- Document viewed
- Document version OCR finished
- Document version submitted for OCR
- Document version parsing finished
- Document version submitted for parsing
- Tag attached to document
- Tag removed from document
Metadata on document type change
--------------------------------
Changing document types will no longer delete all metadata from the document.
Any existing metadata whose type matches the metadata in the new type will be
preserved.
Permission rebalance
--------------------
In order to attach or remove a tag to a document, the tag view permissions
was needed. This has been update to required the tag attach and remove
permissions respectively.
Other Changes
-------------
- 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
- Update the index information colums to show the
total number of documents and nodes contained in a level.
- 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 sub options: pdftoppm_dpi: 300, pdftoppm_format: jpeg, pillow_format: jpeg
GitHub issues #256 #257 GitLab issue #416.
- Add support for workflow triggers.
- Add support for workflow actions. Includes actions to attach and remove tags,
grant and remove access and perform an HTTP POST request.
- Add support for rendering workflows. Required graphviz binary.
- 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 extenstion when downloading a document
version. GitLab #415.
- Split OCR app into OCR and parsing.
- Use the literal 'System' instead of the target name when
the action user in unknown.
- When changing document types, don't delete the old metadata that is
also found in the new document type. GitLab issue #421.
- Change the permission needed to attach and remove tags.
- Reduces debug verbosity during tests.
- Remove the NoMimetype match exception. Not needed now that this is
a separate app from the OCR app.
- Make error messages persistent.
- Add 'Action object' column to the event list. Display the
object or target type (document, tag, etc).
- Rebalance tag permissions. Change the required permission to attach
and remove a tag from view to attach and remove respectively.
- Start of error log consolidation sub project.
- 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.
- Navigation improvements in the workflow app.
- Rename index nodes to index levels.
- Avoid Maximum recursion depth exceeded exception on index document
list view.
Removals
--------
- Folders app.
- The view to submit all document for OCR. The view to submit documents by type
substitutes this once.
- The PDFMiner parser.
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitHub issue #250 <https://github.com/mayan-edms/mayan-edms/issues/250>`_ migrate fails on documents.0025_auto_20150718_0742
* `GitHub issue #251 <https://github.com/mayan-edms/mayan-edms/issues/251>`_ migrate fails on documents.0032_auto_20160315_0537
* `GitHub issue #256 <https://github.com/mayan-edms/mayan-edms/issues/256>`_ Make it possible to adjust values in apps\converter\literals.py from Settings
* `GitHub issue #257 <https://github.com/mayan-edms/mayan-edms/issues/257>`_ Use the DEFAULT_FILE_FORMAT from literals.py in python.py
* `GitHub issue #261 <https://github.com/mayan-edms/mayan-edms/issues/261>`_ fix_orientation method causes document add to crash
* `GitHub issue #263 <https://github.com/mayan-edms/mayan-edms/issues/263>`_ Typo in mayan/apps/ocr/migrations/0004_documenttypesettings.py
* `GitLab issue #172 <https://gitlab.com/mayan-edms/mayan-edms/issues/172>`_ Metadata default value ignored when changing document type
* `GitLab issue #329 <https://gitlab.com/mayan-edms/mayan-edms/issues/329>`_ Move code to Python 3
* `GitLab issue #415 <https://gitlab.com/mayan-edms/mayan-edms/issues/415>`_ Wrong filename when downloading document version
* `GitLab issue #416 <https://gitlab.com/mayan-edms/mayan-edms/issues/416>`_ DPI value for OCR not taken from document metadata
* `GitLab issue #417 <https://gitlab.com/mayan-edms/mayan-edms/issues/417>`_ Display document cabinets in documents list
* `GitLab issue #421 <https://gitlab.com/mayan-edms/mayan-edms/issues/421>`_ Metadata lost when changing document type
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

79
docs/releases/3.0.rst Normal file
View File

@@ -0,0 +1,79 @@
=============================
Mayan EDMS v3.0 release notes
=============================
Released: XX XX, 2017
What's new
==========
Other changes
-------------
- Resource based API endpoints
- Update required versions of Pillow to 4.1.1, django-compressor to 2.1.1, django-suit to 0.2.25, pyocr to 0.4.7, sh to 1.12.13
- Add notifications support.
Removals
--------
- None
Upgrading from a previous version
---------------------------------
If installed via PIP
~~~~~~~~~~~~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
If installed using Git
~~~~~~~~~~~~~~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Manually upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Remove deprecated requirements::
$ pip uninstall -y -r removals.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #366 <https://gitlab.com/mayan-edms/mayan-edms/issues/366>`_ Proofread documentation
* `GitLab issue #379 <https://gitlab.com/mayan-edms/mayan-edms/issues/379>`_ Add new document version list view permission.
* `GitLab issue #379 <https://gitlab.com/mayan-edms/mayan-edms/issues/379>`_ Add new document version list view permission.
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -22,6 +22,29 @@ versions of the documentation contain the release notes for any later releases.
.. toctree::
:maxdepth: 1
2.7.2
2.7.1
2.7
2.6.4
2.6.3
2.6.2
2.6.1
2.6
2.5.2
2.5.1
2.5
2.4
2.3
2.2
2.1.11
2.1.10
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1

Binary file not shown.

View File

@@ -1,28 +1,106 @@
=========
Deploying
=========
===================
Advanced deployment
===================
OS "bare metal"
===============
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.
Like other Django based projects Mayan EDMS can be deployed in a wide variety
of ways. The method provided below is only a bare minimum example.
These instructions are independent of the instructions mentioned in the
:doc:`installation` chapter but assume you have already made a test install to
test the compatibility of your operating system. These instruction are for
Ubuntu 15.04.
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.
Binary dependencies
===================
Ubuntu
------
If using a Debian_ or Ubuntu_ based Linux distribution, get the executable
requirements using::
apt-get install graphviz nginx supervisor redis-server postgresql \
libpq-dev libjpeg-dev libmagic1 libpng-dev libreoffice \
libtiff-dev gcc ghostscript gnupg python-dev python-virtualenv \
tesseract-ocr poppler-utils -y
If using Ubuntu 16.10 also install GPG version 1 (as GPG version 2 is the new default for this distribution and not yet supported by Mayan EDMS) ::
apt-get install gnupg1 -y
Mac OSX
-------
Mayan EDMS is dependent on a number of binary packages and the recommended
way is to use a package manager such as `MacPorts <https://www.macports.org/>`_
or `Homebrew <http://brew.sh/>`_.
Use MacPorts to install binary dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
With MacPorts installed run the command:
.. code-block:: bash
sudo port install python-dev gcc tesseract-ocr unpaper \
python-virtualenv ghostscript libjpeg-dev libpng-dev \
poppler-utils
Set the Binary paths
********************
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs
so either you can symlink the binaries installed via MacPorts in /opt/local/bin/
to /usr/bin/ with ...
.. code-block:: bash
sudo ln -s /opt/local/bin/tesseract /usr/bin/tesseract
Alternatively, set the paths in the ``settings/locals.py``
.. code-block:: python
LIBREOFFICE_PATH = '/Applications/LibreOffice.app/Contents/MacOS/soffice'
Or Use Homebrew
~~~~~~~~~~~~~~~
With Homebrew installed run the command:
.. code-block:: bash
brew install python gcc tesseract unpaper poppler libpng postgresql
Set the Binary paths
********************
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs.
You can symlink the binaries installed via brew in /usr/local/bin/
to /usr/bin/ with:
.. code-block:: bash
sudo ln -s /usr/local/bin/tesseract /usr/bin/tesseract && \
sudo ln -s /usr/local/bin/unpaper /usr/bin/unpaper && \
sudo ln -s /usr/local/bin/pdftotext /usr/bin/pdftotext && \
sudo ln -s /usr/local/bin/gs /usr/bin/gs
Alternatively, set the paths in the ``settings/locals.py``
.. code-block:: python
LIBREOFFICE_PATH = '/Applications/LibreOffice.app/Contents/MacOS/soffice'
Common steps
------------
Switch to superuser::
sudo -i
Install all system dependencies::
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
Change to the directory where the project will be deployed::
cd /usr/share
@@ -80,6 +158,10 @@ Append the following to the ``mayan/settings/local.py`` file, paying attention t
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'
If using Ubuntu 16.10, also add this line to the ``mayan/settings/local.py`` file::
SIGNATURES_GPG_PATH = '/usr/bin/gpg1'
Migrate the database or initialize the project::
mayan-edms.py initialsetup
@@ -184,75 +266,18 @@ Make the installation directory readable and writable by the webserver user::
chown www-data:www-data /usr/share/mayan-edms -R
Restart the services::
Enable and restart the services [1_]::
/etc/init.d/nginx restart
/etc/init.d/supervisor restart
systemctl enable supervisor
systemctl restart supervisor
systemctl restart nginx
Docker
======
Deploy the Docker image stack::
docker run --name postgres -e POSTGRES_DB=mayan -e POSTGRES_USER=mayan -e POSTGRES_PASSWORD=mysecretpassword -v /var/lib/postgresql/data -d postgres
docker run --name redis -d redis
docker run --name mayan-edms -p 80:80 --link postgres:postgres --link redis:redis -e POSTGRES_DB=mayan -e POSTGRES_USER=mayan -e POSTGRES_PASSWORD=mysecretpassword -v /usr/local/lib/python2.7/dist-packages/mayan/media -d mayanedms/monolithic
After the Mayan EDMS container finishes initializing (about 5 minutes), it will
be available by browsing to http://127.0.0.1. You can inspect the initialization
with::
docker logs mayan-edms
Docker Compose
==============
Create a file named ``environment`` with the following content::
POSTGRES_DB=mayan
POSTGRES_PASSWORD=mayanpassword
POSTGRES_USER=mayan
Create a file named ``docker-compose.yml`` with the content::
postgres:
env_file:
- ./environment
image: postgres
volumes:
- /var/lib/postgresql/data
redis:
image: redis
mayan-edms:
env_file:
- ./environment
image: mayanedms/monolithic
links:
- postgres
- redis
ports:
- "80:80"
volumes:
- /usr/local/lib/python2.7/dist-packages/mayan/media
Launch the entire stack (Postgres, Redis, and Mayan EDMS) using::
docker-compose -f docker-compose.yml -p mayanedms up -d
After the Mayan EDMS container finishes initializing (about 5 minutes), it will
be available by browsing to http://127.0.0.1. You can inspect the initialization
with::
docker logs mayanedms_mayan-edms_1
Vagrant
=======
Make sure you have Vagrant and a provider properly installed as per
https://docs.vagrantup.com/v2/installation/index.html
Clone the repository and execute::
vagrant up production
[1]: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740
.. _Debian: http://www.debian.org/
.. _Django: http://www.djangoproject.com/
.. _Python: http://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

View File

@@ -6,8 +6,8 @@ Development
Mayan EDMS is under active development, and contributions are welcome.
If you have a feature request, suggestion or bug report, please open a new
issue on the `GitLab issue tracker`_. To submit patches, please send a pull
request on GitLab_. Make sure to add yourself to the :ref:`contributors` file.
issue on the `GitLab issue tracker`_. To submit patches, please send a merge
request on GitLab_.
.. _GitLab: https://gitlab.com/mayan-edms/mayan-edms/
.. _`GitLab issue tracker`: https://gitlab.com/mayan-edms/mayan-edms/issues
@@ -16,8 +16,8 @@ request on GitLab_. Make sure to add yourself to the :ref:`contributors` file.
Project philosophies
--------------------
How to think about Mayan EDMS when doing changes or adding new features,
why things are the way they are in Mayan EDMS.
How to think about Mayan EDMS when doing changes or adding new features;
why things are the way they are in Mayan EDMS:
- Functionality must be as market/sector independent as possible, code for the
95% of use cases.
@@ -36,7 +36,7 @@ why things are the way they are in Mayan EDMS.
not viable/mature/efficient.
- Each app is as independent and self contained as possible. Exceptions, the
basic requirements: navigation, permissions, common, main.
- If an app is meant to be used by more than one other app it should be as
- If an app is meant to be used by more than one other app, it should be as
generic as possible in regard to the project and another app will bridge the functionality.
- Example: since indexing (document_indexing) only applies to documents, the
@@ -48,12 +48,18 @@ Coding conventions
Follow PEP8
~~~~~~~~~~~
Whenever possible, but don't obsess over things like line length.
Whenever possible, but don't obsess over things like line length:
.. code-block:: bash
$ flake8 --ignore=E501,E128,E122 |less
To perform automatic PEP8 checks, install flake8's git hook using:
.. code-block:: bash
$ flake8 --install-hook git
Imports
~~~~~~~
@@ -103,9 +109,9 @@ Example:
)
from .models import Index, IndexInstanceNode, DocumentRenameCount
All local app module imports are in relative form, local app module name is to
All local app module imports are in relative form. Local app module name is to
be referenced as little as possible, unless required by a specific feature,
trick, restriction, ie: Runtime modification of the module's attributes.
trick, restriction (e.g., Runtime modification of the module's attributes).
Incorrect:
@@ -128,7 +134,7 @@ Dependencies
Mayan EDMS apps follow a hierarchical model of dependency. Apps import from
their parents or siblings, never from their children. Think plugins. A parent
app must never assume anything about a possible existing child app. The
documents app and the Document model are the basic entities they must never
documents app and the Document model are the basic entities; they must never
import anything else. The common and main apps are the base apps.
@@ -203,7 +209,7 @@ Mayan EDMS source is controlled with Git_.
The project is publicly accessible, hosted and can be cloned from **GitLab** using::
git clone https://gitlab.com/mayan-edms/mayan-edms.git
$ git clone https://gitlab.com/mayan-edms/mayan-edms.git
Git branch structure
@@ -235,55 +241,14 @@ Steps to deploy a development version
-------------------------------------
.. code-block:: bash
git clone https://gitlab.com/mayan-edms/mayan-edms.git
cd mayan-edms
git checkout development
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
./manage.py initialsetup
./manage.py runserver
Setting up a development version using Vagrant
----------------------------------------------
Make sure you have Vagrant and a provider properly installed as per
https://docs.vagrantup.com/v2/installation/index.html
Start and provision a machine using:
.. code-block:: bash
vagrant up development
To launch a standalone development server
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
vagrant ssh
vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/
vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate
vagrant@vagrant-ubuntu-trusty-32:~$ ./manage.py runserver 0.0.0.0:8000
To launch a development server with a celery worker and Redis as broker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
vagrant ssh
vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/
vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate
vagrant@vagrant-ubuntu-trusty-32:~$ ./manage.py runserver 0.0.0.0:8000 --settings=mayan.settings.celery_redis
Then on a separate console launch a celery worker from the same provisioned Vagrant machine:
.. code-block:: bash
vagrant ssh
vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/
vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate
vagrant@vagrant-ubuntu-trusty-32:~$ DJANGO_SETTINGS_MODULE='mayan.settings.celery_redis' celery -A mayan worker -l DEBUG -Q checkouts,mailing,uploads,converter,ocr,tools,indexing,metadata -Ofair -B
$ git clone https://gitlab.com/mayan-edms/mayan-edms.git
$ cd mayan-edms
$ git checkout development
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
$ ./manage.py initialsetup
$ ./manage.py runserver
Contributing changes
@@ -361,12 +326,12 @@ The documentation is written in `reStructured Text`_ format, processed with
Sphinx_, and resides in the ``docs`` directory. In order to build it, you will
first need to install the documentation editing dependencies with::
pip install -r requirements/documentation.txt
$ pip install -r requirements/documentation.txt
Then, to build an HTML version of the documentation, run the following command
from the **docs** directory::
make livehtml
$ make docs_serve
The generated documentation can be viewed by browsing to http://127.0.0.1:8000
or by browsing to the ``docs/_build/html`` directory.
@@ -386,22 +351,18 @@ Source file package
This is the sequence of step used to produce an installable package:
1. Make sure there are no lingering packages from previous attempts::
1. Generate the packaged version (will produce dist/mayan-edms-x.y.z.tar.gz)::
rm dist -R
$ make sdist
2. Generate the packaged version (will produce dist/mayan-edms-x.y.z.tar.gz)::
2. Do a test install::
python setup.py sdist
3. Do a test install::
cd /tmp
virtualenv venv
source venv/bin/activate
pip install <path of the Git repository>/dist/mayan-edms-x.y.z.tar.gz
mayan-edms.py initialsetup
mayan-edms.py runserver
$ cd /tmp
$ virtualenv venv
$ source venv/bin/activate
$ pip install <path of the Git repository>/dist/mayan-edms-x.y.z.tar.gz
$ mayan-edms.py initialsetup
$ mayan-edms.py runserver
Wheel package
@@ -411,9 +372,9 @@ Wheel package
$ pip install -r requirements/development.txt
2. Create wheel package using the source file package (Until issue #99 of wheel is fixed: https://bitbucket.org/pypa/wheel/issue/99/cannot-exclude-directory)::
2. Create wheel package using the makefile::
$ pip wheel --no-index --no-deps --wheel-dir dist dist/mayan-edms-x.y.z.tar.gz
$ make wheel
3. Do a test install::
@@ -423,3 +384,60 @@ Wheel package
$ pip install <path of the Git repository>/dist/mayan_edms-x.y.z-py2-none-any.whl
$ mayan-edms.py initialsetup
$ mayan-edms.py runserver
Version numbering
~~~~~~~~~~~~~~~~~
Mayan EDMS uses the Semantic Versioning (http://semver.org/) method to choose
version numbers along with Python's PEP-0440 (https://www.python.org/dev/peps/pep-0440/)
to format them.
X.YaN # Alpha release
X.YbN # Beta release
X.YrcN # Release Candidate
X.Y # Final release
Release checklist
~~~~~~~~~~~~~~~~~
1. Check for missing migrations::
$ ./manage.py makemigrations
2. Synchronize translations::
$ make translations_pull
3. Compile translations::
$ make translations_compile
4. Write release notes.
5. Update changelog.
6. Update requirements version in `setup.py`
7. Bump version in `mayan/__init__.py`
8. Build source package and test::
$ make test_sdist_via_docker_ubuntu
9. Build wheel package and test::
$ make test_whell_via_docker_ubuntu
10. Tag version::
$ git tag -a vX.Y.Z -m "Version X.Y.Z"
11. Push tag upstream::
$ git push --tags
12. Build and upload a test release::
$ make release_test_via_docker_ubuntu
13. Build and upload a final release::
$ make release_via_docker_ubuntu

View File

@@ -90,7 +90,7 @@ When using ``MySQL`` and doing OCR on languages other than English
**Q: Is virtualenv required as specified in the documentation?**
* It is not necessary, it's just a strong recommendation mainly to reduce
* It is not necessary, but it's a strong recommendation mainly to reduce
dependency conflicts by isolation from the main Python system install.
If not using a virtualenv, pip would install Mayan's dependencies
globally coming in conflict with the distribution's prepackaged Python
@@ -116,3 +116,20 @@ http://mayan-edms-ru.blogspot.com/2011/11/blog-post_09.html
**Q: Can you change the display order of documents...i.e can they be in alphabetical order?**
A the moment no, but it is something being considered.
**Q: Does Mayan EDMS work with Python 3?**
Not at the moment. When all the projects and libraries upon which Mayan is
dependent support Python 3 then will the project move to fully support Python 3.
**Q: The watched folder feature is not working**
Make sure that the Celery BEAT scheduler is running correctly as it is the element
that triggers the periodics tasks.
**Q: How to do LDAP authentication**
A sample settings file called ldap_connection_settings.py is included in the
contrib/settings/ folder of the repository showing how to setup LDAP
authentication.

View File

@@ -30,7 +30,7 @@ Features
* Dynamic default values for metadata.
* Metadata fields can have an initial value, which can be static or determined
by an user provided template code snippet.
by a template code snippet provided by the user.
* Documents can be uploaded from different sources.
@@ -68,7 +68,7 @@ Features
* Multi page document support.
* Multiple page PDFs and TIFFs files are supported.
* Multiple page PDF and TIFF files are supported.
* Automatic OCR processing.

View File

@@ -24,4 +24,3 @@ Introductions to all the key parts of Mayan EDMS you'll need to know:
settings
file_storage
backups
screenshots

View File

@@ -1,143 +1,22 @@
============
Installation
============
Mayan EDMS should be deployed like any other Django_ project and
preferably using virtualenv_.
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.
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.
Hardware requirements
---------------------
Bellow are the step needed for a test install.
- 2 Gigabytes of RAM (1 Gigabyte if OCR is turned off).
- Multiple core CPU (64 bit, faster than 1 GHz recommended).
Binary dependencies
===================
Docker procedure
----------------
Ubuntu
------
If using a Debian_ or Ubuntu_ based Linux distribution, get the executable
requirements using::
sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr poppler-utils -y
For the complete set of installation, configuration, upgrade, and backup
instructions visit the Mayan EDMS Docker Hub page at:
https://hub.docker.com/r/mayanedms/mayanedms/
Mac OSX
-------
Mayan EDMS is dependent on a number of binary packages and the recommended
way is to use a package manager such as `MacPorts <https://www.macports.org/>`_
or `Homebrew <http://brew.sh/>`_.
Use MacPorts to install binary dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
With MacPorts installed run the command:
.. code-block:: bash
sudo port install python-dev gcc tesseract-ocr unpaper \
python-virtualenv ghostscript libjpeg-dev libpng-dev \
poppler-utils
Set the Binary paths
********************
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs
so either you can symlink the binaries installed via MacPorts in /opt/local/bin/
to /usr/bin/ with ...
.. code-block:: bash
sudo ln -s /opt/local/bin/tesseract /usr/bin/tesseract
... alternatively set the paths in the ``settings/locals.py``
.. code-block:: python
LIBREOFFICE_PATH = '/Applications/LibreOffice.app/Contents/MacOS/soffice'
Or Use Homebrew
~~~~~~~~~~~~~~~
With Homebrew installed run the command:
.. code-block:: bash
brew install python gcc tesseract unpaper poppler libpng postgresql
Set the Binary paths
********************
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs
so either you can symlink the binaries installed via brew in /usr/local/bin/
to /usr/bin/ with ...
.. code-block:: bash
sudo ln -s /usr/local/bin/tesseract /usr/bin/tesseract && \
sudo ln -s /usr/local/bin/unpaper /usr/bin/unpaper && \
sudo ln -s /usr/local/bin/pdftotext /usr/bin/pdftotext && \
sudo ln -s /usr/local/bin/gs /usr/bin/gs
... alternatively set the paths in the ``settings/locals.py``
.. code-block:: python
LIBREOFFICE_PATH = '/Applications/LibreOffice.app/Contents/MacOS/soffice'
Actual project installation
===========================
Initialize a ``virtualenv`` to deploy the project:
.. code-block:: bash
virtualenv venv
source venv/bin/activate
pip install mayan-edms
By default Mayan EDMS will create a single file SQLite_ database, which makes
it very easy to start using Mayan EDMS. Populate the database with the
project's schema doing:
.. code-block:: bash
mayan-edms.py initialsetup
mayan-edms.py runserver
Point your browser to http://127.0.0.1:8000. If everything was installed
correctly you should see the login screen and panel showing a randomly generated
admin password.
Background tasks and scheduled tasks will not run when using the test server.
The ``runserver`` command is only meant for testing, do not use in a production
server.
Note that the default IP address, 127.0.0.1, is not accessible from other
machines on your network. To make your test server viewable to other
machines on the network, use its own IP address (e.g. 192.168.2.1) or 0.0.0.0 or :: (with IPv6 enabled).
You can provide an IPv6 address surrounded by brackets (e.g. [200a::1]:8000). This will automatically enable IPv6 support.
Production use
==============
After making sure everything is running correctly, stop the ``runserver`` command.
Deploy Mayan EDMS using the webserver of your preference. For more information
on deployment instructions and examples, checkout Django's official documentation
on the topic https://docs.djangoproject.com/en/1.7/howto/deployment/
For a simple production deployment setup follow the instructions in the
:doc:`deploying` chapter.
.. _Debian: http://www.debian.org/
.. _Django: http://www.djangoproject.com/
.. _Download: https://github.com/mayan-edms/mayan-edms/archives/master
.. _Python: http://www.python.org/
.. _SQLite: https://www.sqlite.org/
.. _Ubuntu: http://www.ubuntu.com/
.. _virtualenv: http://www.virtualenv.org/en/latest/index.html
.. _Docker: https://www.docker.com/

View File

@@ -2,8 +2,9 @@
OCR backend
===========
Mayan EDMS ships an OCR backend that uses the FLOSS engine Tesseract, but it can
use other engines. To support other engines a wrapper that subclasess the
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 subclasess 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``
@@ -13,3 +14,8 @@ 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

View File

@@ -2,61 +2,46 @@
Roadmap
=======
- Goals for version 2.2:
- Workflow:
- Improve workflow system
- Workflow indexing support. Accessor already works ``{{ document.workflows.all.0.get_current_state }}``. Index recalculation after workflow transition is missing.
- Workflow actions. Predefined actions to be execute on document leaving or entering a state or a transition. Example: "Add to folder X", "Attach tag X".
- Add support for state recipients.
- Add workflow document inbox notification.
- Indexing
- Replace indexing and smart linking template language (use Jinja2 instead of Django's).
- Display/find documents by their current workflow state.
- Goals for version 3.0:
- Replace UI.
- General goals:
- Distribution:
- Distribution:
- Debian packages. Limited success so far using https://github.com/astraw/stdeb.
- Downloads:
- Transition from filetransfer package to django-downloadview. This task was started and the view ``common.generics.SingleObjectDownloadView`` was created. The ``document_signatures`` app is the first app to use it.
- Notifications:
- Notifications:
- Add support for subscribing to a document's events.
- Add support for subscribing to a document type events.
- Add support for subscribing specific events.
- OCR:
- OCR:
- Add image preprocessing for OCR. Increase effectiveness of Tesseract.
- Improve interface with tesseract.
- Fix pytesseract shortcomings via upstream patches or re-implement. Move to PyOCR.
- Python 3:
- Python 3:
- Complete support for Python3.
- Find replacement for pdfminer (Python3 support blocker). Use pdfminer.six (#257).
- Simple serving:
- Simple serving:
- Provide option to serve Mayan EDMS without a webserver (using Tornado o similar). Work started in branch: ``/feature/tornado``
- Source code:
- Implement Developer certificate of origin: http://developercertificate.org/
- Upload wizard:
- Upload wizard:
- Make wizard step configurable. Create ``WirzardStep`` class so apps can add their own upload wizard steps, instead of the steps being hardcoded in the sources app.
- Add upload wizard step to add the new documents to a folder.
- Other
- Other
- Use a sequence and not the document upload date to determine the document version sequence. MySQL doesn't store milisecond value in dates and if several version are uploaded in a single second there is no way to know the order or which one is the latests. This is why the document version tests include a 2 second delay. Possible solution: http://schinckel.net/2015/05/17/django-second-autofield/
- Include external app Mayan-EXIF into main code.
@@ -69,29 +54,16 @@ Roadmap
- Find replacement for ``python-gnupg``. Unstable & inconsistent API.
- Google docs integration. Upload document from Google Drive.
- Get ``dumpdata`` and ``loaddata`` working flawlessly. Will allow for easier backups, restores and database backend migrations.
- Make more view asynchronous:
- trash can emptying.
- document delete view.
- Add support for loading settings from environment variables, not just settings/local.py.
- Add generic list ordering. ``django.views.generic.list.MultipleObjectMixin`` (https://docs.djangoproject.com/en/1.8/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) now supports an ``ordering`` parameter.
- Workaround GitLab CI MySQL test errors. GitLab MySQL's container doesn't support UTF-8 content.
- Add support for downloading the OCR content as a text file.
- Add support to convert any document to PDF. https://gitlab.mister-muffin.de/josch/img2pdf
- Add support for combining documents.
- Add support for splitting documents.
- Add task viewer.
- Add new document source to get documents from an URL.
- Document overlay support. Such as watermarks. https://gist.github.com/umrashrf/8616550
- Add support for metadata mapping files. CSV file containing filename to metadata values mapping, useful for bulk upload and migrations.
- Add support for registering widgets to the home screen.
- Merge mimetype and converter apps.
- Add entry in About menu to check latest Mayan EDMS version via PyPI.
- Add GPG key generation.
- Add documentation section on editing the settings/local.py file.
- Add documentation section with warning about using runserver.
- Replace ``urlpatterns = patterns( ''``, with Python lists. Django recommendation for post 1.7.
- If SourceColumn label is None take description from model. Avoid unnecessary translatable strings.
- Metadata widgets (Date, time, timedate).
- Datatime widget: https://github.com/smalot/bootstrap-datetimepicker

View File

@@ -1,64 +0,0 @@
===========
Screenshots
===========
.. figure:: /_static/main.png
:figwidth: 40%
:scale: 30 %
:alt: Home screen
:align: left
Home screen
.. figure:: /_static/page_view.png
:figwidth: 40%
:scale: 30 %
:alt: Page view
:align: right
Page view
.. figure:: /_static/document_view.png
:figwidth: 40%
:scale: 30 %
:alt: Document view
:align: left
Document view
.. figure:: /_static/api.png
:figwidth: 40%
:scale: 30 %
:alt: REST API
:align: right
REST API
.. figure:: /_static/tools.png
:figwidth: 40%
:scale: 30 %
:alt: Tools
:align: left
Tools
.. figure:: /_static/setup.png
:figwidth: 40%
:scale: 30 %
:alt: Setup
:align: right
Setup
.. figure:: /_static/statistics.png
:figwidth: 40%
:scale: 30 %
:alt: Statistics
:align: left
Statistics

View File

@@ -10,3 +10,9 @@ the directory: ``/usr/share/mayan-edms/mayan/settings/local.py``.
For a list of all the configuration options, go to "Setup" then "Settings" on
your browser. This is also a good place to check if your overrided setting
option value in your ``local.py`` file is being interpreted correctly.
Settings can also be changed via environment variables by prepending the string
"MAYAN_" to the configuration name. For example, to change the number of documents
displayed per page (COMMON_PAGINATE_BY, by default 40), use::
MAYAN_COMMON_PAGINATE_BY=10

View File

@@ -21,4 +21,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 for now.
.. _`GNU Privacy Guard`: www.gnupg.org/

View File

@@ -9,9 +9,6 @@ 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.
- 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.
- 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
@@ -20,6 +17,19 @@ The current document sources supported are:
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.
Document source can be configure to allow document bundles to uploaded as
compressed files which are decompressed and their content uploaded as separate

View File

@@ -2,21 +2,20 @@
Transformations
===============
Transformation are persistent manipulations to the previews of the stored
Transformations are persistent manipulations to the previews of the stored
documents. For example: a scanning equipment may only produce landscape PDFs.
In this case an useful transformation for that document source would be to
rotate all documents scanned by 270 degrees after being uploaded, this way
whenever a document is uploaded from that scanner it will appear in portrait
orientation. In this case add a this transformation to the Mayan EDMS source
that is connected to that device this way all pages scanned via that source
with inherit the transformation as they are created.
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, then clicking on "transformations". In this view the Actions
menu will have a new option that reads "Create new transformation". At the
moment the rotation, zoom, crop, and resize transformations are available.
Once the document image has been corrected resubmit it for OCR for improved
results.
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.

51
generate_setup.py Executable file
View File

@@ -0,0 +1,51 @@
#!/usr/bin/env python
from __future__ import unicode_literals
import os
import django
from django.conf import settings
from django.template import Template, Context
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
REQUIREMENTS_FILE = 'requirements.txt'
SETUP_TEMPLATE = 'setup.py.tmpl'
def get_requirements(base_directory, filename):
result = []
with open(os.path.join(base_directory, filename)) as file_object:
for line in file_object:
if line.startswith('-r'):
line = line.split('\n')[0][3:]
directory, filename = os.path.split(line)
result.extend(
get_requirements(
base_directory=os.path.join(base_directory, directory), filename=filename
)
)
elif not line.startswith('\n'):
result.append(line.split('\n')[0])
return result
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mayan.settings')
django.setup()
requirements = get_requirements(
base_directory=BASE_DIR, filename=REQUIREMENTS_FILE
)
with open(SETUP_TEMPLATE) as file_object:
template = file_object.read()
result = Template(template).render(
context=Context({'requirements': requirements})
)
with open('setup.py', 'w') as file_object:
file_object.write(result)

View File

@@ -4,7 +4,20 @@ import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mayan.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)

View File

@@ -1,8 +1,8 @@
from __future__ import unicode_literals
__title__ = 'Mayan EDMS'
__version__ = '2.1.2'
__build__ = 0x020102
__version__ = '2.7.2'
__build__ = 0x020702
__author__ = 'Roberto Rosario'
__author_email__ = 'roberto.rosario@mayan-edms.com'
__description__ = 'Free Open Source Electronic Document Management System'

View File

@@ -0,0 +1,250 @@
from __future__ import absolute_import, unicode_literals
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import PermissionDenied
from django.shortcuts import get_object_or_404
from rest_framework import generics
from permissions import Permission
from .models import AccessControlList
from .permissions import permission_acl_edit, permission_acl_view
from .serializers import (
AccessControlListPermissionSerializer, AccessControlListSerializer,
WritableAccessControlListPermissionSerializer,
WritableAccessControlListSerializer
)
class APIObjectACLListView(generics.ListCreateAPIView):
def get(self, *args, **kwargs):
"""
Returns a list of all the object's access control lists
"""
return super(APIObjectACLListView, self).get(*args, **kwargs)
def get_content_object(self):
content_type = get_object_or_404(
ContentType, app_label=self.kwargs['app_label'],
model=self.kwargs['model']
)
content_object = get_object_or_404(
content_type.model_class(), pk=self.kwargs['object_pk']
)
if self.request.method == 'GET':
permission_required = permission_acl_view
else:
permission_required = permission_acl_edit
try:
Permission.check_permissions(
self.request.user, permissions=(permission_required,)
)
except PermissionDenied:
AccessControlList.objects.check_access(
permission_required, self.request.user, content_object
)
return content_object
def get_queryset(self):
return self.get_content_object().acls.all()
def get_serializer_context(self):
"""
Extra context provided to the serializer class.
"""
return {
'content_object': self.get_content_object(),
'format': self.format_kwarg,
'request': self.request,
'view': self
}
def get_serializer_class(self):
if self.request.method == 'GET':
return AccessControlListSerializer
else:
return WritableAccessControlListSerializer
def post(self, *args, **kwargs):
"""
Create a new access control list for the selected object.
"""
return super(APIObjectACLListView, self).post(*args, **kwargs)
class APIObjectACLView(generics.RetrieveDestroyAPIView):
serializer_class = AccessControlListSerializer
def delete(self, *args, **kwargs):
"""
Delete the selected access control list.
"""
return super(APIObjectACLView, self).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected access control list.
"""
return super(APIObjectACLView, self).get(*args, **kwargs)
def get_content_object(self):
if self.request.method == 'GET':
permission_required = permission_acl_view
else:
permission_required = permission_acl_edit
content_type = get_object_or_404(
ContentType, app_label=self.kwargs['app_label'],
model=self.kwargs['model']
)
content_object = get_object_or_404(
content_type.model_class(), pk=self.kwargs['object_pk']
)
try:
Permission.check_permissions(
self.request.user, permissions=(permission_required,)
)
except PermissionDenied:
AccessControlList.objects.check_access(
permission_required, self.request.user, content_object
)
return content_object
def get_queryset(self):
return self.get_content_object().acls.all()
class APIObjectACLPermissionListView(generics.ListCreateAPIView):
def get(self, *args, **kwargs):
"""
Returns the access control list permission list.
"""
return super(
APIObjectACLPermissionListView, self
).get(*args, **kwargs)
def get_acl(self):
return get_object_or_404(
self.get_content_object().acls, pk=self.kwargs['pk']
)
def get_content_object(self):
content_type = get_object_or_404(
ContentType, app_label=self.kwargs['app_label'],
model=self.kwargs['model']
)
content_object = get_object_or_404(
content_type.model_class(), pk=self.kwargs['object_pk']
)
try:
Permission.check_permissions(
self.request.user, permissions=(permission_acl_view,)
)
except PermissionDenied:
AccessControlList.objects.check_access(
permission_acl_view, self.request.user, content_object
)
return content_object
def get_queryset(self):
return self.get_acl().permissions.all()
def get_serializer_class(self):
if self.request.method == 'GET':
return AccessControlListPermissionSerializer
else:
return WritableAccessControlListPermissionSerializer
def get_serializer_context(self):
return {
'acl': self.get_acl(),
'format': self.format_kwarg,
'request': self.request,
'view': self
}
def post(self, *args, **kwargs):
"""
Add a new permission to the selected access control list.
"""
return super(
APIObjectACLPermissionListView, self
).post(*args, **kwargs)
class APIObjectACLPermissionView(generics.RetrieveDestroyAPIView):
lookup_url_kwarg = 'permission_pk'
serializer_class = AccessControlListPermissionSerializer
def delete(self, *args, **kwargs):
"""
Remove the permission from the selected access control list.
"""
return super(
APIObjectACLPermissionView, self
).delete(*args, **kwargs)
def get(self, *args, **kwargs):
"""
Returns the details of the selected access control list permission.
"""
return super(
APIObjectACLPermissionView, self
).get(*args, **kwargs)
def get_acl(self):
return get_object_or_404(
self.get_content_object().acls, pk=self.kwargs['pk']
)
def get_content_object(self):
content_type = get_object_or_404(
ContentType, app_label=self.kwargs['app_label'],
model=self.kwargs['model']
)
content_object = get_object_or_404(
content_type.model_class(), pk=self.kwargs['object_pk']
)
try:
Permission.check_permissions(
self.request.user, permissions=(permission_acl_view,)
)
except PermissionDenied:
AccessControlList.objects.check_access(
permission_acl_view, self.request.user, content_object
)
return content_object
def get_queryset(self):
return self.get_acl().permissions.all()
def get_serializer_context(self):
return {
'acl': self.get_acl(),
'format': self.format_kwarg,
'request': self.request,
'view': self
}

View File

@@ -4,18 +4,21 @@ from django.utils.translation import ugettext_lazy as _
from common import MayanAppConfig, menu_object, menu_sidebar
from navigation import SourceColumn
from rest_api.classes import APIEndPoint
from .links import link_acl_create, link_acl_delete, link_acl_permissions
class ACLsApp(MayanAppConfig):
has_tests = True
name = 'acls'
test = True
verbose_name = _('ACLs')
def ready(self):
super(ACLsApp, self).ready()
APIEndPoint(app=self, version_string='1')
AccessControlList = self.get_model('AccessControlList')
SourceColumn(

View File

@@ -14,10 +14,40 @@ class ModelPermission(object):
@classmethod
def register(cls, model, permissions):
from django.contrib.contenttypes.fields import GenericRelation
cls._registry.setdefault(model, [])
for permission in permissions:
cls._registry[model].append(permission)
AccessControlList = apps.get_model(
app_label='acls', model_name='AccessControlList'
)
model.add_to_class('acls', GenericRelation(AccessControlList))
@classmethod
def get_classes(cls, as_content_type=False):
ContentType = apps.get_model(
app_label='contenttypes', model_name='ContentType'
)
if as_content_type:
content_type_dictionary = ContentType.objects.get_for_models(
*cls._registry.keys()
)
content_type_ids = [
content_type.pk for content_type in content_type_dictionary.values()
]
return ContentType.objects.filter(pk__in=content_type_ids)
else:
return cls._registry.keys()
@classmethod
def get_for_class(cls, klass):
return cls._registry.get(klass, ())
@classmethod
def get_for_instance(cls, instance):
StoredPermission = apps.get_model(
@@ -36,7 +66,9 @@ class ModelPermission(object):
if proxy:
permissions.extend(cls._registry.get(proxy))
pks = [permission.stored_permission.pk for permission in set(permissions)]
pks = [
permission.stored_permission.pk for permission in set(permissions)
]
return StoredPermission.objects.filter(pk__in=pks)
@classmethod

View File

@@ -0,0 +1,16 @@
from __future__ import unicode_literals
class ACLsBaseException(Exception):
"""
Base exception for the acls app
"""
pass
class PermissionNotValidForClass(ACLsBaseException):
"""
The permission is not one that has been registered for a class using the
ModelPermission class.
"""
pass

View File

@@ -1,6 +1,6 @@
from __future__ import unicode_literals
from django.contrib.contenttypes.models import ContentType
from django.apps import apps
from django.utils.translation import ugettext_lazy as _
from navigation import Link
@@ -10,6 +10,10 @@ from .permissions import permission_acl_view, permission_acl_edit
def get_kwargs_factory(variable_name):
def get_kwargs(context):
ContentType = apps.get_model(
app_label='contenttypes', model_name='ContentType'
)
content_type = ContentType.objects.get_for_model(
context[variable_name]
)
@@ -31,6 +35,10 @@ link_acl_list = Link(
permissions=(permission_acl_view,), text=_('ACLs'), view='acls:acl_list',
kwargs=get_kwargs_factory('resolved_object')
)
link_acl_list_with_icon = Link(
icon='fa fa-lock', permissions=(permission_acl_view,), text=_('ACLs'),
view='acls:acl_list', kwargs=get_kwargs_factory('resolved_object')
)
link_acl_create = Link(
permissions=(permission_acl_edit,), text=_('New ACL'),
view='acls:acl_create', kwargs=get_kwargs_factory('resolved_object')

View File

@@ -3,56 +3,59 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
"POT-Creation-Date: 2017-08-27 12:45-0400\n"
"PO-Revision-Date: 2017-08-27 16:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/"
"ar/)\n"
"Language: ar\n"
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: apps.py:14 links.py:30
#: apps.py:15 links.py:35 links.py:39
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:38 models.py:36
#: apps.py:25 links.py:48 models.py:43 workflow_actions.py:48
msgid "Permissions"
msgstr "الصلاحيات"
#: apps.py:26 models.py:38
#: apps.py:29 models.py:47
msgid "Role"
msgstr ""
#: links.py:26
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:43
msgid "New ACL"
msgstr ""
#: managers.py:85
msgid "Insufficient access."
msgstr "Insufficient access."
#: managers.py:57 managers.py:86
#, python-format
msgid "Insufficient access for: %s"
msgstr ""
#: models.py:44
#: models.py:54
msgid "Access entry"
msgstr ""
#: models.py:45
#: models.py:55
msgid "Access entries"
msgstr ""
#: models.py:60
#: models.py:59
#, python-format
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:76
msgid "None"
msgstr "لا شيء"
@@ -68,160 +71,102 @@ msgstr "Edit ACLs"
msgid "View ACLs"
msgstr "View ACLs"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:74
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:101
#, python-format
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:139
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:151
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:152
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:207
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:227
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
#: workflow_actions.py:25
msgid "Object type"
msgstr ""
#~ msgid "Users"
#~ msgstr "Users"
#: workflow_actions.py:28
msgid "Type of the object for which the access will be modified."
msgstr ""
#~ msgid "Groups"
#~ msgstr "Groups"
#: workflow_actions.py:34
msgid "Object ID"
msgstr ""
#~ msgid "Special"
#~ msgstr "Special"
#: workflow_actions.py:37
msgid ""
"Numeric identifier of the object for which the access will be modified."
msgstr ""
#~ msgid "Details"
#~ msgstr "details"
#: workflow_actions.py:42
msgid "Roles"
msgstr "Roles"
#~ msgid "Grant"
#~ msgstr "grant"
#: workflow_actions.py:44
msgid "Roles whose access will be modified."
msgstr ""
#~ msgid "Revoke"
#~ msgstr "revoke"
#: workflow_actions.py:51
msgid ""
"Permissions to grant/revoke to/from the role for the object selected above."
msgstr ""
#~ msgid "Classes"
#~ msgstr "classes"
#: workflow_actions.py:59
msgid "Grant access"
msgstr ""
#~ msgid "ACLs for class"
#~ msgstr "ACLs for class"
#~ msgid "Permission"
#~ msgstr "permissions"
#~ msgid "Default access entry"
#~ msgstr "default access entry"
#~ msgid "Default access entries"
#~ msgstr "default access entries"
#~ msgid "Creator"
#~ msgstr "Creator"
#~ msgid "Edit class default ACLs"
#~ msgstr "Edit class default ACLs"
#~ msgid "View class default ACLs"
#~ msgstr "View class default ACLs"
#~ msgid "Holder"
#~ msgstr "holder"
#~ msgid "Permissions available to: %(actor)s for %(obj)s"
#~ msgstr "permissions available to: %(actor)s for %(obj)s"
#~ msgid "Namespace"
#~ msgstr "namespace"
#~ msgid "Label"
#~ msgstr "label"
#~ msgid ", "
#~ msgstr ", "
#~ msgid " for %s"
#~ msgstr " for %s"
#~ msgid " to %s"
#~ msgstr " to %s"
#~ msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgstr ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgid " from %s"
#~ msgstr " from %s"
#~ msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgstr ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
#~ msgid "Select"
#~ msgstr "Select"
#~ msgid "Class"
#~ msgstr "class"
#~ msgid "Default access control lists for class: %s"
#~ msgstr "default access control lists for class: %s"
#~ msgid "Permissions available to: %(actor)s for class %(class)s"
#~ msgstr "permissions available to: %(actor)s for class %(class)s"
#~ msgid "Add new holder for class: %s"
#~ msgstr "add new holder for class: %s"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"
#: workflow_actions.py:129
msgid "Revoke access"
msgstr ""

View File

@@ -3,55 +3,59 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
"POT-Creation-Date: 2017-08-27 12:45-0400\n"
"PO-Revision-Date: 2017-08-27 16:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/"
"language/bg/)\n"
"Language: bg\n"
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:15 links.py:35 links.py:39
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:38 models.py:36
#: apps.py:25 links.py:48 models.py:43 workflow_actions.py:48
msgid "Permissions"
msgstr "Разрешения"
#: apps.py:26 models.py:38
#: apps.py:29 models.py:47
msgid "Role"
msgstr ""
#: links.py:26
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:43
msgid "New ACL"
msgstr ""
#: managers.py:85
msgid "Insufficient access."
msgstr "Недостатъчен достъп."
#: managers.py:57 managers.py:86
#, python-format
msgid "Insufficient access for: %s"
msgstr ""
#: models.py:44
#: models.py:54
msgid "Access entry"
msgstr ""
msgstr "достъп вписване"
#: models.py:45
#: models.py:55
msgid "Access entries"
msgstr "достъп вписвания"
#: models.py:59
#, python-format
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:60
#: models.py:76
msgid "None"
msgstr "Няма"
@@ -61,166 +65,108 @@ msgstr "Контролни списъци за достъп"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
msgstr "Редактиране на контролни списъци за достъп"
#: permissions.py:13
msgid "View ACLs"
msgstr "Преглед на контролни списъци за достъп"
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: views.py:78
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:74
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:101
#, python-format
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:139
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:151
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:152
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:207
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:227
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
#: workflow_actions.py:25
msgid "Object type"
msgstr ""
#~ msgid "Users"
#~ msgstr "Users"
#: workflow_actions.py:28
msgid "Type of the object for which the access will be modified."
msgstr ""
#~ msgid "Groups"
#~ msgstr "Groups"
#: workflow_actions.py:34
msgid "Object ID"
msgstr ""
#~ msgid "Special"
#~ msgstr "Special"
#: workflow_actions.py:37
msgid ""
"Numeric identifier of the object for which the access will be modified."
msgstr ""
#~ msgid "Details"
#~ msgstr "details"
#: workflow_actions.py:42
msgid "Roles"
msgstr "Роли"
#~ msgid "Grant"
#~ msgstr "grant"
#: workflow_actions.py:44
msgid "Roles whose access will be modified."
msgstr ""
#~ msgid "Revoke"
#~ msgstr "revoke"
#: workflow_actions.py:51
msgid ""
"Permissions to grant/revoke to/from the role for the object selected above."
msgstr ""
#~ msgid "Classes"
#~ msgstr "classes"
#: workflow_actions.py:59
msgid "Grant access"
msgstr ""
#~ msgid "ACLs for class"
#~ msgstr "ACLs for class"
#~ msgid "Permission"
#~ msgstr "permissions"
#~ msgid "Default access entry"
#~ msgstr "default access entry"
#~ msgid "Default access entries"
#~ msgstr "default access entries"
#~ msgid "Creator"
#~ msgstr "Creator"
#~ msgid "Edit class default ACLs"
#~ msgstr "Edit class default ACLs"
#~ msgid "View class default ACLs"
#~ msgstr "View class default ACLs"
#~ msgid "Holder"
#~ msgstr "holder"
#~ msgid "Permissions available to: %(actor)s for %(obj)s"
#~ msgstr "permissions available to: %(actor)s for %(obj)s"
#~ msgid "Namespace"
#~ msgstr "namespace"
#~ msgid "Label"
#~ msgstr "label"
#~ msgid ", "
#~ msgstr ", "
#~ msgid " for %s"
#~ msgstr " for %s"
#~ msgid " to %s"
#~ msgstr " to %s"
#~ msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgstr ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgid " from %s"
#~ msgstr " from %s"
#~ msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgstr ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
#~ msgid "Select"
#~ msgstr "Select"
#~ msgid "Class"
#~ msgstr "class"
#~ msgid "Default access control lists for class: %s"
#~ msgstr "default access control lists for class: %s"
#~ msgid "Permissions available to: %(actor)s for class %(class)s"
#~ msgstr "permissions available to: %(actor)s for class %(class)s"
#~ msgid "Add new holder for class: %s"
#~ msgstr "add new holder for class: %s"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"
#: workflow_actions.py:129
msgid "Revoke access"
msgstr ""

View File

@@ -3,56 +3,59 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
"POT-Creation-Date: 2017-08-27 12:45-0400\n"
"PO-Revision-Date: 2017-08-27 16:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/"
"rosarior/mayan-edms/language/bs_BA/)\n"
"Language: bs_BA\n"
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"Language: bs_BA\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: apps.py:14 links.py:30
#: apps.py:15 links.py:35 links.py:39
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:38 models.py:36
#: apps.py:25 links.py:48 models.py:43 workflow_actions.py:48
msgid "Permissions"
msgstr "Dozvole"
#: apps.py:26 models.py:38
#: apps.py:29 models.py:47
msgid "Role"
msgstr ""
#: links.py:26
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:43
msgid "New ACL"
msgstr ""
#: managers.py:85
msgid "Insufficient access."
msgstr "Nedovoljne dozvole."
#: managers.py:57 managers.py:86
#, python-format
msgid "Insufficient access for: %s"
msgstr ""
#: models.py:44
#: models.py:54
msgid "Access entry"
msgstr ""
msgstr "Pristupni unos"
#: models.py:45
#: models.py:55
msgid "Access entries"
msgstr "Pristupni unosi"
#: models.py:59
#, python-format
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:60
#: models.py:76
msgid "None"
msgstr "Nijedno"
@@ -68,160 +71,102 @@ msgstr "Izmjeniti ACLs"
msgid "View ACLs"
msgstr "Pregledati ACLs"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:74
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:101
#, python-format
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:139
#, python-format
msgid "Access control lists for: %s"
msgstr ""
msgstr "Liste kontrole pristupa (ACL) za: %s"
#: views.py:162
#: views.py:151
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:152
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:207
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:227
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
#: workflow_actions.py:25
msgid "Object type"
msgstr ""
#~ msgid "Users"
#~ msgstr "Users"
#: workflow_actions.py:28
msgid "Type of the object for which the access will be modified."
msgstr ""
#~ msgid "Groups"
#~ msgstr "Groups"
#: workflow_actions.py:34
msgid "Object ID"
msgstr ""
#~ msgid "Special"
#~ msgstr "Special"
#: workflow_actions.py:37
msgid ""
"Numeric identifier of the object for which the access will be modified."
msgstr ""
#~ msgid "Details"
#~ msgstr "details"
#: workflow_actions.py:42
msgid "Roles"
msgstr "Role"
#~ msgid "Grant"
#~ msgstr "grant"
#: workflow_actions.py:44
msgid "Roles whose access will be modified."
msgstr ""
#~ msgid "Revoke"
#~ msgstr "revoke"
#: workflow_actions.py:51
msgid ""
"Permissions to grant/revoke to/from the role for the object selected above."
msgstr ""
#~ msgid "Classes"
#~ msgstr "classes"
#: workflow_actions.py:59
msgid "Grant access"
msgstr ""
#~ msgid "ACLs for class"
#~ msgstr "ACLs for class"
#~ msgid "Permission"
#~ msgstr "permissions"
#~ msgid "Default access entry"
#~ msgstr "default access entry"
#~ msgid "Default access entries"
#~ msgstr "default access entries"
#~ msgid "Creator"
#~ msgstr "Creator"
#~ msgid "Edit class default ACLs"
#~ msgstr "Edit class default ACLs"
#~ msgid "View class default ACLs"
#~ msgstr "View class default ACLs"
#~ msgid "Holder"
#~ msgstr "holder"
#~ msgid "Permissions available to: %(actor)s for %(obj)s"
#~ msgstr "permissions available to: %(actor)s for %(obj)s"
#~ msgid "Namespace"
#~ msgstr "namespace"
#~ msgid "Label"
#~ msgstr "label"
#~ msgid ", "
#~ msgstr ", "
#~ msgid " for %s"
#~ msgstr " for %s"
#~ msgid " to %s"
#~ msgstr " to %s"
#~ msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgstr ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgid " from %s"
#~ msgstr " from %s"
#~ msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgstr ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
#~ msgid "Select"
#~ msgstr "Select"
#~ msgid "Class"
#~ msgstr "class"
#~ msgid "Default access control lists for class: %s"
#~ msgstr "default access control lists for class: %s"
#~ msgid "Permissions available to: %(actor)s for class %(class)s"
#~ msgstr "permissions available to: %(actor)s for class %(class)s"
#~ msgid "Add new holder for class: %s"
#~ msgstr "add new holder for class: %s"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"
#: workflow_actions.py:129
msgid "Revoke access"
msgstr ""

View File

@@ -3,55 +3,59 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
"POT-Creation-Date: 2017-08-27 12:45-0400\n"
"PO-Revision-Date: 2017-08-27 16:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/"
"da/)\n"
"Language: da\n"
"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:15 links.py:35 links.py:39
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:38 models.py:36
#: apps.py:25 links.py:48 models.py:43 workflow_actions.py:48
msgid "Permissions"
msgstr ""
#: apps.py:26 models.py:38
#: apps.py:29 models.py:47
msgid "Role"
msgstr ""
#: links.py:26
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:43
msgid "New ACL"
msgstr ""
#: managers.py:85
msgid "Insufficient access."
#: managers.py:57 managers.py:86
#, python-format
msgid "Insufficient access for: %s"
msgstr ""
#: models.py:44
#: models.py:54
msgid "Access entry"
msgstr ""
#: models.py:45
#: models.py:55
msgid "Access entries"
msgstr ""
#: models.py:60
#: models.py:59
#, python-format
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:76
msgid "None"
msgstr "Ingen"
@@ -67,160 +71,102 @@ msgstr ""
msgid "View ACLs"
msgstr ""
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:74
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:101
#, python-format
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:139
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:151
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:152
msgid "Granted permissions"
msgstr ""
#: views.py:222
#: views.py:207
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:227
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
#: workflow_actions.py:25
msgid "Object type"
msgstr ""
#~ msgid "Users"
#~ msgstr "Users"
#: workflow_actions.py:28
msgid "Type of the object for which the access will be modified."
msgstr ""
#~ msgid "Groups"
#~ msgstr "Groups"
#: workflow_actions.py:34
msgid "Object ID"
msgstr ""
#~ msgid "Special"
#~ msgstr "Special"
#: workflow_actions.py:37
msgid ""
"Numeric identifier of the object for which the access will be modified."
msgstr ""
#~ msgid "Details"
#~ msgstr "details"
#: workflow_actions.py:42
msgid "Roles"
msgstr ""
#~ msgid "Grant"
#~ msgstr "grant"
#: workflow_actions.py:44
msgid "Roles whose access will be modified."
msgstr ""
#~ msgid "Revoke"
#~ msgstr "revoke"
#: workflow_actions.py:51
msgid ""
"Permissions to grant/revoke to/from the role for the object selected above."
msgstr ""
#~ msgid "Classes"
#~ msgstr "classes"
#: workflow_actions.py:59
msgid "Grant access"
msgstr ""
#~ msgid "ACLs for class"
#~ msgstr "ACLs for class"
#~ msgid "Permission"
#~ msgstr "permissions"
#~ msgid "Default access entry"
#~ msgstr "default access entry"
#~ msgid "Default access entries"
#~ msgstr "default access entries"
#~ msgid "Creator"
#~ msgstr "Creator"
#~ msgid "Edit class default ACLs"
#~ msgstr "Edit class default ACLs"
#~ msgid "View class default ACLs"
#~ msgstr "View class default ACLs"
#~ msgid "Holder"
#~ msgstr "holder"
#~ msgid "Permissions available to: %(actor)s for %(obj)s"
#~ msgstr "permissions available to: %(actor)s for %(obj)s"
#~ msgid "Namespace"
#~ msgstr "namespace"
#~ msgid "Label"
#~ msgstr "label"
#~ msgid ", "
#~ msgstr ", "
#~ msgid " for %s"
#~ msgstr " for %s"
#~ msgid " to %s"
#~ msgstr " to %s"
#~ msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgstr ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgid " from %s"
#~ msgstr " from %s"
#~ msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgstr ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
#~ msgid "Select"
#~ msgstr "Select"
#~ msgid "Class"
#~ msgstr "class"
#~ msgid "Default access control lists for class: %s"
#~ msgstr "default access control lists for class: %s"
#~ msgid "Permissions available to: %(actor)s for class %(class)s"
#~ msgstr "permissions available to: %(actor)s for class %(class)s"
#~ msgid "Add new holder for class: %s"
#~ msgstr "add new holder for class: %s"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"
#: workflow_actions.py:129
msgid "Revoke access"
msgstr ""

View File

@@ -3,56 +3,62 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
# Berny <berny@bernhard-marx.de>, 2015
# Jesaja Everling <jeverling@gmail.com>, 2017
# Tobias Paepke <tobias.paepke@paepke.net>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
"Last-Translator: Mathias Behrle <mathiasb@m9s.biz>\n"
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-"
"edms/language/de_DE/)\n"
"Language: de_DE\n"
"POT-Creation-Date: 2017-08-27 12:45-0400\n"
"PO-Revision-Date: 2017-08-27 16:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:15 links.py:35 links.py:39
msgid "ACLs"
msgstr "Zugriffsberechtigungen"
#: apps.py:22 links.py:38 models.py:36
#: apps.py:25 links.py:48 models.py:43 workflow_actions.py:48
msgid "Permissions"
msgstr "Berechtigungen"
#: apps.py:26 models.py:38
#: apps.py:29 models.py:47
msgid "Role"
msgstr "Rolle"
#: links.py:26
#: links.py:31
msgid "Delete"
msgstr "Löschen"
#: links.py:34
#: links.py:43
msgid "New ACL"
msgstr "Neue Berechtigung"
#: managers.py:85
msgid "Insufficient access."
msgstr "Fehlende Berechtigung"
#: managers.py:57 managers.py:86
#, python-format
msgid "Insufficient access for: %s"
msgstr ""
#: models.py:44
#: models.py:54
msgid "Access entry"
msgstr "Berechtigungseintrag"
#: models.py:45
#: models.py:55
msgid "Access entries"
msgstr "Berechtigungseinträge"
#: models.py:60
#: models.py:59
#, python-format
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Berechtigungen \"%(permissions)s\" zur Rolle \"%(role)s\" für \"%(object)s\""
#: models.py:76
msgid "None"
msgstr "Keine"
@@ -68,161 +74,102 @@ msgstr "Zugriffsberechtigungen bearbeiten"
msgid "View ACLs"
msgstr "Zugriffsberechtigungen anzeigen"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr "API URL für die Liste der Berechtigungen dieser ACL"
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr "API URL für die Berechtigung in Relation zur ACL zu der sie zugeordnet ist. Diese URL unterscheidet sich von der normalen Workflow URL."
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr "Primary key der zur ACL hinzuzufügenden Berechtigung."
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr "Keine solche Berechtigung: %s"
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr "Durch Komma getrennte Liste von Primary Keys der zu dieser ACL hinzuzufügenden Berechtigungen."
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr "Primary Key der Rolle die dieser ACL zugeordnet ist."
#: views.py:74
#, python-format
msgid "New access control lists for: %s"
msgstr "Neue Zugriffsberechtigung für %s"
#: views.py:109
#: views.py:101
#, python-format
msgid "Delete ACL: %s"
msgstr "ACL \"%s\" löschen"
#: views.py:151
#: views.py:139
#, python-format
msgid "Access control lists for: %s"
msgstr "Zugriffsberechtigungen für %s"
#: views.py:162
#: views.py:151
msgid "Available permissions"
msgstr "Verfügbare Berechtigungen"
#: views.py:163
#: views.py:152
msgid "Granted permissions"
msgstr "Erteilte Berechtigungen"
#: views.py:222
#: views.py:207
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Berechtigungen von Rolle \"%(role)s\" für \"%(object)s\""
#: views.py:242
#: views.py:227
msgid "Disabled permissions are inherited from a parent object."
msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt."
#: workflow_actions.py:25
msgid "Object type"
msgstr ""
"Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt."
#~ msgid "New holder"
#~ msgstr "New holder"
#: workflow_actions.py:28
msgid "Type of the object for which the access will be modified."
msgstr ""
#~ msgid "Users"
#~ msgstr "Users"
#: workflow_actions.py:34
msgid "Object ID"
msgstr ""
#~ msgid "Groups"
#~ msgstr "Groups"
#: workflow_actions.py:37
msgid ""
"Numeric identifier of the object for which the access will be modified."
msgstr ""
#~ msgid "Special"
#~ msgstr "Special"
#: workflow_actions.py:42
msgid "Roles"
msgstr "Rollen"
#~ msgid "Details"
#~ msgstr "details"
#: workflow_actions.py:44
msgid "Roles whose access will be modified."
msgstr ""
#~ msgid "Grant"
#~ msgstr "grant"
#: workflow_actions.py:51
msgid ""
"Permissions to grant/revoke to/from the role for the object selected above."
msgstr ""
#~ msgid "Revoke"
#~ msgstr "revoke"
#: workflow_actions.py:59
msgid "Grant access"
msgstr ""
#~ msgid "Classes"
#~ msgstr "classes"
#~ msgid "ACLs for class"
#~ msgstr "ACLs for class"
#~ msgid "Permission"
#~ msgstr "permissions"
#~ msgid "Default access entry"
#~ msgstr "default access entry"
#~ msgid "Default access entries"
#~ msgstr "default access entries"
#~ msgid "Creator"
#~ msgstr "Creator"
#~ msgid "Edit class default ACLs"
#~ msgstr "Edit class default ACLs"
#~ msgid "View class default ACLs"
#~ msgstr "View class default ACLs"
#~ msgid "Holder"
#~ msgstr "holder"
#~ msgid "Permissions available to: %(actor)s for %(obj)s"
#~ msgstr "permissions available to: %(actor)s for %(obj)s"
#~ msgid "Namespace"
#~ msgstr "namespace"
#~ msgid "Label"
#~ msgstr "label"
#~ msgid ", "
#~ msgstr ", "
#~ msgid " for %s"
#~ msgstr " for %s"
#~ msgid " to %s"
#~ msgstr " to %s"
#~ msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgstr ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgid " from %s"
#~ msgstr " from %s"
#~ msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgstr ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
#~ msgid "Select"
#~ msgstr "Select"
#~ msgid "Class"
#~ msgstr "class"
#~ msgid "Default access control lists for class: %s"
#~ msgstr "default access control lists for class: %s"
#~ msgid "Permissions available to: %(actor)s for class %(class)s"
#~ msgstr "permissions available to: %(actor)s for class %(class)s"
#~ msgid "Add new holder for class: %s"
#~ msgstr "add new holder for class: %s"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"
#: workflow_actions.py:129
msgid "Revoke access"
msgstr ""

View File

@@ -1,251 +1,171 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
"PO-Revision-Date: 2012-02-02 18:20+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/"
"language/en/)\n"
"Language: en\n"
"POT-Creation-Date: 2017-08-27 12:45-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:15 links.py:35 links.py:39
msgid "ACLs"
msgstr "ACLs"
msgstr ""
#: apps.py:22 links.py:38 models.py:36
#, fuzzy
#: apps.py:25 links.py:48 models.py:43 workflow_actions.py:48
msgid "Permissions"
msgstr "permissions"
msgstr ""
#: apps.py:26 models.py:38
#, fuzzy
#| msgid "Roles"
#: apps.py:29 models.py:47
msgid "Role"
msgstr "Roles"
msgstr ""
#: links.py:26
#: links.py:31
msgid "Delete"
msgstr ""
#: links.py:34
#, fuzzy
#| msgid "View ACLs"
#: links.py:43
msgid "New ACL"
msgstr "View ACLs"
msgstr ""
#: managers.py:85
msgid "Insufficient access."
msgstr "Insufficient access."
#: managers.py:57 managers.py:86
#, python-format
msgid "Insufficient access for: %s"
msgstr ""
#: models.py:44
#, fuzzy
#: models.py:54
msgid "Access entry"
msgstr "access entry"
msgstr ""
#: models.py:45
#, fuzzy
#: models.py:55
msgid "Access entries"
msgstr "access entries"
msgstr ""
#: models.py:60
#: models.py:59
#, python-format
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:76
msgid "None"
msgstr ""
#: permissions.py:7
msgid "Access control lists"
msgstr "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Edit ACLs"
msgstr ""
#: permissions.py:13
msgid "View ACLs"
msgstr "View ACLs"
msgstr ""
#: views.py:78
#, fuzzy, python-format
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:74
#, python-format
msgid "New access control lists for: %s"
msgstr "access control lists for: %s"
msgstr ""
#: views.py:109
#, fuzzy, python-format
#| msgid "Default ACLs"
#: views.py:101
#, python-format
msgid "Delete ACL: %s"
msgstr "Default ACLs"
msgstr ""
#: views.py:139
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:151
#, fuzzy, python-format
msgid "Access control lists for: %s"
msgstr "access control lists for: %s"
#: views.py:162
#, fuzzy
msgid "Available permissions"
msgstr "has permission"
msgstr ""
#: views.py:163
#, fuzzy
#: views.py:152
msgid "Granted permissions"
msgstr "has permission"
msgstr ""
#: views.py:222
#: views.py:207
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:227
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
#: workflow_actions.py:25
msgid "Object type"
msgstr ""
#~ msgid "Users"
#~ msgstr "Users"
#: workflow_actions.py:28
msgid "Type of the object for which the access will be modified."
msgstr ""
#~ msgid "Groups"
#~ msgstr "Groups"
#: workflow_actions.py:34
msgid "Object ID"
msgstr ""
#~ msgid "Special"
#~ msgstr "Special"
#: workflow_actions.py:37
msgid "Numeric identifier of the object for which the access will be modified."
msgstr ""
#, fuzzy
#~ msgid "Details"
#~ msgstr "details"
#: workflow_actions.py:42
msgid "Roles"
msgstr ""
#, fuzzy
#~ msgid "Grant"
#~ msgstr "grant"
#: workflow_actions.py:44
msgid "Roles whose access will be modified."
msgstr ""
#, fuzzy
#~ msgid "Revoke"
#~ msgstr "revoke"
#: workflow_actions.py:51
msgid ""
"Permissions to grant/revoke to/from the role for the object selected above."
msgstr ""
#, fuzzy
#~ msgid "Classes"
#~ msgstr "classes"
#: workflow_actions.py:59
msgid "Grant access"
msgstr ""
#~ msgid "ACLs for class"
#~ msgstr "ACLs for class"
#, fuzzy
#~ msgid "Permission"
#~ msgstr "permissions"
#, fuzzy
#~ msgid "Default access entry"
#~ msgstr "default access entry"
#, fuzzy
#~ msgid "Default access entries"
#~ msgstr "default access entries"
#~ msgid "Creator"
#~ msgstr "Creator"
#~ msgid "Edit class default ACLs"
#~ msgstr "Edit class default ACLs"
#~ msgid "View class default ACLs"
#~ msgstr "View class default ACLs"
#, fuzzy
#~ msgid "Holder"
#~ msgstr "holder"
#, fuzzy
#~ msgid "Permissions available to: %(actor)s for %(obj)s"
#~ msgstr "permissions available to: %(actor)s for %(obj)s"
#, fuzzy
#~ msgid "Namespace"
#~ msgstr "namespace"
#, fuzzy
#~ msgid "Label"
#~ msgstr "label"
#~ msgid ", "
#~ msgstr ", "
#~ msgid " for %s"
#~ msgstr " for %s"
#~ msgid " to %s"
#~ msgstr " to %s"
#~ msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgstr ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgid " from %s"
#~ msgstr " from %s"
#~ msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgstr ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#, fuzzy
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
#~ msgid "Select"
#~ msgstr "Select"
#, fuzzy
#~ msgid "Class"
#~ msgstr "class"
#, fuzzy
#~ msgid "Default access control lists for class: %s"
#~ msgstr "default access control lists for class: %s"
#, fuzzy
#~ msgid "Permissions available to: %(actor)s for class %(class)s"
#~ msgstr "permissions available to: %(actor)s for class %(class)s"
#, fuzzy
#~ msgid "Add new holder for class: %s"
#~ msgstr "add new holder for class: %s"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"
#: workflow_actions.py:129
msgid "Revoke access"
msgstr ""

View File

@@ -3,16 +3,15 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
# jmcainzos <jmcainzos@vodafone.es>, 2015
# Roberto Rosario, 2015
# Roberto Rosario, 2015-2016
# Roberto Rosario, 2015-2017
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
"PO-Revision-Date: 2016-05-09 01:48+0000\n"
"POT-Creation-Date: 2017-08-27 12:45-0400\n"
"PO-Revision-Date: 2017-08-27 16:38+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n"
"MIME-Version: 1.0\n"
@@ -21,41 +20,45 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:15 links.py:35 links.py:39
msgid "ACLs"
msgstr "LCAs"
#: apps.py:22 links.py:38 models.py:36
#: apps.py:25 links.py:48 models.py:43 workflow_actions.py:48
msgid "Permissions"
msgstr "Permisos"
#: apps.py:26 models.py:38
#| msgid "Roles"
#: apps.py:29 models.py:47
msgid "Role"
msgstr "Rol"
#: links.py:26
#: links.py:31
msgid "Delete"
msgstr "Borrar"
#: links.py:34
#| msgid "View ACLs"
#: links.py:43
msgid "New ACL"
msgstr "Nueva LCA"
#: managers.py:85
msgid "Insufficient access."
msgstr "Acceso insuficiente."
#: managers.py:57 managers.py:86
#, python-format
msgid "Insufficient access for: %s"
msgstr "Acceso insuficiente para: %s"
#: models.py:44
#: models.py:54
msgid "Access entry"
msgstr "Entrada de acceso"
#: models.py:45
#: models.py:55
msgid "Access entries"
msgstr "Entradas de acceso"
#: models.py:60
#: models.py:59
#, python-format
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permisos \"%(permissions)s\" para el rol \"%(role)s\" para \"%(object)s\""
#: models.py:76
msgid "None"
msgstr "Ninguno"
@@ -71,159 +74,102 @@ msgstr "Editar LCAs"
msgid "View ACLs"
msgstr "Ver LCAs"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr "URL de la API que apunta a la lista de permisos para esta lista de control de acceso."
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr "URL de la API que apunta a un permiso en relación con la lista de control de acceso a la que está conectado. Esta URL es diferente de la URL canónica de flujo de trabajo."
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr "Llave primaria del nuevo permiso para conceder a la lista de control de acceso."
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr "No existe el permiso: %s"
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr "Lista separada por comas de las llaves primarias de permisos para conceder a esta lista de control de acceso."
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr "Las llaves primarias de los roles a los que se vincula esta lista de control de acceso."
#: views.py:74
#, python-format
msgid "New access control lists for: %s"
msgstr "Nueva lista de control de acceso para: %s"
#: views.py:109
#: views.py:101
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Borrar LCA: %s"
#: views.py:151
#: views.py:139
#, python-format
msgid "Access control lists for: %s"
msgstr "Listas de control de acceso para: %s"
#: views.py:162
#: views.py:151
msgid "Available permissions"
msgstr "Permisos disponibles"
#: views.py:163
#: views.py:152
msgid "Granted permissions"
msgstr "Permisos otorgados"
#: views.py:222
#: views.py:207
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Permisos del rol \"%(role)s\" para \"%(object)s\""
#: views.py:242
#: views.py:227
msgid "Disabled permissions are inherited from a parent object."
msgstr "Los permisos inactivos se heredan de un objeto precedente."
#~ msgid "New holder"
#~ msgstr "New holder"
#: workflow_actions.py:25
msgid "Object type"
msgstr "Tipo de objeto"
#~ msgid "Users"
#~ msgstr "Users"
#: workflow_actions.py:28
msgid "Type of the object for which the access will be modified."
msgstr "Tipo de objeto para el que se modificará el acceso."
#~ msgid "Groups"
#~ msgstr "Groups"
#: workflow_actions.py:34
msgid "Object ID"
msgstr "ID de objeto"
#~ msgid "Special"
#~ msgstr "Special"
#: workflow_actions.py:37
msgid ""
"Numeric identifier of the object for which the access will be modified."
msgstr "Identificador numérico del objeto para el que se modificará el acceso."
#~ msgid "Details"
#~ msgstr "details"
#: workflow_actions.py:42
msgid "Roles"
msgstr "Roles"
#~ msgid "Grant"
#~ msgstr "grant"
#: workflow_actions.py:44
msgid "Roles whose access will be modified."
msgstr "Roles cuyo acceso será modificado."
#~ msgid "Revoke"
#~ msgstr "revoke"
#: workflow_actions.py:51
msgid ""
"Permissions to grant/revoke to/from the role for the object selected above."
msgstr "Permisos para otorgar/revocar a los roles para el objeto seleccionado anteriormente."
#~ msgid "Classes"
#~ msgstr "classes"
#: workflow_actions.py:59
msgid "Grant access"
msgstr "Otorgar acceso"
#~ msgid "ACLs for class"
#~ msgstr "ACLs for class"
#~ msgid "Permission"
#~ msgstr "permissions"
#~ msgid "Default access entry"
#~ msgstr "default access entry"
#~ msgid "Default access entries"
#~ msgstr "default access entries"
#~ msgid "Creator"
#~ msgstr "Creator"
#~ msgid "Edit class default ACLs"
#~ msgstr "Edit class default ACLs"
#~ msgid "View class default ACLs"
#~ msgstr "View class default ACLs"
#~ msgid "Holder"
#~ msgstr "holder"
#~ msgid "Permissions available to: %(actor)s for %(obj)s"
#~ msgstr "permissions available to: %(actor)s for %(obj)s"
#~ msgid "Namespace"
#~ msgstr "namespace"
#~ msgid "Label"
#~ msgstr "label"
#~ msgid ", "
#~ msgstr ", "
#~ msgid " for %s"
#~ msgstr " for %s"
#~ msgid " to %s"
#~ msgstr " to %s"
#~ msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgstr ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgid " from %s"
#~ msgstr " from %s"
#~ msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
#~ msgid "Select"
#~ msgstr "Select"
#~ msgid "Class"
#~ msgstr "class"
#~ msgid "Default access control lists for class: %s"
#~ msgstr "default access control lists for class: %s"
#~ msgid "Permissions available to: %(actor)s for class %(class)s"
#~ msgstr "permissions available to: %(actor)s for class %(class)s"
#~ msgid "Add new holder for class: %s"
#~ msgstr "add new holder for class: %s"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"
#: workflow_actions.py:129
msgid "Revoke access"
msgstr "Revocar acceso"

View File

@@ -3,55 +3,60 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
# Nima Towhidi <nima.towhidi@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
"POT-Creation-Date: 2017-08-27 12:45-0400\n"
"PO-Revision-Date: 2017-08-27 16:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/"
"language/fa/)\n"
"Language: fa\n"
"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:14 links.py:30
#: apps.py:15 links.py:35 links.py:39
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:38 models.py:36
#: apps.py:25 links.py:48 models.py:43 workflow_actions.py:48
msgid "Permissions"
msgstr "مجوزها"
#: apps.py:26 models.py:38
#: apps.py:29 models.py:47
msgid "Role"
msgstr "نقش"
#: links.py:26
#: links.py:31
msgid "Delete"
msgstr "حذف"
#: links.py:34
#: links.py:43
msgid "New ACL"
msgstr ""
#: managers.py:85
msgid "Insufficient access."
msgstr "دسترسی ناکافی"
#: managers.py:57 managers.py:86
#, python-format
msgid "Insufficient access for: %s"
msgstr ""
#: models.py:44
#: models.py:54
msgid "Access entry"
msgstr "ورودی دسترسی"
#: models.py:45
#: models.py:55
msgid "Access entries"
msgstr "ورودیهای دسترسی"
#: models.py:60
#: models.py:59
#, python-format
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:76
msgid "None"
msgstr "هیچکدام."
@@ -67,160 +72,102 @@ msgstr "ویرایش دسترسی ها"
msgid "View ACLs"
msgstr "دیدن دسترسی ها"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr ""
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:74
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:101
#, python-format
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:139
#, python-format
msgid "Access control lists for: %s"
msgstr "لیست کنترل دسترسی ها برای : %s"
#: views.py:162
#: views.py:151
msgid "Available permissions"
msgstr ""
msgstr "مجوزهای موجود"
#: views.py:163
#: views.py:152
msgid "Granted permissions"
msgstr ""
msgstr "مجوزهای داده شده"
#: views.py:222
#: views.py:207
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:227
msgid "Disabled permissions are inherited from a parent object."
msgstr "مجوزهای غیرفعال، از شیء بالاتر به ارث رسیده‌اند."
#: workflow_actions.py:25
msgid "Object type"
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
#: workflow_actions.py:28
msgid "Type of the object for which the access will be modified."
msgstr ""
#~ msgid "Users"
#~ msgstr "Users"
#: workflow_actions.py:34
msgid "Object ID"
msgstr ""
#~ msgid "Groups"
#~ msgstr "Groups"
#: workflow_actions.py:37
msgid ""
"Numeric identifier of the object for which the access will be modified."
msgstr ""
#~ msgid "Special"
#~ msgstr "Special"
#: workflow_actions.py:42
msgid "Roles"
msgstr "نقش ها"
#~ msgid "Details"
#~ msgstr "details"
#: workflow_actions.py:44
msgid "Roles whose access will be modified."
msgstr ""
#~ msgid "Grant"
#~ msgstr "grant"
#: workflow_actions.py:51
msgid ""
"Permissions to grant/revoke to/from the role for the object selected above."
msgstr ""
#~ msgid "Revoke"
#~ msgstr "revoke"
#: workflow_actions.py:59
msgid "Grant access"
msgstr ""
#~ msgid "Classes"
#~ msgstr "classes"
#~ msgid "ACLs for class"
#~ msgstr "ACLs for class"
#~ msgid "Permission"
#~ msgstr "permissions"
#~ msgid "Default access entry"
#~ msgstr "default access entry"
#~ msgid "Default access entries"
#~ msgstr "default access entries"
#~ msgid "Creator"
#~ msgstr "Creator"
#~ msgid "Edit class default ACLs"
#~ msgstr "Edit class default ACLs"
#~ msgid "View class default ACLs"
#~ msgstr "View class default ACLs"
#~ msgid "Holder"
#~ msgstr "holder"
#~ msgid "Permissions available to: %(actor)s for %(obj)s"
#~ msgstr "permissions available to: %(actor)s for %(obj)s"
#~ msgid "Namespace"
#~ msgstr "namespace"
#~ msgid "Label"
#~ msgstr "label"
#~ msgid ", "
#~ msgstr ", "
#~ msgid " for %s"
#~ msgstr " for %s"
#~ msgid " to %s"
#~ msgstr " to %s"
#~ msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgstr ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgid " from %s"
#~ msgstr " from %s"
#~ msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgstr ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
#~ msgid "Select"
#~ msgstr "Select"
#~ msgid "Class"
#~ msgstr "class"
#~ msgid "Default access control lists for class: %s"
#~ msgstr "default access control lists for class: %s"
#~ msgid "Permissions available to: %(actor)s for class %(class)s"
#~ msgstr "permissions available to: %(actor)s for class %(class)s"
#~ msgid "Add new holder for class: %s"
#~ msgstr "add new holder for class: %s"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"
#: workflow_actions.py:129
msgid "Revoke access"
msgstr ""

View File

@@ -3,56 +3,61 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2016-2017
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
"Last-Translator: Christophe CHAUVET <christophe.chauvet@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/"
"fr/)\n"
"Language: fr\n"
"POT-Creation-Date: 2017-08-27 12:45-0400\n"
"PO-Revision-Date: 2017-08-27 16:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: apps.py:14 links.py:30
#: apps.py:15 links.py:35 links.py:39
msgid "ACLs"
msgstr "Droits"
#: apps.py:22 links.py:38 models.py:36
#: apps.py:25 links.py:48 models.py:43 workflow_actions.py:48
msgid "Permissions"
msgstr "Permissions"
#: apps.py:26 models.py:38
#: apps.py:29 models.py:47
msgid "Role"
msgstr "Rôle"
#: links.py:26
#: links.py:31
msgid "Delete"
msgstr "Suppression"
#: links.py:34
#: links.py:43
msgid "New ACL"
msgstr "Nouveau droit"
#: managers.py:85
msgid "Insufficient access."
msgstr "droit d'accès insuffisant."
#: managers.py:57 managers.py:86
#, python-format
msgid "Insufficient access for: %s"
msgstr ""
#: models.py:44
#: models.py:54
msgid "Access entry"
msgstr "Entrée d'accès"
#: models.py:45
#: models.py:55
msgid "Access entries"
msgstr "Entrées d'accès"
#: models.py:60
#: models.py:59
#, python-format
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permissions \"%(permissions)s\" du rôle \"%(role)s\" pour \"%(object)s\""
#: models.py:76
msgid "None"
msgstr "Aucun"
@@ -68,160 +73,102 @@ msgstr "Editer les droits"
msgid "View ACLs"
msgstr "voir les droits d'accès"
#: views.py:78
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr "URL de l'API indiquant la liste des autorisations pour cette liste de contrôle d'accès."
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr "URL de l'API pointant vers une autorisation en relation avec la liste de contrôle d'accès à laquelle elle est attachée. Cette URL est différente de l'URL du flux de travail canonique."
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr "Clé principale de la nouvelle autorisation pour autoriser à la liste de contrôle d'accès."
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr "Aucune autorisation de ce genre: %s"
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr "Liste séparée par des virgules des clés primaires d'autorisation pour autoriser à cette liste de contrôle d'accès."
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr "Clés primaires du rôle auquel cette liste de contrôle d'accès se rattache."
#: views.py:74
#, python-format
msgid "New access control lists for: %s"
msgstr "Nouvelle liste de contrôle d'accès pour: %s"
#: views.py:109
#: views.py:101
#, python-format
msgid "Delete ACL: %s"
msgstr "Supprimer le droit: %s"
#: views.py:151
#: views.py:139
#, python-format
msgid "Access control lists for: %s"
msgstr "Liste des contrôle d'accès pour: %s"
#: views.py:162
#: views.py:151
msgid "Available permissions"
msgstr "Permissions disponibles"
#: views.py:163
#: views.py:152
msgid "Granted permissions"
msgstr "Permissions autorisées"
#: views.py:222
#: views.py:207
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Permission du rôle \"%(role)s\" pour \"%(object)s\"@"
#: views.py:242
#: views.py:227
msgid "Disabled permissions are inherited from a parent object."
msgstr "La désactivation de permission est hérité de l'objet parent"
#~ msgid "New holder"
#~ msgstr "New holder"
#: workflow_actions.py:25
msgid "Object type"
msgstr ""
#~ msgid "Users"
#~ msgstr "Users"
#: workflow_actions.py:28
msgid "Type of the object for which the access will be modified."
msgstr ""
#~ msgid "Groups"
#~ msgstr "Groups"
#: workflow_actions.py:34
msgid "Object ID"
msgstr ""
#~ msgid "Special"
#~ msgstr "Special"
#: workflow_actions.py:37
msgid ""
"Numeric identifier of the object for which the access will be modified."
msgstr ""
#~ msgid "Details"
#~ msgstr "details"
#: workflow_actions.py:42
msgid "Roles"
msgstr "Rôles"
#~ msgid "Grant"
#~ msgstr "grant"
#: workflow_actions.py:44
msgid "Roles whose access will be modified."
msgstr ""
#~ msgid "Revoke"
#~ msgstr "revoke"
#: workflow_actions.py:51
msgid ""
"Permissions to grant/revoke to/from the role for the object selected above."
msgstr ""
#~ msgid "Classes"
#~ msgstr "classes"
#: workflow_actions.py:59
msgid "Grant access"
msgstr ""
#~ msgid "ACLs for class"
#~ msgstr "ACLs for class"
#~ msgid "Permission"
#~ msgstr "permissions"
#~ msgid "Default access entry"
#~ msgstr "default access entry"
#~ msgid "Default access entries"
#~ msgstr "default access entries"
#~ msgid "Creator"
#~ msgstr "Creator"
#~ msgid "Edit class default ACLs"
#~ msgstr "Edit class default ACLs"
#~ msgid "View class default ACLs"
#~ msgstr "View class default ACLs"
#~ msgid "Holder"
#~ msgstr "holder"
#~ msgid "Permissions available to: %(actor)s for %(obj)s"
#~ msgstr "permissions available to: %(actor)s for %(obj)s"
#~ msgid "Namespace"
#~ msgstr "namespace"
#~ msgid "Label"
#~ msgstr "label"
#~ msgid ", "
#~ msgstr ", "
#~ msgid " for %s"
#~ msgstr " for %s"
#~ msgid " to %s"
#~ msgstr " to %s"
#~ msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgstr ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgid " from %s"
#~ msgstr " from %s"
#~ msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgstr ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
#~ msgid "Select"
#~ msgstr "Select"
#~ msgid "Class"
#~ msgstr "class"
#~ msgid "Default access control lists for class: %s"
#~ msgstr "default access control lists for class: %s"
#~ msgid "Permissions available to: %(actor)s for class %(class)s"
#~ msgstr "permissions available to: %(actor)s for class %(class)s"
#~ msgid "Add new holder for class: %s"
#~ msgstr "add new holder for class: %s"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"
#: workflow_actions.py:129
msgid "Revoke access"
msgstr ""

View File

@@ -3,224 +3,170 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
"POT-Creation-Date: 2017-08-27 12:45-0400\n"
"PO-Revision-Date: 2017-08-27 16:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/"
"language/hu/)\n"
"Language: hu\n"
"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:15 links.py:35 links.py:39
msgid "ACLs"
msgstr "ACL-ek"
#: apps.py:22 links.py:38 models.py:36
#: apps.py:25 links.py:48 models.py:43 workflow_actions.py:48
msgid "Permissions"
msgstr ""
msgstr "Engedélyek"
#: apps.py:26 models.py:38
#: apps.py:29 models.py:47
msgid "Role"
msgstr ""
msgstr "Szerepkör"
#: links.py:26
#: links.py:31
msgid "Delete"
msgstr ""
msgstr "Törlés"
#: links.py:34
#: links.py:43
msgid "New ACL"
msgstr ""
#: managers.py:85
msgid "Insufficient access."
#: managers.py:57 managers.py:86
#, python-format
msgid "Insufficient access for: %s"
msgstr ""
#: models.py:44
#: models.py:54
msgid "Access entry"
msgstr ""
msgstr "Hozzáférési bejegyzés"
#: models.py:45
#: models.py:55
msgid "Access entries"
msgstr "Hozzáférési bejegyzések"
#: models.py:59
#, python-format
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:60
#: models.py:76
msgid "None"
msgstr "Semmi"
#: permissions.py:7
msgid "Access control lists"
msgstr ""
msgstr "Hozzáférési lista"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
msgstr "Hozzáférési listák szerkesztése"
#: permissions.py:13
msgid "View ACLs"
msgstr "Hozzáférési listák megtekintése"
#: serializers.py:24 serializers.py:132
msgid ""
"API URL pointing to the list of permissions for this access control list."
msgstr ""
#: views.py:78
#: serializers.py:57
msgid ""
"API URL pointing to a permission in relation to the access control list to "
"which it is attached. This URL is different than the canonical workflow URL."
msgstr ""
#: serializers.py:87
msgid "Primary key of the new permission to grant to the access control list."
msgstr ""
#: serializers.py:111 serializers.py:187
#, python-format
msgid "No such permission: %s"
msgstr "Nincs ilyen jogosúltság: %s"
#: serializers.py:126
msgid ""
"Comma separated list of permission primary keys to grant to this access "
"control list."
msgstr ""
#: serializers.py:138
msgid "Primary keys of the role to which this access control list binds to."
msgstr ""
#: views.py:74
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:101
#, python-format
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#: views.py:139
#, python-format
msgid "Access control lists for: %s"
msgstr ""
msgstr "Hozzáférési lista a: %s -hoz"
#: views.py:162
#: views.py:151
msgid "Available permissions"
msgstr ""
msgstr "Elérhető jogosúltságok"
#: views.py:163
#: views.py:152
msgid "Granted permissions"
msgstr ""
msgstr "Élvezett jogosúltságok"
#: views.py:222
#: views.py:207
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
#: views.py:227
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
#: workflow_actions.py:25
msgid "Object type"
msgstr ""
#~ msgid "Users"
#~ msgstr "Users"
#: workflow_actions.py:28
msgid "Type of the object for which the access will be modified."
msgstr ""
#~ msgid "Groups"
#~ msgstr "Groups"
#: workflow_actions.py:34
msgid "Object ID"
msgstr ""
#~ msgid "Special"
#~ msgstr "Special"
#: workflow_actions.py:37
msgid ""
"Numeric identifier of the object for which the access will be modified."
msgstr ""
#~ msgid "Details"
#~ msgstr "details"
#: workflow_actions.py:42
msgid "Roles"
msgstr "Szerepkörök"
#~ msgid "Grant"
#~ msgstr "grant"
#: workflow_actions.py:44
msgid "Roles whose access will be modified."
msgstr ""
#~ msgid "Revoke"
#~ msgstr "revoke"
#: workflow_actions.py:51
msgid ""
"Permissions to grant/revoke to/from the role for the object selected above."
msgstr ""
#~ msgid "Classes"
#~ msgstr "classes"
#: workflow_actions.py:59
msgid "Grant access"
msgstr ""
#~ msgid "ACLs for class"
#~ msgstr "ACLs for class"
#~ msgid "Permission"
#~ msgstr "permissions"
#~ msgid "Default access entry"
#~ msgstr "default access entry"
#~ msgid "Default access entries"
#~ msgstr "default access entries"
#~ msgid "Creator"
#~ msgstr "Creator"
#~ msgid "Edit class default ACLs"
#~ msgstr "Edit class default ACLs"
#~ msgid "View class default ACLs"
#~ msgstr "View class default ACLs"
#~ msgid "Holder"
#~ msgstr "holder"
#~ msgid "Permissions available to: %(actor)s for %(obj)s"
#~ msgstr "permissions available to: %(actor)s for %(obj)s"
#~ msgid "Namespace"
#~ msgstr "namespace"
#~ msgid "Label"
#~ msgstr "label"
#~ msgid ", "
#~ msgstr ", "
#~ msgid " for %s"
#~ msgstr " for %s"
#~ msgid " to %s"
#~ msgstr " to %s"
#~ msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgstr ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."
#~ msgid " from %s"
#~ msgstr " from %s"
#~ msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permission %(title_suffix)s?"
#~ msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to revoke the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgstr ""
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
#~ msgid "Add new holder for: %s"
#~ msgstr "add new holder for: %s"
#~ msgid "Select"
#~ msgstr "Select"
#~ msgid "Class"
#~ msgstr "class"
#~ msgid "Default access control lists for class: %s"
#~ msgstr "default access control lists for class: %s"
#~ msgid "Permissions available to: %(actor)s for class %(class)s"
#~ msgstr "permissions available to: %(actor)s for class %(class)s"
#~ msgid "Add new holder for class: %s"
#~ msgstr "add new holder for class: %s"
#~ msgid "List of classes"
#~ msgstr "List of classes"
#~ msgid "permission"
#~ msgstr "permission"
#~ msgid "creator"
#~ msgstr "creator"
#: workflow_actions.py:129
msgid "Revoke access"
msgstr ""

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