Compare commits

..

3565 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
Roberto Rosario
043233f79e The UserEditView view add the "user" context variable and confuses the base.html template. Update the base template to use *request.user* instead of just *user* to access the currently logged user. GitLab issue #295. 2016-06-06 05:17:28 -04:00
Roberto Rosario
883e623a15 User self.setdout instead of print as per documentation: https://docs.djangoproject.com/en/1.8/howto/custom-management-commands/#django.core.management.BaseCommand.style 2016-06-06 04:55:07 -04:00
Roberto Rosario
728121b1bb Add help message when initialsetup migration phase fails. GitLab issue #296. 2016-06-06 04:54:05 -04:00
Roberto Rosario
5ba861f4aa Bump version to 2.1.2 2016-05-20 02:41:46 -04:00
Roberto Rosario
c09a237af1 Add development makefile. Update changelog. Add release notes for version 2.1.2 2016-05-20 02:34:18 -04:00
Roberto Rosario
d1c87fe102 Allow MetadataLookup to receive callables. Update the {{ users }} and {{ groups }} metadata lookup options to be callables that return a current list of users and groups and not a queryset. Add integrations test user_managements -> metadata app. Fixes GitLab #290. Thanks to @camiloforero for finding this one. 2016-05-19 19:33:58 -04:00
Roberto Rosario
4de3bb99e2 Add custom ModelForm class that supports field choice sorting. Use the new form class to sort the user profile language field and the document language fields. Thanks to Baptiste GAILLET @bat79a for the original idea. GitLab issue #292. 2016-05-19 18:18:45 -04:00
Roberto Rosario
004b8c9054 Bump version to 2.1.1 2016-05-17 05:08:45 -04:00
Roberto Rosario
8712c6ee37 PEP8 cleanups. 2016-05-17 05:08:21 -04:00
Roberto Rosario
11da303529 Update changelog. 2016-05-17 05:04:27 -04:00
Roberto Rosario
c97208f609 Ensure that the automatic index is created after the default document type is created. 2016-05-17 05:02:57 -04:00
Roberto Rosario
0bebef5ba9 Add documentation chapter on document languages. 2016-05-17 04:07:03 -04:00
Roberto Rosario
27aae995f0 The Tesseract OCR backend now reports if the requested language file is missing. GitLab issue #289. 2016-05-17 03:49:23 -04:00
Roberto Rosario
4e55b28c43 Update build status badge URL. 2016-05-17 01:37:03 -04:00
Roberto Rosario
3d722325ca Fix navigation object column resolution. Fixes GitLab issue #288. 2016-05-17 01:36:12 -04:00
Roberto Rosario
5959e7362d Merge remote-tracking branch 'origin/master' into merge 2016-05-14 01:55:36 -04:00
Roberto Rosario
352457f576 Don't add the current user to the template context to avoid triggering user managment action links. 2016-05-14 01:49:29 -04:00
Roberto Rosario
7a746653da Bump version to 2.1 2016-05-13 21:16:05 -04:00
Roberto Rosario
715d3c6768 Change log updates. 2016-05-13 21:15:54 -04:00
Roberto Rosario
3f9d21167d Update requirements in setup.py 2016-05-13 21:03:12 -04:00
Roberto Rosario
7fc5f24da9 Update release notes. 2016-05-13 21:02:55 -04:00
Roberto Rosario
5a885868f8 Remove unpaper from installation scripts. 2016-05-13 21:02:40 -04:00
Roberto Rosario
fdf4984468 Add jquery plugin matchHeigh and use it for the tools and setup buttons. GitLab issue #274. 2016-05-12 03:12:14 -04:00
Roberto Rosario
7da6408de0 Add second attempt to match a navigation object as an instance of a source. Use for instances from a queryset using .defer() or .only(). 2016-05-12 01:48:42 -04:00
Roberto Rosario
084f6d4b2f Add an aditional step to verify that the update button is checked on required metadata types. 2016-05-12 01:35:08 -04:00
Roberto Rosario
516920f833 Be more explicit about which requied metadata type is missing. 2016-05-12 01:33:10 -04:00
Roberto Rosario
bc79798723 Improve printable ACL representation. 2016-05-11 03:39:07 -04:00
Roberto Rosario
9c22fc9714 Fix link related object ACL resolution. GitLab issue #274. Thanks to Baptiste GAILLET @bat79a. 2016-05-11 03:37:51 -04:00
Roberto Rosario
39ba601074 Fix API endpoint view name in trashed document API tests. 2016-05-11 00:40:42 -04:00
Roberto Rosario
24df09ba71 Fix switch name, fake initial migrations not all. 2016-05-11 00:40:22 -04:00
Roberto Rosario
80e12b2020 Create a sample document index after the initial setup. GitLab issue #275. 2016-05-10 19:56:20 -04:00
Roberto Rosario
6dcbd62c15 Update all mention of "deleted documents" to "trashed documents" in the document app API. GitLab issue #276. 2016-05-10 19:03:00 -04:00
Roberto Rosario
5a15a34818 Add document metadata API tests. Fix document metadata list API view. 2016-05-10 18:57:50 -04:00
Roberto Rosario
a817aa887f Add document type metadata type API tests. Improve document type metadata type delete API view. 2016-05-10 16:52:29 -04:00
Roberto Rosario
f4a415a3e8 Add metadata type API tests. 2016-05-10 01:11:38 -04:00
Roberto Rosario
8ef65a82f5 Add missing minor migrations 2016-05-09 20:27:09 -04:00
Roberto Rosario
f80fa49166 Defer heavy fields when showing a simple list of all documents. 2016-05-09 19:57:05 -04:00
Roberto Rosario
55d53bf4d5 Equate queryset model instances with deffered fields to their parent model class when resolving UI model columns.
This will allow models using .defer or .only optimizations to render properly on list views.
2016-05-09 19:55:03 -04:00
Roberto Rosario
8d549df088 Index the is_stub and is_deleted document boolean fields. 2016-05-09 19:54:32 -04:00
Roberto Rosario
8075bfd0bc Update Spanish translation. 2016-05-08 21:57:23 -04:00
Roberto Rosario
ddc7dc39b0 Update to use Django 1.8.13 2016-05-08 01:31:00 -04:00
Roberto Rosario
2a5264bc2c Fix view context document resolution for the document smart link list view. Fixes GitLab issue #266. Thanks to Baptiste GAILLET @bat79a for the find. 2016-05-08 01:13:54 -04:00
Roberto Rosario
d934b2ee1e Now that autoadmin has an initial migration don't error out on existing tables. 2016-05-07 20:28:34 -04:00
Roberto Rosario
94b968963e Bump version to 2.1rc2 2016-05-05 23:44:18 -04:00
Roberto Rosario
bd648d0cb1 Postgresql needs typecasting for turning char fields into native UUID fields.
Conditionally run the necesary SQL for this to happen. GitLab issue #266 Thanks to Baptiste GAULLET @bat79a for finding the solution.
2016-05-05 23:17:32 -04:00
Roberto Rosario
e3d49e1352 Use now django-autoadmin 1.1.1 2016-05-05 23:17:08 -04:00
Roberto Rosario
06ecbfeba2 Flake8 cleanups. 2016-05-04 15:58:17 -04:00
Roberto Rosario
b15d419172 Fix statistics detail view error. GitLab issue #270. @bat79a 2016-05-04 15:57:09 -04:00
Roberto Rosario
09640d3e43 Change the permission_document_restore permission label from 'deleted' to 'trashed'. 2016-05-04 01:40:51 -04:00
Roberto Rosario
924cb21a83 Add the permission_document_restore permission to the available permission for document's ACLs. GitLab issue #267 @bat79a 2016-05-04 01:39:32 -04:00
Roberto Rosario
5da301a861 Change the variable name to better represent the class of the instance. 2016-05-04 00:11:18 -04:00
Roberto Rosario
afb44798e0 Parent object of the index node being passed to the ACL module for permission test was a function by mistake and not the result of the function which is the index isntance. Fixes Gitlab issue #268 @bat79a 2016-05-04 00:08:44 -04:00
Roberto Rosario
a179a19749 Improve document indexing tests and add test for GitLab issue #268 @bat79a 2016-05-04 00:07:19 -04:00
Roberto Rosario
269d8fb5b3 Remove 'is_staff' and 'is_superadmin' from views and serializers. Add user API tests. 2016-05-01 17:06:37 -04:00
Roberto Rosario
0a8f429d04 Bump version to 2.1.0rc1 2016-04-28 02:44:42 -04:00
Roberto Rosario
b41c2ce02d Add missing dependency to setup.py 2016-04-28 02:44:17 -04:00
Roberto Rosario
15ed0a10e2 User self.stderr instead of print. Colorize the error message. 2016-04-28 01:54:17 -04:00
Roberto Rosario
ea734db79e Update mirror argument parsing to work with Django 1.8. 2016-04-28 01:34:18 -04:00
Roberto Rosario
23f40ac4aa PEP8 cleanups. 2016-04-27 20:31:02 -04:00
Roberto Rosario
3384c06c03 Mock the gpg tests that require internet access. 2016-04-27 20:19:26 -04:00
Roberto Rosario
f944f9ebbc Add smart link dynamic label test. 2016-04-27 18:46:58 -04:00
Roberto Rosario
c6eea8ba64 Don't perform OCR in folder model tests. 2016-04-27 18:19:30 -04:00
Roberto Rosario
af273fbfc3 Remove the creation of a test user. 2016-04-27 18:10:21 -04:00
Roberto Rosario
8a58ee2124 Expand the documentation chapter on file storage. 2016-04-27 15:16:11 -04:00
Roberto Rosario
e824fbffcf Add a documentation chapter regarding settings. 2016-04-27 15:15:57 -04:00
Roberto Rosario
9ab03d2c16 Expand the documentation chapter on transformations. 2016-04-27 14:54:50 -04:00
Roberto Rosario
232cb5e38d Synchronize and compile translations. 2016-04-27 14:54:33 -04:00
Roberto Rosario
5775f5aeaa Run makemessage for apps. 2016-04-27 14:20:45 -04:00
Roberto Rosario
1bda472287 Update roadmap 2016-04-26 18:31:48 -04:00
Roberto Rosario
6931d2ad81 Add direct to watched folder scanning issue to roadmap. 2016-04-26 18:02:59 -04:00
Roberto Rosario
f5609d402a Add backup and ocr backend documentation chapters. 2016-04-26 18:02:45 -04:00
Roberto Rosario
9d7e8d6123 Add roadmap documentation chapter. 2016-04-26 17:10:38 -04:00
Roberto Rosario
0299353fb7 Remove bold markup from all mentions of "Mayan EDMS" 2016-04-26 16:52:17 -04:00
Roberto Rosario
0fa26cda8b Add mailing documentation. 2016-04-26 16:42:25 -04:00
Roberto Rosario
19b43e9504 Remove donation options, add support info. 2016-04-25 14:42:02 -04:00
Roberto Rosario
232b7f644b Update sphinx autorebuild version used. 2016-04-25 14:37:29 -04:00
Roberto Rosario
f020a7a1c6 Expand v2.1 release notes. 2016-04-21 17:01:45 -04:00
Roberto Rosario
756108af8d Disable GitLab CI MySQL testing until GitLab mysql container isssue are fixed. 2016-04-04 23:05:06 -04:00
Roberto Rosario
e3200511ac Small query optimization. 2016-04-04 23:04:35 -04:00
Roberto Rosario
b04421438e Update changelog. 2016-04-04 23:04:20 -04:00
Roberto Rosario
e5743d8964 Remove Django 1.7 and add Django 1.9 to the tox test matrix. 2016-04-04 16:25:52 -04:00
Roberto Rosario
be392823bb Remove all GPG interface module. 2016-04-04 14:55:37 -04:00
Roberto Rosario
f042533576 Put event action description in past tense. 2016-04-04 13:51:23 -04:00
Roberto Rosario
33aefdaef7 Add document download and document preview event logging. Add corresponding tests. Closes GitLab issue #261. 2016-04-04 13:49:14 -04:00
Roberto Rosario
c6fb008562 Workaround problem with gpg embedded signatures corrupting the source file by using clearsign=False by default. 2016-04-01 23:28:34 -04:00
Roberto Rosario
9a0dd8c192 Add embedded signing test. 2016-04-01 12:43:06 -04:00
Roberto Rosario
07cd6d078f No need to typecast the result 2016-04-01 12:33:11 -04:00
Roberto Rosario
3d74bdb590 Add document embedded signature signing support. 2016-03-31 19:06:31 -04:00
Roberto Rosario
14988bab34 Add key upload view, permission, link and test. 2016-03-30 19:05:53 -04:00
Roberto Rosario
e8c0951b0d Add key download view, permission, link and test. 2016-03-30 18:29:39 -04:00
Roberto Rosario
94b00c7ce5 Replace document type selection widget with an opened select list HTML control. 2016-03-30 17:19:27 -04:00
Roberto Rosario
09b71144b6 Add support for signing documents from the UI. Mayan EDMS is now in the major leagues :) 2016-03-30 03:47:58 -04:00
Roberto Rosario
bc59613945 Add key content sign tests. 2016-03-30 02:32:08 -04:00
Roberto Rosario
24d8287072 Add Key usage for signing permission. 2016-03-30 02:30:50 -04:00
Roberto Rosario
8baca70ef5 Add link to document facet menu to display its latest version signatures. 2016-03-30 02:00:17 -04:00
Roberto Rosario
1e7e17bdce Insert the resolved_object context variable in the test views. 2016-03-30 01:42:17 -04:00
Roberto Rosario
c6890c487a Extract a file like object's file name as per docs (using the .name property) and not an unicode representation of the file object instance. Reference: https://docs.python.org/2.7/library/stdtypes.html#file-objects 2016-03-30 01:32:53 -04:00
Roberto Rosario
8b28bdd443 Add missing icon to the all document signature verification tool link. 2016-03-29 21:03:16 -04:00
Roberto Rosario
7da6cf1863 Add view, task and post upgrade signal handler to verify all documents for embedded signatures. 2016-03-29 20:13:58 -04:00
Roberto Rosario
d83a80c65b Add document signature app link tests. 2016-03-29 16:28:24 -04:00
Roberto Rosario
739b96ed37 Add related object link permission support. 2016-03-29 16:27:53 -04:00
Roberto Rosario
0783806fd1 Add signature deletion view tests. 2016-03-29 13:52:35 -04:00
Roberto Rosario
b9d75e525f Convert the signature download view to CBV and add corresponding test. 2016-03-29 05:12:04 -04:00
Roberto Rosario
3b593e10fd Add django-downloadview to the used packages. Add a Mayan generic sub class download view based on django-downloadviews' virtual download view class. 2016-03-29 05:11:08 -04:00
Roberto Rosario
c1cb983869 Just display the signature type to conserve UI space. 2016-03-28 14:57:19 -04:00
Roberto Rosario
e5c47f16d4 Update document version signature upload view to CBV and add test. 2016-03-28 14:56:49 -04:00
Roberto Rosario
35df61bca1 Add view test for the document signatures app. 2016-03-27 03:29:19 -04:00
Roberto Rosario
e708e0250e Support related object permission ACLs for more than just 1 level of relationship. 2016-03-27 03:28:14 -04:00
Roberto Rosario
fa1450fe5a PEP8 cleanups. 2016-03-27 03:27:56 -04:00
Roberto Rosario
0ffe20befd Fix link resolution in the document signature list view. This view exposes 3 navigable objects, use 'resolved_object' for correct link resolution. 2016-03-26 16:28:08 -04:00
Roberto Rosario
5de63c4477 Add support for verifying and unverifying signatures after a key is added or deleted. 2016-03-26 04:23:16 -04:00
Roberto Rosario
1f0dedc9aa Add more fields to signature detail form. 2016-03-26 04:06:43 -04:00
Roberto Rosario
779a14977d Add admin interface for embedded and detached signatures. 2016-03-26 04:06:08 -04:00
Roberto Rosario
9744cdd358 Redirect to public or private key list after deletion of a key. 2016-03-26 04:05:40 -04:00
Roberto Rosario
4a4573fb1b Add missing gpg directory chmod. 2016-03-26 04:05:15 -04:00
Roberto Rosario
467ad0dadb Add more logging. Add preloading of keys to decrypt_file method. Cleanups. 2016-03-26 04:04:34 -04:00
Roberto Rosario
ffb29e0f54 Remove obsolete Document property. Use resolved_object in documents links to avoid context variable clashes with signatures. 2016-03-25 04:12:44 -04:00
Roberto Rosario
7e801ef02e Fix verifyresult timestamp field. Remove Key ID property and verify return a separate small key id without a fingerprint when the signing key is not available. 2016-03-25 04:09:30 -04:00
Roberto Rosario
09b92858d9 Raise MayanAppConfig initialization exception if they are not bening about missing URLs. 2016-03-25 04:08:25 -04:00
Roberto Rosario
355190e919 Start of document_signatures app refactor. 2016-03-25 04:07:57 -04:00
Roberto Rosario
ab6e2d8c23 Fix verification using detached signature. 2016-03-24 02:47:53 -04:00
Roberto Rosario
d41dac5587 Add support for verification of detached signatures. 2016-03-24 00:27:49 -04:00
Roberto Rosario
a5f3d46373 Add a cleartext test file with a detached signature. 2016-03-24 00:26:53 -04:00
Roberto Rosario
c8f7c4ef86 Update document signature app to work with new django_gpg changes. 2016-03-23 19:57:45 -04:00
Roberto Rosario
e96f748439 Add key_id property to SignatureVerification class 2016-03-23 19:57:16 -04:00
Roberto Rosario
048ba4b5cd Add file decryption support. 2016-03-23 19:47:41 -04:00
Roberto Rosario
45774ccdcf Add SignatureVerification class to return verification results. Add support for specifing against which key to verify a signature. Add support to preload all keys before verifing a signature. All test for specific key verificatio and all key preloading. 2016-03-23 18:56:29 -04:00
Roberto Rosario
2f7c6ed0d9 Add embedded file signature verification. 2016-03-23 13:03:48 -04:00
Roberto Rosario
cd077cb076 Add more tests for the Key model. Remove the key_id field and made it a property derived from the fingerprint. 2016-03-23 11:58:08 -04:00
Roberto Rosario
f82b2000c3 Properly render date widgets on form instances. 2016-03-23 00:37:26 -04:00
Roberto Rosario
2748d5959f Place KeyManage on a seprate module. Convert views to use the new Key model. Add KeyStub class and use it to return query results. Add Key detail link and view. Remove the setting for multiple keyservers. 2016-03-23 00:35:32 -04:00
Roberto Rosario
189cda437f Add model test. Finish file signing method. Add key signing exceptions. 2016-03-22 18:02:40 -04:00
Roberto Rosario
dc5d25fd00 Initial code for database stored GPG keys. 2016-03-22 05:10:54 -04:00
Roberto Rosario
ccd6e8c88c Add document mailing view tests. 2016-03-21 18:59:22 -04:00
Roberto Rosario
c9010f6b5e Add test for the document link mailing view. 2016-03-21 17:42:24 -04:00
Roberto Rosario
3d970036b2 Sync translations with Transifex 2016-03-21 17:38:15 -04:00
Roberto Rosario
6fe778051e Update translation source files for all apps. Add Message of the Day source message file. 2016-03-21 16:53:09 -04:00
Roberto Rosario
7dc260046b Update the document type quick label model verbose name from 'Quick rename template' to 'Quick label'. 2016-03-21 16:25:16 -04:00
Roberto Rosario
dda0bbdba9 Add test for the document type quick label creation view. 2016-03-21 16:24:41 -04:00
Roberto Rosario
66d2baafb8 Convert document type quick label creation view to CBV. 2016-03-21 16:24:23 -04:00
Roberto Rosario
18a3773b65 Update changelog 2016-03-21 15:53:27 -04:00
Roberto Rosario
c43fe38ac9 Use Python's string.partition instead of find. 2016-03-21 04:11:50 -04:00
Roberto Rosario
26fce66451 Change pngtoppm to convert PDFs to JPEG instead of PNGs. 2016-03-21 03:49:11 -04:00
Roberto Rosario
28f3b7551d Consolidate document page image generation as binary or base64 to a single place at the converter class level. 2016-03-21 03:44:45 -04:00
Roberto Rosario
37d6070cab Convert the document version revert view to CBV. Add document version revert view tests. 2016-03-21 02:37:39 -04:00
Roberto Rosario
c07f5a7820 Add object permission checking to the generic ConfirmView. 2016-03-21 02:37:14 -04:00
Roberto Rosario
ad0643b62a Convert document cache clear view to CBV. Update message and link label to include the word 'image'. 2016-03-21 02:11:56 -04:00
Roberto Rosario
bd3e31efa4 Update document_reset_view to CBV. 2016-03-21 02:05:05 -04:00
Roberto Rosario
308472b92b Delete temporary directory after testing. 2016-03-20 16:35:08 -04:00
Roberto Rosario
a0b31d4bfe Convert the staging file deletion view to CBV. Add staging file deletion permission. 2016-03-20 16:34:39 -04:00
Roberto Rosario
7be6e8c6ed Add unicode filename test for the StagingFile class. 2016-03-20 15:59:49 -04:00
Roberto Rosario
6ec7a2ca4d Support unicode filenames in staging folders. 2016-03-20 15:40:42 -04:00
Roberto Rosario
b32563ac8e Add python 3.5 and remove python 3.2 from tox.ini. 2016-03-20 01:21:48 -04:00
Roberto Rosario
9191c04eb9 Update changelog. 2016-03-19 03:00:18 -04:00
Roberto Rosario
145161cef4 PEP8 cleanups. 2016-03-19 03:00:03 -04:00
Roberto Rosario
7cde1fe78f Add ACLs to document indexes. Convert all document indexing views to CBV. Remove the document index setup permission. Add view tests to the document indexing app. Use MPTT methods and stop relying on undocumented API. 2016-03-19 02:51:45 -04:00
Roberto Rosario
286a6ba9b8 Enable object access check via related attribute in generic CBV. 2016-03-19 02:51:03 -04:00
Roberto Rosario
2328355754 Don't error out when inspecting ACL permissions for an object with no registered permissions. 2016-03-19 02:20:36 -04:00
Roberto Rosario
45f90cce50 Return the instance when a document is added as recent for an user. 2016-03-19 02:20:01 -04:00
Roberto Rosario
50f473b698 Improve translation template. 2016-03-19 02:00:30 -04:00
Roberto Rosario
ed8ac47240 Extract context object name from the models meta options. 2016-03-19 01:57:30 -04:00
Roberto Rosario
34184e0726 Fix typo in management command name. 2016-03-18 20:58:06 -04:00
Roberto Rosario
66a49c8335 Don't assume all object have a proxy access accessor. 2016-03-18 20:57:39 -04:00
Roberto Rosario
042cef3d0e Add ACL view tests. 2016-03-18 20:57:22 -04:00
Roberto Rosario
adcf946fbb Sort ACL app views. Don't error out on duplicate ACL entry creation (same document + role), but instead redirect to existing ACL entry. 2016-03-18 20:56:41 -04:00
Roberto Rosario
5ac21faced Sort folder app views. 2016-03-18 19:51:29 -04:00
Roberto Rosario
de4948b84f Rename acl creation view from acl_new to acl_create for uniformity. 2016-03-18 19:44:25 -04:00
Roberto Rosario
8302e13d80 Add deleted document list filtering tests. 2016-03-18 18:47:32 -04:00
Roberto Rosario
30738a922c Properly filter deleted document queryset. 2016-03-18 18:46:26 -04:00
Roberto Rosario
473fc09e1a .index is a function not an attribute, add missing parentheses. 2016-03-18 00:23:43 -04:00
Roberto Rosario
4c4409aa1e PEP8 cleanups. 2016-03-17 00:44:54 -04:00
Roberto Rosario
5079b2790e Add Smart link view tests. 2016-03-17 00:39:04 -04:00
Roberto Rosario
67bb84c778 Convert smart link condition create, edit and delete views to CBV. 2016-03-16 18:26:40 -04:00
Roberto Rosario
c3149a58d6 Sort variables. 2016-03-16 18:26:12 -04:00
Roberto Rosario
5bb04cc8f4 Add newly uploaded document to the recent document list of the user. 2016-03-16 16:42:01 -04:00
Roberto Rosario
a6c9393aa0 Permission app's views are all CBV, don't specify view module to preload. 2016-03-16 16:40:39 -04:00
Roberto Rosario
e2bfece9ff Update document OCR content view to a CBV. 2016-03-16 16:40:17 -04:00
Roberto Rosario
0ecfb83d14 Fix metadata edit view test. 2016-03-15 19:03:42 -04:00
Roberto Rosario
6bf352ecbb Fix queryset assigment, should always be of MetadataType not DocumentTypeMetadataType, errors out on Postgres. 2016-03-15 18:39:48 -04:00
Roberto Rosario
8ae61b87b5 Update requirements in setup.py. 2016-03-15 04:22:04 -04:00
Roberto Rosario
aeff40331d Update changelog and release notes. 2016-03-15 04:14:51 -04:00
Roberto Rosario
86af663e91 Use MPTT's native get_level method. 2016-03-15 04:14:34 -04:00
Roberto Rosario
1a20d93e4c Add new split move index navigation. 2016-03-15 04:11:44 -04:00
Roberto Rosario
3d36f1b828 Update Document model's uuid field to use Django's native UUIDField class. 2016-03-15 01:44:34 -04:00
Roberto Rosario
928d86088a Update release notes for 2.1 2016-03-14 22:35:54 -04:00
Roberto Rosario
adcc37d8a4 Remove ununsed metadata function. 2016-03-14 22:35:27 -04:00
Roberto Rosario
c2c95787cb Improve folder and tag creation api test. 2016-03-14 20:38:00 -04:00
Roberto Rosario
9823202405 Remove typecasting of file objects into Django's File class, not needed in Django >1.8.x. 2016-03-14 20:20:54 -04:00
Roberto Rosario
f5d2ea7d9e Update Django version to 1.8.11. 2016-03-14 20:08:51 -04:00
Roberto Rosario
858648782b Update Folder creation and Tag creation API calls to return the id of the created instances. 2016-03-14 04:48:22 -04:00
Roberto Rosario
35cc0ea1d6 Exclude root API and API doc URLs. 2016-03-14 04:15:13 -04:00
Roberto Rosario
3fa9092d57 Complete changes needed to add the Message of the Day app. Closes GitLab issue #222. 2016-03-14 01:53:15 -04:00
Roberto Rosario
71946491b3 Show exception message when an app's URL can't be loaded. 2016-03-14 01:52:40 -04:00
Roberto Rosario
9ba03ff0cb Fix datetime widget rendering. 2016-03-14 01:52:16 -04:00
Roberto Rosario
ba2be644f6 Add note about accessing runserver from other machines. 2016-03-14 01:51:39 -04:00
Roberto Rosario
fba236b0fc Remove Patreon donation link. 2016-03-14 01:51:22 -04:00
Roberto Rosario
083d6e6fc5 Add links, views and urls. Rename main model to just 'Message'. 2016-03-13 21:05:49 -04:00
Roberto Rosario
daa3ca2430 Initial commit to support messages of the day. GitLab issue #222. 2016-03-13 00:56:31 -04:00
Roberto Rosario
6eb868bdfb Add missing migration. 2016-03-12 23:16:18 -04:00
Roberto Rosario
d444835f99 Update changelog. 2016-03-12 04:27:49 -04:00
Roberto Rosario
6b79824daf Update uploader style to better match theme and template used. Use the new uploader for new documents only not for document versions. 2016-03-12 04:25:42 -04:00
Roberto Rosario
642c46ec6f Move dropzone code and style loading to the sources app. Improve dropzone widget appearance. Add Javascript translation catalog support. 2016-03-12 00:49:18 -04:00
Roberto Rosario
452bd45407 Initial support for HTML5 uploads. GitLab issue #162. 2016-03-10 05:20:49 -04:00
Roberto Rosario
ed2f2480e6 Fix Dutch locale typo, close GitLab issue #256. Add placeholder for 2.1 release notes. 2016-03-10 03:39:50 -04:00
Roberto Rosario
60b7ed6a6d PEP8 cleanups 2016-03-10 03:35:15 -04:00
Roberto Rosario
e10ff8e8bd Fix tests. 2016-03-10 03:34:50 -04:00
Roberto Rosario
dd2cef50c8 Fix document preview view. 2016-03-10 03:21:20 -04:00
Roberto Rosario
3532ed7c1e Update changelog. 2016-03-09 23:35:34 -04:00
Roberto Rosario
180c38b746 PEP8 cleanups. 2016-03-09 23:31:03 -04:00
Roberto Rosario
45e90da219 Convert the checkout detail view to use the DetailView CBV. Update usage the DetailView CBV in the DocumentProperties view. Add checkout details view permission. 2016-03-09 23:27:02 -04:00
Roberto Rosario
6f02d96212 Update current user detail view to use DetailView CBV. 2016-03-09 23:26:00 -04:00
Roberto Rosario
2c9a01bdfc Improve the date localte handling of the DetailView and DetailForm. 2016-03-09 23:22:31 -04:00
Roberto Rosario
216673c691 Sort variables 2016-03-09 15:58:53 -04:00
Roberto Rosario
17f129e9e6 Add admin interface to the checkouts app. 2016-03-09 15:40:39 -04:00
Roberto Rosario
ba4768bcbb Revert icons to their original sizes. 2016-03-09 15:40:22 -04:00
Roberto Rosario
5b6b35f1c3 Make document type deletion period optional. 2016-03-09 14:39:16 -04:00
Roberto Rosario
9b315a7cf4 Simple list to tupple and queryset count optimizations. 2016-03-09 14:25:43 -04:00
Roberto Rosario
bccf511178 Add per document type document creation access control test. 2016-03-09 14:24:57 -04:00
Roberto Rosario
330e01972c Hide document facet menu links on small displays. 2016-03-08 04:21:29 -04:00
Roberto Rosario
4d362c3957 Add icons to the document face menu links. Increase icon size by 10%. Increase icon to text spacing to 3px. 2016-03-08 04:17:57 -04:00
Roberto Rosario
5a70bd0995 Remove document clone function. 2016-03-08 03:44:22 -04:00
Roberto Rosario
a7faf7f427 Implement per document type document creation permission. Closes GitLab issue #232. 2016-03-08 03:39:23 -04:00
Roberto Rosario
9da4710c0f Deselect the update checkbox for optional metadata by default. 2016-03-08 02:38:15 -04:00
Roberto Rosario
d05345ed3c Update tests to match generic CBV success message. 2016-03-08 02:37:22 -04:00
Roberto Rosario
ad328b2c3b Silence lock manager model import warning. 2016-03-08 02:32:03 -04:00
Roberto Rosario
927c0bf657 Remove remaining usage of django.contrib.auth.model.User. GitLab issue #225. 2016-03-08 02:21:03 -04:00
Roberto Rosario
5d8dd19895 Merge remote-tracking branch 'origin/development' into development 2016-03-08 01:23:36 -04:00
Roberto Rosario
730cbe922d Update changelog. 2016-03-08 01:23:16 -04:00
Roberto Rosario
1c65b389ee Remove concept of ownership from folders by removing the user field.
"Ownership" now is now determined by ACL of a folder, like the rest of the objects in the system.
2016-03-08 01:20:10 -04:00
Roberto Rosario
74fd47d86e Unify handling for generic CBV views errors and 'object_name'. 2016-03-08 01:13:06 -04:00
Roberto Rosario
014ba4f4fe Remove strip spaces middleware and use spaceless template tag instead. Closes GitLab issue #255. 2016-03-07 20:02:26 -04:00
Roberto Rosario
e85002d4ac Add view test to check for duplicated folder creation. 2016-03-07 17:02:19 -04:00
Roberto Rosario
ce6a1f4020 Merge branch 'master' into feature/merge_master 2016-03-03 16:46:11 -04:00
Roberto Rosario
378a346e79 Remove Docker and Docker Componse files. These files now live in https://gitlab.com/mayan-edms/mayan-edms-docker. 2016-02-14 21:30:08 -04:00
Roberto Rosario
11a9d10e0f Add 2.0.2 release notes. 2016-02-14 21:06:33 -04:00
Roberto Rosario
3fdc5e523a Strip tags from browser title. 2016-02-13 17:35:43 -04:00
Roberto Rosario
ed70f96b49 Update changelog. 2016-02-11 04:05:08 -04:00
Roberto Rosario
c5c0ad0cce Revert "Configure GitLab-CI mysql service to use UTF-8 and fix failing test in MySQL."
This reverts commit bfa6c51f86.
2016-02-11 03:55:27 -04:00
Roberto Rosario
bfa6c51f86 Configure GitLab-CI mysql service to use UTF-8 and fix failing test in MySQL. 2016-02-11 03:08:10 -04:00
Roberto Rosario
0295f7feb5 Add 2 second delay to workaround MySQL not storing millisecond part of timestamp. 2016-02-10 12:11:51 -04:00
Roberto Rosario
7db560d799 Increase delay in test from 1 second to 2 seconds to workaround MySQL truncating millisecond part of timestamp. 2016-02-10 12:10:42 -04:00
Roberto Rosario
c3b0146b96 Update changelog. 2016-02-10 03:03:04 -04:00
Roberto Rosario
f3d1faebf1 Move metadata form value validation to .clean() and update field data may not be available yet when validatng the value field. Only validate form value if form has a metadata type associated. 2016-02-10 02:27:42 -04:00
Roberto Rosario
03e7339f9b Only extract validation error messages from ValidationError exception instances. 2016-02-10 02:26:57 -04:00
Roberto Rosario
f1b090f8d6 Don't store empty metadata value if the update checkbox is not checked. 2016-02-09 19:41:43 -04:00
Roberto Rosario
ca326440a2 Revert "Add ability to disable the metadata update column. Disable the metadata update column in the new document upload wizard."
This reverts commit 511e397850.
2016-02-09 19:37:52 -04:00
Roberto Rosario
7e25ff0c0b Add missing browser title generation tag to wizard template. 2016-02-09 19:15:32 -04:00
Roberto Rosario
79e1889e95 Bump version to 2.0.2 2016-02-09 19:08:13 -04:00
Roberto Rosario
16a1a4d3af Fix test test_get_document_version_content, API view return document version page OCR content not document version OCR content. 2016-02-09 19:07:24 -04:00
Roberto Rosario
c67080c2d3 Update HISTORY.rst 2016-02-09 13:47:00 -04:00
Roberto Rosario
511e397850 Add ability to disable the metadata update column. Disable the metadata update column in the new document upload wizard. 2016-02-09 13:43:58 -04:00
Roberto Rosario
59624d75cb Fix GitLab issue #250 "Empty optional lookup metadata trigger validation error". Thanks to LeVon Smoker for the find and for the proposed fix.
Reference: https://groups.google.com/forum/#!topic/mayan-edms/VUGRl4xX-1c
2016-02-09 13:00:45 -04:00
Roberto Rosario
2300f4d793 Install testing dependencies when installing development dependencies. 2016-02-09 13:00:24 -04:00
Roberto Rosario
652613452b Add new document upload wizard step to attach tags. GitLab issue #208. 2016-02-05 03:25:27 -04:00
Roberto Rosario
74d8f1d994 Add debug logging during general exception catch. 2016-02-04 22:22:05 -04:00
Roberto Rosario
10eb7d49b2 Update API tests to use login instead of force_authenticate. 2016-02-04 17:39:27 -04:00
Roberto Rosario
8614bc4bfc Remove included login required middleware using django-stronghold instead (http://mikegrouchy.com/django-stronghold/). GitLab Issue #206 2016-02-04 15:33:20 -04:00
Roberto Rosario
2bb96ca98d Add HISTORY entry for upcomming version 2.1. 2016-01-28 06:09:27 -04:00
Roberto Rosario
eae11a1b0c Fix remaining tests for Django 1.8. Closes GitLab issue #246. 2016-01-28 06:04:28 -04:00
Roberto Rosario
2ebb84f18f Remove remaining direct references to the User model. Closes GitLab issue #225. 2016-01-28 05:55:15 -04:00
Roberto Rosario
27d8644438 Silence 90% of remaining Django 1.8 model warnings. 2016-01-28 05:43:08 -04:00
Roberto Rosario
d5c73eaad6 Rename the 'Content' search label to 'OCR' for proper meaning. 2016-01-28 04:42:26 -04:00
Roberto Rosario
09f4d674a4 Pass the request instance to properly resolve the setup and tools links. 2016-01-28 04:40:31 -04:00
Roberto Rosario
830e83d107 Remove unused template. 2016-01-28 04:21:18 -04:00
Roberto Rosario
24644e3538 Remove select_related using reverse related name field. 2016-01-27 18:34:32 -04:00
Roberto Rosario
2dd4ca1f13 Workaround undocumented backward incompatible change in python-gnupy 0.3.8. 2016-01-26 05:14:07 -04:00
Roberto Rosario
59661f643b Update API pagination for DRF 3.3.2. 2016-01-26 03:55:44 -04:00
Roberto Rosario
0b830c380d Silence furder Django 1.8 warnings about ContentType imports. Fix get_model in handlers. 2016-01-26 03:55:10 -04:00
Roberto Rosario
6b3fe7a876 Fix futher Django Warnings. 2016-01-22 04:52:47 -04:00
Roberto Rosario
20535529dc Fix address in about template. 2016-01-22 04:51:48 -04:00
Roberto Rosario
ac9bc9454d Update source app code for new extracted formtools package. 2016-01-22 04:02:12 -04:00
Roberto Rosario
ca15cadc5e Add missing migration for pycountry update. 2016-01-22 04:01:49 -04:00
Roberto Rosario
5ec3025120 Use OneToOneField instead of a ForeignKey with unique=True. 2016-01-22 04:01:15 -04:00
Roberto Rosario
fbb22affaa Update pycountry code to new 1.19 backwards incompatible changes. 2016-01-22 04:00:30 -04:00
Roberto Rosario
b19225e95d Load models by calling AppConfig.get_model method instead. 2016-01-22 03:59:42 -04:00
Roberto Rosario
2f344f299f Update all requirements to most recent version. Update Django to 1.8.8 LTS. 2016-01-22 03:58:00 -04:00
Roberto Rosario
699bda40c2 Bump version to 2.0.1. 2016-01-22 00:30:32 -04:00
Roberto Rosario
f8da7fe1a9 Revert "Testing base settings now import from settings/local.py first."
This reverts commit 2f298df1a0.
2016-01-17 00:44:57 -04:00
Roberto Rosario
c5d4d3e95b Revert "Update changelog."
This reverts commit eadce3bd77.
2016-01-17 00:44:21 -04:00
Roberto Rosario
eadce3bd77 Update changelog. 2016-01-17 00:25:05 -04:00
Roberto Rosario
2f298df1a0 Testing base settings now import from settings/local.py first. 2016-01-17 00:23:51 -04:00
Roberto Rosario
acba510b90 Add mention that repository cloning is needed to install via Vagrant. 2016-01-17 00:08:15 -04:00
Roberto Rosario
29ba24336c Remove sudo, this script is meant to run as root. 2016-01-17 00:07:00 -04:00
Roberto Rosario
a3a589fee8 Update Vagrantfile to provision a production box too. 2016-01-12 14:32:47 -04:00
Roberto Rosario
460076004a Fix GitLab issue #245, "Add multiple metadata not possible" 2016-01-12 03:48:21 -04:00
Roberto Rosario
79c5a103a2 Fix GitLab issue #243, "System allows a user to skip entering values for a required metadata field while uploading a new document". 2016-01-12 02:40:47 -04:00
Roberto Rosario
6c0ce71086 Add production install script. 2016-01-11 22:24:41 -04:00
Roberto Rosario
70761c055b Merge branch 'master' of gitlab.com:mayan-edms/mayan-edms 2016-01-08 03:37:14 -04:00
Roberto Rosario
3e1fc43112 Clarify some instruction steps. 2016-01-08 03:35:50 -04:00
Roberto Rosario
4da79ea1d1 Clarify some instructions steps. 2016-01-08 03:20:48 -04:00
Roberto Rosario
e95e90cc47 Add more donation options. 2015-12-29 01:46:41 -04:00
Roberto Rosario
7f34ff7875 Improve docker composer instructions. 2015-12-18 03:56:45 -04:00
Roberto Rosario
02ba174a40 Add missing uwsgi.ini file to the deployment installation chapter. Simplified Docker and Docker Compose instructions. 2015-12-18 03:13:15 -04:00
Roberto Rosario
8c763cec0f Expand docker and docker compose instruction. 2015-12-04 21:15:05 -04:00
Roberto Rosario
c20a63760b Update references from GitHub to GitLab. 2015-12-04 05:45:06 -04:00
Roberto Rosario
e702d45c41 Update release date. 2015-12-04 05:42:36 -04:00
Roberto Rosario
a3530f3627 Update all branch references from development to master. 2015-12-04 05:36:01 -04:00
Roberto Rosario
1d4040a3d3 Merge branch 'development' 2015-12-04 05:32:13 -04:00
Roberto Rosario
9062d8817b Bump version to 2.0.0 final. 2015-12-04 05:27:48 -04:00
Roberto Rosario
d0ec5ef87a Update release date. 2015-12-04 05:27:42 -04:00
Roberto Rosario
cf10f7f528 Add Docker and Docker Compose deploying instructions. 2015-12-04 05:09:42 -04:00
Roberto Rosario
79b79fa0f9 Point to official docker hub image. 2015-12-04 05:09:26 -04:00
Roberto Rosario
b5109f679c Point to release version. 2015-12-04 05:08:59 -04:00
Roberto Rosario
76f09d6c60 Add docker compose file. 2015-12-03 03:12:33 -04:00
Roberto Rosario
1f8f860f2c Merge branch 'development' into feature/docker 2015-12-03 02:08:53 -04:00
Roberto Rosario
7f0b37f8b6 Show overview gif animation on docs index. 2015-12-03 02:08:01 -04:00
Roberto Rosario
acebfaedd4 Update overview GIF animation. 2015-12-03 02:07:46 -04:00
Roberto Rosario
37647ca27a Tweak the first time login panel width. 2015-12-02 04:30:25 -04:00
Roberto Rosario
d62ee8ad19 Documentation updates. Add screenshots chapter. 2015-12-02 04:09:49 -04:00
Roberto Rosario
0a9d0fc69b Rename entrypoint script. 2015-11-30 02:41:09 -04:00
Roberto Rosario
69ae1ead57 Don't demonize celery worker, send to the background instead. 2015-11-30 02:40:40 -04:00
Roberto Rosario
1cf1065f8a Delete more apt-get files to decrease docker image size. 2015-11-30 02:40:12 -04:00
Roberto Rosario
63102765cd Ignore all of the repository when building the docker image. 2015-11-30 01:06:18 -04:00
Roberto Rosario
ad439fb9ce Initial commit required to build a Docker image. 2015-11-29 19:00:21 -04:00
Roberto Rosario
6ef9b25e74 Document spell check and format cleanup. Small content fixes. 2015-11-29 18:38:19 -04:00
Roberto Rosario
1ad68a61f5 Only create the initial document type and web source if none exists. 2015-11-19 00:45:04 -04:00
Roberto Rosario
3d1d1fb44f Fix coverage badge markup. Remove wheel badge. 2015-11-04 18:15:58 -04:00
Roberto Rosario
24da09b360 Add wheel to the development requirements. 2015-11-04 17:54:04 -04:00
Roberto Rosario
6f0805c8dd Bump version to 2.0.0 release candidate 1. 2015-11-04 17:15:38 -04:00
Roberto Rosario
1867c589f5 Remove admin user tests for the documents app views. SPlit all view test into priviledged and unpriviledged tests. 2015-11-04 01:43:44 -04:00
Roberto Rosario
97c3a74331 Fix incorrect ACL check method. 2015-11-04 01:43:11 -04:00
Roberto Rosario
ec4324a3d6 Make arguments explicit. 2015-11-04 01:42:43 -04:00
Roberto Rosario
13b167abc9 Split mode documents app view tests into test with and without permissions. 2015-11-03 23:32:09 -04:00
Roberto Rosario
3a6cf48068 Return PermissionDenied when user has no sufficient permission and accessting one document. 2015-11-03 16:31:03 -04:00
Roberto Rosario
8a50721117 Expand and improve the documents app view tests. 2015-11-03 01:37:35 -04:00
Roberto Rosario
23270e948c PEP8 cleanups. 2015-11-02 17:40:27 -04:00
Roberto Rosario
750127eb92 Raise PermissionDenied on single document access, show 'Selected at least 1 document' when the multidocument view is used. GL issue #240. 2015-11-01 03:06:40 -04:00
Roberto Rosario
cbc1f12bf6 Simplify tests teatDown method. 2015-11-01 02:57:55 -04:00
Roberto Rosario
391298eea1 Improve ACLs tests. 2015-11-01 02:49:21 -04:00
Roberto Rosario
8c1d5319dd Test an object's parent for permission but also test the child object if the parent test fails. 2015-11-01 02:47:24 -04:00
Roberto Rosario
379f9d6bee Update mailer view document collection to be a queryset and not a list of instances. 2015-10-28 02:22:25 -04:00
Roberto Rosario
923ecc85d8 PEP8 Cleanups. 2015-10-28 02:22:10 -04:00
Roberto Rosario
a1a0a6da52 PEP8 Cleanups. 2015-10-28 02:14:48 -04:00
Roberto Rosario
2180ab22bd Fix typo. 2015-10-28 02:03:59 -04:00
Roberto Rosario
b9585cb4ad Multi document links should not have permissions. 2015-10-28 02:03:25 -04:00
Roberto Rosario
26250412ce Add test for the document version revert and document version download links. GL issue #230. 2015-10-28 01:33:43 -04:00
Roberto Rosario
c116a46af4 PEP8 cleanusp. 2015-10-28 01:33:26 -04:00
Roberto Rosario
81568d051f Add test method to request the test view using the GET HTTP verb. 2015-10-28 01:32:28 -04:00
Roberto Rosario
f517057dba Add permission inheritance to document pages and documents version with 'document' as the parent object. 2015-10-28 01:07:24 -04:00
Roberto Rosario
7b2eae4b5c ACL access check now check the object for permission inheritance too. IE: page navigation links. 2015-10-28 01:06:18 -04:00
Roberto Rosario
124c6dab5e Implement repeatable way to add test views. 2015-10-27 15:23:26 -04:00
Roberto Rosario
b1fa66b78c Code style update. 2015-10-27 10:34:07 -04:00
Roberto Rosario
7e365de569 Code style updates. 2015-10-26 02:24:52 -04:00
Roberto Rosario
f4a461e5a5 Don't error out link resolution if user doesn't has permission for the object argument. This issue manifests during the forcefull check in attempt of issue GL #237. Solved and test added. 2015-10-26 02:15:53 -04:00
Roberto Rosario
31846a739d Change the document OCR tab label and view title from 'Content' to 'OCR', to eliminate confusion of OCR text vs. original document content. 2015-10-25 01:59:07 -04:00
Roberto Rosario
ce07077f3e Test links ACL against the view's resolved_object or fallback to test against the {{ object }} context variable. Solves GL issue #230. 2015-10-25 01:54:18 -04:00
Roberto Rosario
9bbd148497 Remove NewDocumentVersionBlockViewTestCase, it belongs in the sources app only. 2015-10-25 01:53:32 -04:00
Roberto Rosario
b0f5e8741b Raise PermissionDenied instead of redirecting with a message if user doesn't have the tag attach permission. GL issue #235. 2015-10-24 00:46:29 -04:00
Roberto Rosario
dfda765d34 Make sure to test that the user can't attach a tag with the proper permission. GL issue #235. 2015-10-23 14:45:43 -04:00
Roberto Rosario
da4c41c5b2 Change the way new document version are blocked, moving the logic to the documents app from the checkouts app signal handler. Disable the upload new document version button and have the new version upload view redirect to the document version list with a message. GitLab issue #231. 2015-10-23 06:06:59 -04:00
Roberto Rosario
414c55f824 Update the metadata_add and metadata_remove views to use the new ACL filter_by_access code. Update and improve tests. 2015-10-23 02:52:27 -04:00
Roberto Rosario
02171755f0 Update the document_multiple_clear_transformations, document_clear_transformations_view, document_multiple_update_page_count, and document_update_page_count views to use the new filter by access ACL code. Add some and improve other document views tests. 2015-10-22 21:59:35 -04:00
Roberto Rosario
8d266693c8 Add sample configuration from the deploying chapter. 2015-10-22 15:49:59 -04:00
Roberto Rosario
10f2bd6226 Improve multi user delete view. Add view tests for the user management app. 2015-10-22 04:23:16 -04:00
Roberto Rosario
11d6b100b4 Update tag views to use updated ACL filter_by_access. Add better tag app views tests. 2015-10-22 04:22:22 -04:00
Roberto Rosario
1eb2190f86 Update tags app views tag_delete, single_document_multiple_tag_remove, and multiple_documents_selection_tag_remove to work with the new way filter_by_access works. Add tags app views tests. 2015-10-22 03:09:44 -04:00
Roberto Rosario
73abe297ee Add .get .post .login method to GenericViewTestCase. Update folder app view tests. 2015-10-22 02:00:02 -04:00
Roberto Rosario
b02cee1759 Update the folder_document_multiple_remove, folder_add_document, folder_add_multiple_documents views to use queryset instead of list of objects. Improve folder app views tests. 2015-10-22 00:17:39 -04:00
Roberto Rosario
f1069fad74 Code style fix. 2015-10-22 00:17:02 -04:00
Roberto Rosario
2f67a20f7e Use GenericViewTestCase to test the about view. 2015-10-22 00:16:31 -04:00
Roberto Rosario
ec7460a0fe Update folder_document_remove view work with the ACL queryset only code. 2015-10-21 20:51:11 -04:00
Roberto Rosario
54ae8bcda5 Add GenericViewTestCase and GenericDocumentViewTestCase classes. 2015-10-21 20:50:31 -04:00
Roberto Rosario
475ceb054f OCR errors are deleted at the next successfull retry, remove redundant option to delete OCR log entries. 2015-10-21 04:07:20 -04:00
Roberto Rosario
71ac2cbf79 With full document OCR queue and per document type OCR queuing, re_queueing OCR errors is redundant, removing. 2015-10-21 03:58:09 -04:00
Roberto Rosario
da0134a7fb Fix label of the left box in group members views. GL issue #233. 2015-10-21 03:45:28 -04:00
Roberto Rosario
6f82ee8cb5 Make MultipleInstanceActionMixin operate on a queryset and not on a list of objects. Get the id_list from GET or POST requests, not just GET requests. 2015-10-21 03:41:12 -04:00
Roberto Rosario
6d80b40ed4 Remove unused related parameter for the ACL filter method. 2015-10-21 03:40:13 -04:00
Roberto Rosario
f739dd54ac Fix document download views. Fixes GL issue #229. Thanks to @ammaranjith for the find and fix idea. 2015-10-21 03:38:56 -04:00
Roberto Rosario
58f73f0b1e Use Django's six library for Py3 compatibility. 2015-10-21 03:33:10 -04:00
Roberto Rosario
6b950b7ccf Style update. 2015-10-21 03:32:51 -04:00
Roberto Rosario
ec1b3e9007 Eliminate repetition in the testing requirements files. 2015-10-21 01:40:05 -04:00
Roberto Rosario
35d33b1a74 Ignore coverage temporary files produce during tox test runs. 2015-10-21 01:34:33 -04:00
Roberto Rosario
5f9c847239 Move stub deletion code from tasks.py to the manager of the Document model. 2015-10-21 01:34:03 -04:00
Roberto Rosario
0cf963c19f Make user or admin login more explicit in the documents apps view tests. 2015-10-21 00:52:19 -04:00
Roberto Rosario
fc81d4315e Process multiple documents in the tag attach views as querysets not as list of objects. AccessControlList.objects.filter_by_access only supports querysets now. Closes GL issue #228. 2015-10-21 00:50:04 -04:00
Roberto Rosario
df7a5c6e1c Reorganize tests literals and move then to their respective apps. 2015-10-20 21:14:07 -04:00
Roberto Rosario
2bd92d8fac Use the unified test management command for continious integration. 2015-10-20 21:12:33 -04:00
Roberto Rosario
0cb43e1d46 Release notes updates. 2015-10-20 21:12:13 -04:00
Roberto Rosario
6c65598a4d Remove permission check from the multiple document action links, an user may not have permissions for some items but maybe does for others, we don't know as scanning the entire queryset for ACLs is costly, so we leave the links enable, permission check is done by the view. 2015-10-20 20:05:40 -04:00
Roberto Rosario
9fbc8647b8 Fix document list generation for the document's type change views. Move type change event and recent document addition to the models. Add view tests for the document's type change views. 2015-10-20 20:03:54 -04:00
Roberto Rosario
ebfd37ebf5 Documentation updates. 2015-10-20 04:14:48 -04:00
Roberto Rosario
9bb3cb4595 Add command to create an initial settings file. Existing local.py don't stop the initialsetup command now. 2015-10-20 04:13:59 -04:00
Roberto Rosario
3065e5be62 Cleanup contributed files. 2015-10-20 04:13:23 -04:00
Roberto Rosario
6f6270f11c Documentation updates. 2015-10-19 06:15:54 -04:00
Roberto Rosario
24d0866d8b Split development requirements and add documentation writting requirements. 2015-10-19 06:14:42 -04:00
Roberto Rosario
f9940f1fd0 Add default_app_config value to each app. Closes issue GL #216. 2015-10-19 02:57:00 -04:00
Roberto Rosario
5167e91c90 Remove TODO reminder, this link position was implemented. 2015-10-19 02:54:34 -04:00
Roberto Rosario
19a2c02594 Document count column in document type list view is now permission aware. 2015-10-19 02:19:08 -04:00
Roberto Rosario
94bebf90ca Remove TODO reminder, error are logged by Celery. 2015-10-19 02:10:12 -04:00
Roberto Rosario
3f8b23d751 Show 'no results' on empty list. 2015-10-19 02:09:40 -04:00
Roberto Rosario
64faa0ca15 Fix documents app view tests. Update code to match code style. PEP8 fixes. 2015-10-19 01:54:37 -04:00
Roberto Rosario
bfe621ba89 PEP8 updates. 2015-10-19 01:27:26 -04:00
Roberto Rosario
e57080b06d Style updates. 2015-10-19 01:21:43 -04:00
Roberto Rosario
e791f2d36c Get deserialized documents by UUID only. 2015-10-19 01:21:16 -04:00
Roberto Rosario
32c7b0e379 Fix import typo. 2015-10-19 00:56:24 -04:00
Roberto Rosario
81c7a90c04 Fix message typo. 2015-10-19 00:56:11 -04:00
Roberto Rosario
6e43b99ecd Add natural key serialization. 2015-10-17 05:13:58 -04:00
Roberto Rosario
1907130ef2 Remove github buttons from documentation's theme. 2015-10-17 04:27:34 -04:00
Roberto Rosario
61525d2479 Add Gumroad button. 2015-10-17 04:11:44 -04:00
Roberto Rosario
8c886dd788 Add Sphinx and sphinx-autobuild to development requirements. 2015-10-17 04:11:21 -04:00
Roberto Rosario
f7daffde49 Update setup.py dependencies. 2015-10-17 03:14:05 -04:00
Roberto Rosario
3b9e65f5d3 Bump version to 2.0.0 beta 2. 2015-10-17 03:05:45 -04:00
Roberto Rosario
6e9c2a14ae Add folder app view tests. 2015-10-17 02:17:36 -04:00
Roberto Rosario
480a107c61 Ignore coverage files. 2015-10-17 01:30:21 -04:00
Roberto Rosario
1c72e29a5b Add tox testing for different python and django versions. Add automatic coverage reporting. 2015-10-17 01:29:47 -04:00
Roberto Rosario
35b0e321f9 Exclude tests and settings from coverage report. 2015-10-17 01:28:59 -04:00
Roberto Rosario
b49b960298 Fix tag app test import. 2015-10-16 03:38:09 -04:00
Roberto Rosario
2e2dc3de3c Update to version 1.1.0 of django-autoadmin which closes issue GL#202. 2015-10-16 03:24:04 -04:00
Roberto Rosario
90a1ecb826 Add permissions app views tests. 2015-10-15 19:37:04 -04:00
Roberto Rosario
8744bd82ee Fix allow editing a required metadata after changing the document type. Closes issue GL #204. 2015-10-15 16:40:35 -04:00
Roberto Rosario
572ceb50ec Fix typo, install mysql-client binary not Python library. 2015-10-15 16:36:41 -04:00
Roberto Rosario
ec92caaac0 Modify mysql database collation directly using the mysql-client. 2015-10-15 15:30:59 -04:00
Roberto Rosario
5b0359d379 Increase delay after new version in test. 2015-10-15 14:54:38 -04:00
Roberto Rosario
418a3ac213 Documentation updates. 2015-10-15 14:54:22 -04:00
Roberto Rosario
35fa8495bd Force MySQL to use UTF-8 collation for tests. 2015-10-15 14:53:54 -04:00
Roberto Rosario
bdc15fb518 Show thumbnails and previews for deleted documents. 2015-10-14 15:23:02 -04:00
Roberto Rosario
572d7b68d7 Backport fix from development branch.
Fix worklow state and transition deletion views. GH issue #237.

Conflicts:
	mayan/apps/document_states/apps.py
	mayan/apps/document_states/views.py
2015-10-14 14:53:44 -04:00
Roberto Rosario
00f1f25ecf Fix worklow state and transition deletion views. GH issue #237. 2015-10-14 14:46:45 -04:00
Roberto Rosario
715f4204e0 Add tox ini file. 2015-10-10 13:03:49 -04:00
Roberto Rosario
976a86947e Add management command to run tests from app list built dynamically. 2015-10-10 03:24:57 -04:00
Roberto Rosario
07f02b8f0b Add tests for the remove metadata view. 2015-10-10 02:45:00 -04:00
Roberto Rosario
cb98f0f2d2 Pass document_type to the remove metadata formset. 2015-10-10 02:44:29 -04:00
Roberto Rosario
9708c76646 Improve coding style. Don't change initial kwargs using .pop. 2015-10-10 02:42:42 -04:00
Roberto Rosario
40b94e41d8 Fix document check in view. Fixes issue GH#238. 2015-10-09 23:42:34 -04:00
Roberto Rosario
8af1ee3246 Use checkout form field inclusion instead of exclusion. 2015-10-09 23:41:09 -04:00
Roberto Rosario
799eac8016 Remove custom 500 error view. 2015-10-09 23:40:25 -04:00
Roberto Rosario
d4d9a5a276 Fail elegantly when resolving a menu and there is no request variable. 2015-10-09 23:39:56 -04:00
Roberto Rosario
36805b3540 Fix typo in ACL title translation code. Fixes issue GL#201. 2015-10-08 19:33:44 -04:00
Roberto Rosario
27da0f8bb2 Add missing translation marker. Closes issue GL#201. 2015-10-08 19:29:19 -04:00
Roberto Rosario
1eddea65af Delay python formating of the translatable string. Fixes part of issue GL#201. 2015-10-08 18:57:02 -04:00
Roberto Rosario
f6c4b153c7 Make document tags widget permissions aware, closes GL #182. 2015-10-08 02:58:11 -04:00
Roberto Rosario
5da248375f Move test magic numbers and strings into test.literals.py. 2015-10-08 02:57:42 -04:00
Roberto Rosario
8a566d5b91 Remove sample debug config from development settings, it is done automatically now. 2015-10-08 02:57:02 -04:00
Roberto Rosario
89d15aa275 Add missing variable to app auto URL debug statement. 2015-10-08 02:56:20 -04:00
Roberto Rosario
86ff835839 PEP8 Cleanups. 2015-10-07 22:24:44 -04:00
Roberto Rosario
aabbe59093 Change test class name. 2015-10-07 19:37:00 -04:00
Roberto Rosario
71a1aba697 Capitalize POP3 and IMAP in sources links. 2015-10-07 19:32:33 -04:00
Roberto Rosario
1556fa92e4 Add test for the about view. 2015-10-07 19:32:00 -04:00
Roberto Rosario
677d28b015 Don't error when composing the build number on non Git deploys. 2015-10-07 03:48:32 -04:00
Roberto Rosario
a76a8b7e0a Reset pointer before attemping a conversion. 2015-10-07 03:17:02 -04:00
Roberto Rosario
c9d9f90cac Improve OCR API views code. 2015-10-07 03:13:46 -04:00
Roberto Rosario
a814448c81 Change OCR API CBV class names to match rest of the project. 2015-10-07 02:44:55 -04:00
Roberto Rosario
39f1adab6b Remove unused import. 2015-10-07 02:44:29 -04:00
Roberto Rosario
cbe77ee258 Dynamic links do not have a menu position entry. Use .get to avoid error on non existant entries. 2015-10-07 02:43:01 -04:00
Roberto Rosario
8bdd4ba452 Add API views to download documents and document versions. 2015-10-07 02:42:36 -04:00
Roberto Rosario
41ede494db Add API views to submit documents for OCR and to retrieve document page OCR content. 2015-10-06 23:22:08 -04:00
Roberto Rosario
942b6af502 Add admin views for document ocr content. 2015-10-06 23:21:31 -04:00
Roberto Rosario
9822fc0db2 PEP8 update. 2015-10-06 23:21:14 -04:00
Roberto Rosario
e4cc599057 Update Django REST swagger version. 2015-10-06 23:20:52 -04:00
Roberto Rosario
6f4426dce0 Move metadata widget code to metadata/widgets.py. 2015-10-06 02:31:37 -04:00
Roberto Rosario
97d8529994 Add boolean field to email source to control if the body of the email is to be stored or not. 2015-09-30 20:57:47 -04:00
Roberto Rosario
3d0c9485d0 Add support for storing the subject and "from" value of an email as metadata. 2015-09-30 20:20:27 -04:00
Roberto Rosario
6faf4b0f2a Add admin entires for the IMAP and POP3 sources. 2015-09-30 19:14:08 -04:00
Roberto Rosario
15db0aed25 Update release notes. 2015-09-29 14:28:08 -04:00
Roberto Rosario
b4c50c0036 Omit migrations from coverage report. 2015-09-29 14:17:10 -04:00
Roberto Rosario
83c8f28455 Cleanups. 2015-09-28 04:15:37 -04:00
Roberto Rosario
20398174a8 Initial commit for top level api URLS. 2015-09-28 04:05:03 -04:00
Roberto Rosario
a7012b3f6b Add API documentation to the login excempt list. 2015-09-28 03:48:18 -04:00
Roberto Rosario
5820ae68c2 Add coverage widget. 2015-09-28 03:45:20 -04:00
Roberto Rosario
60d3d4adb7 Remove curl parameter. 2015-09-28 03:45:08 -04:00
Roberto Rosario
f716faea40 Remove overrided swagger CSS. 2015-09-28 01:55:22 -04:00
Roberto Rosario
40c8fa728d Add official codecov hack for coverage <4.0. 2015-09-28 01:00:53 -04:00
Roberto Rosario
ea31115cd8 Revert "Update coverage version to 4.0"
This reverts commit 8d52f85b63.
2015-09-28 00:59:23 -04:00
Roberto Rosario
f789ea09e6 Pass codecov token via environment variable. 2015-09-28 00:26:20 -04:00
Roberto Rosario
8d52f85b63 Update coverage version to 4.0 2015-09-28 00:25:56 -04:00
Roberto Rosario
fc1c455a0a Fix gitlab-ci base import. 2015-09-28 00:24:59 -04:00
Roberto Rosario
612e31c47e Add codecov support for test coverage reporting. 2015-09-28 00:09:23 -04:00
Roberto Rosario
b2fcace9c2 Update postgres hostname. 2015-09-27 23:27:16 -04:00
Roberto Rosario
522d9b3905 Split test by db backend. 2015-09-27 23:27:00 -04:00
Roberto Rosario
d8f811a357 Change the host for the mysql server. 2015-09-27 23:07:44 -04:00
Roberto Rosario
25f65f0d96 Add script tags. 2015-09-27 03:29:03 -04:00
Roberto Rosario
4b1bb38c86 Implement menu link ordering. 2015-09-27 02:18:04 -04:00
Roberto Rosario
b335f70e57 Improve how unbounded links are calculated and removed from results. 2015-09-27 01:42:12 -04:00
Roberto Rosario
62ecc32ad5 Add --nomigrations swtich to test config files. Add metadata app to gitlab test config file. 2015-09-27 01:41:31 -04:00
Roberto Rosario
e53c624792 Remove remark. 2015-09-27 01:38:20 -04:00
Roberto Rosario
14184b8c76 Add view to queue document for OCR by document type. 2015-09-27 01:37:57 -04:00
Roberto Rosario
a236b7a869 Add django-test-without-migations and enable it in the base testing settings file. 2015-09-27 00:36:58 -04:00
Roberto Rosario
3e7cd0c1ea Move retention policies enforcement code to the DocumentType model manager. Add corresponding tests (test_auto_trashing and test_auto_delete). 2015-09-27 00:35:56 -04:00
Roberto Rosario
22a29eede3 Use explicit literals for the time delta units used for retention policies. 2015-09-26 23:52:10 -04:00
Roberto Rosario
c796f2b2c4 TODO comment cleanups. Remove unused Document model method. 2015-09-26 23:50:57 -04:00
Roberto Rosario
3d3abb6ad6 Use SH to call LibreOffice binary. Force LibreOffice input filter when converting text files. 2015-09-26 03:00:11 -04:00
Roberto Rosario
654825829c Store the body of emails as a document just like attachments. 2015-09-26 02:59:24 -04:00
Roberto Rosario
6159645261 Remove print statements. 2015-09-25 17:01:18 -04:00
Roberto Rosario
500f870c78 Do a force pull of all translations and a compile. 2015-09-25 04:18:04 -04:00
Roberto Rosario
228cf32fc8 Connect to MySQL via TCP not via Linux socket. 2015-09-25 00:31:57 -04:00
Roberto Rosario
2cff1ee854 Update README to show build badge from gitlab-ci. 2015-09-25 00:21:28 -04:00
Roberto Rosario
e42dbefa74 Add missing LibreOffice binary dependency to gitlab config file. 2015-09-25 00:08:28 -04:00
Roberto Rosario
32b7ec3e14 Simplify gitlab-ci file. Merge jobs. 2015-09-25 00:00:09 -04:00
Roberto Rosario
1a205a5586 Enclose gitlab-ci variables in quotes. 2015-09-24 23:34:02 -04:00
Roberto Rosario
6edafc814f Add testing setting files for gitlab-ci. Improve gitlab-ci config file. 2015-09-24 23:28:36 -04:00
Roberto Rosario
ac2a08b90b Make sure LICENSE is copied during install. 2015-09-24 17:55:34 -04:00
Roberto Rosario
87e8b1cec9 Add LICENSE file in the namespace of the project. 2015-09-24 17:08:30 -04:00
Roberto Rosario
8629e6495e Translation source files updates. Add translator comments. Thanks to Berny for these. 2015-09-24 16:30:19 -04:00
Roberto Rosario
3f63376dae Include .woff and .woff2 files. 2015-09-24 02:36:30 -04:00
Roberto Rosario
9efc07c4b4 Update packaging files. 2015-09-24 02:26:05 -04:00
Roberto Rosario
5e577f4b1a Update gitlab-ci config file. 2015-09-24 02:15:13 -04:00
Roberto Rosario
bef6bbaf3e Update documentation. 2015-09-24 01:50:51 -04:00
Roberto Rosario
c9b981f07a Update translation sources and compiles files. 2015-09-24 01:44:03 -04:00
Roberto Rosario
e732355f45 Update HISTORY.rst file to include version 2.0 changes. 2015-09-24 01:34:49 -04:00
Roberto Rosario
70a5b0839a Update redirect variable. 2015-09-23 03:41:33 -04:00
Roberto Rosario
371c2105a8 Bump version 2015-09-23 03:33:21 -04:00
Roberto Rosario
6480489086 Add view displaying all 3rd party apps and packages' licenses. 2015-09-23 03:32:14 -04:00
Roberto Rosario
59ae20a867 Make task delay a configurable setting. 2015-09-23 01:09:21 -04:00
Roberto Rosario
fac103bcfd Fix typo. Add checkouts app. 2015-09-22 21:52:17 -04:00
Roberto Rosario
6ccfaf59f8 Add 1 second delay to workaround MySQL <5.6.4 not storing millisecond time data which is used to determine lastest version of a document. 2015-09-21 04:19:57 -04:00
Roberto Rosario
79823ec531 Improve auto logging to enable logging to all apps, even those not calling the ready() method. 2015-09-21 03:44:20 -04:00
Roberto Rosario
ba841c10f8 Use small sample document for checkout app tests. 2015-09-19 23:37:27 -04:00
Roberto Rosario
079c06c207 Don't reference document_version in error messages as if might not exists yet. 2015-09-19 22:07:52 -04:00
Roberto Rosario
1feea67f41 Add migrations for proxy models. 2015-09-19 22:02:51 -04:00
Roberto Rosario
366eca8ed7 Add missing metadata app migration. 2015-09-19 22:01:46 -04:00
Roberto Rosario
baea430d5e Add auto logging. 2015-09-19 21:57:46 -04:00
Roberto Rosario
659df0c05c Add celery route for manually queued statistics updates. 2015-09-19 21:50:02 -04:00
Roberto Rosario
bc66c68450 Add a 1 second delay to automatic OCR to avoid tasking OCR before document version is available in DB. 2015-09-19 21:47:59 -04:00
Roberto Rosario
115f5dd284 Add CELERY_DISABLE_RATE_LIMITS to the base settings file. 2015-09-19 21:46:18 -04:00
Roberto Rosario
df417f562c PEP8 Cleanups (471 warnings). 2015-09-17 21:34:27 -04:00
Roberto Rosario
2b97f4a72f Remove the delete recent search API endpoint. Improve docsctring. 2015-09-17 19:30:02 -04:00
Roberto Rosario
afac156da8 Revert "Update travis config file to use new architecture."
This reverts commit 206ff0ba3c.
2015-09-17 03:07:18 -04:00
Roberto Rosario
206ff0ba3c Update travis config file to use new architecture. 2015-09-17 03:02:04 -04:00
Roberto Rosario
bd01fe1b72 Add 1 seconds delay to avoid version revert tests failing on MySQL. This is because MySQL doesn't store milliseconds in the DB. Version revert uses timestamp as the original document and the new version are created within the same second the revert code doesn't work. This delay is a hack and a better solution to differentiate versions by serial or similar needs to be implemented. 2015-09-17 02:57:28 -04:00
Roberto Rosario
0d591e7ff6 Reorganize methods as per design document. 2015-09-17 02:56:46 -04:00
Roberto Rosario
04be61a6f4 Add LibreOffice to the Travis CI config file. 2015-09-16 21:38:06 -04:00
Roberto Rosario
18d9e2f756 Update release notes. 2015-09-16 21:08:35 -04:00
Roberto Rosario
7b3fc3463b Add missing permissions to workflow links. 2015-09-16 20:25:31 -04:00
Roberto Rosario
e4a9d72ddc Simplify document workflow permissions. 2015-09-16 20:25:07 -04:00
Roberto Rosario
1dee5a8e78 Add support for unbinding links from sources by menu. Improve ResolvedLink class. Remove Link class 'klass' property. 2015-09-16 20:09:31 -04:00
Roberto Rosario
b980823375 Hide all title details of the login view. 2015-09-16 16:19:15 -04:00
Roberto Rosario
dbd676646b Don't convert images blindly to RGB. Only convert to RGB or RGBA when saving to JPEG and mode is 'P'. documents.tests.test_models.MultiPageTiffTestCase passes again. 2015-09-16 15:56:10 -04:00
Roberto Rosario
60e64b92fd PEP8 Cleanup (495 warnings). 2015-09-16 09:33:16 -04:00
Roberto Rosario
22ae0eca70 Update setup requirements by hand until they can be updated automatically. 2015-09-16 05:34:32 -04:00
Roberto Rosario
86e099dd7b Update the index rebuild view to CBV. 2015-09-16 05:33:01 -04:00
Roberto Rosario
6ca6cd9f21 PEP8 Cleanusp (549 warnings). 2015-09-16 04:15:10 -04:00
Roberto Rosario
6a10c6e19b Add tests for the checkouts app. 2015-09-16 03:46:10 -04:00
Roberto Rosario
12187a884f Merge branch 'development' into feature/test 2015-09-15 18:08:54 -04:00
Roberto Rosario
e1a04d9838 Convert document trash view to CBV. Improve ConfirmView based CBVs. 2015-09-15 02:02:38 -04:00
Roberto Rosario
d6a3111d69 Make sure all images are converted to RGB before processing. 2015-09-15 02:01:56 -04:00
Roberto Rosario
a598aef662 Add tag get_absolute_url method. 2015-09-14 23:42:04 -04:00
Roberto Rosario
34e02731e9 Merge branch 'feature/scheduled_stats' into development 2015-09-14 21:58:16 -04:00
Roberto Rosario
c1619c93e0 Finish statistics subsystem refactor. 2015-09-14 21:57:55 -04:00
Mathias Behrle
8384455bee Adapt README for gitlab. 2015-09-14 11:51:16 +02:00
Roberto Rosario
ceed96401b Add app creation chapter to documentation. 2015-09-11 22:51:39 -04:00
Roberto Rosario
ca6f6c3402 Document update. Add new deployment chapter. 2015-09-11 09:47:56 -04:00
Roberto Rosario
7687618ea6 Invert series palette. 2015-09-11 08:28:16 -04:00
Roberto Rosario
5846743d6e Finish conversion of statistic to periodic statistics. Add ChartJS support. Add Line chart renderer. 2015-09-09 04:36:09 -04:00
Roberto Rosario
70c23a19d3 Initial commit to support scheduled statistics. 2015-09-09 00:24:53 -04:00
Roberto Rosario
d474efe8b3 Increase stale document stub check interval. 2015-09-08 19:00:53 -04:00
Roberto Rosario
460d8585ee Add periodic task to remove stale shared uploads. 2015-09-08 18:58:48 -04:00
Roberto Rosario
43e1ffbc24 Add scheduled task to delete stale document stubs. 2015-09-08 18:38:24 -04:00
Roberto Rosario
02353927db Improve admin interfaces. 2015-09-08 18:13:22 -04:00
Roberto Rosario
f21ee34a94 Remove ununsed DOCUMENTS_MULTIPAGE_PREVIEW_SIZE setting. 2015-09-08 15:42:12 -04:00
Roberto Rosario
80606af11e Update release docs. 2015-09-07 02:05:25 -04:00
Roberto Rosario
b7a3a7b4ef Add post action redirect and improve title of the ACL delete view. 2015-09-07 00:26:50 -04:00
Roberto Rosario
c48b238c9e Don't specify logo color, must be same global color of text. 2015-09-07 00:17:37 -04:00
Roberto Rosario
3622cdcf32 Update user edit view to CBV. Remove user group's view helper functions. 2015-09-07 00:16:55 -04:00
Roberto Rosario
f9a0e01b24 Add Bootswatch.com bootstrap themes. 2015-09-06 04:45:22 -04:00
Roberto Rosario
6dcdcdd5c7 Add date time creation column to staging folder upload view. 2015-09-06 04:09:31 -04:00
Roberto Rosario
3e3eca4c0e Update all tests to use setting value overriding. 2015-09-06 04:01:40 -04:00
Roberto Rosario
f59b96ac5e Update the document type auto ocr value to be defined at runtime by turning it into a setting. 2015-09-06 04:00:37 -04:00
Roberto Rosario
a1d8f34e69 Don't cache the value of a setting. 2015-09-06 03:59:31 -04:00
Roberto Rosario
bbfd158e28 Move setting namespace initalization code to the class itself. Add method to invalidate all setting caches. Use smart setting cache invalidation for properly test advanced search pagination. 2015-09-06 02:49:27 -04:00
Roberto Rosario
e92269e2d8 Improve API documentation's initial text. 2015-09-06 01:03:06 -04:00
Roberto Rosario
d0b37d4ea8 Update Django version to 1.7.10. 2015-09-06 00:45:02 -04:00
Roberto Rosario
41c7db7d1b Add missing comman. 2015-09-06 00:42:11 -04:00
Roberto Rosario
dd59a6af72 Simplify folder app's permission labels. 2015-09-06 00:40:52 -04:00
Roberto Rosario
574f3d2d66 Synchronize and compile translation files. 2015-08-27 01:33:14 -04:00
Roberto Rosario
709e9208aa Update source translation files. 2015-08-27 01:25:33 -04:00
Roberto Rosario
ab05050137 Remove only instance of 'Return' and provoke default to 'Cancel' for uniformity. 2015-08-27 01:19:15 -04:00
Roberto Rosario
0847fbf1ae Improve document print form and view. 2015-08-25 22:58:28 -04:00
Roberto Rosario
e9acd5a1a6 Fix field label. Sort form classes. 2015-08-25 22:11:13 -04:00
Roberto Rosario
a04bccb842 Add missing model event log registration. Remove debug statement. 2015-08-25 22:01:28 -04:00
Roberto Rosario
1900200c82 Update release notes. 2015-08-25 20:49:55 -04:00
Roberto Rosario
399103488c PEP8 cleanups 2015-08-25 20:49:42 -04:00
Roberto Rosario
ba93ee2544 Update the document properties view to CBV. 2015-08-25 20:43:12 -04:00
Roberto Rosario
82dbd87925 Update document page and document edit views to CBV. 2015-08-25 20:30:30 -04:00
Roberto Rosario
72c63bfedc Improve form and object data passing code. 2015-08-25 20:28:59 -04:00
Roberto Rosario
7a45164251 PEP8 cleanups. 2015-08-25 19:17:55 -04:00
Roberto Rosario
4432cb5c2e Add view permission for the smart settings app. It is no longer required to be a super admin or staff user to see the setting values. 2015-08-25 17:35:31 -04:00
Roberto Rosario
7a0fe33ffe Rename methods to retrieve a document's folders and tag membership to avoid search related field problems. 2015-08-25 16:29:23 -04:00
Roberto Rosario
7392e80fc2 PEP8 Cleanups. 2015-08-24 20:55:45 -04:00
Roberto Rosario
f54c0d5058 Update group delete view to CBVs. Remove multiple group delete view. 2015-08-24 20:55:22 -04:00
Roberto Rosario
8481802b23 Update the document type quick label delete view to a CBV. 2015-08-24 17:56:01 -04:00
Roberto Rosario
4008715991 Index template node delete view updated to a CBV. 2015-08-24 17:50:35 -04:00
Roberto Rosario
e79cd4a2e6 Remove unused imports. 2015-08-24 17:43:06 -04:00
Roberto Rosario
dbe14fde42 Convert smart link view to a CBV view. 2015-08-24 17:42:53 -04:00
Roberto Rosario
1f32aa3c0b Add extensible data filtering feature allowing to remove hard coded listing of documents with missing required metadata. Closes gl-issue #178. 2015-08-24 17:33:24 -04:00
Roberto Rosario
4dc3978a78 Fix typo and improve post document attachment redirect. 2015-08-24 15:32:42 -04:00
Roberto Rosario
7c64d01578 Improve post key deletion redirect. 2015-08-24 15:26:55 -04:00
Roberto Rosario
48ac049736 Avoid using a loop when calculating recent document list. 2015-08-24 03:29:13 -04:00
Roberto Rosario
fbc28f5bbc Index the user field of the recent document model to reduce view rendering as per profiling results. 2015-08-24 03:04:24 -04:00
Roberto Rosario
603d2e7417 Convert document preview view to CBV. 2015-08-24 03:01:08 -04:00
Roberto Rosario
b9a07e3fcf Add new SingleObjectDetailView CBV. 2015-08-24 03:00:49 -04:00
Roberto Rosario
4ff19c6f95 Remove CombinedSource class now that is no longer needed. 2015-08-24 02:27:44 -04:00
Roberto Rosario
6d2eed5148 Add DocumentFolder proxy class to re add the remove from folder functionality. 2015-08-24 02:25:09 -04:00
Roberto Rosario
d9fb0080af Use proxy document tag to simplify accessing a document's tags. 2015-08-24 01:53:07 -04:00
Roberto Rosario
15d3bf8072 Remove the 'Are you sure you which to' part of the delete confirmation as was done with the rest of the message. 2015-08-24 01:40:37 -04:00
Roberto Rosario
d007214d39 Update language translations. 2015-08-24 01:40:22 -04:00
Roberto Rosario
0b2235d501 Change document type filename references to the more apt document type quick labels. Thanks go to berny for this one. 2015-08-24 01:03:10 -04:00
Roberto Rosario
6e4e5e8c07 Simplify texts refering to role members. Change it to role groups. 2015-08-24 00:34:26 -04:00
Roberto Rosario
2c93c5d8c2 Update translation source files. 2015-08-24 00:34:08 -04:00
Roberto Rosario
d0f0bdb34f Update documentation. Add new translations chapter. 2015-08-24 00:33:46 -04:00
Roberto Rosario
59696ba68d Add missing exception variable. 2015-08-23 23:10:25 -04:00
Roberto Rosario
8d47e60b11 Move CSS into its own file outside of base.html. 2015-08-23 23:00:19 -04:00
Roberto Rosario
877aef669c Move javascript to its own file outside of base.html. 2015-08-23 22:53:36 -04:00
Roberto Rosario
d1bb06f350 Add logging to mark instances where getting the page count of a file may fails because it is not an office format file. 2015-08-23 22:47:33 -04:00
Roberto Rosario
1d7f447dad Raise validation error without specifying the field as this code can be called for a collection of instances. 2015-08-23 22:44:47 -04:00
Roberto Rosario
f7b0fc6c02 Fix typo in method name. 2015-08-23 22:42:32 -04:00
Roberto Rosario
47eba63f48 Add audit logging to document comment model. 2015-08-23 22:37:35 -04:00
Roberto Rosario
2f94ebb9bc Add event logging document comment app. 2015-08-23 22:34:39 -04:00
Roberto Rosario
95cb49bfcb Add mixin to pass extra argument during object deletion. Used for logging the user performing an action. 2015-08-23 22:33:22 -04:00
Roberto Rosario
307941ef64 Add support for the new_window link tag that open selected links into new browser window/tab. 2015-08-23 22:07:48 -04:00
Roberto Rosario
ec47bdd7c6 Rename key receive link text back to Import. 2015-08-23 21:55:46 -04:00
Roberto Rosario
892995992a Make sure this view's form always issues a POST not a GET request. 2015-08-23 21:55:23 -04:00
Roberto Rosario
9b51dea22b Fix missing object buttons for keys. 2015-08-23 21:52:31 -04:00
Roberto Rosario
1aadede546 Convert document comment deletion view to CBV. Remove unused document comment form. 2015-08-23 21:48:53 -04:00
Roberto Rosario
a9517b9645 Remove blind autocapitalization. 2015-08-23 21:38:48 -04:00
Roberto Rosario
dd301d8e98 Convert the document create view to a CBV. 2015-08-23 21:37:37 -04:00
Roberto Rosario
8cd14a2ae1 Add mixin to add extra instance data to the CBV create and edit views. 2015-08-23 21:37:17 -04:00
Roberto Rosario
23f479c481 Fix page recalculation text. 2015-08-23 21:05:20 -04:00
Roberto Rosario
fa3633fbe8 Remove empty language files locales: sq, zh_TW, hr_HR, de_CH, lv, nb, tr_TR. 2015-08-20 19:40:05 -04:00
Roberto Rosario
3d1279bcf7 Fix casing. 2015-08-20 19:35:49 -04:00
Roberto Rosario
a7d8b2e52f Update language processing script. 2015-08-20 19:35:37 -04:00
Roberto Rosario
c030b91528 Update translation files. 2015-08-20 19:35:24 -04:00
Roberto Rosario
f2ccfa16d5 Update source language files. Make lock manager and storage translatable. 2015-08-20 15:35:06 -04:00
Roberto Rosario
ef970016db Add metadata app to the test list. 2015-08-20 14:42:27 -04:00
Roberto Rosario
93553e84c2 Text string tweaks as per translation discussions. Thanks to Berny. 2015-08-20 14:41:00 -04:00
Roberto Rosario
75764fd482 Merge branch 'feature/transifex' into development 2015-08-20 04:39:31 -04:00
Roberto Rosario
9599a3f8ab Split metadata validators in validators and parsers. Move document and upload wizard metadata validation logic to model. Add metadata tests. 2015-08-20 04:37:49 -04:00
Roberto Rosario
cc2927c4cd Remove remaining usage of lists for extra_column. 2015-08-20 00:44:24 -04:00
Roberto Rosario
a39470b622 Remove repeated column. 2015-08-20 00:44:04 -04:00
Roberto Rosario
e4fead68b9 Remove included filesize formatter and use Django's instead. 2015-08-20 00:36:58 -04:00
Roberto Rosario
d9cc8520b1 Render remaining date usage properly. 2015-08-20 00:27:48 -04:00
Roberto Rosario
0d3c2defe2 Improve date rendering. 2015-08-20 00:08:28 -04:00
Roberto Rosario
68f3c6eee7 PEP8 cleanups. 2015-08-19 14:50:44 -04:00
Roberto Rosario
683e54fea1 Replace unused lists with tuples. 2015-08-19 13:57:38 -04:00
Roberto Rosario
50ba007dd6 Remove localtime tag. 2015-08-19 03:24:04 -04:00
Roberto Rosario
1b88f3b641 Update development tools requirement versions. 2015-08-19 03:09:55 -04:00
Roberto Rosario
b64a35d08c Version transifex resources by appending the version number. 2015-08-19 03:09:11 -04:00
Roberto Rosario
610b06bb4d Add test for office document. 2015-08-19 02:14:40 -04:00
Roberto Rosario
401b9a81dc Remove variables: section for compatibility with older test runners. 2015-08-19 02:03:50 -04:00
Roberto Rosario
a2f884179b Initial configuration file for gitlab-ci. 2015-08-19 01:57:43 -04:00
Roberto Rosario
03b8a6cfc2 Initial configuration files for magnum-ci. 2015-08-19 01:57:20 -04:00
Roberto Rosario
83974d5656 Move travis-ci related settings files into their own module. 2015-08-19 01:30:07 -04:00
Roberto Rosario
e084445aa4 Read pagination size per instance not per class. 2015-08-18 23:06:50 -04:00
Roberto Rosario
4fb86fba14 Re-estructure tests to cleanup the apps' namespace. 2015-08-18 23:06:26 -04:00
Roberto Rosario
57f7c998dd Show page title in the login template. 2015-08-18 19:21:50 -04:00
Roberto Rosario
14662e478f Remove unneeded lists to tuples. 2015-08-16 14:37:59 -04:00
Roberto Rosario
f55e1a4ddc Remove unused tag 'make_non_breakable'. 2015-08-16 14:32:13 -04:00
Roberto Rosario
99c3e41ffa Remove template feature flag 'keep_together'. 2015-08-16 14:31:30 -04:00
Roberto Rosario
60bc327756 Improve SourceColumn workflow by allowing explicit functions as columns. Remove usage of encapsulate. Move instances of 'extra_columns' to SourceColumn. 2015-08-16 14:26:41 -04:00
Roberto Rosario
938328bc14 Remove use of extra_columns and move logic to apps.py. 2015-08-16 00:41:28 -04:00
Roberto Rosario
283f033a6c Rename label of key receive link from 'Import' to 'Download'. 2015-08-16 00:40:56 -04:00
Roberto Rosario
48c3efefd0 Remove use of extra_columns and move logic to app.py module. 2015-08-16 00:21:55 -04:00
Roberto Rosario
abea396091 Include document in document pages list view context. 2015-08-16 00:16:23 -04:00
Roberto Rosario
be358f7879 Remove use of extra_columns and move logic to models and apps. 2015-08-16 00:12:51 -04:00
Roberto Rosario
5563484ae8 Replace remaining usage of get_context_data that could be replaced with get_extra_context. 2015-08-15 23:42:32 -04:00
Roberto Rosario
561b56b12a Replace usage of get_context_data with get_extra_context. 2015-08-15 03:02:02 -04:00
Roberto Rosario
66d22dc254 Add current source to the source log list view context so that link resolve properly. 2015-08-15 02:49:18 -04:00
Roberto Rosario
1b6bcbf3fe Remove usage of ParentChildListView until properly re-implemented. 2015-08-15 02:46:02 -04:00
Roberto Rosario
702bac8ed2 Replace django-pagination with django-pure-pagination and use Django's native CBV pagination context. 2015-08-15 02:28:37 -04:00
Roberto Rosario
016231a0f5 Use Python function to get OS default temp directory. 2015-08-15 01:26:11 -04:00
Roberto Rosario
b8701f3f2d Add namespace to staging file thumbnail view. 2015-08-15 01:14:39 -04:00
Roberto Rosario
c84ac0a2fc Replace index, workflow, document and statistics views that use 'object_list' to SingleObjectListView class. 2015-08-15 01:07:52 -04:00
Roberto Rosario
c6b20f13cc Replace argument and variable names with more explicit ones. 2015-08-15 01:06:54 -04:00
Roberto Rosario
a1d7bc70f1 Code style update. 2015-08-15 01:05:55 -04:00
Roberto Rosario
b382227ec0 Add missing migrations. 2015-08-14 23:53:49 -04:00
Roberto Rosario
8cc685ede7 Split key query view into query and results views. Convert key query results view to SingleObjectListView class. 2015-08-14 16:08:35 -04:00
Roberto Rosario
4175866ee5 Turn stray view helper functions into static methods of the UploadBaseView CBV. 2015-08-14 14:55:47 -04:00
Roberto Rosario
8e77cdec38 Update settings app view to user SingleObjectListView class. 2015-08-14 14:55:24 -04:00
Roberto Rosario
4a81c2da42 Update REST api app permission check to use ACL access check related object update. 2015-08-14 14:54:50 -04:00
Roberto Rosario
f7f2135cad Convert OCR error entry list view to CBV. 2015-08-14 14:54:32 -04:00
Roberto Rosario
0fe902b52a Convert document metadata list view to CBV. 2015-08-14 14:54:04 -04:00
Roberto Rosario
0fa11810c6 Conver smart link create, edit and smart link condition list views to CBV. 2015-08-14 14:53:15 -04:00
Roberto Rosario
fb705f7570 Convert installation app views to use SingleObjectListView class. 2015-08-14 14:51:30 -04:00
Roberto Rosario
ff97dd55e7 Implement related object ACL access check. 2015-08-14 14:50:55 -04:00
Roberto Rosario
b632b69d08 Simplify home view by redirecting to results view. 2015-08-14 14:50:29 -04:00
Roberto Rosario
42c327cb65 Remove empty unused view. 2015-08-14 14:27:26 -04:00
Roberto Rosario
d6419f7da3 Convert installation namespace details list view to CBV. 2015-08-14 01:35:38 -04:00
Roberto Rosario
0390c8923e Remove unused form instance template feature flag. 2015-08-13 22:34:14 -04:00
Roberto Rosario
5fea7fabc2 Update document version list view to CBV. 2015-08-13 22:32:13 -04:00
Roberto Rosario
c3fa15bbd1 Update search views to CBV. Remove unused template. 2015-08-13 22:31:22 -04:00
Roberto Rosario
5ae033eb77 Update Document type filenames list and edit views to CBV. 2015-08-13 20:47:34 -04:00
Roberto Rosario
97bba65668 Code style updates, change lists to tuples. 2015-08-13 15:27:22 -04:00
Roberto Rosario
28c45bf988 Add support for including a metadata dictionary as an attachment for the POP3 and IMAP sources. 2015-08-13 03:05:55 -04:00
Roberto Rosario
5bb8f779b3 Add crop document page transformation. 2015-08-12 17:23:36 -04:00
Roberto Rosario
6a4562015e Invert the view title/project name order in the browser title. 2015-08-12 04:50:31 -04:00
Roberto Rosario
d04117d345 PEP8 and code style cleanups. Replace lists with tuples. 2015-08-12 04:41:59 -04:00
Roberto Rosario
31f05ee3f3 Update document comment list view to CBV. 2015-08-12 04:11:39 -04:00
Roberto Rosario
29df91db84 Update the private and public key list views to CBV. 2015-08-12 04:04:43 -04:00
Roberto Rosario
49ec79b36a Code style updates. 2015-08-12 03:55:50 -04:00
Roberto Rosario
3f84b8d839 Raise HTTP error 404 on invalid setting namespaces. 2015-08-12 01:45:11 -04:00
Roberto Rosario
f1f1c85cbf Remove the last usage of 'eval'. gh-issue #151. gl-issue #118 2015-08-11 23:35:19 -04:00
Roberto Rosario
3fd73739a6 Update translation source files and language processing script. 2015-08-11 02:27:18 -04:00
Roberto Rosario
b8cd44af50 Fix formating. 2015-08-10 13:49:17 -04:00
Roberto Rosario
b429f1e02b Add migration notice. 2015-08-10 13:48:26 -04:00
Roberto Rosario
bec85f38f4 Text parsers and OCR backends are now used in tandem for each document. 2015-08-08 04:49:08 -04:00
Roberto Rosario
cf00ba2c40 PEP8 and minor cleanups, fixes. 2015-08-07 03:45:46 -04:00
Roberto Rosario
3023d99a1e Improve document indexing API. Add django rest framework recursive to serialize index instance nodes. 2015-08-07 03:31:51 -04:00
Roberto Rosario
5d322122e0 Add dynamic search app API test. 2015-08-07 03:08:00 -04:00
Roberto Rosario
83ab684b3f Improve dynamic_search app API. Add filter to allows users to access their own recent searches only. 2015-08-07 02:56:51 -04:00
Roberto Rosario
6ce798256c Improve user management API. 2015-08-07 02:01:16 -04:00
Roberto Rosario
038e92b585 Remove invalid related permissions check. 2015-08-07 01:42:28 -04:00
Roberto Rosario
6c694a1f30 Finish tags app API refactor. Add tags app API tests. 2015-08-07 01:41:57 -04:00
Roberto Rosario
b27b2bba31 Coding style updates. 2015-08-07 01:08:21 -04:00
Roberto Rosario
7b42c8e9ae Initial commit for tag API refactor. 2015-08-07 01:07:41 -04:00
Roberto Rosario
c3564ca31d Remove debug statement. 2015-08-06 21:21:57 -04:00
Roberto Rosario
26b6a98180 Refactor folder app API, add folder API tests. 2015-08-06 20:01:30 -04:00
Roberto Rosario
c55f3b4353 Fix test method name. 2015-08-06 19:56:50 -04:00
Roberto Rosario
d3ee32beea Add missing field to serializer. 2015-08-06 17:11:52 -04:00
Roberto Rosario
d4b4a73339 Intitial refactor of folders app API. Add tests for the folders API. 2015-08-06 17:10:56 -04:00
Roberto Rosario
fea9cae937 Use literals from documents apps. 2015-08-06 17:10:17 -04:00
Roberto Rosario
24c63c4f38 Make API endpoints clickable. 2015-08-06 14:45:27 -04:00
Roberto Rosario
2f030ab162 Properly raise PageCountError when unable to determine a document's page count. 2015-08-06 02:57:02 -04:00
Roberto Rosario
960d60c39d Refactor rest_api app and the method end points are registered. All apps API URL endpoints are now registered under the 'rest_api' namespace.
Update DRF and DRF swagger versions. Update all apps API registration method.
2015-08-06 02:56:17 -04:00
Roberto Rosario
ea02172a82 Refactor rest_api app and the method end points are registered. All apps API URL endpoints are now registered under the 'rest_api' namespace. 2015-08-06 02:50:14 -04:00
Roberto Rosario
1fa859a0c3 Add multi page tiff test. Closes gh-issue #228. Confirms gh-issue #218 fixed in development branch. 2015-08-01 01:51:07 -04:00
Roberto Rosario
113de675f7 Add build number display based on git information. 2015-08-01 01:34:09 -04:00
Roberto Rosario
a51f198ac4 Don't mirror repeated nodes or documents with repeated labels. 2015-08-01 01:17:58 -04:00
Roberto Rosario
7ddc4c1c04 Add method to check for a lock's existance and force it to release if stale. 2015-08-01 01:00:26 -04:00
Roberto Rosario
8382df91a6 Update PDF text parser classes. Remove SlateParser and substitute with a PDFMiner based parser. 2015-07-31 02:09:48 -04:00
Roberto Rosario
1361ea9b42 Remove dependency on slate to calculate page number in PDF files. 2015-07-31 02:09:10 -04:00
Roberto Rosario
dcd909f488 Update release notes. 2015-07-29 21:55:14 -04:00
Roberto Rosario
0b109920bb Make preview images' titles clickable, taking users straight to the document view. 2015-07-29 21:39:18 -04:00
Roberto Rosario
bc71796571 Add missing migrations for the linking and metadata apps after templatating change. 2015-07-29 19:44:50 -04:00
Roberto Rosario
830c32c30f Add missing documents migration. 2015-07-29 19:43:56 -04:00
Roberto Rosario
26259b63f6 Migrate to use a local model for document comments. Closes gh-issue #233. 2015-07-29 19:43:11 -04:00
Roberto Rosario
97f3451caf Move statements according to code style. 2015-07-29 17:15:38 -04:00
Roberto Rosario
4de73772ed Add persistent error logging to the mailer app. 2015-07-29 17:15:12 -04:00
Roberto Rosario
aa399b4488 Fix property name in document property view. 2015-07-29 13:33:01 -04:00
Roberto Rosario
8072db07dd Index the value field of index nodes. 2015-07-29 13:32:42 -04:00
Roberto Rosario
2e9a809a4e Use same icon for tools as in setup. 2015-07-29 13:32:27 -04:00
Roberto Rosario
ab35118b01 Add support for exporting an index as a FUSE filesystem. Closes gh-issue #173. 2015-07-29 13:30:35 -04:00
Roberto Rosario
22f823aca2 Cleanups, add logging, move magic numbers to literals, add release method, improve file descriptor assignment. 2015-07-28 21:55:17 -04:00
Roberto Rosario
e4fa3c4960 Add slugs to indexes to be able to reference them from the mirroring app. 2015-07-28 21:54:40 -04:00
Roberto Rosario
6039ea86ec Use path_to_node for all operations. 2015-07-28 19:38:58 -04:00
Roberto Rosario
a361311a29 Add missing fusepy requirement. 2015-07-28 19:38:41 -04:00
Roberto Rosario
df17c29394 Initial commit for Index FUSE mirroring. 2015-07-28 05:29:29 -04:00
Roberto Rosario
68a3c49ae3 Fix full height calculation. 2015-07-28 03:02:35 -04:00
Roberto Rosario
61b41cfd79 Add missing commas in tuples. 2015-07-28 02:54:07 -04:00
Roberto Rosario
b5c9065eb3 Shorten line to less than 79 chars. 2015-07-28 02:53:52 -04:00
Roberto Rosario
02143abbca Fix view passed variable name. 2015-07-28 02:47:03 -04:00
Roberto Rosario
7cae9dd18e Update the smart link app to use Django templating language. gh-issues #151. 2015-07-28 02:44:33 -04:00
Roberto Rosario
fc9f9f1e68 Replace more unnecessary lists with tuples. 2015-07-28 01:41:45 -04:00
Roberto Rosario
54f3cef7ba Replace unnecessary lists with tuples. 2015-07-28 00:49:07 -04:00
Roberto Rosario
1e746c700a PEP8 cleanups. 2015-07-27 23:53:14 -04:00
Roberto Rosario
0b923a7a1c Make sure label is always defined even if not used. 2015-07-24 18:20:46 -04:00
Roberto Rosario
3b728328ad PEP8 cleanups, E501. 2015-07-23 04:05:29 -04:00
Roberto Rosario
0a0a92116e Get rid of eval in metadata type default and lookup fields. gh-issue #151. 2015-07-23 02:49:29 -04:00
Roberto Rosario
58d919d173 Initial commit to remove use of eval. gh-issue #151. 2015-07-22 23:19:43 -04:00
Roberto Rosario
4527563d89 PEP8 cleanups, specially E501 line too long. 2015-07-22 18:21:37 -04:00
Roberto Rosario
c275988c90 PEP8 cleanups, E501: 79 character long lines. 2015-07-19 03:27:41 -04:00
Roberto Rosario
20a2f93cbc Add test for compressed documents via webform. 2015-07-19 03:25:42 -04:00
Roberto Rosario
eea163be5a Grab language code directly from language choices. 2015-07-18 04:05:44 -04:00
Roberto Rosario
ec9d7d09a1 Include in context the document for which OCR will be queued. 2015-07-18 03:57:45 -04:00
Roberto Rosario
04b4d9cf4e Add German language OCR to Travis CI test file. 2015-07-18 03:57:19 -04:00
Roberto Rosario
68e450a3c7 Migrate all document languages and use the 'terminology' language abbreviation. gh-issue #211 2015-07-18 03:56:09 -04:00
Roberto Rosario
ea3756162b Reduce sample German document size for more accurate OCR. 2015-07-18 03:55:30 -04:00
Roberto Rosario
ba7cb433d4 Don't hide OCR errors by doing a fallback try without language option. gh-issue #211 2015-07-18 03:25:36 -04:00
Roberto Rosario
719d83d652 Add test for German language OCR. gh-issue #211. 2015-07-18 03:24:01 -04:00
Roberto Rosario
8f14028660 Add post_upgrade signal, use it to re-initialize interval sources. 2015-07-18 02:45:55 -04:00
Roberto Rosario
0a83780527 Add tag migration. 2015-07-18 02:25:04 -04:00
Roberto Rosario
a5cf80cd86 Add management command to perform steps required after an upgrade. 2015-07-18 02:24:10 -04:00
Roberto Rosario
afe6644321 Use shorter confirmation messages. 2015-07-17 19:52:17 -04:00
Roberto Rosario
9288f3c903 Update tag app tests. 2015-07-17 19:42:08 -04:00
Roberto Rosario
d67ed4843a Convert tag color to be an RGB value instead of a name value. Closes gh-issue #183. 2015-07-17 19:38:58 -04:00
Roberto Rosario
76fef8ab8d Don't error out when trying to delete a non existant periodic task. 2015-07-17 13:07:16 -04:00
Roberto Rosario
653a145914 Add tool view to perform OCR on all documents at once. 2015-07-17 13:04:51 -04:00
Roberto Rosario
e7f626aba4 Don't ask for the transformation order when one is being created. 2015-07-17 12:54:49 -04:00
Roberto Rosario
a08377b86e Add statistics view permission. Convert statistics views to CBV. 2015-07-17 02:34:57 -04:00
Roberto Rosario
e2fcffc81d Use the project website tag in the about template. Allow customization of the project description. 2015-07-17 02:10:31 -04:00
Roberto Rosario
e421c8e382 Consolidate common app's template tags. 2015-07-17 02:04:01 -04:00
Roberto Rosario
fb824c6ee1 Allow changing the project's website from a settings option. Update the default mailer templates to take the project title and website from the configuration settings. 2015-07-17 01:53:59 -04:00
Roberto Rosario
68c718fe4c Allow settings to serialize lazy translations. 2015-07-17 01:41:44 -04:00
Roberto Rosario
2b11465249 Import all apps' settings file to initialize them. 2015-07-17 01:15:00 -04:00
Roberto Rosario
77ab118a68 Access serialized value via property. 2015-07-17 00:59:47 -04:00
Roberto Rosario
363f71a3e7 Remove settings from unused apps from base settings file. Update settings file according to coding style. 2015-07-17 00:52:12 -04:00
Roberto Rosario
91a9b3b045 Finish document upload task refactor. Increase failure tolerance to database Operational Errors. 2015-07-15 04:36:23 -04:00
Roberto Rosario
0b1230f214 Update serializer settings code. 2015-07-15 01:04:16 -04:00
Roberto Rosario
1213175112 Sources app upload workflow refactoring. 2015-07-15 01:03:57 -04:00
Roberto Rosario
fc9d7b1a8b Remove celery code execute from model. Allow for default at the model level. 2015-07-15 01:03:23 -04:00
Roberto Rosario
6b5312ff41 Update document creation API to return the id of the created document. 2015-07-15 01:02:24 -04:00
Roberto Rosario
da0e03bf12 Wrap transformation cloning in a transaction. 2015-07-15 01:01:58 -04:00
Roberto Rosario
1b37a13bf5 Rename source upload handling methods to be more meaningful. 2015-07-14 10:20:19 -04:00
Roberto Rosario
dbc08afd45 Catch operational errors in more critical places. 2015-07-14 02:21:55 -04:00
Roberto Rosario
8d7a9df7e8 Add optimization reminder. 2015-07-13 23:44:43 -04:00
Roberto Rosario
7ba9410d70 Fix typo 2015-07-13 23:44:35 -04:00
Roberto Rosario
aed6569096 Index frequently used document version and document fields. 2015-07-13 20:59:53 -04:00
Roberto Rosario
ba1e36146d Calculate inherited permission by id of parent object not pk of ACL of parent. 2015-07-13 19:44:45 -04:00
Roberto Rosario
defe947c79 Only shade icons and labels of the block level buttons. 2015-07-13 19:44:18 -04:00
Roberto Rosario
c23749b37e Make logo shadow more distant. 2015-07-13 19:43:56 -04:00
Roberto Rosario
ee83624704 Don't fail if model has not inherited permissions. 2015-07-13 02:28:24 -04:00
Roberto Rosario
fed241fd6f Don't delete document on tearDown, might not exists after test already deleted it, causes integrity errors on MySQL. 2015-07-13 02:07:29 -04:00
Roberto Rosario
d5b5927c77 Reference file in storage backend by name and not by path. 2015-07-13 02:03:30 -04:00
Roberto Rosario
8c603ce2ff Update document image cache references to document cache. 2015-07-13 02:02:48 -04:00
Roberto Rosario
9edf3dd51d Add missing tearDown methods to tests. 2015-07-13 01:26:19 -04:00
Roberto Rosario
f5a45c91f8 Add logging for more apps during tests. 2015-07-13 01:17:21 -04:00
Roberto Rosario
c8bc7c0c5f Update release notes. 2015-07-13 01:17:02 -04:00
Roberto Rosario
ac1f4eb59a Improve the way the AssignRemove view gets the list's help texts. Don't use None for extra context if there is none. 2015-07-13 01:16:17 -04:00
Roberto Rosario
713977ed46 Document image and intermediate file caching now has it's own storage backend. 2015-07-13 01:06:40 -04:00
Roberto Rosario
73c650a5fb Add minimal shadow to button texts and to icons. 2015-07-13 01:00:29 -04:00
Roberto Rosario
34c1f1227d Improve appearance of block level buttons (front page, tools, setup). 2015-07-13 00:59:31 -04:00
Roberto Rosario
1f213450c2 Change the way the ocr tests acquired document version text. 2015-07-12 03:46:19 -04:00
Roberto Rosario
28593a6267 Add logging for more apps and reduce severity during tests. 2015-07-12 03:31:21 -04:00
Roberto Rosario
fd8721b297 Add teardown method for all tests. 2015-07-12 03:28:31 -04:00
Roberto Rosario
e05f6b5830 Replace tests fails checks to assertions. 2015-07-12 02:59:45 -04:00
Roberto Rosario
c2a0990e57 Change deprecated import of get_model. 2015-07-12 02:58:31 -04:00
Roberto Rosario
53c631b505 Use smaller pagination in test. 2015-07-11 17:20:45 -04:00
Roberto Rosario
7c95431066 Remark unused wrong test. 2015-07-11 17:20:11 -04:00
Roberto Rosario
af654c9aa9 Fix variable name. 2015-07-11 17:19:51 -04:00
Roberto Rosario
6b0114a001 Add missing import. 2015-07-11 17:19:36 -04:00
Roberto Rosario
ff0bb847a5 Fix wrong permission for view. 2015-07-11 17:18:56 -04:00
Roberto Rosario
8b608452a5 Lower severity of operational error during OCR. 2015-07-11 17:01:03 -04:00
Roberto Rosario
1da2860d0a Wrap indexation in a transaction. 2015-07-11 17:00:42 -04:00
Roberto Rosario
004b0c75d7 Retry indexation if an operationalerror is encountered. 2015-07-11 17:00:13 -04:00
Roberto Rosario
e47c0c5eb5 Increase default pagination to 40 entries per page. 2015-07-11 16:28:12 -04:00
Roberto Rosario
17d969dafe Move indexing retry amount to the literals.py module. Specify retry delay in the task decorator to reduce repetition. 2015-07-11 16:24:51 -04:00
Roberto Rosario
0238be7a18 Add support for retrying upload queue and ocr queue tasks in the event of Database locking errors. 2015-07-11 16:19:04 -04:00
Roberto Rosario
40ca9c4839 Move the document page update task to the upload queue. 2015-07-11 16:18:21 -04:00
Roberto Rosario
c8f5aac133 Convert the document type list, create, edit and delete views to CBV. Remove unused DocumentTypeForm. 2015-07-11 04:14:54 -04:00
Roberto Rosario
d10ad2eb74 Convert transformation views to CBV. 2015-07-11 03:57:41 -04:00
Roberto Rosario
b5ede7c2d3 Add auto increment order for transformations. 2015-07-11 03:45:38 -04:00
Roberto Rosario
72bbc3f4e9 Make validator not trigger migration creation. 2015-07-11 02:59:18 -04:00
Roberto Rosario
f95c9c2aa4 Convert the source edit and delete views to CBV. 2015-07-11 02:36:31 -04:00
Roberto Rosario
a05888b683 Fix email sources clearing the password field on view. 2015-07-11 02:19:22 -04:00
Roberto Rosario
07dbe71c41 Fix source object links. 2015-07-11 02:19:02 -04:00
Roberto Rosario
a9c04115f7 Add index rebuild test. 2015-07-11 02:06:15 -04:00
Roberto Rosario
d88bb1266a More explicit comment. 2015-07-11 01:49:37 -04:00
Roberto Rosario
cb6e80926e Add management command to purge periodic tasks from the DB. 2015-07-11 01:49:15 -04:00
Roberto Rosario
d6c053f913 Rename purge permissions management command. 2015-07-11 01:48:34 -04:00
Roberto Rosario
02d31f763d Update Pillow and activity stream packages versions. 2015-07-11 00:51:22 -04:00
Roberto Rosario
a2cedc3f9b Fix queue typos. Add a default queue as required by celery. 2015-07-11 00:50:55 -04:00
Roberto Rosario
133fcdc53c Assign tasks to specific queues. Add support for transient queues. gh-issue #222, gh-issue #230. 2015-07-10 21:25:20 -04:00
Roberto Rosario
e891fe9525 PEP8 cleanups and code style cleanups. 2015-07-10 17:19:36 -04:00
Roberto Rosario
c3be4bef53 Move stray magic values to literals.py in the checkout app. gh-issue #225. 2015-07-10 16:14:21 -04:00
Roberto Rosario
aec8263ad8 Convert events app views to CBV. 2015-07-10 02:54:59 -04:00
Roberto Rosario
76c3ff7374 Remove the acl filter option 'exception_on_empty'. 2015-07-10 01:49:42 -04:00
Roberto Rosario
bc3eed143c Add permission inheritance by parent object. Add ACLs app model tests. 2015-07-10 01:40:21 -04:00
Roberto Rosario
441eae28bc Add DisableableSelectWidget widget 2015-07-10 00:41:18 -04:00
Roberto Rosario
01438f933c Add tests for the permission app. 2015-07-10 00:38:32 -04:00
Roberto Rosario
036a55065c Change the index creation, edit and deletion views to CBV. Remove unused IndexForm. 2015-07-09 02:25:23 -04:00
Roberto Rosario
a5b7747619 Update current user detail edit and locale views to CBV. 2015-07-09 02:11:33 -04:00
Roberto Rosario
4a88df8f9a Convert group create and edit views to CBV. Remove unused GroupForm. 2015-07-09 02:00:19 -04:00
Roberto Rosario
abfb070b2e Remove unused FBV source create view. 2015-07-09 01:50:45 -04:00
Roberto Rosario
635732da6a Convert the tag create and edit views to CBV. Remove unused TagForm. 2015-07-09 01:50:10 -04:00
Roberto Rosario
22ebe2354d Change the source list and source create views to CBV. 2015-07-09 01:41:29 -04:00
Roberto Rosario
66b3424fbe Simplify smart settings views. 2015-07-09 01:24:28 -04:00
Roberto Rosario
498f258f59 Convert metadata edit, delete and create views to CBV. Remove unused metadata type form. 2015-07-09 01:19:20 -04:00
Roberto Rosario
d2123089ec Convert metadata type list view to CBV. 2015-07-08 22:05:32 -04:00
Roberto Rosario
c751db4447 Convert folder create view to CBV. 2015-07-08 22:02:00 -04:00
Roberto Rosario
0946aef7c0 Update folder edit view to CBV. 2015-07-08 19:07:48 -04:00
Roberto Rosario
bfab8f1181 Reduce code, remove unused role model form. 2015-07-08 19:02:32 -04:00
Roberto Rosario
ea49af7255 Remove role name field. 2015-07-08 19:01:07 -04:00
Roberto Rosario
e635a3520f Move index management code to the managers.py module. 2015-07-08 18:56:07 -04:00
Roberto Rosario
3af3747be9 Add views to display document list per document type and per workflow. 2015-07-08 18:29:45 -04:00
Roberto Rosario
595f64a25c Fix OCR test. 2015-07-08 04:16:59 -04:00
Roberto Rosario
2033f85874 Log OCR subclass errors. 2015-07-08 04:16:35 -04:00
Roberto Rosario
47a74360dd Remove double execution of backend. Store the language in the instance. 2015-07-08 04:15:58 -04:00
Roberto Rosario
f97bbd98bd Fix typo. 2015-07-08 04:05:10 -04:00
Roberto Rosario
2d710ad3b9 Fix chicken & egg problem for permissions when the dataset doesn't exists. 2015-07-08 03:52:15 -04:00
Roberto Rosario
7a377653ca Update missing name -> label. 2015-07-08 03:37:17 -04:00
Roberto Rosario
6a13e2adc8 Make a clear distinction between serialized and deserialized setting values. 2015-07-08 03:31:45 -04:00
Roberto Rosario
ead8ba9a12 Don't dump the setting name to YAML. 2015-07-08 02:56:19 -04:00
Roberto Rosario
333c9c9b1a Document signatues app uses it's own storage backend. 2015-07-08 02:54:14 -04:00
Roberto Rosario
a0ff961d59 Move get_object_name from common.utils to the only place it is used: checkouts. 2015-07-08 02:43:28 -04:00
Roberto Rosario
39cbb0f666 Update release notes. 2015-07-08 02:03:12 -04:00
Roberto Rosario
4c25314772 os.listdir returns str for non-latin filename, use unicode cast in path name to avoid this. Related to gh-issue #163. 2015-07-08 02:02:24 -04:00
Roberto Rosario
90be5145c0 Rename test file. 2015-07-08 02:00:27 -04:00
Roberto Rosario
e0d6571d95 Fix imports in tests. 2015-07-08 01:43:44 -04:00
Roberto Rosario
a54fe3f131 Add trash, restore and deletion test to document models. 2015-07-08 01:25:20 -04:00
Roberto Rosario
2fabe92b20 Add test for trashing, restoring and deletion of documents. 2015-07-08 01:15:12 -04:00
Roberto Rosario
d751a8bc2f Improve logging messages. 2015-07-08 01:14:55 -04:00
Roberto Rosario
35b6ce5285 Don't set the default document label in the view, do it at the task level which is accesible always. 2015-07-08 01:01:20 -04:00
Roberto Rosario
afafd45af9 Preserve original filename when saving. 2015-07-08 00:59:56 -04:00
Roberto Rosario
68395266a4 Make sure all document types have they ocr_settings entry created. 2015-07-08 00:41:51 -04:00
Roberto Rosario
1b756486f2 Test update 2015-07-08 00:27:39 -04:00
Roberto Rosario
1e588d87eb Store an empty string if no document description is given. 2015-07-08 00:27:13 -04:00
Roberto Rosario
857cf7b1b2 Add browser cookie support for timezone middleware. 2015-07-08 00:17:44 -04:00
Roberto Rosario
3861bc351a Remove unused code. 2015-07-07 23:37:51 -04:00
Roberto Rosario
8d91ef2858 Update remaining title reference. 2015-07-07 23:36:24 -04:00
Roberto Rosario
4e4103803f Rename folder model 'title' field to 'label'. 2015-07-07 23:34:27 -04:00
Roberto Rosario
4860b44daf Rename source model title field to 'label'. 2015-07-07 23:30:52 -04:00
Roberto Rosario
f2efbc95af Document descriptions don't need to allow null. 2015-07-07 23:25:39 -04:00
Roberto Rosario
f4bcab2341 Rename metadata type title field to label. 2015-07-07 23:25:05 -04:00
Roberto Rosario
ac5f403997 Rename smart links title and dynamic_title fileds to label and dynamic_label. 2015-07-07 23:20:48 -04:00
Roberto Rosario
a5cee3c963 Split sources app tests. 2015-07-07 22:03:58 -04:00
Roberto Rosario
77157cab2c Split tests into tests for models, views and API, very good recommendation from Two Scoops of Django by @pydanny and @audreyr. 2015-07-07 21:49:50 -04:00
Roberto Rosario
0e81ea2ab8 Avoid triggering migration creation using functions for choices and validators choices. 2015-07-07 21:21:08 -04:00
Roberto Rosario
7a11fddcc1 Add migrations to sync model options. 2015-07-07 21:15:29 -04:00
Roberto Rosario
c861799b6b Rename document type model 'name' field to 'label'. 2015-07-07 21:12:44 -04:00
Roberto Rosario
ab2d4537dc Remove name field. Rename title field to label. 2015-07-07 21:04:00 -04:00
Roberto Rosario
efad777656 Cleanups. 2015-07-07 20:52:10 -04:00
Roberto Rosario
e7224474e6 Convert document checkout view to CBV. 2015-07-07 20:49:20 -04:00
Roberto Rosario
17c454a53a Add checkout expiration time validation. Sort field arguments according to style guide. 2015-07-07 20:48:36 -04:00
Roberto Rosario
b96ba86991 Reduce widget complexity. 2015-07-07 20:48:23 -04:00
Roberto Rosario
941207eb04 Don't override get_context_data use get_extra_context for this purpose. 2015-07-07 20:47:36 -04:00
Roberto Rosario
69ea0a61e8 Get post_action_redirect and action_cancel_redirect from methods to allow overriding with context. 2015-07-07 20:46:49 -04:00
Roberto Rosario
bd8487848a Disable OCR, not unsed in this test. 2015-07-07 03:01:42 -04:00
Roberto Rosario
e17bc416b8 Tests updates. 2015-07-07 02:59:45 -04:00
Roberto Rosario
e82a9d0c9f Add missing import. 2015-07-07 02:58:55 -04:00
Roberto Rosario
aeac8143ee Use BytesIO instead of StringIO, the last one doesn't work using 'with' context. 2015-07-07 01:49:47 -04:00
Roberto Rosario
46b6f908f4 Misc test fixes. 2015-07-07 01:30:32 -04:00
Roberto Rosario
a59234bb83 Use SharedUploadedFile's new open() method. 2015-07-07 01:28:06 -04:00
Roberto Rosario
01cf7780c0 Add reminder. 2015-07-07 01:25:52 -04:00
Roberto Rosario
4f044cecc7 Don't use the original's filename as a path. Provide an open() method which return a proper file-like object. 2015-07-07 01:24:34 -04:00
Roberto Rosario
091dad9b45 Fix SharedUpload model field name. 2015-07-06 14:32:37 -04:00
Roberto Rosario
9784ae88a4 Update release notes. 2015-07-06 03:18:54 -04:00
Roberto Rosario
1f6b93616d Update more tests to new internal APIs. 2015-07-06 03:18:36 -04:00
Roberto Rosario
51fd266d40 Update documents app tests, disabled several non passing functional test as these will be moved to the common app. 2015-07-06 03:04:19 -04:00
Roberto Rosario
8bdd8e032d Update documents app API views. 2015-07-06 03:02:17 -04:00
Roberto Rosario
7979b097ef Explictly delete document when deleting a document type. Remove unused code. Pop argument 'to_trash' from document.save to avoid super() error. 2015-07-06 02:42:19 -04:00
Roberto Rosario
7e9fa745c6 'Expand' is no longer a feature of the document's apps, but of the source's app, remove it from the document's serializer. 2015-07-06 02:21:56 -04:00
Roberto Rosario
b642e4005e PEP8 cleanups 2015-07-06 02:07:50 -04:00
Roberto Rosario
6eeba3ee67 Update document indexing test to take into account new trash feature. 2015-07-06 02:04:05 -04:00
Roberto Rosario
8727f093e0 Don't initialize a document type's OCR settings via the view, do so via signal on document type creation. 2015-07-06 01:36:17 -04:00
Roberto Rosario
3f53d35083 Remove unused import 2015-07-06 01:21:58 -04:00
Roberto Rosario
8bd0831ed6 Fix authentication app tests. 2015-07-06 01:19:11 -04:00
Roberto Rosario
1c3d88f746 Code style 2015-07-06 01:19:00 -04:00
Roberto Rosario
6efb032298 PEP8 cleanups 2015-07-06 00:48:40 -04:00
Roberto Rosario
f55929403b Add setter to change the value of a setting. 2015-07-06 00:48:16 -04:00
Roberto Rosario
dcf3a77c66 Don't try to set locale preferences for new users or existing users that have not set any preferences. 2015-07-06 00:22:09 -04:00
Roberto Rosario
3c486e14a1 DRY, make development w/ DDT settings inhering from normal development settings file. 2015-07-06 00:13:17 -04:00
Roberto Rosario
a9c7ea7442 Make celery propagate exceptions for easier debugging. 2015-07-06 00:12:51 -04:00
Roberto Rosario
dc572cc8ee Add migration to remove obsolete anonymous user singleton. 2015-07-06 00:07:07 -04:00
Roberto Rosario
aea6772cbf Reimplement the IndexInstanceNodeView CBV view as a multi-inheritance CBV with manual super class resolution. 2015-07-06 00:03:21 -04:00
Roberto Rosario
8cc05bbefb Initial commit of new document upload workflow which allows for document promises to be returned after POST request, gh-issue #194. Add new signal when a document is uploaded and finally ready, gh-issue #193 and gh-issue #213. 2015-07-05 03:33:27 -04:00
Roberto Rosario
8f30932b6f Fix locale and language not updating on edit or on login 2015-07-04 04:36:55 -04:00
Roberto Rosario
fa4cb686fb Auto add arguments to transformation labels. 2015-07-04 04:16:18 -04:00
Roberto Rosario
862de43219 Update tranformation help string. 2015-07-04 04:01:20 -04:00
Roberto Rosario
a0916afe7c Update converter transformation arguments to be YAML based. 2015-07-04 03:59:38 -04:00
Roberto Rosario
e856ff62c3 Remove unused variable from recent document list view context. 2015-07-04 03:11:53 -04:00
Roberto Rosario
a54f6ea5f2 Add reminder 2015-07-04 03:09:50 -04:00
Roberto Rosario
d55f54b221 Move package metadata to mayan/__init__.py 2015-07-04 03:09:25 -04:00
Roberto Rosario
ee6bb866c9 Add support for document retention policies. Closes gh-issue #189. 2015-07-04 02:25:59 -04:00
Roberto Rosario
589874bec1 Simplify 'trash can' to just 'trash'. 2015-07-03 21:04:47 -04:00
Roberto Rosario
ab53270942 Add field to store when a document was deleted. 2015-07-03 21:00:18 -04:00
Roberto Rosario
7e8e124d09 Add support for emptying the trash can in a single action. 2015-07-03 20:50:07 -04:00
Roberto Rosario
924c07c9de Add support for redirection target on confirm dialog cancelation 2015-07-03 20:49:28 -04:00
Roberto Rosario
3e299f030a Add support to fully delete documents from trash can. Rename previous delete link and related code to 'move to trash'. gh-issue #188. 2015-07-03 18:35:10 -04:00
Roberto Rosario
98b988038e Implement document trash can and soft delete support. First half or gh-issue 188. 2015-07-03 03:28:02 -04:00
Roberto Rosario
e2e62d7640 Match navigation links by type not to all subclasses of the source. 2015-07-03 03:24:51 -04:00
Roberto Rosario
8575d02286 Add missing imports 2015-07-03 03:24:20 -04:00
Roberto Rosario
509c944df0 Add mixin to apply an action to many instances 2015-07-03 03:20:36 -04:00
Roberto Rosario
3d7e7ae4a2 Add support for getting an office document page count. 2015-07-03 03:19:42 -04:00
Roberto Rosario
bee9ae32c3 Call the correct super class 2015-07-03 03:19:13 -04:00
Roberto Rosario
0a42233e58 Fix ACL app migrations. 2015-07-03 01:15:07 -04:00
Roberto Rosario
6522b909f7 Update release notes 2015-07-02 21:00:38 -04:00
Roberto Rosario
fee9d7ea9e Remove support for auto applying roles after new user creation. 2015-07-02 20:56:16 -04:00
Roberto Rosario
2247d4c38e Fix common app setting name 2015-07-02 20:51:02 -04:00
Roberto Rosario
debd9db317 Remove graphicsmagic and imagemagick backends 2015-07-02 20:48:44 -04:00
Roberto Rosario
7771740e59 Remove unused views 2015-07-02 20:28:43 -04:00
Roberto Rosario
0e7bf60717 Convert index instance view to CBV. Add smart document count to index instance view. 2015-07-02 04:10:28 -04:00
Roberto Rosario
e102832b2f Use two state widget to show if a state is the initial state for a workflow. 2015-07-02 02:55:29 -04:00
Roberto Rosario
ad5709c8ce Remove maintenance tools menu entry, apps now register tools directly to the tools menu. 2015-07-02 02:47:46 -04:00
Roberto Rosario
c22fd83f3e Add smart document count to document tag list view. 2015-07-02 02:15:36 -04:00
Roberto Rosario
18178404c2 Add smart document count to folder list and document folder list views. Add user column to folder list views. 2015-07-02 02:14:55 -04:00
Roberto Rosario
01203b2531 Re-add smart tag document counter that takes into account user permission for the document list. 2015-07-02 02:08:19 -04:00
Roberto Rosario
963211f45c Remove index previous level navigation link. 2015-07-02 02:08:10 -04:00
Roberto Rosario
91a7b66908 Improve index nodes widget icons and spacing. 2015-07-02 01:50:58 -04:00
Roberto Rosario
80e855e7b4 Return '#' for invalid indexes (unitialized, indexes with not node instances). 2015-07-02 01:50:19 -04:00
Roberto Rosario
c3c4fcb2b2 Convert index list view to CBV. 2015-07-02 01:49:52 -04:00
Roberto Rosario
51d50672f3 Change index setup list view to CBV. 2015-07-02 01:32:03 -04:00
Roberto Rosario
d47091df61 Convert resolved smart link document list view to CBV. 2015-07-02 01:26:35 -04:00
Roberto Rosario
dda604dcbb Convert document smart link list view to CBV. 2015-07-02 01:13:34 -04:00
Roberto Rosario
daa6777592 Remove obsolete acls model 2015-07-02 00:57:37 -04:00
Roberto Rosario
70b0996354 Fix smart link document type assign remove view 2015-07-02 00:57:08 -04:00
Roberto Rosario
c6ec9fbc33 Rebalance permissions. 2015-07-01 20:58:16 -04:00
Roberto Rosario
fd11a15bf3 Conver folder list and document folder list views to CBV. 2015-07-01 20:57:55 -04:00
Roberto Rosario
e0d38d316a Change tag list, tag documents and document's tags list views to CBV. Link tag_view permission to documents, used to allow showing a document's tags in addition to allowing general tags in the tag list view. 2015-07-01 20:33:23 -04:00
Roberto Rosario
ea0d724ede Don't display number of documents in a tag, causes extra query, give information even if user is not allowed to see which documents are tagged can now if there are documents tagged. 2015-07-01 17:24:39 -04:00
Roberto Rosario
b5d2ebc781 Replace user list and group list views with CBVs. 2015-07-01 17:11:18 -04:00
Roberto Rosario
23fda5561e Propery filter documents queryset on CBV that return a list of documents. 2015-07-01 17:01:41 -04:00
Roberto Rosario
f0cfe314f0 PEP8 cleanups 2015-07-01 16:45:33 -04:00
Roberto Rosario
ace76fc69c Update apps for new ACLs refactor. 2015-07-01 16:36:20 -04:00
Roberto Rosario
8a501c2c27 Reduce smart link code by using a proxy model. 2015-07-01 16:35:38 -04:00
Roberto Rosario
49f86cd331 Finish refactoring access control list's queryset filtering by access level code. 2015-07-01 16:33:07 -04:00
Roberto Rosario
9105fdf0fa Update release notes 2015-07-01 02:53:26 -04:00
Roberto Rosario
f65fb2cd6c Remove anonymous user support 2015-07-01 02:45:58 -04:00
Roberto Rosario
48a4e95cf0 Serve more fonts locally 2015-07-01 02:33:29 -04:00
Roberto Rosario
5229635026 Serve the fonts locally 2015-07-01 02:28:16 -04:00
Roberto Rosario
8969bb6591 Update jquery version 2015-07-01 02:08:45 -04:00
Roberto Rosario
96d05cf12f Update link text for clarity 2015-06-30 22:00:37 -04:00
Roberto Rosario
ee1b05fb57 Refactor code to associate a model with a set of permissions. Update related apps. 2015-06-30 22:00:14 -04:00
Roberto Rosario
6ceb71d0b3 Rename metadata parsers to metadata validators. Fix validators calling method, import and instance, instead previous key based lookup. 2015-06-30 17:35:35 -04:00
Roberto Rosario
c7953a1cfb Improve document upload wizard title messages 2015-06-30 17:35:16 -04:00
Roberto Rosario
e9ea2dc35a Modernize usage of the AssignRemove CBV 2015-06-30 17:19:56 -04:00
Roberto Rosario
0bb8fa2ba9 Add exception, check and message when an invalid permission namespace is requested. 2015-06-30 16:48:27 -04:00
Roberto Rosario
060033b41c Fix typo 2015-06-30 02:46:56 -04:00
Roberto Rosario
8cff91ab5f Remove unused forms 2015-06-30 02:46:27 -04:00
Roberto Rosario
0e24f8d821 Simplify and remove unused code 2015-06-30 02:43:58 -04:00
Roberto Rosario
eddce6611a Remove permission field from list display columns 2015-06-30 02:43:15 -04:00
Roberto Rosario
d45cf5d02e Update apps to new ACL app changes 2015-06-30 02:42:46 -04:00
Roberto Rosario
c6cdafb12a Update namespace label for clarity 2015-06-30 02:39:20 -04:00
Roberto Rosario
576463535f Add view permission and object permission mixins to the AssignRemove CBV 2015-06-30 02:38:50 -04:00
Roberto Rosario
070c3b648c Refactor acls app 2015-06-30 02:38:22 -04:00
Roberto Rosario
29447f16f4 Add management command to purge obsolete permissions from the database 2015-06-29 17:12:18 -04:00
Roberto Rosario
a68be31e52 Remove unused permissions check code 2015-06-29 16:58:46 -04:00
Roberto Rosario
750c86e41c Remove obsolete 403 template 2015-06-29 16:58:04 -04:00
Roberto Rosario
cbfc840466 Remove specialized middleware to show custom 403 error, not needed with recent Django versions. 2015-06-29 16:57:20 -04:00
Roberto Rosario
5be41af1cf Remove DefaultAccessControlList support 2015-06-29 14:51:37 -04:00
Roberto Rosario
3d1b030f95 Remove obsolete class Member 2015-06-29 14:30:03 -04:00
Roberto Rosario
220e142eb2 Remove obsolete module 2015-06-29 14:29:43 -04:00
Roberto Rosario
5d3f8e19ea Remove unused module 2015-06-29 14:26:29 -04:00
Roberto Rosario
88ddb1b1d6 Use repeatable id to cache stored permissions 2015-06-29 14:26:06 -04:00
Roberto Rosario
12c47027a6 Remove unused CSS class 2015-06-29 14:21:42 -04:00
Roberto Rosario
f326007f40 Update links labels to uppercase 2015-06-29 14:19:06 -04:00
Roberto Rosario
3754f45001 Reduce checked out document column label string size. Refactor roles: roles can only have groups as members, only roles can hold permissions. 2015-06-29 14:07:02 -04:00
Roberto Rosario
560e469e8c Reduce horizontal ruler margins. 2015-06-29 14:03:48 -04:00
Roberto Rosario
7122a38807 Force implementation methods when subclassing. Hide labels, they don't add any important information. 2015-06-29 14:02:46 -04:00
Roberto Rosario
02761cda25 Remove link to Django's admin site. User are discouraged to change entries directly in the database. 2015-06-29 14:01:52 -04:00
Roberto Rosario
1c084aa07b Split Permission and StoredPermission class and model into different modules. Simplified the Permission class. 2015-06-28 01:03:29 -04:00
Roberto Rosario
d26402974a Allow registering permission from the permission namespace. Replace all permission variables to be lowercase (style guide reserver uppercase variables for constants and literals). 2015-06-28 00:19:49 -04:00
Roberto Rosario
956ca08cbd Fix converter backend 2015-06-27 23:32:52 -04:00
Roberto Rosario
48df3dcafa PEP8 cleanups 2015-06-24 17:11:24 -04:00
Roberto Rosario
dd9b196110 Update release notes 2015-06-24 15:20:07 -04:00
Roberto Rosario
e9282132e5 Split search field registration to their respective apps 2015-06-24 15:19:51 -04:00
Roberto Rosario
579b369d07 Preserve search field order 2015-06-24 15:17:01 -04:00
Roberto Rosario
5506c33ce5 Lazy loading of model to search 2015-06-24 15:16:00 -04:00
Roberto Rosario
e04263f4d7 Merge pull request #217 from thequbit/master
change default email to @example.com from known valid address.
2015-06-24 14:46:32 -04:00
Roberto Rosario
00427da11e Fix search app settings variables' casing 2015-06-24 13:07:36 -04:00
Roberto Rosario
ce329b1ca2 Remove unused module 2015-06-24 12:55:07 -04:00
Roberto Rosario
72b91b79ac Move document type's OCR settings from the documents app to the OCR app 2015-06-24 01:52:33 -04:00
Roberto Rosario
83ed62b210 Remove office document parser now that document version are converted to intermediate format 2015-06-24 01:12:54 -04:00
Roberto Rosario
b18888b3f7 Convert and cache office documents at the document version level for faster page image retrieval 2015-06-24 01:04:35 -04:00
Roberto Rosario
3d68e79654 Add missing import 2015-06-24 01:04:08 -04:00
thequbit
4595c649a2 change default email to @example.com from known valid address. Closes 2015-06-23 07:45:26 -04:00
Roberto Rosario
080780ca1e Merge and reduce tag widgets 2015-06-23 04:18:22 -04:00
Roberto Rosario
3cfeb97103 Fadeout and up when dismissing alerts 2015-06-23 04:13:20 -04:00
Roberto Rosario
873836c887 Update remaining mailer app to new smart settings system 2015-06-23 04:13:07 -04:00
Roberto Rosario
b4efd4574e Refactor register_model_columns into SourceColumn class 2015-06-23 04:12:13 -04:00
Roberto Rosario
383c7e62ab Remove obsolete autoadmin tags 2015-06-23 03:24:40 -04:00
Roberto Rosario
a5e922416b Make generates_choices_w_label a static method of AssignRemove, it's not anywhere else. 2015-06-23 03:13:28 -04:00
Roberto Rosario
cdf5a06216 Add entry and exit animations to alerts. Auto dismiss success alerts after 3 seconds. 2015-06-23 02:57:59 -04:00
Roberto Rosario
e4623fadcd PEP8 cleanups 2015-06-23 02:23:23 -04:00
Roberto Rosario
c249b47b79 Finish smart settings refactor 2015-06-23 01:44:57 -04:00
Roberto Rosario
f7e96c8cae Add per namespace settings count 2015-06-23 01:18:44 -04:00
Roberto Rosario
78198f3398 Smart settings refactor 2015-06-22 21:04:06 -04:00
Roberto Rosario
6dcb984aca Remove support for 'hidden' smart settings 2015-06-22 01:18:38 -04:00
Roberto Rosario
50e547dc98 Allow app to auto add their urlpatterns via MayanAppConfig AppConfig subclass 2015-06-19 20:42:34 -04:00
Roberto Rosario
f4c320dae8 Remove authetication urls from the common app 2015-06-19 19:49:09 -04:00
Roberto Rosario
4920e7dabb Keep fancybox previous and next button always enabled 2015-06-19 19:44:29 -04:00
Roberto Rosario
5d30356b76 Exclude description field from the document upload form to save space 2015-06-19 19:37:36 -04:00
Roberto Rosario
7efe09b2a9 Update release notes 2015-06-19 19:09:50 -04:00
Roberto Rosario
ad7a5d8244 Update document OCR submit views to CBV views 2015-06-19 19:07:44 -04:00
Roberto Rosario
92ba52720a Add get_success_url to redirection mixin 2015-06-19 19:06:56 -04:00
Roberto Rosario
ce10970b16 Migration fails in SQLite for document with empty OCR content 2015-06-19 19:06:24 -04:00
Roberto Rosario
340fe49ad1 Merge remote-tracking branch 'origin/development' into development 2015-06-19 18:30:06 -04:00
Roberto Rosario
be61044041 Fix full list selection 2015-06-19 16:27:28 -04:00
Roberto Rosario
8e665c1846 Improve migration dependecy 2015-06-17 18:44:45 -04:00
Roberto Rosario
aba7041d9e Update release notes 2015-06-17 02:51:17 -04:00
Roberto Rosario
270b836c71 Fix error on empty list introspection 2015-06-17 02:24:54 -04:00
Roberto Rosario
22340d8b8f Update menu resolution to return a list of lists of resolved objects. Allows segmented 'Action' dropdown on multi objects action menu. 2015-06-17 02:21:53 -04:00
Roberto Rosario
5fc77f4e84 Show workflow instance completion percent based on current state 2015-06-17 02:21:16 -04:00
Roberto Rosario
12a9ccd5e0 Simplify workflow instance detail view 2015-06-17 02:20:57 -04:00
Roberto Rosario
6e44d43195 Explicit workflow creation link title 2015-06-17 02:20:32 -04:00
Roberto Rosario
74f5e3ec5f Mark tag deletion link as dangerous 2015-06-17 02:19:40 -04:00
Roberto Rosario
a7fd802436 Introspect object to be able to show table header even on empty object_list 2015-06-17 02:19:12 -04:00
Roberto Rosario
63201aa082 Remove the page_label field from the document page model. Closes gh-issue #195 2015-06-17 00:31:11 -04:00
Roberto Rosario
93e7b73433 Update document page content search registration 2015-06-17 00:27:44 -04:00
Roberto Rosario
2959539083 Add missing import 2015-06-17 00:25:51 -04:00
Roberto Rosario
9f2f10b702 Register PERMISSION_OCR_CONTENT_VIEW permission to the document model 2015-06-17 00:23:48 -04:00
Roberto Rosario
08a8ae2554 Move document page content code to the OCR app. Prep work for issue #186. 2015-06-17 00:21:35 -04:00
Roberto Rosario
36ea7c2f3d Update Pillow version to 2.8.2 2015-06-16 23:37:29 -04:00
Roberto Rosario
91150a7f51 Change the user_object of the DocumentCheckout model to be just a FK to the User model 2015-06-16 23:35:23 -04:00
Roberto Rosario
0e52609c7c Pass request.user when doing a document version revert 2015-06-16 23:16:02 -04:00
Roberto Rosario
a5636e5a94 Add new event for document version reversion 2015-06-16 23:14:29 -04:00
Roberto Rosario
ede88ddcc3 Add new event for new document version creation 2015-06-16 23:03:34 -04:00
Roberto Rosario
14e0d0a03c Add sample logging to the development settings 2015-06-16 20:42:53 -04:00
Roberto Rosario
a4cd152310 Cache compiled templates by default in production settings. Turn off Celery's eager behaviour in production by default. 2015-06-16 20:42:03 -04:00
Roberto Rosario
ac68470c89 Don't cache compiled templates by default 2015-06-16 20:41:40 -04:00
Roberto Rosario
c8268b1a5b Move new document version blocking logic to the checkouts app. Remove PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE, overriding checkout restrictions even for admin users has the potential to confuse or corrupt data, removing it. Even admins must now checkin a document before trying to perform a restricted operation. 2015-06-16 20:38:45 -04:00
Roberto Rosario
dc35ed6948 Add TODO reminder 2015-06-16 16:20:56 -04:00
Roberto Rosario
394a90458a Improve way to cache document page images and invalidate them. Update related code. 2015-06-16 16:20:17 -04:00
Roberto Rosario
51e4b8b44c Add migration to change the way ordering was defined 2015-06-16 15:32:14 -04:00
Roberto Rosario
e47385ddfb Remove no longer used document method 2015-06-16 15:21:02 -04:00
Roberto Rosario
99c8fb8da2 Chang erole and smart settings icons 2015-06-16 15:05:43 -04:00
Roberto Rosario
6c5b23f7ee Assign new icon to the installtion app link 2015-06-16 04:49:04 -04:00
Roberto Rosario
f99db0f66b Reassign icons to indexing, workflows and metadata links 2015-06-16 04:47:21 -04:00
Roberto Rosario
ab0cb0917c Add reminders to add taks 2015-06-16 04:38:23 -04:00
Roberto Rosario
4cc1aaf162 Sort imports 2015-06-16 04:37:54 -04:00
Roberto Rosario
bb205e7cf9 Catch re-launching a workflow for a document and logging the condition 2015-06-16 04:37:34 -04:00
Roberto Rosario
dee9c3fb70 Add Confirm view 2015-06-16 04:36:26 -04:00
Roberto Rosario
8aa4452162 Allow overriding the object on which to perform the permission check 2015-06-16 04:15:46 -04:00
Roberto Rosario
fe43d53aa2 Use tuples instead of lists to represent single permission collections 2015-06-16 04:14:18 -04:00
Roberto Rosario
48c428d5cf Add workflow completion percent based on workflow state 2015-06-16 03:47:41 -04:00
Roberto Rosario
c5ca22f6d2 Use tuples instead of lists to define model ordering 2015-06-16 02:12:31 -04:00
Roberto Rosario
7dc8cee43f Normalize how all urls are defined 2015-06-16 02:07:37 -04:00
Roberto Rosario
07bc5996f5 Use the post initial setup signal to setup a default document type and a default document source 2015-06-16 01:59:16 -04:00
Roberto Rosario
890ae87e9c Emit a post initial setup signal 2015-06-16 01:58:59 -04:00
Roberto Rosario
b41be2e763 Re-add incorrectly removed widget class EmailInput 2015-06-16 01:43:46 -04:00
Roberto Rosario
d8322031c5 PEP8 cleanups 2015-06-14 03:52:18 -04:00
Roberto Rosario
37b4f42afe Remove autoadmin code and move it to the external django-autoadmin package 2015-06-14 03:51:36 -04:00
Roberto Rosario
f3beb3b5e7 Rename field to show document label as title during thumbnail preview 2015-06-09 20:24:43 -04:00
Roberto Rosario
28932b80b4 Remove remarked code 2015-06-09 20:24:31 -04:00
Roberto Rosario
a79dc22bd1 Update staging folders to use the new converter class 2015-06-09 20:24:09 -04:00
Roberto Rosario
632656b8ce Make sure an image exists before trying to transform it 2015-06-09 20:23:40 -04:00
Roberto Rosario
0d6438d01a Remove internal api usage 2015-06-09 20:23:21 -04:00
Roberto Rosario
dea882d023 Add error logging to document source models 2015-06-09 20:22:58 -04:00
Roberto Rosario
adf88b39bf Revert to serving binary images to allow fancybox galleries 2015-06-09 19:04:39 -04:00
Roberto Rosario
8532311367 Use ParentChild CBV to display a list of document pages. This allows fixing a page's transformations in case of error. 2015-06-09 18:53:35 -04:00
Roberto Rosario
afb30eab04 Add CBV to display a list of object that are the children of another object 2015-06-09 18:52:42 -04:00
Roberto Rosario
a954256378 Merge lazy-load and lazy-load-interactive, they now behave exactly the same 2015-06-09 14:55:40 -04:00
Roberto Rosario
db0b5aca13 Replace the invalid document page image with a combination of font icons 2015-06-09 14:50:53 -04:00
Roberto Rosario
74bd69b61c Remove OCR cleanup view 2015-06-09 03:29:15 -04:00
Roberto Rosario
5275061f9f Refactor OCR backend class to be file object based and use images from document page not the actual file. Use pytesseract instead of calling the CLI directly. 2015-06-09 03:28:38 -04:00
Roberto Rosario
931bdfd113 If no image is available when get_image is called, generate the first page automatically 2015-06-09 03:25:49 -04:00
Roberto Rosario
d073685680 Delete language processing backends 2015-06-09 03:24:17 -04:00
Roberto Rosario
e9be14f2af Fix clearing document's transformations 2015-06-09 01:35:11 -04:00
Roberto Rosario
31985e7160 Use highest quality interpolation and expand image so as not to crop borders 2015-06-08 23:45:55 -04:00
Roberto Rosario
87d8504cfb Don't overwrite self.kwargs cause links resolved kwargs to get cached and produce wrong resolved URLs 2015-06-08 23:41:38 -04:00
Roberto Rosario
f7d69931cf Fix target_dict generation 2015-06-08 23:41:07 -04:00
Roberto Rosario
0f0edddcd9 Disable OCR code until fixed and updated for new converter code 2015-06-08 22:30:34 -04:00
Roberto Rosario
719476a8e4 Add transformation copy support and update sources models to use it 2015-06-08 22:29:51 -04:00
Roberto Rosario
296d218c01 Remove remainig document page transformation code 2015-06-08 22:29:29 -04:00
Roberto Rosario
d1f76b29e7 Use unicode representation of transformation 2015-06-08 22:28:55 -04:00
Roberto Rosario
285d08aae2 Add help texts, fix __str__ method return value 2015-06-08 22:28:27 -04:00
Roberto Rosario
7542a7aa9d Rever to django rest swagger 0.2.0 until Django REST framework is updated to 3.x. gh-issue #198 2015-06-08 19:13:19 -04:00
Roberto Rosario
faae9994a2 Update release notes 2015-06-08 15:58:27 -04:00
Roberto Rosario
9135a7d470 Add missing migration after upload_to change 2015-06-08 15:58:01 -04:00
Roberto Rosario
2915ecfdd9 Add missing common app migration 2015-06-08 15:57:47 -04:00
Roberto Rosario
dcd062f122 Update Link class to accept callables for a link's kwargs 2015-06-08 15:57:12 -04:00
Roberto Rosario
9db47a843f Convert documents app to new transformation system 2015-06-08 15:56:57 -04:00
Roberto Rosario
506d53c58a Convert sources app to use new transformation system 2015-06-08 15:56:16 -04:00
Roberto Rosario
33b56ac5e6 Add unicode_literal import 2015-06-08 15:55:38 -04:00
Roberto Rosario
32fe03aaa7 PEP8 clean up and trivial typo fixes 2015-06-08 15:54:54 -04:00
Roberto Rosario
d678431c97 Move transformation storage to the converter app via content types 2015-06-08 15:53:25 -04:00
Roberto Rosario
86bfd76141 Don't raise warning about unused imports 2015-06-08 15:49:48 -04:00
Roberto Rosario
68aedcf0cf Fix passing named arguments to link's views 2015-06-08 03:05:12 -04:00
Roberto Rosario
30e8baccb8 Remove the document page text and content edit views, with the change to zone OCR these features are not necesary. 2015-06-08 01:31:27 -04:00
Roberto Rosario
670f6f1884 Remove unused mimetype extension icons 2015-06-08 01:20:43 -04:00
Roberto Rosario
bf049d07fe Move the document display error to the appearance app 2015-06-08 01:19:55 -04:00
Roberto Rosario
3fc7147f93 Use base64 as the default document image representation 2015-06-08 01:16:01 -04:00
Roberto Rosario
b256758db2 Implement class based converter transformations 2015-06-07 05:29:31 -04:00
Roberto Rosario
f4752a3f3f Further converter refactor and initial move from document-centric to page-centric image generation. Issue #93. 2015-06-06 06:26:44 -04:00
Roberto Rosario
de6182aea0 Initial commit of the converter refactor 2015-06-05 03:35:07 -04:00
Roberto Rosario
97f68ea158 Cleanup document version argument handling by making sure it is by document version and not by document instance 2015-06-05 00:58:55 -04:00
Roberto Rosario
1e02b4dadf Don't check for embedded signature on save. 2015-06-05 00:58:08 -04:00
Roberto Rosario
678782154b Improve conditional logic of detached signature links 2015-06-05 00:57:28 -04:00
Roberto Rosario
a9a4c15d77 Add admin interface to the document signatures app 2015-06-05 00:56:57 -04:00
Roberto Rosario
f4e3c0e084 Don't display revert button link for current version of a document. Mark the revert button as "dangerous". 2015-06-05 00:56:24 -04:00
Roberto Rosario
b49617d3e7 Add "dangerous" tag to the document comment delete link 2015-06-04 21:05:02 -04:00
Roberto Rosario
091a14845a Add document print permission. First half of issue #176. 2015-06-04 21:04:37 -04:00
Roberto Rosario
29aa3987f5 Update version of django rest swagger 2015-06-04 20:47:57 -04:00
Roberto Rosario
68375a4969 Don't try to capture swaggers template, it's too complex 2015-06-04 20:42:18 -04:00
Roberto Rosario
b929194905 Add the "dangerous" tag to the links whose actions result in permanent data erasure 2015-06-04 20:37:46 -04:00
Roberto Rosario
b0fee28e1d Remove unused function parameter 2015-06-04 20:37:20 -04:00
Roberto Rosario
7a6831589e Give the btn-danger CSS class to all links with the "dangerous" tag 2015-06-04 19:00:17 -04:00
Roberto Rosario
f16957c206 Add support for link tags 2015-06-04 18:55:19 -04:00
Roberto Rosario
e6ee4198be Use space instead of a vertical bar to separate object links 2015-06-04 18:53:36 -04:00
Roberto Rosario
c21bb90d90 Add missing import 2015-06-04 18:51:14 -04:00
Roberto Rosario
0136b73fd2 Shorten GPG key id's when showing a query result 2015-06-04 18:50:03 -04:00
Roberto Rosario
ed4d72c709 Show the word "None" when dropdowns are empty 2015-06-04 18:40:45 -04:00
Roberto Rosario
0fd86c6191 Remove old migration and add Django 1.7.x migration to increase lock name field size 2015-06-04 18:20:09 -04:00
Roberto Rosario
6d5d5229d6 Sort common.utils functions 2015-06-04 18:18:02 -04:00
Roberto Rosario
0bd6bd7930 Add missing task instance to task_do_ocr task 2015-06-02 19:36:19 -04:00
Roberto Rosario
0bcf87ec85 Add tests for the django_gpg app 2015-06-02 02:32:33 -04:00
Roberto Rosario
e2090628ba Update release notes 2015-06-02 01:49:33 -04:00
Roberto Rosario
97e884ae23 Remove python-hkp dependency. Closes gh-issue #170 2015-06-02 01:40:37 -04:00
Roberto Rosario
8176326a16 Add new post_document_version_ocr signal 2015-06-02 00:25:46 -04:00
Roberto Rosario
7a6a24bb99 Update requirement versions 2015-06-02 00:23:00 -04:00
Roberto Rosario
6fc74db9c2 Cleanup post merge typos 2015-06-01 23:48:33 -04:00
Roberto Rosario
ce3cf144d5 Merge branch 'master' into feature/merge_master
Conflicts:
	docs/releases/index.rst
	mayan/__init__.py
	mayan/apps/acls/south_migrations/0001_initial.py
	mayan/apps/acls/south_migrations/0002_auto__del_field_creatorsingleton_lock_id.py
	mayan/apps/checkouts/south_migrations/0001_initial.py
	mayan/apps/checkouts/south_migrations/0002_auto__add_field_documentcheckout_user_content_type__add_field_document.py
	mayan/apps/checkouts/south_migrations/0003_auto__chg_field_documentcheckout_checkout_datetime.py
	mayan/apps/checkouts/urls.py
	mayan/apps/common/forms.py
	mayan/apps/common/locale/ar/LC_MESSAGES/django.po
	mayan/apps/common/locale/bg/LC_MESSAGES/django.po
	mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.po
	mayan/apps/common/locale/da/LC_MESSAGES/django.po
	mayan/apps/common/locale/de_CH/LC_MESSAGES/django.po
	mayan/apps/common/locale/de_DE/LC_MESSAGES/django.po
	mayan/apps/common/locale/en/LC_MESSAGES/django.po
	mayan/apps/common/locale/es/LC_MESSAGES/django.po
	mayan/apps/common/locale/fa/LC_MESSAGES/django.po
	mayan/apps/common/locale/fr/LC_MESSAGES/django.po
	mayan/apps/common/locale/hr_HR/LC_MESSAGES/django.po
	mayan/apps/common/locale/hu/LC_MESSAGES/django.po
	mayan/apps/common/locale/id/LC_MESSAGES/django.po
	mayan/apps/common/locale/it/LC_MESSAGES/django.po
	mayan/apps/common/locale/lv/LC_MESSAGES/django.po
	mayan/apps/common/locale/nb/LC_MESSAGES/django.po
	mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po
	mayan/apps/common/locale/pl/LC_MESSAGES/django.po
	mayan/apps/common/locale/pt/LC_MESSAGES/django.po
	mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po
	mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po
	mayan/apps/common/locale/ru/LC_MESSAGES/django.po
	mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po
	mayan/apps/common/locale/sq/LC_MESSAGES/django.po
	mayan/apps/common/locale/tr_TR/LC_MESSAGES/django.po
	mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po
	mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.po
	mayan/apps/common/locale/zh_TW/LC_MESSAGES/django.po
	mayan/apps/common/south_migrations/0001_initial.py
	mayan/apps/common/south_migrations/0002_auto__add_autoadminsingleton.py
	mayan/apps/common/south_migrations/0003_auto__del_field_autoadminsingleton_original_auto_admin_password__del_f.py
	mayan/apps/common/south_migrations/0004_auto__del_field_autoadminsingleton_auto_admin_password__del_field_auto.py
	mayan/apps/common/south_migrations/0005_auto__del_field_autoadminsingleton_lock_id__del_field_anonymoususersin.py
	mayan/apps/common/south_migrations/0006_auto__add_shareduploadedfile.py
	mayan/apps/common/south_migrations/0007_auto__add_field_shareduploadedfile_filename.py
	mayan/apps/common/south_migrations/0008_auto__add_field_shareduploadedfile_datatime.py
	mayan/apps/common/south_migrations/0009_auto__add_userlocaleprofile.py
	mayan/apps/common/south_migrations/0010_create_locale_profiles.py
	mayan/apps/common/urls.py
	mayan/apps/common/views.py
	mayan/apps/converter/models.py
	mayan/apps/document_comments/models.py
	mayan/apps/document_indexing/south_migrations/0004_auto__add_documentrenamecount.py
	mayan/apps/document_indexing/south_migrations/0005_auto__add_unique_index_name__add_unique_index_title.py
	mayan/apps/document_indexing/south_migrations/0007_auto__del_documentrenamecount.py
	mayan/apps/document_signatures/south_migrations/0001_initial.py
	mayan/apps/document_signatures/south_migrations/0002_move_signatures_to_new_app.py
	mayan/apps/document_signatures/south_migrations/0003_auto__add_field_documentversionsignature_has_embedded_signature.py
	mayan/apps/document_signatures/south_migrations/0004_embedded_signature_state_copy.py
	mayan/apps/document_signatures/south_migrations/0005_auto__del_field_documentversionsignature_signature_state.py
	mayan/apps/document_states/__init__.py
	mayan/apps/document_states/south_migrations/0001_initial.py
	mayan/apps/document_states/south_migrations/0002_auto__add_field_workflowtransition_workflow.py
	mayan/apps/document_states/south_migrations/0003_auto__add_unique_workflowtransition_workflow_origin_state_destination_.py
	mayan/apps/document_states/south_migrations/0004_auto__del_field_workflowinstancelogentry_document__del_field_workflowi.py
	mayan/apps/document_states/south_migrations/0005_auto__del_unique_workflowstate_label__add_unique_workflowstate_workflo.py
	mayan/apps/document_states/south_migrations/0006_auto__del_unique_workflowtransition_label__del_unique_workflowtransiti.py
	mayan/apps/document_states/south_migrations/0008_auto__add_field_workflowinstancelogentry_user__add_field_workflowinsta.py
	mayan/apps/document_states/south_migrations/0009_auto__add_index_workflowinstancelogentry_datetime.py
	mayan/apps/document_states/urls.py
	mayan/apps/documents/__init__.py
	mayan/apps/documents/links.py
	mayan/apps/documents/south_migrations/0001_initial.py
	mayan/apps/documents/south_migrations/0002_filename_extension_merge.py
	mayan/apps/documents/south_migrations/0003_auto__del_field_document_file_extension.py
	mayan/apps/documents/south_migrations/0004_auto__add_documentversion__add_unique_documentversion_document_mayor_m.py
	mayan/apps/documents/south_migrations/0005_document_versions.py
	mayan/apps/documents/south_migrations/0006_fix_invalid_document_version_id_keys.py
	mayan/apps/documents/south_migrations/0007_remove_old_file_fields.py
	mayan/apps/documents/south_migrations/0008_fix_mayor_field_name.py
	mayan/apps/documents/south_migrations/0009_add_comment_field.py
	mayan/apps/documents/south_migrations/0010_auto__chg_field_document_date_added.py
	mayan/apps/documents/south_migrations/0011_auto__add_field_documentversion_signature_state.py
	mayan/apps/documents/south_migrations/0012_auto__add_field_documentversion_signature_file.py
	mayan/apps/documents/south_migrations/0013_auto__del_field_documentversion_signature_file__del_field_documentvers.py
	mayan/apps/documents/south_migrations/0014_change_document_mimetype_encoding_null.py
	mayan/apps/documents/south_migrations/0015_auto__add_unique_documenttype_name.py
	mayan/apps/documents/south_migrations/0017_auto__chg_field_documentversion_mimetype.py
	mayan/apps/documents/south_migrations/0018_auto__chg_field_documentpage_page_label.py
	mayan/apps/documents/south_migrations/0019_auto__add_index_documentversion_timestamp.py
	mayan/apps/documents/south_migrations/0020_auto__chg_field_recentdocument_datetime_accessed__chg_field_documentve.py
	mayan/apps/documents/south_migrations/0021_auto__del_field_documentversion_serial__del_field_documentversion_rele.py
	mayan/apps/documents/south_migrations/0022_set_doc_type.py
	mayan/apps/documents/south_migrations/0023_auto__chg_field_document_document_type.py
	mayan/apps/documents/south_migrations/0024_auto__add_field_documenttype_ocr.py
	mayan/apps/documents/south_migrations/0025_auto__add_field_document_language.py
	mayan/apps/documents/south_migrations/0026_auto__add_field_document_label.py
	mayan/apps/documents/south_migrations/0027_move_filename_to_label.py
	mayan/apps/documents/south_migrations/0028_auto__del_field_documentversion_filename.py
	mayan/apps/documents/south_migrations/0029_auto__del_field_documentversion_major__del_field_documentversion_micro.py
	mayan/apps/documents/south_migrations/0030_auto__add_unique_documenttypefilename_document_type_filename.py
	mayan/apps/documents/south_migrations/0031_remove_orphan_documents.py
	mayan/apps/dynamic_search/south_migrations/0001_initial.py
	mayan/apps/dynamic_search/south_migrations/0002_auto__chg_field_recentsearch_datetime_created__add_index_recentsearch_.py
	mayan/apps/dynamic_search/templatetags/search_tags.py
	mayan/apps/events/south_migrations/0001_initial.py
	mayan/apps/events/south_migrations/0002_migrate_history_data.py
	mayan/apps/folders/models.py
	mayan/apps/folders/south_migrations/0001_initial.py
	mayan/apps/folders/south_migrations/0002_increase_title_size.py
	mayan/apps/folders/south_migrations/0004_m2m_fields.py
	mayan/apps/folders/south_migrations/0005_auto__del_folderdocument.py
	mayan/apps/folders/south_migrations/0006_auto__chg_field_folder_datetime_created.py
	mayan/apps/history/models.py
	mayan/apps/history/south_migrations/0001_initial.py
	mayan/apps/history/south_migrations/0002_auto__chg_field_history_datetime.py
	mayan/apps/history/south_migrations/0003_auto__del_history__del_historytype__del_unique_historytype_namespace_n.py
	mayan/apps/installation/__init__.py
	mayan/apps/installation/models.py
	mayan/apps/installation/south_migrations/0001_initial.py
	mayan/apps/installation/south_migrations/0002_auto__del_field_installation_lock_id.py
	mayan/apps/installation/south_migrations/0003_auto__del_field_installation_is_first_run.py
	mayan/apps/linking/south_migrations/0001_initial.py
	mayan/apps/linking/south_migrations/0003_auto__chg_field_smartlinkcondition_foreign_document_data.py
	mayan/apps/linking/urls.py
	mayan/apps/lock_manager/south_migrations/0001_initial.py
	mayan/apps/lock_manager/south_migrations/0002_auto__chg_field_lock_creation_datetime.py
	mayan/apps/mailer/models.py
	mayan/apps/main/locale/ar/LC_MESSAGES/django.po
	mayan/apps/main/locale/bg/LC_MESSAGES/django.po
	mayan/apps/main/locale/bs_BA/LC_MESSAGES/django.po
	mayan/apps/main/locale/da/LC_MESSAGES/django.po
	mayan/apps/main/locale/de_CH/LC_MESSAGES/django.po
	mayan/apps/main/locale/de_DE/LC_MESSAGES/django.po
	mayan/apps/main/locale/en/LC_MESSAGES/django.po
	mayan/apps/main/locale/es/LC_MESSAGES/django.po
	mayan/apps/main/locale/fa/LC_MESSAGES/django.po
	mayan/apps/main/locale/fr/LC_MESSAGES/django.po
	mayan/apps/main/locale/hr_HR/LC_MESSAGES/django.po
	mayan/apps/main/locale/hu/LC_MESSAGES/django.po
	mayan/apps/main/locale/id/LC_MESSAGES/django.po
	mayan/apps/main/locale/it/LC_MESSAGES/django.po
	mayan/apps/main/locale/lv/LC_MESSAGES/django.po
	mayan/apps/main/locale/nb/LC_MESSAGES/django.po
	mayan/apps/main/locale/nl_NL/LC_MESSAGES/django.po
	mayan/apps/main/locale/pl/LC_MESSAGES/django.po
	mayan/apps/main/locale/pt/LC_MESSAGES/django.po
	mayan/apps/main/locale/pt_BR/LC_MESSAGES/django.po
	mayan/apps/main/locale/ro_RO/LC_MESSAGES/django.po
	mayan/apps/main/locale/ru/LC_MESSAGES/django.po
	mayan/apps/main/locale/sl_SI/LC_MESSAGES/django.po
	mayan/apps/main/locale/sq/LC_MESSAGES/django.po
	mayan/apps/main/locale/tr_TR/LC_MESSAGES/django.po
	mayan/apps/main/locale/vi_VN/LC_MESSAGES/django.po
	mayan/apps/main/locale/zh_CN/LC_MESSAGES/django.po
	mayan/apps/main/locale/zh_TW/LC_MESSAGES/django.po
	mayan/apps/main/models.py
	mayan/apps/main/templates/main/about.html
	mayan/apps/main/templates/main/generic_list_horizontal_subtemplate.html
	mayan/apps/main/urls.py
	mayan/apps/metadata/south_migrations/0002_auto__add_unique_metadataset_title.py
	mayan/apps/metadata/south_migrations/0003_auto__chg_field_metadatatype_lookup.py
	mayan/apps/metadata/south_migrations/0005_auto__chg_field_documentmetadata_value.py
	mayan/apps/metadata/south_migrations/0007_auto__del_documenttypedefaults__del_documenttypemetadatatypeoptions__a.py
	mayan/apps/metadata/south_migrations/0008_auto__add_unique_documenttypemetadatatype_document_type_metadata_type.py
	mayan/apps/metadata/south_migrations/0009_auto__chg_field_metadatatype_title.py
	mayan/apps/metadata/south_migrations/0010_auto__add_unique_documentmetadata_document_metadata_type.py
	mayan/apps/metadata/south_migrations/0011_auto__add_field_metadatatype_validation.py
	mayan/apps/mimetype/models.py
	mayan/apps/navigation/classes.py
	mayan/apps/navigation/forms.py
	mayan/apps/navigation/models.py
	mayan/apps/ocr/api.py
	mayan/apps/ocr/south_migrations/0001_initial.py
	mayan/apps/ocr/south_migrations/0002_auto__del_field_documentqueue_state__del_field_queuedocument_delay__de.py
	mayan/apps/ocr/south_migrations/0003_auto__chg_field_queuedocument_node_name__chg_field_queuedocument_datet.py
	mayan/apps/ocr/south_migrations/0004_auto__del_documentqueue__del_queuedocument__add_documentversionocrerro.py
	mayan/apps/permissions/south_migrations/0001_initial.py
	mayan/apps/permissions/south_migrations/0002_auto__add_storedpermission__add_unique_storedpermission_namespace_name.py
	mayan/apps/permissions/south_migrations/0003_clear_permission_holders.py
	mayan/apps/permissions/south_migrations/0004_auto__del_permission__del_unique_permission_namespace_name.py
	mayan/apps/permissions/widgets.py
	mayan/apps/project_setup/__init__.py
	mayan/apps/project_setup/locale/ar/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/bg/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/bs_BA/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/da/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/de_CH/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/de_DE/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/en/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/es/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/fa/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/fr/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/hr_HR/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/hu/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/id/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/it/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/lv/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/nb/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/nl_NL/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/pl/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/pt/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/pt_BR/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/ro_RO/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/ru/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/sl_SI/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/sq/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/tr_TR/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/vi_VN/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/zh_CN/LC_MESSAGES/django.po
	mayan/apps/project_setup/locale/zh_TW/LC_MESSAGES/django.po
	mayan/apps/project_setup/models.py
	mayan/apps/project_setup/urls.py
	mayan/apps/project_tools/__init__.py
	mayan/apps/project_tools/locale/ar/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/bg/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/bs_BA/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/da/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/de_CH/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/de_DE/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/en/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/es/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/fa/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/fr/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/hr_HR/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/hu/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/id/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/it/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/lv/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/nb/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/nl_NL/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/pl/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/pt/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/pt_BR/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/ro_RO/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/ru/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/sl_SI/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/sq/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/tr_TR/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/vi_VN/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/zh_CN/LC_MESSAGES/django.po
	mayan/apps/project_tools/locale/zh_TW/LC_MESSAGES/django.po
	mayan/apps/project_tools/models.py
	mayan/apps/project_tools/urls.py
	mayan/apps/rest_api/models.py
	mayan/apps/smart_settings/models.py
	mayan/apps/sources/south_migrations/0001_initial.py
	mayan/apps/sources/south_migrations/0002_preview_width_required.py
	mayan/apps/sources/south_migrations/0003_auto__del_field_stagingfolder_icon__del_field_webform_icon.py
	mayan/apps/sources/south_migrations/0004_auto__del_stagingfolder__del_webform__del_watchfolder__del_outofproces.py
	mayan/apps/sources/south_migrations/0005_auto__add_imapemail__add_intervalbasemodel__add_pop3email__add_emailba.py
	mayan/apps/sources/south_migrations/0006_auto__del_field_source_whitelist__del_field_source_blacklist.py
	mayan/apps/sources/south_migrations/0007_set_doc_type.py
	mayan/apps/sources/south_migrations/0008_auto__chg_field_intervalbasemodel_document_type.py
	mayan/apps/sources/south_migrations/0009_auto__del_watchfoldersource__chg_field_intervalbasemodel_document_type.py
	mayan/apps/sources/south_migrations/0010_auto__add_watchfoldersource.py
	mayan/apps/sources/south_migrations/0011_auto__del_field_intervalbasemodel_document_type.py
	mayan/apps/sources/south_migrations/0012_auto__add_field_intervalbasemodel_document_type.py
	mayan/apps/sources/south_migrations/0013_auto__del_field_watchfoldersource_delete_after_upload.py
	mayan/apps/storage/models.py
	mayan/apps/tags/south_migrations/0001_initial.py
	mayan/apps/tags/south_migrations/0003_remove_taggit.py
	mayan/apps/tags/south_migrations/0005_auto__add_unique_tag_label.py
	mayan/apps/tags/south_migrations/0006_auto__del_tagproperties.py
	mayan/apps/user_management/models.py
	mayan/settings/base.py
	mayan/urls.py
	requirements/common.txt
2015-06-01 23:20:17 -04:00
Roberto Rosario
774a018912 Move Tools and Setup links under the user profile main menu entry 2015-05-21 02:34:32 -04:00
Roberto Rosario
6905cef006 Improve look of the tools and setup views buttons 2015-05-21 02:24:13 -04:00
Roberto Rosario
30d17a3c5d Merge document_acls into documents app 2015-05-21 02:09:46 -04:00
Roberto Rosario
e9ee49b7f2 Don't use CBV in common app's urls.py 2015-05-21 02:00:27 -04:00
Roberto Rosario
9cdf9af2ba Update version in development documentation 2015-05-21 00:29:18 -04:00
Roberto Rosario
929487b5c5 Documentation update 2015-05-20 22:52:39 -04:00
Roberto Rosario
fae83b405f Requirement version updates and description update 2015-05-20 22:52:16 -04:00
Roberto Rosario
f127312ea1 Don't include local or testing setting files 2015-05-20 22:51:44 -04:00
Roberto Rosario
41a74a2fe0 Rename folder for clarity 2015-05-20 22:49:08 -04:00
Roberto Rosario
5e4f28c83b New style documentation 2015-05-20 21:25:17 -04:00
Roberto Rosario
7dd2963a4b Extend lock manager lock name field size 2015-05-20 19:11:25 -04:00
Roberto Rosario
bc54141434 Bump version to 1.1.1 2015-05-18 20:53:01 -04:00
Roberto Rosario
22b5900769 PEP8 cleanups 2015-05-18 20:50:02 -04:00
Roberto Rosario
e9ae8905b4 PEP8 Cleanups 2015-05-18 19:58:03 -04:00
Roberto Rosario
c03b2cb09c Translation syncronization 2015-05-15 19:11:41 -04:00
Roberto Rosario
a439a8478a Update requirements versions 2015-05-15 19:02:53 -04:00
Roberto Rosario
1680b9ccfc Improve error message when GPG is now found during initialization. Issues #168 and #98 2015-05-15 17:00:52 -04:00
Roberto Rosario
c36baa3bfa Update README.rst 2015-05-11 01:43:02 -04:00
Roberto Rosario
10fb7947e4 Show page number of total page count in document page preview 2015-05-09 22:40:30 -04:00
Roberto Rosario
ec1994b364 Merge pull request #190 from BangorUniversity/master
Django==1.6.11 in setup.py to match requirements.txt
2015-04-17 03:27:18 -04:00
Simeon Walker
9bf4ecb1ea Django==1.6.11 in setup.py to match requirements.txt 2015-04-16 14:42:59 +01:00
Roberto Rosario
f67856fccd Add version 1.1.1 release notes 2015-04-07 21:06:00 -04:00
Roberto Rosario
ea21f4c3fd Fix usage of ugettext to ugettext_lazy 2015-04-07 20:46:35 -04:00
Roberto Rosario
859c158cfa Remove unused folder template tag 2015-04-07 20:38:46 -04:00
Roberto Rosario
eb88d70658 Updated used version of Django to 1.6.11 2015-04-07 19:52:10 -04:00
Roberto Rosario
2e6b243dcf Expand test for issue #163 to include zipped non-ascii file 2015-04-07 19:35:29 -04:00
Roberto Rosario
942c9ab569 Add form prefix to checkbox name 2015-04-07 19:20:57 -04:00
Roberto Rosario
6ae7f0672d Add more app modules documentation 2015-04-07 19:01:13 -04:00
Roberto Rosario
bfa794585e Update release notes 2015-04-07 17:06:11 -04:00
Roberto Rosario
12cdee6de2 Move signal handlers into their own app module 2015-04-07 17:01:07 -04:00
Roberto Rosario
efcd0bc231 Remove last hardcoded use of the famfam icon set 2015-04-07 16:41:16 -04:00
Roberto Rosario
09f7cc1a5b Move common.utils.return_type to the smart_settings apps where it is only used 2015-04-07 16:36:42 -04:00
Roberto Rosario
2044c94893 Replace custom 'load_backend' with Django's 'import_string'. 2015-04-07 16:29:43 -04:00
Roberto Rosario
0e3e34bdf1 Simplify AssignRemoveView further 2015-04-07 16:23:33 -04:00
Roberto Rosario
87216eb444 Move the parse_range function to the only app that uses it, documents app 2015-04-07 16:06:04 -04:00
Roberto Rosario
9084c3c651 Simplify and remove old code 2015-04-07 16:04:09 -04:00
Roberto Rosario
69a7efd6f0 Convert workflows document type selection, smart link document type selection, role members list, user group and group users views to CBV assign remove. Remove now obsolete assign remove function based view 2015-04-07 15:48:27 -04:00
Roberto Rosario
0476e66903 Convert index_setup_document_types to CBV assign remove 2015-04-07 03:34:47 -04:00
Roberto Rosario
a522292ee4 Convert document type optional and required metadata views to CBV assign remove view 2015-04-07 03:22:48 -04:00
Roberto Rosario
d79ab07337 Add CBV version of the assign_remove view 2015-04-07 03:22:32 -04:00
Roberto Rosario
fd42b01fe7 Remove unused statistics template 2015-04-07 02:07:30 -04:00
Roberto Rosario
0209ea6632 Update views that used generic_detail to use generic_form in read_only mode. Remove now obsolete generic_detail template 2015-04-07 02:04:41 -04:00
Roberto Rosario
ecfa937068 Remove repeated logic 2015-04-07 01:54:01 -04:00
Roberto Rosario
857f9f2479 Swtich workflow detail view to use form template in read only mode to remove now obsolote generic_detail_subtemplate 2015-04-07 01:49:23 -04:00
Roberto Rosario
d1c56c40fd Convert current user details, current user locale profile details, home, license, maintenance and tool list views to CBV 2015-04-07 01:43:49 -04:00
Roberto Rosario
719c862c51 Display latest search terms in search box 2015-04-07 01:27:45 -04:00
Roberto Rosario
7811d1e090 Change home and setup list views to CBVs 2015-04-07 01:27:33 -04:00
Roberto Rosario
735cd64db2 Don't parse the URL if it's not going to be used. Convert tools to CBV. 2015-04-07 01:15:47 -04:00
Roberto Rosario
c59695e197 Update fancybox to latest git commit 2015-04-07 01:11:09 -04:00
Roberto Rosario
9e2702f11e Remove repeated import 2015-04-07 01:10:52 -04:00
Roberto Rosario
d79f36bfcb Replace function views with class based views 2015-04-06 20:24:18 -04:00
Roberto Rosario
1fa8514367 Update release notes 2015-04-06 16:35:55 -04:00
Roberto Rosario
9de137a263 Update app list to reflect removed or merged apps 2015-04-06 16:35:39 -04:00
Roberto Rosario
3506ed371d Merge documents and document_acls apps 2015-04-06 16:35:17 -04:00
Roberto Rosario
ff3a6c1fb1 Remove famfam use from the acls app 2015-04-06 16:23:15 -04:00
Roberto Rosario
23fc9f1e36 Merge main and common apps, extract authentication functionality to new authentication app. Closes issues #179 and #180 2015-04-06 16:09:54 -04:00
Roberto Rosario
5367bee1b2 Update 2.0 release notes to add closed issues 2015-04-06 13:37:31 -04:00
Roberto Rosario
7beba125ac Simplify document_print template 2015-04-06 02:44:17 -04:00
Roberto Rosario
3524454dbc Merge document print and document hard copy views 2015-04-06 02:44:01 -04:00
Roberto Rosario
2e9e2fccb0 Increase print resolution to match display resolution 2015-04-06 02:43:41 -04:00
Roberto Rosario
7c4bb03534 Don't load removed settings template tag 2015-04-06 02:43:27 -04:00
Roberto Rosario
35b44e70c7 Fix CombinedSource logic after get_multi_item_links_form updates 2015-04-06 02:23:04 -04:00
Roberto Rosario
920ed6601a Modernize the render_subtemplate template tag 2015-04-06 02:11:15 -04:00
Roberto Rosario
50b7019ace Update about view to use new project_version tag 2015-04-06 01:54:34 -04:00
Roberto Rosario
ac72537a60 Commit uncommitted change to consolidate variable_tags with project_tags 2015-04-06 01:53:56 -04:00
Roberto Rosario
8e62c21bb1 Add missing return statement 2015-04-06 01:53:37 -04:00
Roberto Rosario
2599ef2fdd Consolidate version_tag with project_tag 2015-04-06 01:48:25 -04:00
Roberto Rosario
1bf5ad3047 Remove unused settings template tag 2015-04-06 01:46:00 -04:00
Roberto Rosario
426914a82c Remove unused set_var template tag 2015-04-06 01:43:42 -04:00
Roberto Rosario
932eae2cfe Remove unused dynamic search template tags 2015-04-06 01:41:47 -04:00
Roberto Rosario
488f17ab6a Remove unused permissions app widget 2015-04-06 01:38:57 -04:00
Roberto Rosario
4d2891b361 Remove use of the permalink decorator 2015-04-06 01:36:22 -04:00
Roberto Rosario
4fde4b3aa7 Add comment to the Link class, move remove_from_query inside keep_query, doesn't make sense to have it outside this context 2015-04-06 01:20:40 -04:00
Roberto Rosario
962cd6544f Re-enable the setting of the active link in the view context 2015-04-06 01:09:01 -04:00
Roberto Rosario
e27ba5d3d6 Implement use of the injected 'resolved_object' variable to simplify navigation links of objects in lists. Remove obsolete varaibles_tags. Consolidate get_action_links by means of get_menus_links which supports a list of menus to resolve. Remove obsolete 'list_object_variable_name'. Remove 'resolve_for_source' method which was consolidated with the normal resolve method by means of an optional 'source' argument. 2015-04-06 01:02:48 -04:00
Roberto Rosario
eae3b0eba2 Fix multi document tag attach and remove 2015-04-06 00:16:28 -04:00
Roberto Rosario
314a04bb22 Move document page text edit from facet menu to the actions menu 2015-04-06 00:08:51 -04:00
Roberto Rosario
5a08738cec Add tag text shadow to increase readability 2015-04-06 00:08:34 -04:00
Roberto Rosario
d922bc0351 Reduce link title names 2015-04-05 23:52:41 -04:00
Roberto Rosario
d725cbe008 Change the default zoom level step to 25%. Change the default minimum zoom level to 25%. 2015-04-05 23:49:14 -04:00
Roberto Rosario
28e86f044d Add new style document page viewer. Remove web_theme_hide_menus feature, all views except the login view will show the main menu. Remove unused javascript. Remove the now unused no-parent-history CSS class. Remove the facybox-iframe class and associated JavaScript. 2015-04-05 23:47:24 -04:00
Roberto Rosario
d51ba315ad Add missing field 2015-04-05 03:54:01 -04:00
Roberto Rosario
c98a3a57c2 Move tools and setup links to the user profile link 2015-04-05 03:53:27 -04:00
Roberto Rosario
d6afddad3d Start merge of common and main apps 2015-04-05 03:44:24 -04:00
Roberto Rosario
e648975aff Rename link 'class' attribute with 'klass' to avoid any conflicts. Fix django_gpg links. Remove 'dont_mark_active', 'conditional_highlight', and 'extra_navigation_links' features. Inject 'resolved_objects' into context before resolving links. Add check for ACLs when there is a resolved object present. Re-add remove_from_query and keep_query support. Use URLNode to resolve link this way the resolver work exactly as Django's {% url %} tag and saves some code duplicity. 2015-04-05 03:24:36 -04:00
Roberto Rosario
db340513d0 Remove use of 'navigation_object_name' template variable and simplify the use of the 'navigation_object_list' template variable 2015-04-05 01:45:30 -04:00
Roberto Rosario
31c49a2493 Remove unused folder templatetag 2015-04-05 00:25:11 -04:00
Roberto Rosario
bc50d0e321 Finish app navigation updates 2015-04-05 00:14:28 -04:00
Roberto Rosario
94f8d8700e Define exposed API for django_gpg exceptions 2015-04-04 23:30:27 -04:00
Roberto Rosario
73a24b71b3 Convert more apps to new navigation system 2015-04-04 18:47:16 -04:00
Roberto Rosario
39e8e26f87 Move link conversions, consolidate FrontPageLink with new link class 2015-04-04 03:23:13 -04:00
Roberto Rosario
0e6fe91234 Merge pull request #172 from hcarrero/feature/linksupdate
Feature/linksupdate
2015-04-04 02:08:03 -04:00
Helga Carrero
07c8be33bc Convert block of old style links to new style links 2015-04-04 02:01:27 -04:00
Roberto Rosario
3e7601f2b9 Convert block of dictionary link to new Link class 2015-04-04 01:56:28 -04:00
Helga Carrero
3483d87a05 Add myself to contributors file 2015-04-04 00:58:07 -04:00
Roberto Rosario
51ce5ca057 Consolidate navigation tags, consolidate setup and tool link 2015-04-03 20:51:02 -04:00
Roberto Rosario
0246068cd0 Initial commit of the new class based and menu based navigation system 2015-04-03 07:09:51 -04:00
Roberto Rosario
192069462f Remove remaining resolve_to_name code 2015-04-02 16:45:49 -04:00
Roberto Rosario
0145ea85f1 Remove page detail rotation indicator text 2015-04-01 14:30:12 -04:00
Roberto Rosario
daf043f5bd Fix source switch link's icon 2015-04-01 14:21:55 -04:00
Roberto Rosario
e4bb97aaed Code reduction, handle already logged in user redirection at the view and not at the template. 2015-04-01 14:18:05 -04:00
Roberto Rosario
338ac53c0f Remove unused diagnostics view and template 2015-04-01 13:40:25 -04:00
Roberto Rosario
c88d8061e9 Remove ununsed password change and form templates 2015-04-01 13:36:31 -04:00
Roberto Rosario
c44362b257 Bootstrap makes the need of the {% cycle %} tag obsolete, remove from templates. 2015-04-01 13:30:18 -04:00
Roberto Rosario
849d73223c Add explicit fields for IndexTemplateNodeForm as will be required by Django 1.8 2015-04-01 13:28:41 -04:00
Roberto Rosario
170405fbf7 Use icon instead of unicode character for index node "next level" indicator 2015-04-01 13:27:57 -04:00
Roberto Rosario
5d1af4f8b7 Fix icon class 2015-04-01 13:27:38 -04:00
Roberto Rosario
57fd943c9d Repurpose the installtion app for it's original intent which was let apps report on their dependencies and if they were met. This commit removes two more Python dependencies: GitPython and psutil. 2015-04-01 13:20:35 -04:00
Roberto Rosario
3f8fe90787 Update look of horizontal forms 2015-04-01 03:34:41 -04:00
Roberto Rosario
2e0e6f7fe9 Update usage of forms submit icon to use generic icon classes and use font awesome icons instead 2015-04-01 03:22:36 -04:00
Roberto Rosario
40be9d9af1 Remove unused search code and template 2015-04-01 03:20:12 -04:00
Roberto Rosario
08b8dc3f27 Update assign_remove view to work with bootstrap 2015-04-01 03:13:40 -04:00
Roberto Rosario
26d64c45f5 Add the @python_2_unicode_compatible to all models. Closes issue #67 2015-04-01 02:40:19 -04:00
Roberto Rosario
d842a6f7aa Improve default style of links 2015-03-31 19:41:54 -04:00
Roberto Rosario
adf04dd1c6 Decrease title font size 2015-03-31 17:37:21 -04:00
Roberto Rosario
02c3e41cd4 Expand content for menu less views 2015-03-31 17:36:41 -04:00
Roberto Rosario
00e4e7c235 Use the Mayan EDMS official font for the navbar brand section 2015-03-31 17:23:31 -04:00
Roberto Rosario
e2a03286f7 Replace Mayan EDMS image logo with a font image logo 2015-03-31 17:23:22 -04:00
Roberto Rosario
3fde81bd00 Reduce and pull to the right context menu and action menus to increas screen area and avoid texts hidding on the right of the screen. 2015-03-31 04:32:00 -04:00
Roberto Rosario
2237a5b378 Remove fieldset from sub form template were causing some widgets to span the entire width of the screen. 2015-03-31 04:31:16 -04:00
Roberto Rosario
3e488d2ccf Remove unused grip clear 2015-03-31 04:30:37 -04:00
Roberto Rosario
41531364d2 Add getting started self guided help system for missing user setup 2015-03-31 04:10:15 -04:00
Roberto Rosario
847d2ad821 Computer links before determining column size of content 2015-03-31 04:09:43 -04:00
Roberto Rosario
8abb97516b Improve markup of the initial login message 2015-03-31 04:09:19 -04:00
Roberto Rosario
be9e536ce9 Fix confirm dialog box submit button type 2015-03-31 04:08:02 -04:00
Roberto Rosario
80c04b1fb7 New bootstrap based frontend UI. Merged from #121 with many fixes. Closes issues #121, #59 and #100 2015-03-31 03:26:57 -04:00
Roberto Rosario
5a7885ddcb Finish migrating final apps to Django 1.7 2015-03-30 15:31:26 -04:00
Roberto Rosario
8af55ccbef PEP8 cleanups 2015-03-30 15:21:53 -04:00
Roberto Rosario
675d58cc32 Update siangl self sender detection for Django 1.7 2015-03-30 15:01:37 -04:00
Roberto Rosario
665269f90e Installation app doesn't require signal processors anymore 2015-03-30 15:01:14 -04:00
Roberto Rosario
2fd7e4525f Update the requirements versions 2015-03-30 05:51:54 -04:00
Roberto Rosario
3088760dd7 Remove erroneous migrations 2015-03-30 05:37:34 -04:00
Roberto Rosario
0db6a4fdef Remove lambdas from models, they are not serializable. Add remaining migrations. Issue #33 2015-03-30 05:34:50 -04:00
Roberto Rosario
5d7af48734 Point all badges and images to the development branch 2015-03-30 05:10:45 -04:00
Roberto Rosario
7f73b99315 Increase default resolution 2015-03-30 05:10:32 -04:00
Roberto Rosario
00569e9b6f Don't check dictionaries blindly 2015-03-30 05:10:12 -04:00
Roberto Rosario
b6855cc40e Don't test against Python 2.6 anymore as Django 1.7 only supports Python 2.7 and up 2015-03-30 05:09:34 -04:00
Roberto Rosario
302411074b Add first set of Django 1.7 app migrations 2015-03-30 05:08:50 -04:00
Roberto Rosario
bd041457c9 Update project to use Django 1.7.7. Issue #33 2015-03-30 03:43:56 -04:00
Roberto Rosario
d6150f950b Don't use Django's private field order API, changes in Django 1.7 2015-03-30 02:33:18 -04:00
Roberto Rosario
8622db4d1b Use wildcard method argument for Django 1.7 compatibility 2015-03-30 02:32:57 -04:00
Roberto Rosario
b0470eefab Add placeholder file for the version 2.0 release notes 2015-03-30 02:31:07 -04:00
Roberto Rosario
a15ffc617a Remove unused static media files 2015-03-30 02:27:03 -04:00
Roberto Rosario
38f6e44e32 Add the appearance app to the transifex config file and the translation helper script 2015-03-30 02:22:45 -04:00
Roberto Rosario
96582860b7 Delete the remaining files of the removed history app 2015-03-30 02:20:58 -04:00
Roberto Rosario
5dabc0a34a Add new appearance app to hold all of the base templates, images, icons and external packages related to the frontend and look of the project 2015-03-30 02:17:40 -04:00
Roberto Rosario
3131751b25 Fix the use of ugettext vs. ugettext_lazy 2015-03-30 01:33:35 -04:00
Roberto Rosario
c65e65b17e Update copyright years 2015-03-25 19:14:43 -04:00
Roberto Rosario
3991056728 Update copyright years 2015-03-25 19:11:27 -04:00
Roberto Rosario
d0deae9286 Remove installation stats 2015-03-06 20:40:44 -04:00
Roberto Rosario
60e13fe704 Improve indexing admin interface 2015-03-06 20:31:53 -04:00
Roberto Rosario
4eca7984a1 Simplify project description 2015-03-06 19:55:36 -04:00
Roberto Rosario
76d23b481d Remove the registration app 2015-03-06 19:29:59 -04:00
Roberto Rosario
0012054132 Fix uncompress value for issue #163 test 2015-03-06 19:13:48 -04:00
Roberto Rosario
67182f7b6e Add the sources app tests to the travis config file 2015-03-06 18:48:13 -04:00
Roberto Rosario
4bbf352763 Merge remote-tracking branch 'origin/master' 2015-03-06 16:41:13 -04:00
Roberto Rosario
fae12d21e3 Add test for issue #163 2015-03-06 16:39:54 -04:00
Roberto Rosario
8ce93819cf Update make dist script 2015-03-06 15:21:53 -04:00
Roberto Rosario
3b4a296d12 Merge pull request #164 from mbehrle/fix/rnotes
Amending 1.1.rst with some backward incompatible changes.
2015-02-13 04:23:19 -04:00
Mathias Behrle
a32368eb1a Amending 1.1.rst with some backward incompatible changes. 2015-02-12 19:02:39 +01:00
Roberto Rosario
9ebf27d2ea Translation files synchronized and compiled 2015-02-10 09:23:14 -04:00
Roberto Rosario
fc90536de0 Move gitter badge next to the rest of the badges 2015-02-10 09:05:59 -04:00
Roberto Rosario
aab79b1335 Merge branch 'development' 2015-02-10 08:41:54 -04:00
Roberto Rosario
c0827980c4 Issue #154 to the version 1.1 release notes 2015-02-10 08:39:48 -04:00
Roberto Rosario
efdf08eb90 Merge branch 'development'
Conflicts:
	docs/credits/contributors.rst
	docs/index.rst
	docs/intro/installation.rst
	mayan/apps/converter/templates/converter_file_formats_help.html
	mayan/apps/document_indexing/templates/indexing_help.html
	mayan/apps/documents/templates/document_types_help.html
	mayan/apps/documents/templates/recent_document_list_help.html
	mayan/apps/dynamic_search/templates/search_help.html
	mayan/apps/folders/templates/folders_help.html
	mayan/apps/linking/templates/smart_links_help.html
	mayan/apps/metadata/templates/metadata_set_help.html
	mayan/apps/metadata/templates/metadata_type_help.html
2015-02-10 08:36:50 -04:00
Mathias Behrle
548ed441f6 Review of last doc changes. 2015-02-10 13:14:38 +01:00
Roberto Rosario
151b9edd89 Fix typo 2015-02-10 06:02:48 -04:00
Roberto Rosario
7b3dd46d58 Add entries for the 1.1 release features 2015-02-10 06:02:33 -04:00
Roberto Rosario
bc2d945e91 Add more entries to the release notes 2015-02-10 06:02:20 -04:00
Roberto Rosario
536382caef Properly access the taggit models to transfer to the existing tags to the new tags.Tag model. Issue #154 2015-02-10 05:13:12 -04:00
Roberto Rosario
f455bdbd2e Don't point field to a foreign key that doesn't exists yet, make migration dependant on actstream to avoid actstream error when deleting the obsolete content types, add frozen taggit model specifications to avoid taggit content type to be asked to be deleted during migration 0002. Issue #154 2015-02-10 05:08:24 -04:00
Roberto Rosario
8bb4aaee3e Remove migration step that happened in the upgrade to 1.0, remove spaces 2015-02-10 05:07:36 -04:00
Roberto Rosario
93c11c7c4a Don't overwrite settings/local.py in subsequent initialsetup executions 2015-02-09 22:36:17 -04:00
Roberto Rosario
cc7b566ff2 Add steps to produce installable package 2015-02-09 16:17:16 -04:00
Mathias Behrle
9bdc8a5927 Cleanup of the legacy history app.
The app was migrated to the events app and old translation files
are confusing translators.
2015-02-09 20:26:41 +01:00
Mathias Behrle
436dad494f Adding events app to transifex configuration. 2015-02-09 19:07:09 +01:00
Roberto Rosario
f89a93916b Merge pull request #160 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.rst
2015-02-09 12:35:32 -04:00
The Gitter Badger
b0c291d2c1 Added Gitter badge 2015-02-09 14:44:12 +00:00
Mathias Behrle
43e311d00b Documentation improvements.
- Fixing some typos.
- Quick review of the current state.
2015-02-08 02:41:36 +01:00
Roberto Rosario
9e3131fbcb Update compiled message files 2015-02-07 04:37:40 -04:00
Roberto Rosario
e3f8c1295b Update setup dependencies 2015-02-07 04:34:43 -04:00
Roberto Rosario
29f842b503 Documentation updates 2015-02-07 02:57:35 -04:00
Roberto Rosario
a901f4a14b Add link to closed issues, expland the new features section 2015-02-07 02:24:00 -04:00
Roberto Rosario
2e8636c0b4 Add the Project philosophies section 2015-02-07 02:23:44 -04:00
Roberto Rosario
e3e5209bd0 Language translation updates 2015-02-07 01:41:33 -04:00
Roberto Rosario
d3c62bf893 Translation files sync 2015-02-06 20:45:55 -04:00
Roberto Rosario
9c2412f487 Fix issue #158 2015-02-06 20:43:25 -04:00
Roberto Rosario
a60399404c Update source languge files 2015-02-06 19:38:08 -04:00
Roberto Rosario
e3fe3f9966 Remove unused tags apps template tags 2015-02-06 16:33:02 -04:00
Roberto Rosario
f79ae247d7 Language translation sync 2015-02-06 16:31:40 -04:00
Roberto Rosario
67b6b77c11 Fix issue #157 2015-02-06 16:26:24 -04:00
Roberto Rosario
fc3b2a456b Merge pull request #156 from mbehrle/feature/migration
Feature/migration
2015-01-30 02:05:13 -04:00
Mathias Behrle
3076c0d8a5 Migrate actstream before deleting stale document types. (Issue #153) 2015-01-30 04:14:06 +01:00
Mathias Behrle
e65f2deb2b Don't try to migrate defective documents.
This change hardens the migration to not fail on documents without
doucument version from a failed import ('Uninitialized document').
2015-01-30 03:27:09 +01:00
Roberto Rosario
991017cf38 Release note updates 2015-01-29 19:58:28 -04:00
Roberto Rosario
754c79b010 Documentation updates 2015-01-29 18:34:27 -04:00
Roberto Rosario
8cdf98fcb4 Remove static media and OCR topic 2015-01-29 17:42:41 -04:00
Roberto Rosario
87fb2cfc7d Remove overview and document visualization topics 2015-01-29 14:05:23 -04:00
Roberto Rosario
38a6b4e250 Remove settings topic 2015-01-29 13:53:58 -04:00
Roberto Rosario
4cfd88f834 Documentation updates 2015-01-29 13:52:56 -04:00
Roberto Rosario
3e3c21b375 Don't try to link tags to documents until documents are created. Issue #154. 2015-01-29 03:49:40 -04:00
Roberto Rosario
adf47b9399 Fix pk typo in the document version and document submit to ocr functions 2015-01-29 03:12:04 -04:00
Roberto Rosario
aac6190331 Correctly import the base travis settings for sqlite matrix entry 2015-01-29 00:58:05 -04:00
Roberto Rosario
be940ea913 Run the sqlite test matrix with the travis settings file too, remove unnecesary initialsetup steps 2015-01-29 00:37:15 -04:00
Roberto Rosario
5e953c8d95 Add documents,ocr and converter logging to the settings files used for travis testing 2015-01-28 18:36:09 -04:00
Roberto Rosario
baf5d9ebef Add more logging to the ocr app's document parsers. Issue #152 2015-01-28 17:33:25 -04:00
Roberto Rosario
ca3158cf82 The office converter doesn't need to have unicode or str methods. Issue #152 2015-01-28 17:32:44 -04:00
Roberto Rosario
766e7be49f Add more logging to the office backend initialization code 2015-01-28 17:26:07 -04:00
Mathias Behrle
69cc1277cb WIP. migration 2015-01-28 15:19:56 -04:00
Roberto Rosario
5bed264c81 Use unicode_literal w/ bytestring comparison to detect failed PDF parsing again 2015-01-27 21:12:51 -04:00
Roberto Rosario
8ef7cb7d8b Add Postgres install to vagrant provisioning script 2015-01-27 21:12:21 -04:00
Roberto Rosario
19236c7564 Document indexing app translation source update 2015-01-27 19:51:19 -04:00
Roberto Rosario
67a6ffc246 Don't delete root instance node of indexes when deleting empty index instance nodes. 2015-01-27 19:50:03 -04:00
Roberto Rosario
20a9d8508c Show index items count instead of index nodes count 2015-01-27 19:41:38 -04:00
Roberto Rosario
d6c6edae2b Make optional the comment field of workflow transition form 2015-01-27 19:35:29 -04:00
Roberto Rosario
9ea76d9b62 Update translation files 2015-01-27 16:17:21 -04:00
Roberto Rosario
4c130a2a46 Update expected text in documents app functional test 2015-01-27 16:07:28 -04:00
Roberto Rosario
6ef63d69b3 Install MySQL and coverage in vagrant provisioning script 2015-01-27 15:51:44 -04:00
Roberto Rosario
dd73d33434 Don't retry failed converter tasks 2015-01-27 14:01:40 -04:00
Roberto Rosario
38b21c839c Disable test for languages other than English until test files for the corresponding languages are added 2015-01-26 19:32:28 -04:00
Roberto Rosario
baf6240435 Make link spacer smaller 2015-01-26 19:20:14 -04:00
Roberto Rosario
f4d3767b15 PEP8 cleanup, remove unused imports, fix permission check when removing metadata from a document 2015-01-26 19:17:35 -04:00
Roberto Rosario
c15740e152 Add helper script to check for important PEP8 warnings 2015-01-26 19:16:57 -04:00
Roberto Rosario
73f0a4082a Convert front page button selection to be dynamic 2015-01-26 18:22:55 -04:00
Roberto Rosario
1494390f0b Shorten project description 2015-01-26 18:04:53 -04:00
Roberto Rosario
0cea9d007a Merge project description and about templates 2015-01-26 18:03:30 -04:00
Roberto Rosario
010bb06ae4 Remove unused templates 2015-01-26 17:56:53 -04:00
Roberto Rosario
b839034561 Move dynamic search app templates into a static subdirectory 2015-01-26 17:54:24 -04:00
Roberto Rosario
0e00ede3c9 Simplify button link widget for the tools and setup views. Remove nowrap span of navigation link. 2015-01-26 17:05:41 -04:00
Roberto Rosario
1e461d020c Normalize import style 2015-01-26 16:32:16 -04:00
Roberto Rosario
1ca15b1f84 Move main app static media files to static/main/images 2015-01-26 16:29:30 -04:00
Roberto Rosario
8c3eb6714d Add two more sample metadata parsing functions: parse date and parse time 2015-01-26 16:21:52 -04:00
Roberto Rosario
df45a73012 Use PasswordInput widget to hide email based source password field data 2015-01-24 18:05:27 -04:00
Roberto Rosario
dc36ffecee Increase default interval for interval based sources, avoid problems with email service providers 2015-01-24 17:59:31 -04:00
Roberto Rosario
fdecba281e Add an user and a comment field to workflow transitions log. Index the datatime field of workflow logs. 2015-01-24 17:28:30 -04:00
Roberto Rosario
01b040b4dd Use Django's builtin reverse_lazy 2015-01-24 17:07:58 -04:00
Roberto Rosario
b55acb6e12 Normalize import style 2015-01-24 17:05:32 -04:00
Roberto Rosario
850ad53fb1 Improve pluralization 2015-01-24 14:46:13 -04:00
Roberto Rosario
febe21db1b Improve document related views titles messages, improve pluralization. 2015-01-24 14:25:31 -04:00
Roberto Rosario
806b608177 Remove unicode_literals to detect empty parsing 2015-01-24 14:25:01 -04:00
Roberto Rosario
22a88addfa Do a bytestring comparison instead to determine empty parsing 2015-01-24 12:49:13 -04:00
Roberto Rosario
de5994414d Ignore exceptions when gathering git information 2015-01-24 04:35:30 -04:00
Roberto Rosario
9a01a23e4c Detech empty PDF parsing by detecting unicode /u000c and not ASCII /x0c 2015-01-24 04:27:57 -04:00
Roberto Rosario
c23d71424f Add middleware to allow rewriting the status code of ajax responses' redirects 2015-01-24 03:43:20 -04:00
Roberto Rosario
f8621eebba Make the difference of the full-height class elements variable. Make the document preview and document content windows full screen. Make the document preview image scollable by dragging too. 2015-01-24 03:36:33 -04:00
Roberto Rosario
56d0c7074d Hide form field labels in the document preview and document content views 2015-01-24 03:03:05 -04:00
Roberto Rosario
a6e9ad3f21 Add flag to hide labels of a form 2015-01-24 03:02:44 -04:00
Roberto Rosario
cb23cef952 Use proper static media URL generation 2015-01-24 02:57:29 -04:00
Roberto Rosario
6b8f8f18e7 Move favicon redirection to main app, use proper static file URL generation 2015-01-24 02:49:24 -04:00
Roberto Rosario
8b02f8cb0c Remove usage of extra_columns_preffixed, used only once, replaced. Issue #56 2015-01-24 02:45:44 -04:00
Roberto Rosario
139087ddbe Add settings flag to check if GPG binary path exists 2015-01-24 02:42:32 -04:00
Roberto Rosario
03be0e60b2 Remove unused code 2015-01-24 02:40:54 -04:00
Roberto Rosario
2237d58bff Remove incorrect "delete_view" flag for the ACLS confirmation view templates contexts 2015-01-24 02:38:48 -04:00
Roberto Rosario
ce5bf90c78 Add missing unicode literal import 2015-01-24 02:37:02 -04:00
Roberto Rosario
7e076daf37 Allow for the pagination templates to be overrided 2015-01-24 02:33:53 -04:00
Roberto Rosario
b2580dc37c Add access control check to the APIDocumentMetadataListView API view, add docstrings for the get and post methods 2015-01-23 23:11:18 -04:00
Roberto Rosario
63063b079f No need to traverse up the directory to know if we are in a git repo, use the current branch instead of HEAD. 2015-01-23 22:59:30 -04:00
Roberto Rosario
955f248efe Add further notes to the upgrade process 2015-01-23 22:58:58 -04:00
Gabriele Platania
cda9223687 Fixed a problem with the "Delete folder" API, having had the wrong prototype 2015-01-21 10:13:17 +01:00
Gabriele Platania
5c9c3d2cd2 Fixed the problems with the metadata API 2015-01-20 14:28:43 +01:00
Gabriele Platania
157f351a08 Fixed the serialization problem with the optional metadata 2015-01-19 17:46:11 +01:00
Roberto Rosario
7459f44f6b Check for test client response content the right way 2015-01-19 04:57:48 -04:00
Roberto Rosario
4f3d3cf25c Make button's purpose more clear 2015-01-19 04:20:26 -04:00
Roberto Rosario
9faf3b0910 Use Pure's markup 2015-01-19 04:20:04 -04:00
Roberto Rosario
72e1c274f6 Remove sidebar code, it is not used by any views calling this template 2015-01-19 04:19:25 -04:00
Roberto Rosario
9bb27f5c63 Update release notes 2015-01-19 04:08:10 -04:00
Roberto Rosario
d59ea3ede2 Add from __future__ import unicode_literals, issue #37 2015-01-19 04:06:40 -04:00
Roberto Rosario
efbac7300c Sort configuration options 2015-01-19 01:12:17 -04:00
Roberto Rosario
585aa28b57 Fix path typo 2015-01-19 01:06:24 -04:00
Roberto Rosario
0af16a84f7 Don't fetch unknown key by default, this controls unexpected delays when verifying files 2015-01-19 01:05:12 -04:00
Roberto Rosario
0d65bc7d7f Update the required pyhon-gnupg version 2015-01-19 00:59:35 -04:00
Roberto Rosario
827cb952d1 Show clearer message when a GPG initialization problem occurs 2015-01-19 00:43:06 -04:00
Roberto Rosario
a46ac1e9ef Allow setting the GPG binary path 2015-01-19 00:42:33 -04:00
Roberto Rosario
5b718da664 Simplify text messages, add proper pluralization 2015-01-18 02:41:01 -04:00
Roberto Rosario
686b2f69dc Translation files updates 2015-01-18 02:40:36 -04:00
Roberto Rosario
2c0c401611 Add rest_api app translation files 2015-01-18 02:40:08 -04:00
Roberto Rosario
02f8d0f434 Add the rest api app to the translation configuration file and helper script 2015-01-18 02:07:15 -04:00
Roberto Rosario
bd1d293437 Translation updates 2015-01-18 02:05:47 -04:00
Roberto Rosario
e858d2c605 Rename events variables to the present tense 2015-01-18 02:05:11 -04:00
Roberto Rosario
92ad982c8a Simplify text messages 2015-01-18 02:04:33 -04:00
Roberto Rosario
a1fbb730e0 Add document type change event 2015-01-17 19:18:07 -04:00
Roberto Rosario
d511c3d132 Update translation files 2015-01-17 03:28:39 -04:00
Roberto Rosario
7344db5c76 Update translations 2015-01-17 03:16:15 -04:00
Roberto Rosario
957989bd82 Remove unused column names 2015-01-17 03:12:17 -04:00
Roberto Rosario
acfd73c204 Rename migrations directory to south_migrations 2015-01-17 03:07:20 -04:00
Roberto Rosario
101bfbc5da Update apps' source translation files 2015-01-17 03:03:52 -04:00
Roberto Rosario
b74267662f Add document states translation files and add document states app to the language configuration files 2015-01-17 03:03:22 -04:00
Roberto Rosario
d2978374a4 Merge remote-tracking branch 'origin/development' into development 2015-01-17 02:47:12 -04:00
Roberto Rosario
216d5b0a3b Fix Mimetype to MIME type 2015-01-17 02:46:05 -04:00
Roberto Rosario
9b4918f601 Add reminder to release notes 2015-01-17 02:45:49 -04:00
Roberto Rosario
a58a249b86 get_formated_version no longer exists, show other document data instead in the document list list of the document download view. Issue #149 2015-01-17 02:42:53 -04:00
Roberto Rosario
84d0892e2b Fix double menu entry when editing a document source transformation 2015-01-17 02:37:10 -04:00
Roberto Rosario
070e306503 Fix double menu entry at linking/setup/smart_link/condition/1/edit/. Issue #150 2015-01-17 02:29:48 -04:00
Roberto Rosario
e6d24fd62f Remove the need to use link_spacer for single groups of multi item actions 2015-01-17 02:27:42 -04:00
Roberto Rosario
fca4165f39 Add missing multi item spacer link 2015-01-17 02:18:34 -04:00
Roberto Rosario
348bcc69cf Add workflow states and transition delete views 2015-01-17 02:09:07 -04:00
Roberto Rosario
e79850124e Avoid displaying the "other available actions" menu twice 2015-01-17 01:56:42 -04:00
Roberto Rosario
32250a5cea Add workflow state and transition edit views 2015-01-17 01:56:05 -04:00
Roberto Rosario
8fa06040ef Fix variable scope 2015-01-17 01:55:41 -04:00
Roberto Rosario
d422d8160c Remove the 'related' menu, only use by the document page navigation buttons 2015-01-17 01:52:16 -04:00
Roberto Rosario
8e2b6278e8 Use model form to edit and create workflows 2015-01-17 01:25:59 -04:00
Roberto Rosario
644ce2839e Add workflow instance transitioning support, add workflow instance detail view 2015-01-17 01:07:20 -04:00
Mathias Behrle
1cebc4d7bf Correcting typo in message. 2015-01-17 01:47:31 +01:00
Roberto Rosario
eefbd5758a Merge branch 'development' into feature/document_states
Conflicts:
	mayan/urls.py
2015-01-16 06:10:00 -04:00
Roberto Rosario
a2bcc38b08 Properly pluralize the messages of the document metadata type add view 2015-01-16 02:14:35 -04:00
Roberto Rosario
95dd017b23 Extend issue #144 solution to the document metadata remove view too. 2015-01-16 02:12:26 -04:00
Roberto Rosario
72a0c2dd95 Properly pluralize document metadata edit view 2015-01-16 02:08:15 -04:00
Roberto Rosario
6c854116b5 Detect when a selected document or documents do not have any metadata, display a proper message and return user to the last previous view. Issue #144 2015-01-16 02:06:24 -04:00
Roberto Rosario
d7546c8fb7 Remove unused code 2015-01-16 01:08:12 -04:00
Roberto Rosario
bcc85d5714 Remove unused mimetype views module 2015-01-16 00:56:24 -04:00
Roberto Rosario
007ac0f978 Add libreoffice to the Vagrant provissioning script 2015-01-15 03:48:59 -04:00
Roberto Rosario
172ef1e79a Make sure the ocr field of document type exists before we try to put data into it 2015-01-15 03:44:16 -04:00
Roberto Rosario
a2b2011277 More migration dependencies check 2015-01-15 03:40:08 -04:00
Roberto Rosario
aca7c94131 Update Vagrant instructions to include -B option to workers to launch Celery Beat 2015-01-15 03:05:22 -04:00
Roberto Rosario
e6754c9a6f Update the OCR app to work based on document versions not documents, document version are the module which hold the document pages instances. Remove old OCR document queue and replace with a single module for OCR processing error entries. Increase compatibility with Django 1.7 and Python 3. 2015-01-15 03:01:43 -04:00
Roberto Rosario
2371d3a49d Use lazy translation for events model 2015-01-15 02:55:17 -04:00
Roberto Rosario
747dda21c8 Add __unicode__ method for DocumentVersion model 2015-01-15 02:54:47 -04:00
Roberto Rosario
769d536985 Add source -> documents migration dependency check 2015-01-15 02:54:19 -04:00
Roberto Rosario
99316b3dea Show document of version being sent for OCR in logger output 2015-01-14 18:56:32 -04:00
Roberto Rosario
b22bb55cbc User a direct objects.create no need for a separate .save() call 2015-01-14 18:48:00 -04:00
Roberto Rosario
fafd84b8d2 Move magic number variable to the literls.py module 2015-01-14 18:47:31 -04:00
Roberto Rosario
6e333b7eeb The documents app should not have any knowledge of the sources app, move sources link registration to the sources app 2015-01-14 17:49:59 -04:00
Roberto Rosario
4f94bf0dfc Remove vestigial '_orphan_document_' document type if there are no documents of that type 2015-01-14 17:32:14 -04:00
Roberto Rosario
683fa5b531 Make top level URLs shorter or more explicit 2015-01-14 17:25:31 -04:00
Roberto Rosario
f489fb039a Merge branch 'development' into feature/document_states 2015-01-14 17:00:08 -04:00
Roberto Rosario
f967188aeb Add a sample validation function. The parse_date will parse and cleanup dates entered by users. Issue #104. 2015-01-14 16:55:52 -04:00
Roberto Rosario
4dfecb4614 Refactore form clean code for value validation or parsing, issue #104. 2015-01-14 16:55:01 -04:00
Roberto Rosario
9380157406 Display validation errors on top of forms when in tabular mode, such as when editing document metadata values 2015-01-14 16:33:47 -04:00
Roberto Rosario
490e9a1e42 Remove value field from the document metadata remove form to avoid running validation on remove and blocking removal when validation didn't pass 2015-01-14 15:58:04 -04:00
Roberto Rosario
3399c354be Update field name according to last model property rename 2015-01-14 15:52:52 -04:00
Roberto Rosario
e4d68cb711 Also show exception with no messages, raise exception into request if in debug mode for easier debugging of unexpected errors 2015-01-14 15:51:51 -04:00
Roberto Rosario
f5e1adedfa Add field to set validation function separately from the lookup field 2015-01-14 15:50:41 -04:00
Roberto Rosario
5d813bc2d7 Merge branch 'development' into feature/document_states 2015-01-14 02:28:47 -04:00
Roberto Rosario
8b8c915bd0 Make the default list of document languages translatable. Issue #139 2015-01-14 02:27:33 -04:00
Roberto Rosario
fd1f5d1dad Make document language choices a configurable list. Issue #137.
To override the default list of 600+ languages add a configuration entry to your settings/local.py like so:
DOCUMENTS_LANGUAGE_CHOICES = [('eng', 'English'), ('deu', 'German')]

to make the list translatable import ugettext_lazy and enclose the language name with _():

from django.utils.translation import ugettext_lazy as _
DOCUMENTS_LANGUAGE_CHOICES = [('eng', _('English')), ('deu', _('German'))]
2015-01-14 02:22:47 -04:00
Roberto Rosario
adcf621ee1 Preserve zoom level and rotation when moving thru document pages in the page detail view. Issue #138. 2015-01-14 01:52:35 -04:00
Roberto Rosario
53197c4010 Add locking to avoid index rebuild clashing with index updates or index node deletion 2015-01-13 18:01:42 -04:00
Roberto Rosario
148ebffa5c Remove comment and unused import 2015-01-13 17:59:24 -04:00
Roberto Rosario
17a238dec7 Don't delete the actual index definitions 2015-01-13 17:04:35 -04:00
Roberto Rosario
41f24bc596 Use ugettext_lazy to translate language names. Issue #139 2015-01-13 13:00:51 -04:00
Roberto Rosario
b2453ee01e Add view for associating a workflow to a document type, add support to auto launch a workflow instance when a document is created, allow associating a many workflows to a document, add view to display a document's workflows instances 2015-01-13 06:02:42 -04:00
Roberto Rosario
8ff3747a15 Initial import of the document states app 2015-01-13 04:13:49 -04:00
Roberto Rosario
88cd49e08c Ignore vagrant related runtime files 2015-01-13 03:10:48 -04:00
Roberto Rosario
94197ba0d8 Update documentation and added steps to use the vagrant file 2015-01-13 03:10:03 -04:00
Roberto Rosario
1ffba7e40f Increase preview task timeout to 60 seconds to cover for even the wost load scenario. Consolidate literal to store the timeout value. 2015-01-13 02:56:13 -04:00
Roberto Rosario
a6eb0644ea Update vagrant file to install sample celery with redis config and script for workers 2015-01-13 02:17:29 -04:00
Roberto Rosario
2c115ff136 Add Vagrant file and development deployment provisioning script 2015-01-13 01:53:04 -04:00
Roberto Rosario
f3b85d4c7f Add famfam icon to the cancel button of the generic forms template 2015-01-12 18:41:08 -04:00
Roberto Rosario
6d3cd9753d Rename property permissions_required to view_permission of ViewPermissionCheckMixin 2015-01-12 18:33:31 -04:00
Roberto Rosario
da83f1a9c1 Split common CBVs into views and mixins, add ObjectPermissionCheckMixin 2015-01-12 18:28:51 -04:00
Roberto Rosario
8661ae1970 Show icon for document source tabs in document upload wizard for visual clarity 2015-01-12 02:16:33 -04:00
Roberto Rosario
abdfba1c0b Remove permanent logout button and move to the secondary menu of the user details menu 2015-01-12 02:12:15 -04:00
Roberto Rosario
661a63030b Add tool to show list of documents with empty metadata that is required for their type. Issue #34. 2015-01-12 01:50:44 -04:00
Roberto Rosario
ea2830735c Update language translation files 2015-01-11 18:12:26 -04:00
Roberto Rosario
05bc204d99 Update language translation source files 2015-01-11 18:12:06 -04:00
Roberto Rosario
090302676d Implement GUI language and timezone as user preferences, issue #114 2015-01-11 17:38:47 -04:00
Roberto Rosario
305c1aaa6e Finish the move to the new events app 2015-01-11 04:51:02 -04:00
Roberto Rosario
ba4f1860cd Update release notes 2015-01-10 19:02:30 -04:00
Roberto Rosario
bbab21d228 Initial commit of the new events app 2015-01-10 19:01:57 -04:00
Igor Támara
9c0f8feaed Added documentation for brew users
When working on OSX, brew users would be happier with this doc
Conflicts:
	docs/topics/installation.rst
2015-01-08 16:48:30 -04:00
Roberto Rosario
23ab87cae3 Merge pull request #133 from ikks/patch-1
Added documentation for brew users
2015-01-08 16:42:11 -04:00
Igor Támara
d14d3c41e8 Added documentation for brew users
When working on OSX, brew users would be happier with this doc
2015-01-08 15:34:38 -05:00
Roberto Rosario
83b1e1dc50 Improve translatability 2015-01-08 01:09:21 -04:00
Roberto Rosario
6108f26b9d Remove use of images in button favoring css sprites 2015-01-08 01:05:04 -04:00
Roberto Rosario
60a9eaaf4a Remove the use of static images in favor of sprites 2015-01-08 00:50:23 -04:00
Roberto Rosario
f7f71d706d Improve the multi item action dropdown separator appearance 2015-01-08 00:45:18 -04:00
Roberto Rosario
c96279cb14 Consolidate the document carousel and carousel items CSS styles 2015-01-08 00:44:36 -04:00
Roberto Rosario
4e10366618 Improve the multi item action dropdown markup and appearance 2015-01-08 00:43:27 -04:00
Roberto Rosario
58d1a0afa1 Allow passing different css classes to the form template 2015-01-08 00:43:01 -04:00
Roberto Rosario
57a62bdfc1 Improve translatability of the page number text 2015-01-07 23:12:21 -04:00
Roberto Rosario
f0035e601b Remove hard coded CSS styles into CSS classes 2015-01-07 23:10:44 -04:00
Roberto Rosario
7e2320c9d3 Update the ModelAttribute values for document metadata to reflect the related_name change from: 'document_metadata' to 'metadata' 2015-01-07 05:06:37 -04:00
Roberto Rosario
1eaa768517 Remove the 960 grid system, use Pure CSS's grid system instead, use Pure CSS button stylesheet for the setup and tools buttons 2015-01-07 05:04:22 -04:00
Roberto Rosario
5e37ab3d94 Show smart link generation erros 2015-01-07 05:01:28 -04:00
Roberto Rosario
b7f11b8e9d Don't contruct button image URLs by hand, use Django static media handling code 2015-01-07 04:20:52 -04:00
Roberto Rosario
2f593c5a6f Remove unused code to rename documents filenames 2015-01-07 03:59:04 -04:00
Roberto Rosario
5c8e13e61f Make document type filenames unique for each document type 2015-01-07 03:57:54 -04:00
Roberto Rosario
bd082bd89a Allow showing side bar navigation link when more than one navigation object is present in the context 2015-01-07 03:56:10 -04:00
Roberto Rosario
aea3881831 Fix casing 2015-01-07 03:45:34 -04:00
Roberto Rosario
5cdc95e99f Explicit document type needes to trigger indexing of documents, previously indexes with no document type associated would update for all document types 2015-01-07 03:39:11 -04:00
Roberto Rosario
e75af75368 Add support for removing keys for a link's kept query string, remove the 'page' key from the active sources links. Closes issue #91. 2015-01-07 02:32:41 -04:00
Roberto Rosario
d91a0c1fab Add the new home screen view and template, issue #108 2015-01-06 22:14:31 -04:00
Roberto Rosario
fbb6dccd98 Make the entire username and not just the icon clickable 2015-01-06 18:28:14 -04:00
Roberto Rosario
695dad264a Merge pull request #132 from mbehrle/feature/taggit_migration
Using orm for taggit migration.
2015-01-06 16:41:48 -04:00
Mathias Behrle
c1b67d8f21 Using orm for taggit migration. 2015-01-06 02:40:02 +01:00
Roberto Rosario
5304fc366c Fix dynamic search re-enabled tests 2015-01-05 16:29:43 -04:00
Roberto Rosario
aca9d8c9eb Remove unused imports, do PEP8 and DeprecationWarning cleanups 2015-01-05 14:40:59 -04:00
Roberto Rosario
45475d9a65 Don't allow adding index template nodes via the API until permission is properly implemented 2015-01-05 14:36:34 -04:00
Roberto Rosario
2f6d6768e1 Re-enable dynamic search tests 2015-01-05 14:19:46 -04:00
Roberto Rosario
f82bb44540 Don't remove the root instance node, there is no aparent side effect but is unnecessary 2015-01-05 14:10:50 -04:00
Roberto Rosario
6737a87021 Cleanup empty instance nodes in the same task not as a separate task 2015-01-05 14:08:33 -04:00
Roberto Rosario
c195f74310 Fix document type metadata type references 2015-01-05 05:13:09 -04:00
Roberto Rosario
dc5de59152 Add missing migration for document index filesystem mirroring removal 2015-01-05 04:43:47 -04:00
Roberto Rosario
1f5592969e More hammering of the initial tag migration 2015-01-05 04:29:41 -04:00
Roberto Rosario
c9c30125f9 Fix migration field definition 2015-01-05 04:22:49 -04:00
Roberto Rosario
24b5b98720 Retroactively remove Tagit reference from the initial tags app migration, issue #127 2015-01-05 04:14:27 -04:00
Roberto Rosario
be5d5ce5cf Increase ocr node field size from 32 to 256 characters 2015-01-05 04:03:39 -04:00
Roberto Rosario
9474c5306f Improve migration dependecies 2015-01-05 03:55:46 -04:00
Roberto Rosario
a45bdc5259 Create the default DocumentQueue 2015-01-05 03:50:42 -04:00
Roberto Rosario
62074b8b39 The initial migration of the ACLs app depends on a table not created until migration 0002 of the permissions app 2015-01-05 03:40:53 -04:00
Roberto Rosario
a4d3a73117 Use TransactionTestCase to try to avoid exceptions in a test blocking DB access in others 2015-01-05 03:34:00 -04:00
Roberto Rosario
c5be844097 Actually run initialsetup agains the matrix DB 2015-01-05 03:33:18 -04:00
Roberto Rosario
0b2fe39526 Separate tests again, TestCase encloses the entire test into a single transaction, an error block all other DB access in the test 2015-01-05 03:23:16 -04:00
Roberto Rosario
47529185cc Increase version of South to 1.0.2 2015-01-05 03:22:59 -04:00
Roberto Rosario
3cf9143059 Log error when language cleanup backend fails 2015-01-05 03:20:05 -04:00
Roberto Rosario
818ee35b19 Reoganize for clarity 2015-01-05 03:19:40 -04:00
Roberto Rosario
59bd62cbd5 Remove testing agains Python 3.x versions for now 2015-01-05 02:40:40 -04:00
Roberto Rosario
480974dcac Rename travis postgres test settings file 2015-01-05 02:40:16 -04:00
Roberto Rosario
580e5e002f Update travis CI file to test agains different databases, add travis DB setting files 2015-01-05 02:29:58 -04:00
Roberto Rosario
554ea3eb63 Python 2.6 .format() compatibility 2015-01-05 02:11:19 -04:00
Roberto Rosario
15e681e61a Clean up travil CI file 2015-01-05 02:02:37 -04:00
Roberto Rosario
fd2286393d Don't depend on data not available at DB init time 2015-01-05 02:02:01 -04:00
Roberto Rosario
94eeb52990 Remove --use-mirrors, try other ways to invoke manage.py, allow testing agains Python 3.2,3.3 & 3.4 to fail 2015-01-05 01:45:46 -04:00
Roberto Rosario
b2733bd851 Improve travis CI config file 2015-01-05 01:38:38 -04:00
Roberto Rosario
abee5edc9e Update and improve ocr app tests 2015-01-05 01:27:56 -04:00
Roberto Rosario
c471b9ea69 Remove search related tests, remark failing tests to allow for coverage report 2015-01-04 01:27:33 -04:00
Roberto Rosario
8a2c736833 Moved and fixed search related tests from the documents app to the dynamic search app 2015-01-04 00:40:03 -04:00
Roberto Rosario
c8c52f47a7 Add document indexing app tests to travis config file 2015-01-03 23:58:40 -04:00
Roberto Rosario
7093542772 Fix document signatures app tests 2015-01-03 23:58:24 -04:00
Roberto Rosario
6b6c38832c Fix lambda argument definition 2015-01-03 23:58:00 -04:00
Roberto Rosario
ff0e9b0d42 Hide import to allow tests to run 2015-01-03 23:46:02 -04:00
Roberto Rosario
7c6b11b619 Finish document indexing tests 2015-01-03 23:39:32 -04:00
Roberto Rosario
a51b71b187 Update release notes 2015-01-03 23:39:17 -04:00
Roberto Rosario
9c5196ae2b Don't pass any argument to task_delete_empty_index_nodes, it requires none now 2015-01-03 23:38:54 -04:00
Roberto Rosario
15e4a5b091 Stop empty instance node deletion recursion at top node 2015-01-03 23:38:15 -04:00
Roberto Rosario
8928e03cc7 Fix function name 2015-01-03 23:35:55 -04:00
Roberto Rosario
bed7137496 Don't require a label for new documents at the model manager level, use the filename by default 2015-01-03 23:35:19 -04:00
Roberto Rosario
7c2ce7ce1f Update task names, merge document metadata signales 2015-01-03 12:33:50 -04:00
Roberto Rosario
ef140ac2f7 Update task and function names 2015-01-03 12:33:33 -04:00
Roberto Rosario
bca6355bb8 Fix function name, delete a document from all index nodes before reindexing it 2015-01-03 12:33:01 -04:00
Roberto Rosario
0c0d594f0b Add document indexing initial test case 2015-01-03 12:18:14 -04:00
Roberto Rosario
35821df7ee Add TODO reminder 2015-01-03 12:17:36 -04:00
Roberto Rosario
ddfba9684d Remove final filesystem mirroring code, add TODO reminders 2015-01-03 12:17:02 -04:00
Roberto Rosario
018284eec1 Add locking and arbitration to indexing updates, remove filesystem index mirroring issue #56 2015-01-02 21:52:33 -04:00
Roberto Rosario
155f543db4 Avoid concurrent indexing of the same document 2015-01-02 21:07:01 -04:00
Roberto Rosario
0e0e122d95 Fix variable name 2015-01-02 20:53:29 -04:00
Roberto Rosario
6fb768a6f8 Issue #128, Add Indexes API endpoints 2014-12-16 01:37:49 -04:00
Roberto Rosario
0e0428b501 Raise API urls registration errors when in DEBUG mode 2014-12-16 01:34:28 -04:00
Roberto Rosario
d64bec40b3 Add API views to edit the current user (without having to specify the user id). Issue #131 2014-12-16 00:10:51 -04:00
Roberto Rosario
cff4a97d34 Simplify document metadata API endpoints, make document metadata endpoints more consistent, improve error reporting 2014-12-13 06:40:57 -04:00
Roberto Rosario
790c5745f8 Add API endpoint to return the list of recent document for the current user 2014-12-13 05:32:27 -04:00
Roberto Rosario
384ebde6ab Unicode representaion of document version is no longer used 2014-12-13 05:04:12 -04:00
Roberto Rosario
81a85e6de8 Document type, folder and tags API serializer now return a numeric count of the documents contained instead of a link to the document list API endpoint 2014-12-13 05:03:15 -04:00
Roberto Rosario
741ac66bd9 Inline the document type information in the document structure 2014-12-13 04:53:19 -04:00
Roberto Rosario
e6debeff7e Move back all search field registration into the documents/__init__ module until the upgrade to Django 1.7.x 2014-12-13 04:33:59 -04:00
Roberto Rosario
0121a636cf Update required version of Django to 1.6.8 2014-12-13 04:32:46 -04:00
Roberto Rosario
da0f3f1143 Allow the user password to be changed from the user API endpoint 2014-12-11 20:24:55 -04:00
Roberto Rosario
51951d9691 Merge branch 'feature/api_fixes' into development 2014-12-11 19:53:50 -04:00
Roberto Rosario
d0aaa256cd Don't search blindly for all the fields passed in the advanced search, use the defined fields, avoid hard coded rejection of &page arguments in the query string. The SearchModel class is now responsible for storing the search in the recent entries instead of the view. 2014-12-11 19:52:24 -04:00
Roberto Rosario
1a8ab7956f Update django rest framework version 2014-12-11 19:18:03 -04:00
Roberto Rosario
030d0e8806 Merge new document API view with the document list API view (as a POST action). Move search result filtering to clases module, this way it filters results from the API too. 2014-12-11 19:16:29 -04:00
Roberto Rosario
e3f3553965 Merge new document API view with the document list API view (as a POST action) 2014-12-09 03:26:25 -04:00
Roberto Rosario
ab37b4bc35 Update document metadata accessor 2014-12-09 03:18:27 -04:00
Roberto Rosario
9b83c3bd3e Update tests 2014-12-09 03:18:16 -04:00
Roberto Rosario
af51acebf5 Isse #56, Remove document versions major, minor and micro versioning fields 2014-12-09 03:15:23 -04:00
Roberto Rosario
53c34eedcd Add test to the sources app 2014-12-09 02:27:50 -04:00
Roberto Rosario
ac928d028a Use a more sensible default 2014-12-08 23:37:01 -04:00
Roberto Rosario
f5093a3d3b Update document type metadata access 2014-12-08 23:36:36 -04:00
Roberto Rosario
0139432e48 Propagate background task exceptions when running in eager mode for easier debugging. Use djcelery test runner by default 2014-12-08 23:23:45 -04:00
Roberto Rosario
65ebf5fcf5 Remove unused import 2014-12-08 23:23:22 -04:00
Roberto Rosario
49d00408d8 Update related_name 2014-12-08 23:23:04 -04:00
Roberto Rosario
2fda25590f Update the document type' document required metadata types using signals instead of relying on DocumentTypeHelper class methods 2014-12-08 19:35:52 -04:00
Roberto Rosario
11ff561b3a Remove DocumentTypeHelper class, use direct Django methods 2014-12-08 19:35:25 -04:00
Roberto Rosario
82bedefff6 Add unicode method, update and optimize validation code 2014-12-08 19:34:40 -04:00
Roberto Rosario
bb783fa2e1 Simplify code 2014-12-08 19:34:11 -04:00
Roberto Rosario
704abb7059 Use related_name 'metadata' to access document types' metadata types 2014-12-08 18:37:54 -04:00
Roberto Rosario
5050c7319c Remove preemptive document metadata selection 2014-12-08 18:33:57 -04:00
Roberto Rosario
a2840bc57d Remove unused metadata dictionary precalculation 2014-12-08 18:31:41 -04:00
Roberto Rosario
2e8a61ed30 Update versions of Celery and django-suit 2014-12-08 15:47:40 -04:00
Roberto Rosario
4b7f4a683f Simplify and improve document metadata views, improve docstrings 2014-12-02 00:44:41 -04:00
Roberto Rosario
4aa84b778c Only allow one instance of a metadata type per document 2014-12-02 00:43:56 -04:00
Roberto Rosario
ca847bed2c Add document type metadata type API endpoints documentation 2014-12-01 16:17:04 -04:00
Roberto Rosario
d257d6db85 Merge document type optional and required metadata type add views 2014-12-01 16:14:14 -04:00
Roberto Rosario
32d2608bdd Only add metadata type it is not in the list 2014-12-01 16:09:26 -04:00
Roberto Rosario
4abc866a53 Add TODO reminder 2014-11-20 03:32:34 -04:00
Roberto Rosario
5122a161f2 Fix inverted function names 2014-11-20 03:31:10 -04:00
Roberto Rosario
b44b57aab8 Fix email base document source 2014-11-20 03:13:32 -04:00
Roberto Rosario
173e82684c Fix support for send document links and attachments 2014-11-20 02:54:45 -04:00
Roberto Rosario
1950c062b0 Update document attribute name when sending documents via email 2014-11-20 02:40:50 -04:00
Roberto Rosario
a59d4c3a8a Merge pull request #124 from myrtle303/patch-1
Update index.rst
2014-11-19 19:59:06 -04:00
myrtle303
8a8a34c7bb Update index.rst 2014-11-19 15:42:52 -06:00
Roberto Rosario
279b5a1a93 Merge pull request #99 from EmlynC/patch-2
Update contributors.rst
2014-11-18 16:09:05 -04:00
Roberto Rosario
3904c12965 Merge pull request #122 from EmlynC/mac_osx
Installation details for Mac OSX
2014-11-18 16:08:10 -04:00
Emlyn Clay
abce20eda6 Installation details for Mac OSX 2014-11-18 16:44:58 +00:00
Roberto Rosario
791b9d421a Fix fancybox css path 2014-11-18 05:20:00 -04:00
Roberto Rosario
0f688b85bc Update Fancybox version 2014-11-18 05:13:13 -04:00
Roberto Rosario
d367e9b424 Remove unused 'disable_auto_focus' functionality 2014-11-18 04:58:46 -04:00
Roberto Rosario
0685a30193 Retry document convertion task up to 3 times, compress result using zlib 2014-11-18 04:48:16 -04:00
Roberto Rosario
05a8a40a2a Remove ghostscript python library dependency 2014-11-18 04:47:57 -04:00
Roberto Rosario
76fc6c091f Remove all direct use of ghost script, add PDFTOPPM_PATH to allow configurable pdftoppm path, raise ConvertError on coverterror and not UnknownFile exception blindly 2014-11-18 04:46:24 -04:00
Roberto Rosario
cb8ff3f629 Remove unused file 2014-11-18 04:45:24 -04:00
Roberto Rosario
ed11e242ca Issue #23, Experiment with pdftoppm 2014-11-18 00:35:56 -04:00
Roberto Rosario
8ff61778f6 Remove the MULTIPAGE_PREVIEW_SIZE configuration settings, clicking on a page preview now redirects to the page detail view, added post lazy load class support, use post lazy load class support to add 100% width to document page previews 2014-11-17 19:37:43 -04:00
Roberto Rosario
5963822be7 Split document view into document preview, document content and document properties views 2014-11-17 18:52:20 -04:00
Roberto Rosario
d751425d7f Use static hourglass image instead of an animages GIF during image loading, remove usage of scrollstop, start generating previews much sooner (threshold of 400 pixels), remove fallback code when javascript is disabled, show pages previews as a vertical scroller seems to reduce lag and browser memory consumption. 2014-11-17 16:56:28 -04:00
Roberto Rosario
eff81cf8af Close issues #118 and #119 2014-11-12 02:15:52 -04:00
Roberto Rosario
a712977390 Update smart_linking dynamic title handling using ModelAttribute class 2014-11-11 19:55:32 -04:00
Roberto Rosario
370cf53584 Namedtuples have an __iter__ attribute but are not iterable in the navigation list sense so test against list subclasses instead 2014-11-11 19:44:07 -04:00
Roberto Rosario
bf4175b263 Simplify and optimize smart linking code and views, remove now unused LINKING_SHOW_EMPTY_SMART_LINKS configuration setting (issue #56) 2014-11-11 19:41:19 -04:00
Roberto Rosario
c0ea3276a3 Remove tempory_navigation_links to a more meaningful extra_navigation_links 2014-11-11 17:11:49 -04:00
Roberto Rosario
5480a7c9a0 Don't import tags code from linking app, violates separation of concerns of child apps 2014-11-11 16:22:51 -04:00
Roberto Rosario
d5e11cce28 Issue #56, remove fabric file installation detection 2014-11-11 16:17:37 -04:00
Roberto Rosario
b75f16baee Issue #56, remove diagnostics tools menu, remove missing document list functionality 2014-11-11 16:16:03 -04:00
Roberto Rosario
84493b7a72 PEP8 Cleanups 2014-11-11 14:58:37 -04:00
Roberto Rosario
5fbfe99c2f Update release notes 2014-11-11 14:37:04 -04:00
Roberto Rosario
9843f2b17f Use the filtered queryset for the checkout API 2014-11-11 14:36:41 -04:00
Roberto Rosario
8194e898a0 Make the title field of the MetatadaType model a required field 2014-11-11 04:23:31 -04:00
Roberto Rosario
9b895e0844 Hide DocumentSerializer import 2014-11-11 04:13:02 -04:00
Roberto Rosario
053a5912ad Add label to the registered Document model fields 2014-11-11 03:36:43 -04:00
Roberto Rosario
eaa0d2c954 Update the document index documentation figures to reflect the usage changes 2014-11-11 03:03:58 -04:00
Roberto Rosario
3fad9f59a4 Add the comments related field to the document attributes documentation 2014-11-11 03:03:08 -04:00
Roberto Rosario
d7a7231b1b Remove usage of the MetadataClass during index calculation code 2014-11-11 03:02:29 -04:00
Roberto Rosario
924dfc0a4c Show the available document attributes during document indexing setup form 2014-11-11 03:01:49 -04:00
Roberto Rosario
0916bbacb0 Expand the size of the foreign_document_data field 2014-11-11 03:01:17 -04:00
Roberto Rosario
78ff496143 Remove usage od MetadataClass and simplify smartlink query building 2014-11-11 03:00:34 -04:00
Roberto Rosario
4882f0558d Update the document linking form to show the available mode attributes 2014-11-11 02:59:50 -04:00
Roberto Rosario
742cc02305 Document the usable document attributes added by the metadata app using ModelAttribute class, add DocumentMetadataHelper to help retrieve a document metadata value easier 2014-11-11 02:58:49 -04:00
Roberto Rosario
c6b1b5cb54 Add document label field help_text 2014-11-11 02:56:59 -04:00
Roberto Rosario
a8e473e7b9 Add ModelAttribute helper class to document the attributes of a document available for user interaction 2014-11-11 02:56:03 -04:00
Roberto Rosario
524b99cdd0 Remove unused class 2014-11-09 00:00:29 -04:00
Roberto Rosario
0aa97bdc18 Merge pull request #117 from EmlynC/generic_help_template
Generic help template
2014-11-07 12:42:34 -04:00
Emlyn Clay
3406f424ef Set all help templates to extend from a generic_help.html template 2014-11-07 11:06:26 +00:00
Emlyn Clay
196474dbed Add a generic help template - factor out the template so that you only need to override the generic rather than 8 separate templates. 2014-11-07 10:51:02 +00:00
Roberto Rosario
ba60012c98 Close issue #105, Tie smart links setups to document types 2014-11-06 20:45:10 -04:00
Roberto Rosario
c9c38ce5ed Using accesor attribute to add metadata to a document gives and error, use the model directly 2014-11-05 01:01:10 -04:00
Roberto Rosario
00d0500284 Add bulk document type change support 2014-11-05 01:00:42 -04:00
Roberto Rosario
6796ce8b49 Remove configurability of the document and document signatures UUID function 2014-11-05 00:18:34 -04:00
Roberto Rosario
11ca9ba1eb Issue #56, remove configurability of the checksum algorithm 2014-11-05 00:15:02 -04:00
Roberto Rosario
ecd72245e1 Add steps to deploy a development copy of Mayan 2014-11-04 18:50:00 -04:00
Roberto Rosario
61dfb20529 Simplify documentation structure, small upgrades to documentation 2014-11-04 18:46:24 -04:00
Roberto Rosario
92ec4861d1 Close issue #116, add link to binary requirements in installtion topic 2014-11-04 18:32:51 -04:00
Roberto Rosario
46f4b73976 Close issue #111, Add Checkouts API endpoints 2014-11-04 17:37:50 -04:00
Roberto Rosario
57eb4df1ba Add default message to the exception 2014-11-04 17:37:22 -04:00
Roberto Rosario
1287cca3ac Remove validation from the form and views 2014-11-04 17:37:05 -04:00
Roberto Rosario
e6dbb4cd70 Perform validation at the model 2014-11-04 17:36:34 -04:00
Roberto Rosario
6a19622e38 Fix comment style 2014-11-03 02:57:08 -04:00
Roberto Rosario
7d9277ce8b Only allow document metadata view when select same type documents 2014-11-03 02:56:29 -04:00
Roberto Rosario
e3c66953c5 Initial support for mailing multiple documents 2014-11-03 02:56:04 -04:00
Roberto Rosario
f7bfb390cc Missing return statement 2014-11-03 02:55:34 -04:00
Roberto Rosario
6a33b4b131 Close issue #112, Add OCR API endpoints 2014-11-03 02:24:40 -04:00
Roberto Rosario
a08d2c0a0c Remove unused permission 2014-11-03 02:03:46 -04:00
Roberto Rosario
efe96b3005 Close issue #109, Add Roles API endpoints 2014-11-03 01:57:04 -04:00
Roberto Rosario
9ae534306f Issue #56, remove bulk user creation management command 2014-11-03 01:41:32 -04:00
Roberto Rosario
1acbc39c48 Issue #56, with the addition of watched folders this feature is repititive 2014-11-03 01:40:30 -04:00
Roberto Rosario
906078a166 Don't allow the client to specify user id in the POST request, take it from the request.user 2014-11-03 01:37:07 -04:00
Roberto Rosario
c352be11bb Don't allow overidding the use when creating a new document, use the request user 2014-11-03 01:24:38 -04:00
Roberto Rosario
d99e047551 Remove unused variable 2014-11-03 01:13:43 -04:00
Roberto Rosario
1f0f3adcba Make sure base class method arguments match 2014-11-03 00:16:22 -04:00
Roberto Rosario
0ef7194cb5 Revert "Update smart_links.rst"
This documentation patch needs finishing, removing from master, leaving it on the development branch.

This reverts commit 7268a6998b.
2014-11-03 00:12:25 -04:00
Roberto Rosario
9cc014c70a Close issue #106, Convert document indexing app actions to Celery 2014-11-03 00:10:19 -04:00
Roberto Rosario
8a54e2bde4 Add flag to allow signals to bypass metadata validation 2014-11-03 00:09:58 -04:00
Roberto Rosario
1905a1ee3c Show metadata edit validation error properly 2014-11-03 00:09:25 -04:00
Roberto Rosario
5ca3684712 Reduce number of queries for document metadata retrieval 2014-11-02 23:41:12 -04:00
Roberto Rosario
70468a3ef8 Remove unused variables 2014-11-02 23:40:55 -04:00
Roberto Rosario
7bee501058 Remove unused imports 2014-11-02 23:40:42 -04:00
Roberto Rosario
f52123cd7a Cleanups, unused import, unused arguments removal 2014-11-02 23:21:14 -04:00
Roberto Rosario
d65cd68aec Fix base class argument count 2014-11-02 21:26:24 -04:00
Roberto Rosario
ef213001e1 Remove unused common util functions 2014-11-02 21:23:31 -04:00
Roberto Rosario
9f2692d36a PEP8 cleanup, unused import removal 2014-11-02 21:20:29 -04:00
Roberto Rosario
ba1729106f Pass arguments to the logger the correct way 2014-11-02 20:55:21 -04:00
Roberto Rosario
654022807f Raise the correct exception 2014-11-02 20:16:09 -04:00
Roberto Rosario
5d1599de04 Add step to upgrade instructions 2014-11-02 20:15:50 -04:00
Roberto Rosario
dc8fe5197a Update requirements versions 2014-11-02 20:15:37 -04:00
Roberto Rosario
11382caa9e upload_to passes two arguments, we don't use them but have to allow them 2014-10-30 15:58:13 -04:00
Roberto Rosario
09f4280f58 Only display metadata allowed for this document type in the add metadata view 2014-10-30 15:23:57 -04:00
Roberto Rosario
199a07ef8f Display errors while adding a metadata to a document 2014-10-30 15:16:58 -04:00
Roberto Rosario
8824b62be4 Update references from document.filename to document.label 2014-10-30 15:01:23 -04:00
Roberto Rosario
d9d564bc4d Raise metadata editing errors while on debug mode 2014-10-30 15:01:02 -04:00
Roberto Rosario
c8139f22d7 Remove the get_filename_from_uuid helper function 2014-10-30 15:00:38 -04:00
Roberto Rosario
7fd9ebb0ee Update more failing tests 2014-10-30 14:28:46 -04:00
Roberto Rosario
593fd56489 Cache serializer class 2014-10-30 13:50:05 -04:00
Roberto Rosario
95ac1b1294 Don't load the document search setup globally 2014-10-30 13:45:16 -04:00
Roberto Rosario
78b2dc21f9 Move the actual loading of the serializer when it actually needed 2014-10-30 13:44:35 -04:00
Roberto Rosario
9ae2a7564e Update document search field 'filename' to 'label' in line with model changes 2014-10-30 13:27:25 -04:00
Roberto Rosario
4543f06ca2 Warn and redirect users to the source setup view if none exists 2014-10-30 13:24:09 -04:00
Roberto Rosario
79ad3bade3 Update document app to register the API and search serializer lazily 2014-10-30 13:23:19 -04:00
Roberto Rosario
796db528aa Simplify app API description endpoint 2014-10-30 13:22:56 -04:00
Roberto Rosario
074110b9de Add missing slash 2014-10-30 13:22:16 -04:00
Roberto Rosario
779ebd4966 Don't import the api_urls at app import time, let the APIEndpoint class import them lazily 2014-10-30 13:21:37 -04:00
Roberto Rosario
36d3041617 Update API urls registration to be lazy and ignore import time errors 2014-10-30 13:19:52 -04:00
Roberto Rosario
1b52b4ced8 Update search model serializer registration to be lazy 2014-10-30 13:18:40 -04:00
Roberto Rosario
d66a9b5acf Synchronize translations with Transifex 2014-10-30 11:50:48 -04:00
Roberto Rosario
18b627b333 Update to Celery 3.1.16 2014-10-30 11:40:29 -04:00
Roberto Rosario
1e6859e6b8 Add missing django-celery dependency, sort dependencies 2014-10-30 11:40:01 -04:00
Roberto Rosario
8a5f215779 Update translation sources 2014-10-30 11:39:32 -04:00
Roberto Rosario
c977063253 Use a smaller document for folder tests 2014-10-30 11:31:59 -04:00
Roberto Rosario
b05054af90 Add test for the addition and removal of documents to tags 2014-10-30 11:22:33 -04:00
Roberto Rosario
735e000e1a Update folder test 2014-10-30 11:15:53 -04:00
Roberto Rosario
ab555ddaff Include the label in the document serializer 2014-10-30 11:02:25 -04:00
Roberto Rosario
66538763bf Fix super calling method of document type list and delete views 2014-10-30 09:58:54 -04:00
Roberto Rosario
ae101036eb Update tests 2014-10-30 03:32:20 -04:00
Roberto Rosario
bd05576cc5 Change the DEBUG text to something a bit friendlier 2014-10-30 03:24:11 -04:00
Roberto Rosario
d7b26e8bbe Show which document metadata are required, show validation error when trying to remove a required metadata type from a document 2014-10-30 03:21:44 -04:00
Roberto Rosario
8ac8292ad8 Enable required metadata types in the metadata selection form 2014-10-30 03:21:09 -04:00
Roberto Rosario
d92bd67331 Add validation to block removal of required metadata types from a document 2014-10-30 03:20:37 -04:00
Roberto Rosario
9749ce73b6 Automatically add required metadata types only when creating a new document 2014-10-30 03:20:08 -04:00
Roberto Rosario
01e44dede4 Show required and optional metadata types on upload wizard 2014-10-30 03:19:40 -04:00
Roberto Rosario
cf51f70da7 Change the name of the variable used as the main title for multiform template 2014-10-30 02:45:40 -04:00
Roberto Rosario
d8819276b2 Remove remarked code 2014-10-30 02:45:15 -04:00
Roberto Rosario
c4c2646b60 Add view to add or remove required metadata types to a document type, simplify existing view to add remove optional metadata types 2014-10-30 02:28:49 -04:00
Roberto Rosario
375de8270e Add manager class to handle the metadata types of a document type easily 2014-10-30 02:28:19 -04:00
Roberto Rosario
727ae0bea8 Add TODO reminder 2014-10-30 02:27:37 -04:00
Roberto Rosario
879f90547c Update metadata admin 2014-10-30 02:26:18 -04:00
Roberto Rosario
9d65fbf321 Remove the views associated to the link they are unnecesary 2014-10-30 02:25:55 -04:00
Roberto Rosario
733f60daad Allow form with subforms to have a main title 2014-10-30 02:25:31 -04:00
Roberto Rosario
1abb4e6ece Remove success messages from the assign_remove view, allow passing null lists titles 2014-10-30 02:24:56 -04:00
Roberto Rosario
95a27df1e3 Change the way metadata types are associated to a document type, add required boolean field to the association 2014-10-30 02:24:12 -04:00
Roberto Rosario
da97aab168 Remove unused template 2014-10-30 02:00:03 -04:00
Roberto Rosario
eb878c165b Revert "Issue #56, #8, now that metadata types are automatically added to a document upon type change, there is no more need for the document metadata add and remove code, view, API"
This reverts commit c390fc21d7.

Re adding this feature, only required metadata should be automatically added, optional metadata would be added by the user
2014-10-29 20:17:19 -04:00
Roberto Rosario
c8fe6a6fd4 Set Celery serialization to JSON only 2014-10-29 20:16:33 -04:00
Roberto Rosario
12c64bd83b Update source app views, model method and API calls to use the document app's models, managers. 2014-10-29 05:53:46 -04:00
Roberto Rosario
f1fc380f6c Remove obsolete method from admin 2014-10-29 05:53:16 -04:00
Roberto Rosario
06bb9e9753 Update document creation API call to use SharedUploadedFile model 2014-10-29 05:52:52 -04:00
Roberto Rosario
7abf944e47 Use SharedUploadedFile model for background task, add task for creating versions of a document 2014-10-29 05:52:12 -04:00
Roberto Rosario
83f4d90fa3 Don't store OCR error log if no document was created 2014-10-29 05:51:23 -04:00
Roberto Rosario
9a0842409e Remove debug code, add TODO reminders, simplify new version creation method 2014-10-29 05:50:34 -04:00
Roberto Rosario
5bb21775f7 Add transaction.atomic, make sure the default language is used, return a list of versions not documents 2014-10-29 05:49:41 -04:00
Roberto Rosario
099844e15d Add SharedUploadedFile model to distribute work files between Mayan nodes easier 2014-10-29 05:46:26 -04:00
Roberto Rosario
3909d60e9a Issue #56, Remove child_views, child_urls, children_path_regex, children_view_regex link support 2014-10-28 17:41:10 -04:00
Roberto Rosario
b8fe08f831 Fix casing of message 2014-10-28 17:21:52 -04:00
Roberto Rosario
9596beac79 Update translation messages sources 2014-10-28 17:21:37 -04:00
Roberto Rosario
2c2dfa88cc Issue #84, Remove template context variable 'object_name' to improve ease of translation 2014-10-28 02:36:43 -04:00
Roberto Rosario
92d4d5e6bc Only show multi item links when there are items 2014-10-28 02:18:07 -04:00
Roberto Rosario
31f21d3143 Simplify event message 2014-10-28 02:17:50 -04:00
Roberto Rosario
c390fc21d7 Issue #56, #8, now that metadata types are automatically added to a document upon type change, there is no more need for the document metadata add and remove code, view, API 2014-10-28 02:16:53 -04:00
Roberto Rosario
6eb6c43807 Automatically the appropiate metadata types when the document's type is changed 2014-10-28 02:01:59 -04:00
Roberto Rosario
6aecfd98e6 Issue #8, finish adding view and links to change a document's type 2014-10-28 02:01:22 -04:00
Roberto Rosario
ea68e195b1 Issue #8, when a document is added force the change document type signal 2014-10-28 01:37:16 -04:00
Roberto Rosario
6534326df9 Issue #8, Initial changes to allow update a document's document type.
Added signal emited then the type is changed, added Document model method to
update the document type
2014-10-28 01:35:13 -04:00
Roberto Rosario
6ad26f3c9a Add filenames accesor for DocumentType model 2014-10-27 23:22:35 -04:00
Roberto Rosario
21d51accec Make sure the metadata being added is allowed 2014-10-27 23:21:13 -04:00
Roberto Rosario
cbd2644c59 Make sure label exists 2014-10-27 23:20:55 -04:00
Roberto Rosario
6702859f8d Unify DocumentForm and DocumentForm_edit 2014-10-27 23:20:37 -04:00
Roberto Rosario
3da11a023b Cleanups 2014-10-27 22:51:25 -04:00
Roberto Rosario
9d408d5795 Remove settings editor app 2014-10-27 22:51:06 -04:00
Roberto Rosario
4c07c49a56 Remove shared views list, these are no longer needed 2014-10-27 19:23:07 -04:00
Roberto Rosario
0bed1df64a Issue #92, Make register_multi_item_links class aware 2014-10-27 19:21:05 -04:00
Roberto Rosario
2874bb3434 Align multi item form and button in the same line to save space 2014-10-27 18:19:05 -04:00
Roberto Rosario
33c6c7f341 User plural form 2014-10-27 18:18:52 -04:00
Roberto Rosario
2cb5530e31 Add spacers to the multi item links of the user management app 2014-10-27 17:51:50 -04:00
Roberto Rosario
4262b750b9 Issue #56, remove remaining side bar templates code 2014-10-27 16:31:18 -04:00
Roberto Rosario
a728690335 Issue #56, #97, Make multi item links a drop down list of actions, remove unused code 2014-10-27 16:26:13 -04:00
Roberto Rosario
b166d559ed Issue #62, #56, simplify generic_list_horizontal_subtemplate 2014-10-27 16:24:09 -04:00
Roberto Rosario
9b037e3b9d Improve document's apps API endpoints docstrings 2014-10-27 15:08:08 -04:00
Roberto Rosario
7cf2bacca3 Add group API endpoints 2014-10-27 15:07:49 -04:00
Roberto Rosario
c6d01de0a3 Add smart link view title 2014-10-27 14:45:52 -04:00
Emlyn Clay
3f6c854d51 Update contributors.rst 2014-10-27 12:55:50 +00:00
Roberto Rosario
744d8ec0d8 Make the new document label optional, the backend will use the filename is none is specified 2014-10-27 05:19:41 -04:00
Roberto Rosario
546a593e26 Use the new post version upload signal to ensure OCR starts only when all of a new
document version pages have been created
2014-10-27 05:18:25 -04:00
Roberto Rosario
9e85da2f2b Add custom post document version upload signal 2014-10-27 05:17:40 -04:00
Roberto Rosario
9c9632f920 Add proper document creation API endpoint 2014-10-27 04:49:29 -04:00
Roberto Rosario
165d01610b Improve User model serializer 2014-10-27 04:47:42 -04:00
Roberto Rosario
48cbe309f4 Remove language choices from the documents models module and use the one define in literals.py 2014-10-27 04:47:02 -04:00
Roberto Rosario
df74239e85 Move language choices to the literals module 2014-10-27 04:46:31 -04:00
Roberto Rosario
4007a407e4 Remove delete_after_upload field for watch folders, files are deleted after uploading regardless,
otherwisre they are re uploaded at the next check.
2014-10-27 00:32:35 -04:00
Roberto Rosario
5b283b75c1 Add FAQ entry about database foreign key constraint error 2014-10-25 19:39:05 -04:00
Roberto Rosario
491b7a7af4 Re enable per source document type field 2014-10-25 19:38:42 -04:00
Roberto Rosario
1c87866a63 Add WebForm to admin interface 2014-10-25 19:38:19 -04:00
Roberto Rosario
81c3419321 Fix image path 2014-10-25 19:38:03 -04:00
Roberto Rosario
f868d44461 Issue #32, Initial commit to support watch folders 2014-10-25 04:30:58 -04:00
Roberto Rosario
a52148ed16 Remove the bootstrap app from the transifex configuration file 2014-10-25 03:17:29 -04:00
Roberto Rosario
6e7a0dcb35 Reorganize remaining icons 2014-10-25 03:13:27 -04:00
Roberto Rosario
13b664465e Remove unused translation library from template 2014-10-25 02:51:23 -04:00
Roberto Rosario
20fb9dffbd Update translation sources 2014-10-25 02:50:31 -04:00
Roberto Rosario
7b92d1633a Fix typo 2014-10-25 02:31:24 -04:00
Roberto Rosario
6bca65088f Remove static context processor 2014-10-25 02:30:11 -04:00
Roberto Rosario
ba5d3261e0 Remove use of hard coded STATIC_URL template variable 2014-10-25 02:28:13 -04:00
Roberto Rosario
71e8502614 Remove confirmation template's form icon 2014-10-25 02:21:44 -04:00
Roberto Rosario
2a7e543cd8 Delete source app confirmation icons 2014-10-25 02:03:49 -04:00
Roberto Rosario
6a8b183213 Add flag to ignore result for background task of queue 'tools' 2014-10-25 01:59:10 -04:00
Roberto Rosario
45587561de Add TODO reminder 2014-10-25 01:58:52 -04:00
Roberto Rosario
85d6053836 Finish implementing class based new version upload view 2014-10-25 01:58:29 -04:00
Roberto Rosario
312cb216fc Add new version upload background task 2014-10-25 01:58:03 -04:00
Roberto Rosario
e0e4671ca3 No need to have this code in the Source model 2014-10-25 01:57:35 -04:00
Roberto Rosario
0d484bcefc Remove remaked/unused code 2014-10-25 01:57:18 -04:00
Roberto Rosario
6a007492a8 Add initial new document version class based view 2014-10-24 18:50:23 -04:00
Roberto Rosario
c23205f464 Add MultiFormView class based view, convert InteractiveUpload view to MultiForm view 2014-10-24 18:18:40 -04:00
Roberto Rosario
4acf88c9a6 Initial commit of the sources upload, new version and new document refactor 2014-10-23 17:10:02 -04:00
Roberto Rosario
e6c2628b2e Add document model manager to simplify and encapsulate document creation 2014-10-23 16:57:20 -04:00
Roberto Rosario
c129236aae Move filename to be a document and not a documentversion property 2014-10-23 16:55:45 -04:00
Roberto Rosario
ba9ab75f5d Don't use hyperlinked serializer for folder, makes it easier to add folder by just specifying user id instead of user URL 2014-10-23 12:41:59 -04:00
Roberto Rosario
8567df1da8 Don't use Django's get_or_create in migrations.
http://south.aeracode.org/ticket/325
https://stackoverflow.com/questions/20039250/django-1-6-transactionmanagementerror-database-doesnt-behave-properly-when-aut
2014-10-23 12:06:58 -04:00
Roberto Rosario
1b0a3cbb71 Improve docstrings of existing metadata API endpoints and add endpoints to view, add and remove metadata types to document types 2014-10-23 11:38:03 -04:00
Roberto Rosario
9ace350e0a Add API endpoint to return the current user, improve existing user API endpoints docstrings 2014-10-23 10:43:28 -04:00
Roberto Rosario
07c595fd65 Reuse expensive values to improve issue #49 2014-10-23 03:17:25 -04:00
Roberto Rosario
e131463f90 Issue #78, Don't cache values that may be updated by out of process code
This fix makes issue #49 worse; fix: cache page count and latest version
at form/widget and not at model.
2014-10-23 02:44:09 -04:00
Roberto Rosario
a651921ca2 Use parent class instead of specific child classes 2014-10-23 02:38:17 -04:00
Roberto Rosario
f328789d26 Space cleanups 2014-10-23 01:28:54 -04:00
Roberto Rosario
96623354a7 Update upgrade instructions 2014-10-23 01:28:14 -04:00
Roberto Rosario
d15d5746b5 Move UUID setting from the save method to a default value of the model 2014-10-23 01:13:22 -04:00
Roberto Rosario
2888075f40 Change edit view and link texts 2014-10-23 01:11:58 -04:00
Roberto Rosario
86ab079926 Remove unnecessary check 2014-10-23 00:45:59 -04:00
Roberto Rosario
db2ca4fb58 Issue #85, Reset page count for a single or multiple documents.
Issue #57, convert to celery task
2014-10-22 19:33:20 -04:00
Roberto Rosario
f86be42dd0 Issue #57, conver the document image queue maintenance view into a celery task 2014-10-22 18:21:40 -04:00
Roberto Rosario
5229b9e9e0 Remove the bootstrap app from the language helper script 2014-10-22 15:53:10 -04:00
Roberto Rosario
e31d37ef09 Update source messages 2014-10-22 15:52:54 -04:00
Roberto Rosario
ed9723b5f8 Issue #90, #56, Remove app_registry app 2014-10-22 15:52:31 -04:00
Roberto Rosario
e8762e4792 Issue #87, Per document language selection 2014-10-22 02:35:16 -04:00
Roberto Rosario
9b1b89cc21 Remove remaining code/docs about the removed COMMON_DEFAULT_PAPER_SIZE and COMMON_DEFAULT_PAGE_ORIENTATION configuration settings 2014-10-22 01:00:29 -04:00
Roberto Rosario
2ea48bd1ba PEP8 cleanups, further removal of unused code 2014-10-21 19:28:52 -04:00
Roberto Rosario
ce39a775ee Issue #88, remove metadata type selection step from interactive upload wizard
Max wizard steps is now 2. Second step is skiped when document type
has not associated metadata types.
2014-10-21 19:02:31 -04:00
Roberto Rosario
0a55b4c16a Add missing view namespace 2014-10-21 17:53:35 -04:00
Roberto Rosario
239af4c01a Simplify plural tense of objects 2014-10-21 17:42:00 -04:00
Roberto Rosario
d0ed74dfc3 Move links order for uniformity, move all delete button to the far right to reduce accidental clicking 2014-10-21 17:41:16 -04:00
Roberto Rosario
037b12cc6b Improve/simplify wording 2014-10-21 17:31:51 -04:00
Roberto Rosario
d7d61b0fd2 Remove unused registry files 2014-10-21 17:19:32 -04:00
Roberto Rosario
bc55a9e8cf Reduce title 2014-10-21 17:17:16 -04:00
Roberto Rosario
c0785fa098 Show document type for each document 2014-10-21 17:15:20 -04:00
Roberto Rosario
92c76d9f33 Issue #56, Remove Metadata Sets 2014-10-21 17:14:31 -04:00
Roberto Rosario
549f0fdc87 Issue #75, move OCR queueing from a setting to a DocumentType model field 2014-10-21 16:53:42 -04:00
Roberto Rosario
3c72d62087 Issue #82, make document type a required field 2014-10-21 16:35:39 -04:00
Roberto Rosario
2441d232ab Issue #86, move south migrations from the 'migrations' to the 'south_migrations' directory 2014-10-21 13:23:05 -04:00
Roberto Rosario
c23bc95deb Remove remaining code from django-taggit package 2014-10-21 13:18:50 -04:00
Roberto Rosario
2f01904217 Issue #56, remove boostrap app 2014-10-21 12:30:54 -04:00
Roberto Rosario
966a49a938 Fix tag create API endpoint 2014-10-21 09:31:25 -04:00
Roberto Rosario
af5f2b4478 Further improvements to the sources app links 2014-10-21 03:37:10 -04:00
Roberto Rosario
01826e94e1 Fix create source conditional highlighting 2014-10-21 03:30:35 -04:00
Roberto Rosario
0d6b7dfbc6 Move class and form class functions to the utils module, issue #56: remove whilelist and blacklist support 2014-10-21 03:21:32 -04:00
Roberto Rosario
f8fe2ada0e Issue 83, simplify sources app navigation and views 2014-10-21 03:13:51 -04:00
Roberto Rosario
b0c76eab42 Merge branch 'feature/email_receive' into development 2014-10-20 21:57:58 -04:00
Roberto Rosario
2575e08499 Only fetch when source is enabled 2014-10-20 21:57:39 -04:00
Roberto Rosario
eaf1e55fab Improve periodic task creation and interval reuse 2014-10-20 21:57:19 -04:00
Roberto Rosario
e9d53809df Add missing import 2014-10-20 21:56:57 -04:00
Roberto Rosario
7133943963 Issue #65, complete set of code to implement receiving documents via email (experimental) 2014-10-20 17:48:45 -04:00
Roberto Rosario
f2670e27c8 Add missing view namespace 2014-10-20 02:36:51 -04:00
Roberto Rosario
3faa6dd2a1 Fix URL regex, source_type no longer required 2014-10-20 02:36:44 -04:00
Roberto Rosario
cf214801f5 Add missing view namespace 2014-10-20 02:36:19 -04:00
Roberto Rosario
8fd22d8f63 Fix URL regex, source_type no longer required 2014-10-20 02:35:44 -04:00
Roberto Rosario
59eb6202fe Initial commit to support receiving documents via email 2014-10-20 02:22:19 -04:00
Devin Ceartas
d6486b8a45 Update smart_links.rst
Begin to flesh out the documentation for Smart Links with a full description and some examples.
2014-10-20 00:20:15 -04:00
Roberto Rosario
47b64ac435 Remove 'default' column from settings list view 2014-10-18 02:42:49 -04:00
Roberto Rosario
13f8bddeb2 Issue #56, Remove duplicate search feature 2014-10-18 02:37:04 -04:00
Roberto Rosario
eaefa305a2 Issue #56, remove document version fields 'release_level' and 'serial' 2014-10-18 02:32:11 -04:00
Roberto Rosario
afc7bffca6 Simplify folder edit 2014-10-18 02:24:01 -04:00
Roberto Rosario
72fdfc5271 Setup model based reverse accesor 2014-10-18 02:04:06 -04:00
Roberto Rosario
618a4a4ae8 Add reverse accesor from tag to document, move the search field definition for tag to the tag app 2014-10-18 02:00:16 -04:00
Roberto Rosario
a9b78cb536 Simplify endpoint to add and remove documents to a folder, improve method docstrings 2014-10-18 01:52:27 -04:00
Roberto Rosario
6555eefb53 Add tag API endpoint methods docstrings 2014-10-18 01:51:47 -04:00
Roberto Rosario
9fc4d03b35 Simplify the API to attach or remove tags to a document 2014-10-18 01:27:59 -04:00
Roberto Rosario
fe7675f101 Add API endpoints to add and remove documents from folders 2014-10-18 01:09:26 -04:00
Roberto Rosario
7d47b1f30d Use auto_now_add in the history app 2014-10-18 01:04:59 -04:00
Roberto Rosario
c5e35ba074 Use auto_now_add in the bootstrap app model 2014-10-18 01:02:33 -04:00
Roberto Rosario
8cc8e8abc6 Simplify code, remove import 2014-10-18 01:00:39 -04:00
Roberto Rosario
09e5e4c62e Use auto_now_add for the lock_manager app 2014-10-18 00:58:37 -04:00
Roberto Rosario
0d38a1239d PEP8 cleanups 2014-10-18 00:55:55 -04:00
Roberto Rosario
0e8e10fdf0 Use auto_now for the dynamic_search app 2014-10-18 00:54:04 -04:00
Roberto Rosario
01fffaa59b Update auto_now_add and auto_now for the documents app models 2014-10-18 00:49:49 -04:00
Roberto Rosario
4211f048a0 Explicit new checkout check, remove unused import 2014-10-18 00:45:07 -04:00
Roberto Rosario
1b3233a1b0 Use auto_now_add 2014-10-18 00:42:45 -04:00
Roberto Rosario
297f860012 Use the auto_now_add option, removing the need to override the save method 2014-10-18 00:39:28 -04:00
Roberto Rosario
f594b9c270 Remove the FolderDocuments model simplyfing the Folder model and related views 2014-10-18 00:37:04 -04:00
Roberto Rosario
f039ae60c1 Add API endpoint to attach tags to documents 2014-10-17 22:49:51 -04:00
Roberto Rosario
c2f42bbcd9 Remove reference to unused model 2014-10-17 22:49:31 -04:00
Roberto Rosario
fe79931eec Remove unused import 2014-10-17 22:49:16 -04:00
Roberto Rosario
5557cc40cd Update model name 2014-10-17 22:48:58 -04:00
Roberto Rosario
75575bebcd Add TODO reminder 2014-10-17 22:48:46 -04:00
Roberto Rosario
d0bb6ad46b Update release notes 2014-10-17 22:48:32 -04:00
Roberto Rosario
9a164d6bd3 Don't fail if the taggit app is not installed 2014-10-17 22:48:16 -04:00
Roberto Rosario
ac5adbdc3f Remove django-taggit from the installed apps list 2014-10-17 22:47:48 -04:00
Roberto Rosario
f29714c5aa Update code to remove a tag from a document 2014-10-17 19:59:40 -04:00
Roberto Rosario
12744cb7d2 Add API views to create and delete tags 2014-10-17 19:58:17 -04:00
Roberto Rosario
0263745482 Simplify Tag model, remove django-taggit from the requirements 2014-10-17 19:57:37 -04:00
Roberto Rosario
e56ae335e6 Remove widget code and icon usage 2014-10-17 18:40:27 -04:00
Roberto Rosario
0ae7469d1a PEP8 cleanups 2014-10-17 18:34:50 -04:00
Roberto Rosario
ae3135bec8 Remove unused static media 2014-10-17 18:34:36 -04:00
Roberto Rosario
1c2932586e Remove the checkout widget, update and fix checkouts app's urls namepsaces 2014-10-17 18:28:03 -04:00
Roberto Rosario
0e12444c05 Add missing parenthesis 2014-10-17 18:13:24 -04:00
Roberto Rosario
464f0f099b Add API endpoint to remove a tag from a document 2014-10-16 11:16:43 -04:00
Roberto Rosario
c652b37f35 Merge pull request #81 from NacreData/master
Update smart_links.rst
2014-10-16 10:48:08 -04:00
Devin Ceartas
7268a6998b Update smart_links.rst
Begin to flesh out the documentation for Smart Links with a full description and some examples.
2014-10-16 14:32:42 +00:00
Roberto Rosario
d1c03f0417 Bump version 2014-10-16 09:46:40 -04:00
Roberto Rosario
46b14eb22f Start using names that make more sense 2014-10-16 00:39:26 -04:00
Roberto Rosario
26e81ec053 Fix method name 2014-10-16 00:39:03 -04:00
Roberto Rosario
7db17e58bd Remove unused document indexing utils module 2014-10-16 00:36:02 -04:00
Roberto Rosario
e909b5db8d Merged the unfinished document states into the development branch, reverting. 2014-10-16 00:31:58 -04:00
Roberto Rosario
2559f67e12 Remove document model first_version property, not used anywhere 2014-10-15 20:49:51 -04:00
Roberto Rosario
598e4e0c25 Issue #30, Initial commit of the document states app 2014-10-14 23:42:16 -04:00
Roberto Rosario
4e2120edfd Add missing namespace 2014-10-14 23:41:28 -04:00
Roberto Rosario
29a5efe511 Hide import of DocumentSerializer, causes migration errors 2014-10-14 23:41:00 -04:00
Roberto Rosario
7b5661ee94 Add Django Suit to the requirements 2014-10-14 20:01:12 -04:00
Roberto Rosario
1f016e6773 Issue #56, Remove obsolete OCR statistics 2014-10-14 05:06:58 -04:00
Roberto Rosario
bdd1855ae5 Issue #3, Removal of the last blind |safe filtering 2014-10-14 05:03:39 -04:00
Roberto Rosario
733dfc3cf7 Encapsulate and properly report invalid requested fields during search 2014-10-14 04:45:37 -04:00
Roberto Rosario
815fb2ec01 Add placeholder serializer class to avoid errors with Django REST Swagger 2014-10-14 04:34:15 -04:00
Roberto Rosario
ce5fd2e684 Add document indexing API endpoint to return the document indexes to which a document belongs 2014-10-14 04:29:44 -04:00
Roberto Rosario
f80ad671e5 Fix object level filtering based on permission 2014-10-14 04:29:14 -04:00
Roberto Rosario
e8891257ce No need to hide the DocumentSerializer import anymore 2014-10-14 04:14:24 -04:00
Roberto Rosario
2f3d62feac Use more consistent names 2014-10-14 04:12:35 -04:00
Roberto Rosario
bc13129e3b Close issue #77, add document view permission to the search app 2014-10-14 04:00:14 -04:00
Roberto Rosario
85c789c039 Register the search app search endpoint 2014-10-14 03:58:45 -04:00
Roberto Rosario
780c55e255 Add dynamic_search app API endpoints, simplify ModelSearch class and search views 2014-10-14 03:40:46 -04:00
Roberto Rosario
24a1a35a4c Update required Django REST framework version 2014-10-14 03:36:25 -04:00
Roberto Rosario
229df00e4a Fix typo 2014-10-14 03:36:11 -04:00
Roberto Rosario
0f3c72d095 Remove remaked lines 2014-10-14 03:35:34 -04:00
Roberto Rosario
597415c224 Fix API view name 2014-10-14 03:33:55 -04:00
Roberto Rosario
8e03dd50fd Improve API documentation templating 2014-10-14 01:25:07 -04:00
Roberto Rosario
28a7c9789c Add document_indexing API endpoints 2014-10-13 19:12:16 -04:00
Roberto Rosario
32974f035d Remove unneeded accesor method 2014-10-13 18:21:21 -04:00
Roberto Rosario
c09b423292 Use a modern way to define classes getters & setters 2014-10-13 17:54:11 -04:00
Roberto Rosario
8200204ddc Convert the 'document_save_to_temp_dir' utility function into a method of the Document model 2014-10-13 17:51:28 -04:00
Roberto Rosario
f3de7f84f2 Remove translations for the web_theme app 2014-10-13 17:41:09 -04:00
Roberto Rosario
8e4342da9e PEP8 cleanups 2014-10-13 17:39:49 -04:00
Roberto Rosario
01a15d7f0c PEP8 cleanups 2014-10-13 17:33:23 -04:00
Roberto Rosario
8a40ade735 Fix group list view context 2014-10-13 17:27:36 -04:00
Roberto Rosario
5b25f286f3 Fix missed lower case title 2014-10-13 17:27:19 -04:00
Roberto Rosario
0df1e32cbb Close issue #69 2014-10-13 17:20:07 -04:00
Roberto Rosario
6e3b62363e Solve issue #70 2014-10-13 17:16:14 -04:00
Roberto Rosario
bcc71bebd2 Issue #56, remove print preview unused code 2014-10-13 17:08:23 -04:00
Roberto Rosario
e26c6c1905 Use the page_count method which can cache the result 2014-10-11 03:47:56 -04:00
Roberto Rosario
d86f53f81c Use the cached page count 2014-10-11 03:31:02 -04:00
Roberto Rosario
b158b48556 Cache a document versions page count 2014-10-11 03:30:41 -04:00
Roberto Rosario
95850a919a Cache a document's latest version 2014-10-11 03:21:14 -04:00
Roberto Rosario
34af0ce3f6 Remove unused web theme files 2014-10-11 02:52:40 -04:00
Roberto Rosario
c0b5bbb9c2 Update upcoming version 1.1 release notes 2014-10-11 02:48:33 -04:00
Roberto Rosario
a546aa4c30 Remove unused media file 2014-10-11 02:33:05 -04:00
Roberto Rosario
0116e34aec Capitalize the title 2014-10-11 02:28:59 -04:00
Roberto Rosario
6bcc74fe35 Add the debug template context processor and INTERNAL_IPS with default value to the base settings file 2014-10-11 02:27:15 -04:00
Roberto Rosario
486e7c77b0 Issue #56, Remove unused template 2014-10-11 02:23:14 -04:00
Roberto Rosario
36694cc5c5 Set the ignore_result option for the tasks that don't return values 2014-10-11 02:05:40 -04:00
Roberto Rosario
feb90cb426 Improve registration view workflow now that a queued task is used 2014-10-11 01:59:38 -04:00
Roberto Rosario
ce6bef79a6 Add the bing argument to enable .self access 2014-10-11 01:59:23 -04:00
Roberto Rosario
76c7324214 Pass task configuration to the decorator, not to the task itself 2014-10-11 01:54:04 -04:00
Roberto Rosario
47a3a9ff62 Issue #57, update the registration app to use Celery 2014-10-11 01:53:33 -04:00
Roberto Rosario
dd1832d0c9 Add retry and rate limit support to the installation task 2014-10-11 01:43:07 -04:00
Roberto Rosario
597dfa8628 Issue #57, convert installation app to use celery 2014-10-11 01:23:39 -04:00
Roberto Rosario
fde037f857 Remove APScheduler, it is no longer used by Mayan EDMS 2014-10-11 01:13:48 -04:00
Roberto Rosario
a75a4edf21 Issue #39, Finish capitalizing source text messages 2014-10-10 02:29:37 -04:00
Roberto Rosario
0479c0a3cb Update documents app tests 2014-10-10 02:02:42 -04:00
Roberto Rosario
1e9d01c673 Move default ACLS application, recent document setting and document creation event from the Source model to the Document model
Now event document directly created by the save() method of the Document model will have those properties set
2014-10-10 01:55:32 -04:00
Roberto Rosario
37875df7a1 Add missing imports, PEP8 cleanups 2014-10-09 20:25:55 -04:00
Roberto Rosario
9662d14e9c Issue #40, finish remaining '/' hardcoded redirects 2014-10-09 20:05:42 -04:00
Roberto Rosario
9f0b9e3622 Remove local.py from the repository 2014-10-09 19:37:00 -04:00
Roberto Rosario
9bf1b3b95a Improve the settings method, allow for execution of mayan-edms.py without an existing local.py file 2014-10-09 19:34:51 -04:00
Roberto Rosario
0222474afa Remove django-celery requirement, update default celery config option CELERY_ALWAYS_EAGER to be True at install 2014-10-09 19:11:22 -04:00
Roberto Rosario
59177a53c8 Update required version of Django to 1.6.7 2014-10-09 18:48:04 -04:00
Roberto Rosario
a3af431a63 Remove unused folder template 2014-10-09 14:26:31 -04:00
Roberto Rosario
a4d1e66757 Fix filename preservation during upload 2014-10-09 14:18:59 -04:00
Roberto Rosario
c2e35694d8 Unify the method to submit document for OCR, fix OCR error document re-queue view 2014-10-09 14:08:48 -04:00
Roberto Rosario
8bac1525be PEP8 cleanups 2014-10-08 19:39:16 -04:00
Roberto Rosario
50e143e754 Fix indentation 2014-10-08 18:15:19 -04:00
Roberto Rosario
dd0bb485d6 Issue #39 updates 2014-10-08 18:15:06 -04:00
Roberto Rosario
97dcf507ab PEP8 cleanups 2014-10-08 18:14:05 -04:00
Roberto Rosario
35f9adbefc Sort URL entries 2014-10-08 17:39:54 -04:00
Roberto Rosario
451abe4ed9 Update language helper script 2014-10-08 17:33:36 -04:00
Roberto Rosario
dd390531e3 Remove the scheduler app from the Transifex configuration file 2014-10-08 17:33:16 -04:00
Roberto Rosario
379a34dabe Translation file synchronization 2014-10-08 17:31:51 -04:00
Roberto Rosario
bdb3cdb91b Sort the installed apps by name 2014-10-08 17:17:09 -04:00
Roberto Rosario
ce92f58fed Add mailer app to add support to send document or document links via email 2014-10-08 16:28:04 -04:00
Roberto Rosario
b9cdcd80f4 Issue #56, Remove remaining SIDEBAR_SEARCH and web_main_settings code 2014-10-08 14:06:13 -04:00
Roberto Rosario
0cb9c2aa21 Issue #56, Remove the MAIN_ENABLE_SCROLL_JS and associated code, remove remaining web theme selection code 2014-10-08 14:00:24 -04:00
Roberto Rosario
b8f3fcf383 Issue #56, Remove the MAIN_DISABLE_HOME configuration settings
Upon login users now go directly to the documents tab
2014-10-08 13:49:13 -04:00
Roberto Rosario
c4c93a3ba8 Add missing url namespace 2014-10-08 13:32:32 -04:00
Roberto Rosario
e1babac425 Issue #56, Remove English names only capitalization feature 2014-10-08 10:26:47 -04:00
Roberto Rosario
908f2eef84 Fix quotation style 2014-10-08 10:24:04 -04:00
Roberto Rosario
3990900433 Issue #39, Fix common model messages capitalization 2014-10-08 10:23:08 -04:00
Roberto Rosario
bd63d19899 Fix quoting style 2014-10-08 10:21:51 -04:00
Roberto Rosario
d253c8137d Issue #39, Fix capitalization of common app links 2014-10-08 10:16:06 -04:00
Roberto Rosario
ad7ae3dcfa Issue #56, Remove sidebar help templates and navigation function to register them 2014-10-08 10:11:04 -04:00
Roberto Rosario
5a237ce258 Cleanup imports 2014-10-08 09:59:26 -04:00
Roberto Rosario
e5d8f4a526 Cleanups 2014-10-08 09:42:13 -04:00
Roberto Rosario
db2980b36a Remove unnecessary direct index update at upload, signal handlers now do that 2014-10-08 09:37:51 -04:00
Roberto Rosario
9cbbd07d78 PEP8 cleanups 2014-10-08 09:37:19 -04:00
Roberto Rosario
2a7bd74149 Add missing view namespace 2014-10-08 09:30:34 -04:00
Roberto Rosario
b0d6ccbe89 Add API endpoint to create a document based off a document source 2014-10-08 01:51:15 -04:00
Roberto Rosario
4b6c826574 Increase timeouts for the image conversion tasks 2014-10-07 19:38:14 -04:00
Roberto Rosario
dd35196492 Improve API view to retreive documents of a type 2014-10-07 14:52:11 -04:00
Roberto Rosario
e28f5c9028 Fix missing redirect namespace 2014-10-07 14:51:49 -04:00
Roberto Rosario
78ecee7266 Merge branch 'gwalborn-master' into test
Conflicts:
	mayan/apps/metadata/forms.py
2014-10-07 13:47:02 -04:00
Roberto Rosario
6896b29b89 Merge branch 'master' of https://github.com/gwalborn/mayan-edms into gwalborn-master 2014-10-07 13:44:36 -04:00
Roberto Rosario
a85b3b1526 Add metadata app API endpoints 2014-10-07 08:57:37 -04:00
Roberto Rosario
eb48909399 Don't include the documents contained in the tags or folders results, instead provide a separate, paginates tag and folder endpoint 2014-10-06 03:43:51 -04:00
Roberto Rosario
a4667bdd61 Fix message 2014-10-03 23:55:47 -04:00
Roberto Rosario
92b35b57ae Don't pass an user object to the task, pass an user id instead 2014-10-03 23:54:14 -04:00
Roberto Rosario
a754267ca0 Improvements to the queued upload code to support large files 2014-10-03 17:12:56 -04:00
Roberto Rosario
accf323157 Issues #57, #49, Initial changes to support queued uploads 2014-10-03 16:35:55 -04:00
Roberto Rosario
79e7bdc860 Add reminders 2014-10-03 16:35:36 -04:00
Roberto Rosario
831b63ba77 Convert the document image view to use queued conversion 2014-10-03 16:34:54 -04:00
Roberto Rosario
3b1937bb17 Add reminder 2014-10-03 16:34:36 -04:00
Roberto Rosario
33baa434e0 Add a descriptive literal 2014-10-03 16:34:17 -04:00
Roberto Rosario
e4e6c2f5fb Move document image queueing up in process to avoid queueing serialization overhead 2014-10-03 14:58:55 -04:00
Roberto Rosario
0a20d46752 Remove unused code 2014-10-03 14:37:51 -04:00
Roberto Rosario
3fdcb126a5 Fix capitalization 2014-10-03 14:37:37 -04:00
Roberto Rosario
060c7a4175 Improve sources app model sub classes and inheritance handling 2014-10-03 14:37:01 -04:00
Roberto Rosario
3b03af9295 Merge branch 'feature/lts' into merge_test
Conflicts:
	mayan/apps/documents/api_views.py
	mayan/apps/documents/models.py
	mayan/apps/folders/__init__.py
	mayan/apps/folders/urls.py
	mayan/apps/folders/views.py
	mayan/apps/tags/urls.py
	mayan/apps/tags/views.py
	mayan/settings/base.py
2014-10-03 11:41:41 -04:00
Roberto Rosario
b20314cd43 Add document folder list API endpoint 2014-10-03 09:28:59 -04:00
Roberto Rosario
6646f28433 Add document folder list API endpoint 2014-10-03 09:28:31 -04:00
Roberto Rosario
f26f202c4d Use different queues for the background tasks 2014-10-03 03:22:35 -04:00
Roberto Rosario
b3ec836acf Update Document model to use background image conversion task 2014-10-03 02:41:29 -04:00
Roberto Rosario
2833b6a4ec Add background conversion taks to the converter app 2014-10-03 02:41:10 -04:00
Roberto Rosario
9efe1febe7 Merge remote-tracking branch 'origin/development' into development 2014-10-03 02:04:47 -04:00
Roberto Rosario
b73ad4ad0c Issue #57, Remove the scheduler and job_processor apps 2014-10-03 02:04:10 -04:00
Roberto Rosario
da2e8cdaac Remove the scheduler and job_processor apps 2014-10-03 02:01:27 -04:00
Roberto Rosario
af6ac7a170 Update the checkouts app to use Celery beat 2014-10-03 01:56:03 -04:00
Roberto Rosario
80a65c69b7 Update Celery process to use the production settings by default 2014-10-03 01:55:33 -04:00
Roberto Rosario
3cfcb82798 Have Celery use UTC timezone 2014-10-03 01:55:10 -04:00
Roberto Rosario
a613c65fde Update the OCR app to use Celery, remove OCR config options OCR_REPLICATION_DELAY, OCR_NODE_CONCURRENT_EXECUTION, OCR_QUEUE_PROCESSING_INTERVAL 2014-10-03 01:19:59 -04:00
Roberto Rosario
7bec19848d Fix absolute_url for document pages 2014-10-03 01:16:06 -04:00
Roberto Rosario
3777286061 Merge branch 'feature/remove_source_icons' into development 2014-10-02 17:54:16 -04:00
Roberto Rosario
93a28fab2f Issue #56, Remove the MAIN_DISABLE_ICONS setting configuration option 2014-10-02 17:54:05 -04:00
Roberto Rosario
3d033c687d Issue #56, Remove specialized Sentry link 2014-10-02 17:45:41 -04:00
Roberto Rosario
41d2f2c5c6 Remove insertion of the web_theme value into the templates 2014-10-02 17:44:10 -04:00
Roberto Rosario
6e40e7e5a5 Issue #56, Remove the MAIN_THEME configuration option 2014-10-02 17:42:44 -04:00
Roberto Rosario
1cd0e05f1f Issue #56, Remove the MAIN_VERBOSE_LOGIN configuration option 2014-10-02 17:37:40 -04:00
Roberto Rosario
9920f75b58 Issue #56, Remove per source icon support 2014-10-02 17:34:23 -04:00
Roberto Rosario
c664dd7113 Issue #56, Start addressing issue #40 (document, permissions, sources, tags and user_management apps) 2014-10-02 17:33:56 -04:00
Roberto Rosario
6b5d082b78 Start addressing issue #40 (document, permissions, sources, tags and user_management apps) 2014-10-02 02:25:28 -04:00
Roberto Rosario
691bbdc18e Remove the web_theme app from the transifex configuration file 2014-10-02 02:06:51 -04:00
Roberto Rosario
74cf4c413f Import cleanups, reorganization, PEP8 cleanups 2014-10-02 02:01:08 -04:00
Roberto Rosario
1c50bca38a More capitalizations, issue #39 2014-10-02 01:23:10 -04:00
Roberto Rosario
06dd1b3368 Issue #39, Explicitly captalize string now that they are not capitalized blindly by the templates 2014-10-02 01:17:27 -04:00
Roberto Rosario
488efbe43f Use same quotation style 2014-10-02 01:15:47 -04:00
Roberto Rosario
2c12c61785 Issue #56, remove scheduled tasks list view 2014-10-01 22:53:48 -04:00
Roberto Rosario
aaeb2a5bdf Add __init__.py 2014-10-01 22:49:52 -04:00
Roberto Rosario
9012a1101a Merge branch 'feature/remove_non_essentials' into development
Conflicts:
	mayan/apps/converter/__init__.py
	mayan/apps/converter/api.py
	mayan/apps/converter/views.py
	mayan/urls.py
2014-10-01 22:22:06 -04:00
Roberto Rosario
7f62831c37 Issue #56, Remove the "Supported File Format" list view, messages and related code 2014-10-01 22:19:08 -04:00
Roberto Rosario
1d5851ac32 Add the zh-cn locale to the process languages script 2014-10-01 05:42:20 -04:00
Roberto Rosario
8d31a0f155 Add the zh-cn locale to the process languages script 2014-10-01 05:32:28 -04:00
Roberto Rosario
437c74a024 Merge branch 'master' into development 2014-10-01 05:19:51 -04:00
Roberto Rosario
5a7e09c876 Reset the local.py settings file 2014-10-01 05:17:41 -04:00
Roberto Rosario
d03801d444 Merge remote-tracking branch 'origin/master' 2014-10-01 05:17:08 -04:00
Roberto Rosario
32b3ae7267 Merge branch 'feature/optimize_thumbnails' into development
Conflicts:
	mayan/apps/main/templates/base.html
2014-10-01 05:16:28 -04:00
Roberto Rosario
7bc2da97ef Change the data attribute used to avoid javascript mime warnings, remove duplicated $(this) lookup 2014-10-01 05:10:31 -04:00
Roberto Rosario
3eab590b49 Remove unused variables, remove unused parent lookup, remove unused logging, remove lazy load class after loading 2014-10-01 05:00:12 -04:00
Roberto Rosario
470eb299b6 Issue #49, add scrollstop event support and use it to optimize document page image loading 2014-10-01 04:56:42 -04:00
Roberto Rosario
c5d7e4075d Merge pull request #54 from fordguo/master
add the zh_CN support
2014-10-01 03:11:28 -04:00
Roberto Rosario
7090fb8859 Merge branch 'hotfix/fix_anonymous_search' into development 2014-09-30 17:29:05 -04:00
Roberto Rosario
f1cbc44db9 Issue #51, Don't try to display the recent searches template for anonymous users. 2014-09-30 17:28:02 -04:00
Roberto Rosario
5f6438ac55 Merge branch 'feature/polish_PR_52' into development 2014-09-30 15:48:42 -04:00
Roberto Rosario
4968051b6d Don't silence OCR errors even if Tesseract is optional otherwise the user won't know happened.
Catch the OSError generic exception and return a friendlier "Tesseract not found" exception
2014-09-30 15:41:00 -04:00
Roberto Rosario
f434720617 Don't silence OCR errors at the API high level, at this layer we don't know what really happened in the backend.
Move exception handling to the backend.
2014-09-30 15:39:36 -04:00
Roberto Rosario
3effc58ab0 Fix the way we try for missing binary dependencies in the installations app
Issue #50. Thanks to Ford Guo (@fordguo) for the reporting.
2014-09-30 15:21:21 -04:00
Mathias Behrle
1cbd54dad7 Do not fail, when ocr backend is missing (#50).
- Since tesseract (i.e. an ocr backend) is an optional requiremnt of mayan, we
  shouldn't fail, if it is not found.
- S.a https://github.com/mayan-edms/mayan-edms/issues/50
2014-09-30 15:14:38 -04:00
Roberto Rosario
b70611de90 Merge pull request #52 from mbehrle/feature/unfail_ocr_backend
Do not fail, when ocr backend is missing (#50).
2014-09-30 15:10:36 -04:00
Roberto Rosario
c95b088cd8 Merge branch 'hotfix/test_for_issue_46' into development
Conflicts:
	mayan/apps/documents/tests.py
2014-09-30 14:47:17 -04:00
Roberto Rosario
07dd6a87ef Add test to make sure the page issue is fixed, issue #46 2014-09-30 14:45:22 -04:00
Roberto Rosario
03e5c7732a Ignore the 'page' key when recreating the advanced search string 2014-09-30 14:43:46 -04:00
Mathias Behrle
0b153f0c7e Skip page key in advanced search (#46). 2014-09-30 13:57:21 -04:00
Roberto Rosario
36990ec818 Add document accesor method to display a document folders 2014-09-30 09:58:42 -04:00
Ford Guo
306c528665 update zh_CN po mo 2014-09-30 12:07:57 +08:00
Ford Guo
fa78a30413 change zh_CN po mo 2014-09-30 11:00:39 +08:00
Ford Guo
5d10eab278 update zh_CN 2014-09-29 14:28:50 +08:00
Ford Guo
930ae94856 update zh_CN po,mo 2014-09-28 12:06:34 +08:00
Ford Guo
bc31899d9e update zh_CN po,mo 2014-09-28 11:41:36 +08:00
Ford Guo
e4cdc69ca1 add zh_CN mo files 2014-09-26 13:54:49 +08:00
Ford Guo
b15100c2ea add zh_CN language 2014-09-26 11:43:53 +08:00
Mathias Behrle
034875a88a Do not fail, when ocr backend is missing (#50).
- Since tesseract (i.e. an ocr backend) is an optional requiremnt of mayan, we
  shouldn't fail, if it is not found.
- S.a https://github.com/mayan-edms/mayan-edms/issues/50
2014-09-25 19:31:46 +02:00
Roberto Rosario
389143a8b7 Merge pull request #48 from mbehrle/feature/fix_advanced_search
Skip page key in advanced search (#46).
2014-09-23 01:57:12 -04:00
Mathias Behrle
73e1650554 Skip page key in advanced search (#46). 2014-09-23 00:28:25 +02:00
Gary Walborn
9cd3753746 Adds ability to validate and normalize metadata.
I felt that it would be very handy to be able to validate
user-supplied metadata.  It occurred to me that if a metadata
type had an explicit list of options, it would need no validation.
Therefore, the "lookup" field of a metadata type could be overloaded
to provide EITHER a list of items that could be selected by the user
OR a function to provide data validation.  The system, therefore,
would need to be able to discriminate between a lookup function
and a validation function.

    To this end, I created a global variable
('METADATA_AVAILABLE_VALIDATORS') to contain a dictionary of
available validation functions.  If the name specified in
'metadata_type.lookup' is present in METADATA_AVAILABLE_VALIDATORS,
the system treats the function as a validator.  Otherwise, the
function is treated as a generator of an iterable value providing
the choices for the user.

  Django contains a pre-existing mechanism to support field
validation.  A validator has a single argument (the data to
be validated).  If the argument to the validator is valid,
the validator simply returns.  If there is a problem with
the data, the validator raises a 'ValidationError' exception
and passes an error message which is then displayed by Django
as a mouseover tip in the browser. Validators to be used
with Mayan-EDMS may follow this convention (i.e., take a
single argument and raise an exception if the validation
fails).  The validators in Mayan-EDMS, however, may actually
do more!

  If a validator function RETURNS a value, that value is used
in place of the original data.  This allows the validator to
make data conform to a valid value or to "normalize" a value
before it is stored in the database.  This allows for more
uniform metadata and improves the ability to index on the
metadata values.  Lets take at a look at an example of this
functionality.

  Assume that a document requires a date (perhaps, an
"original posting date").  We can have a 'metadata_type" of
"original_posting_date", and we can create a validator with
the name "is_valid_posting_date".  The validator function
(which is placed in a module read by the settings routine),
contains the function:

def is_valid_posting_date(value):
   from dateutil import parser
   import datetime
   from django.core.exceptions import ValidationError

   try:
      dt = parser.parse(value)
   except ValueError:
      raise ValidationError('Invalid date')
   return dt.date().isoformat()

This is placed in a dictionary in the user's
settings file, thus:

import my_settings
METADATA_AVAILABLE_VALIDATORS = {
  'is_valid_posting_date':my_settings.is_valid_posting_date }

The user creates a metadata type called "original_posting_date"
with a label of "Original Posting Date" and a 'lookup' value
of "is_valid_posting_date".  When the metadata form is filled
in and submitted, the date value is validated by our validator.
Since the python 'parser' function accepts many kinds of input,
the user can enter (for example) '9/1/2014', '2014/10/2',
or even 'Feb 4, 2001'.  If the user enters something that
does not (as far as python is concerned) represent a valid date,
the system will raise a "ValidationError" and the form will
be re-displayed with an appropriate error message.  If, however,
the data is valid, the valid of the field (and, hence, stored
in the database) will be "normalized" to ISO format YYYY-MM-DD.
This allows consistent lookup and indexing regardless of the
users particular idiosyncracies.
2014-09-22 12:30:15 -04:00
Roberto Rosario
def792790c A beautiful hack for an unknown problem: hidden imports. Hide the import for DocumentSerializer otherwise an unexplained ImportError is raised 2014-09-21 23:17:10 -04:00
Roberto Rosario
b709426043 Add id to the document serializer, add required=False to the document type <-> document serialierz relation 2014-09-21 23:15:55 -04:00
Roberto Rosario
f29aeabcfb Add folder app API endpoint 2014-09-21 19:24:00 -04:00
Roberto Rosario
942ad7b93e Add user model API endpoints 2014-09-21 19:23:37 -04:00
Roberto Rosario
364376f04a Specify document type fields and add the id field 2014-09-21 19:22:48 -04:00
Roberto Rosario
eb3e7a10c9 Abstract the way tag documents are retrieved 2014-09-21 16:38:52 -04:00
Roberto Rosario
e522da3632 Add retrieving all documents of document type via API 2014-09-21 15:22:12 -04:00
Roberto Rosario
97de4f615c Add Document model related name to the Document Type model to allow retrieving all documents of a document type 2014-09-21 15:21:39 -04:00
Roberto Rosario
050ae8c168 Add Document type list API view and endpoint 2014-09-21 15:21:19 -04:00
Roberto Rosario
2e4cd173c6 Add document type detail API endpoint 2014-09-21 15:13:56 -04:00
Roberto Rosario
e9f733e266 Fix typo 2014-09-21 14:59:43 -04:00
Roberto Rosario
2878bac07d Add CORS support to allow cross origin API requests 2014-09-21 14:59:11 -04:00
Roberto Rosario
bc663cb882 Remove literal Folder column declaration and convert to model column registration 2014-09-14 14:39:26 -04:00
Roberto Rosario
4793a64a7f Convert folder_list view to a Mayan generic class based view 2014-09-14 14:33:26 -04:00
Roberto Rosario
b8fe8639ec If an user has a global permission then return entire queryset 2014-09-14 14:32:46 -04:00
Roberto Rosario
d264aac97e Update tests 2014-09-14 08:51:23 -04:00
Roberto Rosario
0fde78558a Merge pull request #43 from mbehrle/feature/mimetypes
Adding more office MIME types to office_converter.
2014-09-14 08:42:21 -04:00
Roberto Rosario
922c63447e Merge pull request #44 from mbehrle/feature/docs
Feature/docs
2014-09-14 08:41:13 -04:00
Mathias Behrle
08c9e4a4e3 Adding more office MIME types to office_converter.
- Without those types the graphics backend will throw 'Unkwon file format' on OCR.
- S.a.
  http://stackoverflow.com/questions/4212861/what-is-a-correct-mime-type-for-docx-pptx-etc
2014-09-13 21:03:17 +02:00
Mathias Behrle
75e99d62bb Updating apache contrib files.
Thanks to Gary Walborn for providing examples.
2014-09-13 21:00:53 +02:00
Mathias Behrle
29b5f36605 Adding sample ini file for nginx with uwsgi. 2014-09-13 21:00:31 +02:00
Mathias Behrle
cc999a8f27 Adding sample ini file for uwsgi. 2014-09-13 20:59:59 +02:00
Roberto Rosario
9f6cc1ef33 Convert the folder documents view and the tag folders view to class based views 2014-09-13 02:24:39 -04:00
Roberto Rosario
ce9e8b609e Convert the document_list view to a class based view 2014-09-13 02:24:09 -04:00
Roberto Rosario
bc97b6a4ef Add get_extra_context method to ExtraContextMixin 2014-09-13 02:23:14 -04:00
Roberto Rosario
b27d6e57be Split MayanViewM into MayanView and ExtraContextViewMixin, add object permission check to the SimpleObjectLiveView 2014-09-13 01:37:30 -04:00
Roberto Rosario
0cb9a78df4 Remove blind capitalization of messages 2014-09-13 01:24:39 -04:00
Roberto Rosario
3a4b983f9d Fix links namespaces 2014-09-13 00:38:20 -04:00
Roberto Rosario
8f8f58b73f Import from the correct module 2014-09-13 00:37:57 -04:00
Roberto Rosario
3770695af8 Move django_gpg literals to their own module 2014-09-13 00:37:35 -04:00
Roberto Rosario
2e1c6ea8c9 Update contributing instructions 2014-09-13 00:24:13 -04:00
Roberto Rosario
3a4d824a43 Capitalize messages of documents app modules __init__ and links 2014-09-11 13:05:13 -04:00
Roberto Rosario
e207a80ff3 Capitalize ACLS app messages 2014-09-11 13:00:17 -04:00
Roberto Rosario
6e293dd15c Remove remarked code 2014-09-11 13:00:06 -04:00
Roberto Rosario
b761037d99 Move all settings files from <app>/conf/settings.py to <app>/settings.py 2014-09-11 05:02:40 -04:00
Roberto Rosario
c8d1b7bed7 Capitalize documents app models traslatable strings as per issue #12 2014-09-09 04:05:21 -04:00
Roberto Rosario
2e02c58b6f Add missing namespace in url tag 2014-09-09 03:59:20 -04:00
Roberto Rosario
d901a80f63 Change composed empty list message with a simple generic message, issue #12 @mbehrle 2014-09-09 03:58:03 -04:00
Roberto Rosario
25b2563999 Add missing view namespace 2014-09-09 03:57:49 -04:00
Roberto Rosario
f5bef4b52d Add app url namespacing to the common and main apps, fix missing namespace in the registration app, remove explict reverse_lazy for the LOGIN_URL and LOGIN_REDIRECT_URL these are expected to be views or URLs (failover) 2014-09-09 03:51:23 -04:00
Roberto Rosario
7dfacc624c Add namespace to tests views 2014-09-07 22:20:33 -04:00
Roberto Rosario
aaf8855403 Add development branch to travis config file 2014-09-06 17:30:10 -04:00
Roberto Rosario
1050fc71af Fix tag properties reference 2014-09-06 17:29:15 -04:00
Roberto Rosario
77acb809b9 Update view references to include namespaces 2014-09-06 17:28:40 -04:00
Roberto Rosario
5559e55a65 Update converter url to include namespaces, move links to a separate module 2014-09-06 17:27:52 -04:00
Roberto Rosario
a32c36d727 Fix tag properties reference 2014-09-06 17:27:33 -04:00
Roberto Rosario
76b2cdefcc Move app url namespaces updates 2014-09-06 16:30:12 -04:00
Roberto Rosario
5d5d9e45b8 Remove MAIN_SIDE_BAR_SEARCH from the documentation, update release notes for 1.1 2014-09-06 15:44:22 -04:00
Roberto Rosario
214c1e5430 Remove the MAIN_SIDE_BAR_SEARCH configuration option, move search app menu links to the search app 2014-09-06 15:43:48 -04:00
Roberto Rosario
e8edaf4219 Begin merge of the new style navigation systems 2014-09-05 15:20:20 -04:00
Roberto Rosario
805bf58d59 Fix outdated references to non namespaced app views 2014-09-05 15:19:39 -04:00
Roberto Rosario
febfb1d74c Merge branch 'master' into development 2014-09-05 14:40:39 -04:00
Roberto Rosario
5caf616707 German translation files update 2014-09-05 14:40:15 -04:00
Roberto Rosario
274f346c42 Update ocurrences of ./manage.py to mayan-edms.py 2014-09-05 14:36:57 -04:00
Roberto Rosario
d9de69ea3d Add placeholder release notes for version 1.1 2014-09-05 14:30:51 -04:00
Roberto Rosario
d9ce1bd196 Update references to ./manage.py to mayan-edms.py 2014-09-05 14:30:33 -04:00
Roberto Rosario
7c4d4a5485 Add note about Python/Django familiarity 2014-09-05 14:29:33 -04:00
Roberto Rosario
77f7245766 Fix typo 2014-08-27 01:34:08 -04:00
Roberto Rosario
db10d89117 Add placeholder local.py 2014-08-27 01:32:32 -04:00
Roberto Rosario
d5cc5d750c Add overview.gif 2014-08-27 00:54:56 -04:00
Roberto Rosario
7a28fa12c2 Bump version to 1.0 2014-08-26 23:00:35 -04:00
Roberto Rosario
65ecb28c76 Add functional document views test 2014-08-26 22:52:32 -04:00
Roberto Rosario
d7aef36442 Add url namespacing to the checkouts, linking, metadata, sources and tags apps 2014-08-26 04:06:09 -04:00
Roberto Rosario
c4de4b3f30 Add url namespaces for the documents and folders apps 2014-08-26 03:44:07 -04:00
Roberto Rosario
a324ec78d6 Remove signaler app 2014-08-26 03:25:04 -04:00
Roberto Rosario
b42e9badf6 Move common templates to apps/main/templates/main/* 2014-08-26 02:44:49 -04:00
Roberto Rosario
7376263ffa Get rid of the web_theme app 2014-08-26 02:21:12 -04:00
Roberto Rosario
d4bda2b313 Merge branch 'mbehrle-fix/v1.0.0' into development 2014-08-26 01:37:39 -04:00
Roberto Rosario
9f342909c5 Merge branch 'fix/v1.0.0' of https://github.com/mbehrle/mayan-edms into mbehrle-fix/v1.0.0 2014-08-26 01:37:14 -04:00
Roberto Rosario
adf4291ea4 Dismiss successful messages after 2.5 seconds 2014-08-26 01:21:37 -04:00
Roberto Rosario
bb2885f52e Fix issue #25 2014-08-26 00:27:09 -04:00
Roberto Rosario
77fdefcdf5 Merge remote-tracking branch 'origin/master' 2014-08-18 01:32:04 -04:00
Roberto Rosario
3caa970ea4 Script to workaround but 99 https://bitbucket.org/pypa/wheel/issue/99/cannot-exclude-directory 2014-08-18 01:31:35 -04:00
Roberto Rosario
397b083381 Add contrib files 2014-08-18 01:29:50 -04:00
Roberto Rosario
e80209117a Add production settings file and point wsgi by default to it 2014-08-18 01:29:23 -04:00
Roberto Rosario
10a456c847 Remove mayan/settings/local.py and ignore it from git, this is a local install file 2014-08-18 01:28:28 -04:00
Roberto Rosario
8ea069e955 Merge pull request #29 from NacreData/master
minor grammer edits in documentation
2014-08-14 12:33:27 -04:00
Devin Ceartas
d0e4e9d3aa minor grammer and typo edits 2014-08-14 16:31:27 +00:00
Devin Ceartas
2187fdfc45 minor grammer edits 2014-08-14 16:26:43 +00:00
Devin Ceartas
2723ea21ce minor grammer edits 2014-08-14 16:17:04 +00:00
Roberto Rosario
c3e449c740 Merge pull request #28 from NacreData/master
Adjust .gitignore for new path to /static/, as per commit 47899e29c3886b...
2014-08-12 18:28:59 -04:00
Devin M. Ceartas
f1f085f630 Adjust .gitignore for new path to /static/, as per commit 47899e29c3 2014-08-12 22:17:32 +00:00
Roberto Rosario
5ebb550eee Include fonts used by the default theme 2014-08-05 02:50:29 -04:00
Roberto Rosario
47899e29c3 Store every user modifiable data in the /media dir include collected static files 2014-08-05 02:30:23 -04:00
Roberto Rosario
2825bfc97b Merge remote-tracking branch 'origin/master' 2014-07-31 21:39:04 -04:00
Roberto Rosario
718d0f8d59 Include the localization files (.po, .mo) when creating the package 2014-07-31 20:28:06 -04:00
Roberto Rosario
01a0d69a5f Generate new source language files 2014-07-31 20:27:52 -04:00
Roberto Rosario
db7178103f Merge pull request #26 from miek770/patch-1
Update bulk_upload.py
2014-07-30 18:57:52 -04:00
Michel
8268804499 Update bulk_upload.py
compressed_files relative import didn't point to the right location.
2014-07-30 18:38:29 -04:00
Roberto Rosario
deaf13d2a3 Remove unused imports 2014-07-28 03:25:31 -04:00
Roberto Rosario
b3082b5743 Use Django's method to generate the SECRET_KEY setting 2014-07-28 03:23:51 -04:00
Roberto Rosario
4172246358 Add username and email login tests 2014-07-28 03:18:45 -04:00
Roberto Rosario
dad8f0fa9d Move CSS markup from form to the template 2014-07-28 03:18:28 -04:00
Roberto Rosario
0d3ce55f39 Don't inherit from Django's default AuthenticationForm
It is for username/password only
2014-07-28 03:17:26 -04:00
Roberto Rosario
a3bd6d3f64 Update authentication backend as per Django 1.6 updates 2014-07-28 03:16:52 -04:00
Roberto Rosario
b21433dcb2 Show the email of the auto generated admin 2014-07-28 03:16:17 -04:00
Roberto Rosario
b98dbd83da Synchronize language translations 2014-07-28 01:22:21 -04:00
Roberto Rosario
6c08d0396d Merge remote-tracking branch 'origin/master' 2014-07-25 21:32:55 -04:00
Roberto Rosario
d95a2931d2 Quick fix for issue #24 2014-07-25 21:31:34 -04:00
Roberto Rosario
2c33e2e029 Old remaked and unused code removal 2014-07-25 21:27:30 -04:00
Roberto Rosario
39e596ba3d Don't include anythin in mayan/media 2014-07-24 13:44:08 -04:00
Roberto Rosario
1f98731b78 Don't waste time scanning the 'mayan/media' directory
Is not relevant for packaging and can cause slow execution
if ran from an existing installation
2014-07-24 13:37:18 -04:00
Roberto Rosario
486f59fbfb Update version in instructions 2014-07-24 13:26:25 -04:00
Roberto Rosario
41f34f9c0b Bump version to 1.0 rc3 2014-07-24 13:25:43 -04:00
Roberto Rosario
502ec89d58 Add functional document API test 2014-07-24 12:33:52 -04:00
Roberto Rosario
d2ae771d6a Make sure the reponse has a Content-Type
Before trying to make sure it is an HTML response
or else it can causes errors in DELETE API responses
2014-07-24 12:31:07 -04:00
Roberto Rosario
a712f2e786 Exclude the API urls from forced session based authentication
We now have token based authentication support too
2014-07-24 11:38:20 -04:00
Roberto Rosario
3c4ddecf80 Enable token authentication for the API, add API token request view 2014-07-24 01:03:51 -04:00
Roberto Rosario
8807c52ac3 Merge remote-tracking branch 'origin/master' 2014-07-24 00:38:26 -04:00
Roberto Rosario
133eb2d094 Allow new document version to be created without having to specify the document 2014-07-24 00:37:52 -04:00
Roberto Rosario
af445e9f3e Merge pull request #21 from audax/bugfix/sh-import
Fix import issues with the sh library
2014-07-23 21:41:55 -04:00
Jens Kadenbach
2e68dc5670 Added Jens Kadenbach to contributors 2014-07-23 22:49:49 +00:00
Jens Kadenbach
d6d10506e1 Remove magic import from sh module
Since the magic import "from sh import pip"
is harder to debug and has problems on some
systems, it is now substituted by a conventional
pip-command object creation.
2014-07-23 22:47:09 +00:00
Roberto Rosario
83924f3f2e Update tag app API views to use new per HTTP method permission checking 2014-07-22 03:35:27 -04:00
Roberto Rosario
9d09d3c763 Update documents app API views to use the new per HTTP method permissions checking 2014-07-22 03:33:42 -04:00
Roberto Rosario
56d346a784 Add support for per HTTP method permissions checking 2014-07-22 03:32:30 -04:00
Roberto Rosario
5d0b477e8f Allow documents with no versions to exist, previously these were considered an anomaly and were unhandled 2014-07-22 02:34:12 -04:00
Roberto Rosario
bd69ed00a5 Add missing db_index=True option, ref: 5e21b91b24 2014-07-22 02:32:39 -04:00
Roberto Rosario
e168898248 Make API writable 2014-07-22 02:32:06 -04:00
Roberto Rosario
5e21b91b24 The timestamp field is used constantly to determine the latest version of a document, index it 2014-07-22 02:17:18 -04:00
Roberto Rosario
793767f19e Fix models states in lastest migration 2014-07-22 02:12:31 -04:00
Roberto Rosario
7321b12c7d Update remaining exception syntaxes 2014-07-20 22:44:12 -04:00
Roberto Rosario
e9717d9bdd Add reminder to add functionality 2014-07-20 17:25:15 -04:00
Roberto Rosario
66fd17a3fb Remove the translatable text manipulation, add remarks 2014-07-20 16:55:30 -04:00
Roberto Rosario
6b169b4526 Modernize exception handling, and improves Python 3.x compatibility 2014-07-20 16:42:30 -04:00
Mathias Behrle
5d2c2e2bc9 Fix of small typo. 2014-07-20 02:42:53 +02:00
Roberto Rosario
0e77cc835c Add License badge 2014-07-19 00:47:23 -04:00
Roberto Rosario
f187991e9e Create the singletons first thing after receiving the post_migrate signal 2014-07-19 00:30:29 -04:00
Roberto Rosario
f719cd7505 Use a simple lazy class to avoid a database read during acls.forms import 2014-07-19 00:20:18 -04:00
Roberto Rosario
a263a4640a Change the way the autoadmin singleton is cleared up after the admin password change 2014-07-19 00:19:45 -04:00
Roberto Rosario
5c5885573b Create the AnonymousUserSingle instance after the post_migrate signal 2014-07-19 00:16:39 -04:00
Roberto Rosario
54f5d6cd5a Create the CreatorSingleton instance after the post_migrate signal 2014-07-19 00:15:11 -04:00
Roberto Rosario
43e95e26bd Add analytics tracker 2014-07-18 22:54:43 -04:00
Roberto Rosario
4f2a47f767 Update coveragerc 2014-07-18 20:01:54 -04:00
Roberto Rosario
a078fd1dbc Add initial migration for the ocr app 2014-07-18 20:00:59 -04:00
Roberto Rosario
1db614a346 Don't create stuff on access, registration instance is now only created at post_migrate signal 2014-07-18 19:59:45 -04:00
Roberto Rosario
144db6364c The post_migrate signal is different than the post_syncdb so adjust accordingly 2014-07-18 19:59:06 -04:00
Roberto Rosario
9b14096982 Add the initialsetup command as a scheduler no run command 2014-07-18 19:57:45 -04:00
Roberto Rosario
1a09c4c987 Make absolutely sure the scheduler doesn't run, remove convoluted code 2014-07-18 19:56:50 -04:00
Roberto Rosario
50c154d1f7 Don't print info use logging instead 2014-07-18 18:47:55 -04:00
Roberto Rosario
7cb7da42d8 Use explicit unicode 2014-07-18 18:47:38 -04:00
Roberto Rosario
2b490a08d4 Remove common app link importing 2014-07-18 18:44:51 -04:00
Roberto Rosario
de07f6f31c Move common app links to a separate module 2014-07-18 18:44:28 -04:00
Roberto Rosario
7d0a562a76 Move registration app links to a separate module 2014-07-18 18:38:49 -04:00
Roberto Rosario
f074f5431c Create RegistrationSingleton only after db exists 2014-07-18 18:36:12 -04:00
Roberto Rosario
5f61dac179 Simplify signal handler 2014-07-18 18:35:37 -04:00
Roberto Rosario
206b5c1a56 Try to create the model only after the post_migrate signal 2014-07-18 18:35:10 -04:00
Roberto Rosario
ba71c80b32 Don't use the post_syncdb signal use the post_migrate signal instead 2014-07-18 13:32:07 -04:00
Roberto Rosario
fdf33c2296 Only create the object during the signal handling 2014-07-18 13:31:41 -04:00
Roberto Rosario
9e50182978 Don't write to the DB during __init__.py import 2014-07-18 13:31:11 -04:00
Roberto Rosario
f47a5eb9eb Switch tests from django.utils.unittest.TestCase to django.test.TestCase 2014-07-18 03:02:27 -04:00
Roberto Rosario
12684eca52 Remove mention of ./manage.py, might confuse new users not familiar with Django 2014-07-17 17:26:27 -04:00
Roberto Rosario
a0e87df997 Bump version 2014-07-17 01:24:20 -04:00
Roberto Rosario
4c95e2665c Merge remote-tracking branch 'origin/master' 2014-07-17 00:30:17 -04:00
Roberto Rosario
8a22863c96 Add initial .coveragerc file 2014-07-17 00:30:08 -04:00
Roberto Rosario
7120ffe72d Move intial setup code to a management command called initialsetup, update installation instructions 2014-07-17 00:17:14 -04:00
Roberto Rosario
5cf8360534 Point the wsgi to the same autogenerated settings file 2014-07-16 18:39:01 -04:00
Roberto Rosario
923176217d Fix LICENSE file path for the license view 2014-07-16 13:53:41 -04:00
Roberto Rosario
53f4619a9c Check for the correct exception 2014-07-16 13:47:32 -04:00
Roberto Rosario
9d49602dda Merge pull request #20 from mbehrle/feature/ocr_cleanup
Feature/ocr cleanup
2014-07-15 23:05:22 -04:00
Mathias Behrle
a1868d6dd9 Some minor doc fixes. 2014-07-14 17:40:40 +02:00
Mathias Behrle
f67176aa9f Removing unused variable from language correction files. 2014-07-14 14:57:03 +02:00
Mathias Behrle
8bae464841 Re-adding migrated french language correction file, 2014-07-14 14:49:56 +02:00
Mathias Behrle
79f03d9907 Removing double variable definition. 2014-07-14 14:48:12 +02:00
Mathias Behrle
e90a60efe3 Adding missing argument to german language correction file. 2014-07-14 14:21:21 +02:00
Roberto Rosario
11e24d8401 Update example settings path 2014-07-13 16:22:26 -04:00
Roberto Rosario
820735a03a Merge pull request #17 from NacreData/patch-1
Update installation.rst
2014-07-13 16:09:00 -04:00
Devin Ceartas
baef81d25b Update installation.rst 2014-07-13 19:51:46 +00:00
Roberto Rosario
e48edd46c4 Update test for python 2.6 compatibility 2014-07-13 14:55:57 -04:00
Roberto Rosario
b0a33ada2b Update OCR test to test for different language settings, issue #16 2014-07-13 14:45:05 -04:00
Mathias Behrle
d4ab7f9de9 Fixing some titles to start with uppercase. 2014-07-13 19:27:46 +02:00
Roberto Rosario
8fca5e2789 Remove the French OCR cleanup backend for now, a patchset seems to be missing. 2014-07-13 11:34:08 -04:00
Roberto Rosario
1f3fed2182 Update the German OCR cleanup backend to be a class not a function 2014-07-13 11:32:41 -04:00
Roberto Rosario
7f177c430f Change badges style 2014-07-12 16:59:34 -04:00
Roberto Rosario
e9107be889 Don't build universal wheel package 2014-07-12 16:59:14 -04:00
Roberto Rosario
86d221274d Update HISTORY file 2014-07-12 03:57:07 -04:00
Roberto Rosario
8c07171345 Fix logo path 2014-07-12 03:45:31 -04:00
Roberto Rosario
ad8e1034e8 Fix typo 2014-07-12 03:39:16 -04:00
Roberto Rosario
b352a0eafb Update logo 2014-07-12 03:37:56 -04:00
Roberto Rosario
86ed128386 Update release notes and development topic 2014-07-12 03:32:45 -04:00
Roberto Rosario
fb45a6c3c9 Update documentation 2014-07-12 03:03:26 -04:00
Roberto Rosario
810cbd710e Merge branch 'cccs-web-master' 2014-07-11 18:37:23 -04:00
Roberto Rosario
cac87d1d37 Merge branch 'master' of https://github.com/cccs-web/mayan-edms into cccs-web-master
Conflicts:
	docs/credits/contributors.rst
2014-07-11 18:35:45 -04:00
Paul Whipp
9370d5bd66 Update contributors.rst
Added Paul Whipp
2014-07-12 08:17:06 +10:00
Roberto Rosario
cdcfc39f3c Remove the donations text 2014-07-11 11:29:30 -04:00
Roberto Rosario
48bb4a94c7 Fix markup and typo 2014-07-11 04:11:44 -04:00
Roberto Rosario
ee52c2cfc0 Try a different formatter 2014-07-11 04:09:13 -04:00
Roberto Rosario
a9e0bde6ac Add PyPI installation instructions 2014-07-11 04:03:59 -04:00
Roberto Rosario
7355c17880 Fix markup error 2014-07-11 03:56:50 -04:00
Roberto Rosario
f871fe33d7 Don't include the single quote ' as a valid secret key character 2014-07-11 03:50:59 -04:00
Roberto Rosario
8720dc814d Add PyPI badges 2014-07-11 03:45:42 -04:00
Roberto Rosario
2c845ca72e Generate a new secret key and save it to local.py settings after installation, use this local.py file by default 2014-07-11 03:34:28 -04:00
Roberto Rosario
0d55f2e0e2 Don't include local setting files, include README to create an empty media directory 2014-07-11 03:33:37 -04:00
Roberto Rosario
f12e9e4aef Include jpg and js files in the installation 2014-07-11 02:54:26 -04:00
Roberto Rosario
f3631ee326 Downgrade version 2014-07-11 02:54:07 -04:00
Roberto Rosario
17b072df41 Update deprecated methods 2014-07-11 02:53:36 -04:00
Roberto Rosario
9a05278957 Do debug static media serving as per Django 1.6 docs, don't try to import DDT if it is not installed 2014-07-11 02:48:33 -04:00
Roberto Rosario
548ccda347 Add the Django debug toolbar middleware at the beginning as per the docs 2014-07-11 02:47:56 -04:00
Roberto Rosario
657b9106c2 Use timezone aware datetime in migration 2014-07-11 01:56:54 -04:00
Roberto Rosario
e13637d766 Use timezone aware datetime in migration 2014-07-11 01:53:32 -04:00
Roberto Rosario
9403f06301 Removed unused imports 2014-07-11 01:53:08 -04:00
Roberto Rosario
e7c3547e69 Cleanups 2014-07-11 01:43:29 -04:00
Roberto Rosario
b6d9717223 Remove last usage of Django's simplejson library 2014-07-11 01:37:57 -04:00
Roberto Rosario
2b2cd80a18 Fix and improve the existing tests 2014-07-11 01:35:00 -04:00
Roberto Rosario
2a46d6f601 Fix and improve the document_signatures test 2014-07-11 01:31:59 -04:00
Roberto Rosario
e2ae80b43d Add the old secret key back fixes test runners 2014-07-11 01:16:24 -04:00
Roberto Rosario
df55385d07 Import base.py by default 2014-07-11 01:15:51 -04:00
Roberto Rosario
f2c351fbc7 Remove the SITE_ROOT settings variable and use Django's MEDIA_ROOT instead.
By default MEDIA_ROOT will point to a new 'media' inside Mayan's main directory.
2014-07-11 01:06:50 -04:00
Roberto Rosario
3f9adb0922 Separate development settings file into two, with and without Django Debug Toolbar 2014-07-11 00:39:58 -04:00
Roberto Rosario
42f8879efa Merge branch 'cccs-web-master' 2014-07-11 00:33:12 -04:00
Roberto Rosario
972aa02976 Merge branch 'master' of https://github.com/cccs-web/mayan-edms into cccs-web-master
Conflicts:
	mayan/settings/includes/common.py
2014-07-11 00:32:50 -04:00
Roberto Rosario
c35c040513 Merge remote-tracking branch 'origin/master' 2014-07-10 21:07:37 -04:00
Roberto Rosario
8da0ac2bef Update package name 2014-07-10 20:57:46 -04:00
Roberto Rosario
2a89e2be23 Merge pull request #13 from mbehrle/feature/lost_merges
Feature/lost merges
2014-07-10 20:42:02 -04:00
Mathias Behrle
30f73ba73c Increasing field length of page_label to 40 chars.
The german translation takes 33 chars. This breaks saving the ocr
 result.
2014-07-11 01:59:04 +02:00
Roberto Rosario
bc2a04efa2 Add document uploading and deletion functional test 2014-07-10 19:51:56 -04:00
Mathias Behrle
53ab7a23e6 Adding french cleanup file. 2014-07-11 01:08:11 +02:00
Mathias Behrle
506d65c93e Adding language correction file for Germany (deu). 2014-07-11 00:56:15 +02:00
Roberto Rosario
8d119caa81 Move instructions from section 2014-07-10 04:48:01 -04:00
Roberto Rosario
607050be65 Remove unused link and url pattern 2014-07-10 04:46:35 -04:00
Roberto Rosario
656c2e6d3c Use the document display view and not the document preview view by default now when clicking on document thumbnails 2014-07-10 04:45:53 -04:00
Roberto Rosario
c7e197378c Remove unused URL pattern 2014-07-10 04:39:21 -04:00
Roberto Rosario
fc71ca8f8a Update document widget parameters 2014-07-10 04:38:54 -04:00
Roberto Rosario
9194b45e91 Update document metadata accesor name 2014-07-10 04:38:33 -04:00
Roberto Rosario
aa9a5bd206 Remove RTD theme code 2014-07-10 04:22:10 -04:00
Roberto Rosario
568fe87074 Documentation updates 2014-07-10 04:19:59 -04:00
pwhipp
a05424c799 Added gunicorn to production requirements 2014-07-10 18:01:42 +10:00
pwhipp
ec6466dce2 removed redundant import 2014-07-10 17:43:38 +10:00
pwhipp
af7effb9cb Added deployment information for production site 2014-07-10 17:42:07 +10:00
pwhipp
a011098c2c Added .gitignore so that secrets.py never gets added into the repo by accident. 2014-07-10 17:03:11 +10:00
pwhipp
877ec04faf Added explicit debug toolbar setup 2014-07-10 17:02:01 +10:00
pwhipp
b9bf845964 Added required postgres database configuration 2014-07-10 17:01:44 +10:00
pwhipp
4adab09214 Simplified configuration and corrected debug_toolbar induced problem 2014-07-10 16:48:37 +10:00
Roberto Rosario
3bed82fc16 PEP8 cleanup, unused imports, missing imports, style cleanups 2014-07-10 02:45:19 -04:00
pwhipp
71e35f5746 Added settings/development.py 2014-07-10 16:28:12 +10:00
pwhipp
a05d92cead Added settings/includes/secrets.py facility for site specific secret data that should not be in the repo. 2014-07-10 16:26:10 +10:00
pwhipp
d7976375ec Tidied BASE_DIR/SITE_ROOT 2014-07-10 16:20:00 +10:00
pwhipp
4b30eb7ff9 Moved original settings to be common includes. 2014-07-10 16:13:30 +10:00
pwhipp
0ef00b5082 Reverted to default (sqlite) settings so all working. 2014-07-10 15:59:03 +10:00
Roberto Rosario
beaccf7128 Create the instance if it haven't already 2014-07-10 01:49:02 -04:00
Roberto Rosario
dbc2462c29 Update release notes 2014-07-10 01:48:46 -04:00
Roberto Rosario
ff2b88dd35 Add missing import 2014-07-10 01:48:32 -04:00
Roberto Rosario
82934c50e7 Move sources app API views to their own module 2014-07-10 01:48:09 -04:00
Roberto Rosario
ab83bac0b3 Move tags app API view to their own module 2014-07-10 01:47:45 -04:00
Roberto Rosario
f2cd288574 Add anonymoususer sigleton model manager 2014-07-10 01:47:15 -04:00
Roberto Rosario
78b627f1d2 Update HISTORY 2014-07-10 01:30:24 -04:00
Roberto Rosario
8276dd111a Cleanups 2014-07-10 01:28:46 -04:00
Roberto Rosario
c753d74e46 More clear exception handling 2014-07-10 01:28:21 -04:00
Roberto Rosario
4e5c4c50f4 Move documents app api view back into their own module 2014-07-10 01:27:39 -04:00
Roberto Rosario
5212d84090 Remove common app's Singleton model and use django-solo's SingletonModel instead 2014-07-10 01:26:51 -04:00
pwhipp
a14f8cb980 Tidied common settings 2014-07-10 15:14:53 +10:00
Roberto Rosario
1e56ea4dcb Update requirements versions 2014-07-10 00:12:44 -04:00
Roberto Rosario
fca8f51168 Update required version of APScheduler 2014-07-09 20:19:59 -04:00
Roberto Rosario
0e8fa18b1c Add config folder and example.py settings file 2014-07-09 19:41:06 -04:00
Roberto Rosario
fe1397408c Merge remote-tracking branch 'origin/master' 2014-07-09 19:14:58 -04:00
Roberto Rosario
6eada315ce Add tag app API endpoints 2014-07-09 19:12:12 -04:00
Roberto Rosario
db15e0f85d Add related name accesor to the tag properties model 2014-07-09 19:11:47 -04:00
Mathias Behrle
bf854ebd30 Fixing typo in documents/view.py. 2014-07-10 00:55:26 +02:00
Roberto Rosario
59b88de5cd Code cleanups 2014-07-09 18:39:15 -04:00
Roberto Rosario
e4130bea97 Add missing PermissionDenied import 2014-07-09 18:13:44 -04:00
Roberto Rosario
358a8e3549 Move API code to the views modules 2014-07-09 18:13:16 -04:00
pwhipp
23ed5b15a2 Reconfigured settings to support mayan/apps and separate production and development. 2014-07-10 07:29:38 +10:00
Roberto Rosario
1b1fb87eac Enable custom permission checking and api result filering 2014-07-09 16:46:55 -04:00
Roberto Rosario
021369d0db Add custom api filtering and permission checking 2014-07-09 16:46:38 -04:00
Roberto Rosario
d40931ad5b Add basic authentification 2014-07-09 16:45:42 -04:00
Roberto Rosario
12ab3854f9 Add a link to the REST API documentation app 2014-07-09 14:42:07 -04:00
Roberto Rosario
c7a3afc35a Add serializers, document api endpoints, rename url parameter for clarity 2014-07-09 14:24:32 -04:00
Roberto Rosario
e60d5fedfa Add django rest swagger to the requirements 2014-07-09 14:23:45 -04:00
Roberto Rosario
2202799431 Add app endpoints descriptions 2014-07-09 14:23:13 -04:00
pwhipp
de5b9aaac9 Merge remote-tracking branch 'upstream/master' 2014-07-09 16:22:41 +10:00
Roberto Rosario
08661401f7 Simplify transformation choices label (evaluation of ugettext_lazy during model import was causing strange unrelated test failures) 2014-07-09 00:51:12 -04:00
Roberto Rosario
88de6cfec9 Simplify translation string (was causing misterious test failure) 2014-07-09 00:21:32 -04:00
Roberto Rosario
1c80d3327e Use Python's json library 2014-07-08 23:55:04 -04:00
Roberto Rosario
a4a443ab6d Cleanups 2014-07-08 23:50:29 -04:00
Roberto Rosario
a40fe3719b Rename the resources.py module to serializers.py 2014-07-08 23:47:52 -04:00
Roberto Rosario
29eca11c50 Enable API pagination 2014-07-08 23:42:18 -04:00
Roberto Rosario
494559cdaa Break the DocumentPage and DocumentPageTransformation circular dependecy 2014-07-08 23:33:06 -04:00
Roberto Rosario
410731cea6 Removed 3rd party installation methods 2014-07-08 23:25:44 -04:00
Roberto Rosario
a62e8a3001 Simplified installation instructions 2014-07-08 23:17:30 -04:00
Roberto Rosario
308099c0c2 Prepend API to the API views 2014-07-08 19:51:12 -04:00
Roberto Rosario
2396d7dae9 Update the documents app to use the new way of registering API endpoints 2014-07-08 18:52:35 -04:00
Roberto Rosario
909dd582df Update the app API class methods, register the sources app main endpoint, add API doc strings 2014-07-08 18:51:39 -04:00
Roberto Rosario
c4174f8020 Change the definitions of the per app API properties 2014-07-08 18:50:37 -04:00
pwhipp
6a863ee5e5 Refactored settings to support multiple sites and secrets 2014-07-09 07:32:59 +10:00
pwhipp
2f423a894a Changed to use postgres 'mayan' database and user. 2014-07-09 07:17:04 +10:00
Roberto Rosario
0d0f7be532 Change the way API endpoints are registered 2014-07-08 17:11:55 -04:00
pwhipp
7508ceaa24 Ignored .idea IDE local development files 2014-07-09 07:11:24 +10:00
Roberto Rosario
85255207cb Cleanups 2014-07-08 16:35:27 -04:00
Roberto Rosario
fc88db50f5 Fix url field of source api endpoints not returning a FQDN 2014-07-08 16:16:37 -04:00
Roberto Rosario
3ff484a263 Source app API URL minor but important tweak 2014-07-08 16:02:24 -04:00
Roberto Rosario
9385629393 Move REST API app icon to the tools section 2014-07-08 16:02:02 -04:00
Roberto Rosario
14977ed860 Return an empty list for files in case of a staging folder exception 2014-07-08 16:01:16 -04:00
Roberto Rosario
5d46405800 Fix uploading of staging files 2014-07-08 15:55:05 -04:00
Roberto Rosario
b0783e5816 Add support for returning a staging file as a file like object 2014-07-08 15:54:33 -04:00
Roberto Rosario
d10aa1e47e Enabled deletion of staging files 2014-07-08 15:43:00 -04:00
Roberto Rosario
f911d06823 Add the option to suppress or not exceptions during deletion 2014-07-08 15:42:24 -04:00
Roberto Rosario
b430f08509 Use URL safe encoded filename 2014-07-08 15:32:42 -04:00
Roberto Rosario
0dee7f3640 Make sure no file handler remain open 2014-07-08 12:36:26 -04:00
Roberto Rosario
429d8c07ee Initial commit to modernize staging file handling including preview generation 2014-07-08 12:35:53 -04:00
Roberto Rosario
be5525496e Fix document version serialization 2014-07-07 02:47:03 -04:00
Roberto Rosario
a42df480e9 Remove remarked code 2014-07-07 02:41:27 -04:00
Roberto Rosario
ef577e5c77 Remove unused URL configs 2014-07-07 02:41:02 -04:00
Roberto Rosario
95ce732f20 Expand the document app API to include document version and document pages 2014-07-06 12:59:43 -04:00
Roberto Rosario
f889ade7cd Cleanup documents API code and names 2014-07-06 12:28:21 -04:00
Roberto Rosario
c7a0b71fb2 Sync translation files 2014-07-04 01:56:13 -04:00
Roberto Rosario
df83a51228 Add the statistics app to the transifex client config file 2014-07-04 01:55:43 -04:00
Roberto Rosario
93ef0846a3 Add the statistics app to the translations helper script 2014-07-04 01:47:40 -04:00
Roberto Rosario
8be9fb33b1 Add support for matching by subclassing too 2014-07-04 01:47:04 -04:00
Roberto Rosario
d19f3da730 Backport statistics app, remove statistic code from the main app, convert the documents and ocr apps to use the new statictics app code 2014-07-04 01:46:16 -04:00
Roberto Rosario
74388515d9 Remove unused navigation code 2014-07-04 00:34:47 -04:00
Roberto Rosario
6e050d8390 Don't use the old STORAGE_BACKEND name but the storage_backend class 2014-07-03 23:29:34 -04:00
Roberto Rosario
891c62b5a3 Add support for pushing translations 2014-07-03 21:54:39 -04:00
Roberto Rosario
4bb2d6d2aa Removing email address of contributor as requested 2014-07-03 21:54:21 -04:00
Roberto Rosario
78bf95f25f Update all the source string files 2014-07-03 21:38:25 -04:00
Roberto Rosario
7b44873d34 Update process_messages script to use SH instead of PBS 2014-07-03 21:37:27 -04:00
Roberto Rosario
75266c7c31 Update the documents app and the document_signatures app to use the new method of loading backends 2014-07-03 17:32:32 -04:00
Roberto Rosario
124311a32a Don't instanciate the classes when loading, let the caller take of that 2014-07-03 17:31:46 -04:00
Roberto Rosario
51fc3cf5ff Code cleanups 2014-07-03 17:31:18 -04:00
Roberto Rosario
874eb33f0a Remove the document type document list view, issue #8 2014-07-03 16:41:34 -04:00
Roberto Rosario
2dc6ad226f Add back non breakable spaces to the tag widget until a better HTML widget is coded 2014-07-03 13:13:13 -04:00
Roberto Rosario
a39d04e9c2 Add proof of concept compressed document storage backend 2014-07-03 01:36:57 -04:00
Roberto Rosario
2246012205 Remove old rollback statement 2014-07-03 01:35:44 -04:00
Roberto Rosario
7ff244c9e8 Use relative import 2014-07-03 00:51:10 -04:00
Roberto Rosario
dcb58a6e14 Move Javascript loading to the bottom of the page 2014-07-03 00:16:01 -04:00
Roberto Rosario
e2208207fc Update quote style 2014-07-03 00:15:52 -04:00
Roberto Rosario
3db1e35c19 Use SH to call unpaper, allow OCR pipeline to work without unpaper installed 2014-07-02 17:45:10 -04:00
Roberto Rosario
04f616ffaf Only store the full OCR error stack trace when in DEBUG mode 2014-07-02 17:44:22 -04:00
Roberto Rosario
ca6acb3942 Update from pbs to sh as pbs is now obsolete 2014-07-02 16:47:32 -04:00
Roberto Rosario
b0eca8bb3e Add REST API app links to the setup menu 2014-07-02 16:18:56 -04:00
Roberto Rosario
516a0744e3 Cleanups 2014-07-02 14:38:33 -04:00
Roberto Rosario
06b4c153e3 Fix document description display in the document edit properties view 2014-07-02 14:34:46 -04:00
Roberto Rosario
b01b08f43b Use explicit fields instead of excluding fields from other apps 2014-07-02 14:34:16 -04:00
Roberto Rosario
e2b3cee69b Update API endpoint description 2014-07-02 14:11:39 -04:00
Roberto Rosario
0cda1148bb Manual merge of the new document preview code from the unstable branch 2014-07-02 02:53:53 -04:00
Roberto Rosario
77ff0f7191 Add back resolve_to_name to navigation.utils a few places import from this 2014-07-01 20:06:37 -04:00
Roberto Rosario
0f3ed2b896 Add pytz to the requirements 2014-07-01 00:54:38 -04:00
Roberto Rosario
d850b268d3 Don't fail when there is no DB available to reset the OCR queue stale processing document 2014-07-01 00:50:35 -04:00
Roberto Rosario
a5d75fc95a Add OCR test 2014-07-01 00:45:42 -04:00
Roberto Rosario
1dd36089cf Add missing 'self' to language backends 2014-07-01 00:45:15 -04:00
Roberto Rosario
c51a3be65a Cleanups 2014-07-01 00:26:19 -04:00
Roberto Rosario
867c6827dc Reset documents that were being processed on further restarts 2014-07-01 00:23:55 -04:00
Roberto Rosario
da785c343c Lower the lock timeout period, store the entire stack trace when OCR fails 2014-07-01 00:23:18 -04:00
Roberto Rosario
a9390d55ba Unify the way backends are defined and loaded, unify the fs_cleanup function 2014-07-01 00:22:31 -04:00
Roberto Rosario
0255ea67b1 Update documentation license link 2014-06-30 01:27:01 -04:00
Roberto Rosario
9123e2af54 Fix generic wizard template 2014-06-30 01:17:07 -04:00
Roberto Rosario
1e6d77f163 Fix incorrect relative import 2014-06-30 00:58:37 -04:00
Roberto Rosario
6a659741af PEP8 cleanups 2014-06-30 00:57:53 -04:00
Roberto Rosario
16a44015f2 Remove urlresolver monkey patch and use Django's resolve function 2014-06-30 00:34:53 -04:00
Roberto Rosario
41d0cfb7bf Code cleanups 2014-06-29 20:35:36 -04:00
Roberto Rosario
1d821a488f Update release notes 2014-06-29 20:35:10 -04:00
Roberto Rosario
6374b8f690 Update .gitignore to ignore *.sqlite3 files 2014-06-29 20:11:24 -04:00
Roberto Rosario
280d2da576 Update documentation 2014-06-29 20:11:00 -04:00
Roberto Rosario
1f7b6cac79 Escape object name to avoid XSS, issue #3 2014-06-29 20:10:39 -04:00
Roberto Rosario
316a79c440 Revert SITE_ROOT commit 2014-06-29 18:41:20 -04:00
Roberto Rosario
77ad7ad5ae Remove unused image 2014-06-29 18:34:48 -04:00
Roberto Rosario
d899d67311 Set the SITE_ROOT to be the same as the BASE_DIR by default
Useful for PYPI based installs, can be updated easily
2014-06-29 18:25:54 -04:00
Roberto Rosario
2c37dd06bc Add more development files that are not to be included during packaging 2014-06-29 18:25:22 -04:00
Roberto Rosario
a38316815d Don't include local development files 2014-06-29 18:14:18 -04:00
Roberto Rosario
1a04b02bfe If a requirement file is not found report on the environments packages 2014-06-29 18:13:42 -04:00
Roberto Rosario
6301db73db Use Python's json module instead of Django's 2014-06-29 18:13:19 -04:00
Roberto Rosario
51d414446c Hardcode requirements in the setup.py file, this sucks 2014-06-29 17:55:28 -04:00
Roberto Rosario
972037b899 Use Python json module instead of Django's 2014-06-29 17:55:02 -04:00
Roberto Rosario
733fc9bbf8 Fix case where Mayan is not running from a Git clone 2014-06-29 17:54:37 -04:00
Roberto Rosario
d640eacec8 Update usage of datetime.now to Django timezone aware now() 2014-06-29 17:00:07 -04:00
Roberto Rosario
a46642015b Use Python native JSON library instead of Django's 2014-06-29 16:40:03 -04:00
Roberto Rosario
39d8bd9eb8 Update software license string 2014-06-29 16:35:53 -04:00
Roberto Rosario
ae9531715e Update setup.py file 2014-06-29 16:29:31 -04:00
Roberto Rosario
f835880019 Update documentation 2014-06-29 16:23:18 -04:00
Roberto Rosario
3c9bbb05b5 Get rid of the DEVELOPMENT global flag, DEBUG now triggers development mode too 2014-06-29 15:59:31 -04:00
Roberto Rosario
eecdd9dcea Update settings.py file to conform with the Django 1.6 settings files 2014-06-29 15:58:48 -04:00
Roberto Rosario
815f102e89 Remove remarked code 2014-06-29 15:41:23 -04:00
Roberto Rosario
3b7cb1cd3b Don't use &nbsp in the tags widget, allow for degradation if screen width is insufficient 2014-06-29 15:37:50 -04:00
Roberto Rosario
a65e3dece6 Import cleanup 2014-06-29 15:37:42 -04:00
Roberto Rosario
72f4e95f39 Update release notes 2014-06-29 15:30:16 -04:00
Roberto Rosario
ecb6733cd4 PEP8 cleanups, unused imports cleanups 2014-06-29 14:14:27 -04:00
Roberto Rosario
904ff92cf1 Update license used in the README file 2014-06-29 00:52:27 -04:00
Roberto Rosario
dfda383b2d License update, Mayan EDMS is now licensed under the Apache 2.0 license 2014-06-29 00:49:40 -04:00
Roberto Rosario
483d5adeb0 Add @resparra to the contributors file 2014-06-29 00:06:06 -04:00
Rafael Esparra
373b1cb5b8 IOError Fix in Installation App 2014-06-29 00:04:16 -04:00
Roberto Rosario
376b36bd9b Remove last usage of the backported generic function views 2014-06-27 21:02:25 -04:00
Roberto Rosario
117eb213c4 Add SOUTH_MIGRATION_MODULES setting required by taggit 2014-06-27 20:36:56 -04:00
Roberto Rosario
55463b259e Update django debub toolbar version 2014-06-27 20:24:50 -04:00
Roberto Rosario
0a0756380b Update transaction handling as changed in Django 1.6 2014-06-27 20:22:14 -04:00
Roberto Rosario
da2cf9aaba Update requirements, including updating Django to 1.6.5 2014-06-26 18:19:46 -04:00
Roberto Rosario
eb6972d7e9 Remove use of the object_list generic function view 2014-06-26 18:19:24 -04:00
Roberto Rosario
c6a5ba8d3b Convert the role creation, editing and deletion views to use the new class based views 2014-06-26 18:01:56 -04:00
Roberto Rosario
620dee80f4 Mayan's first class based views thanks a lot to @bmispelon for all the help 2014-06-26 18:01:09 -04:00
Roberto Rosario
9187e7c5f8 Remove use of backported object_list generic function view 2014-06-26 15:57:11 -04:00
Roberto Rosario
e065e81fe4 Get rid of the backported object_list 2014-06-26 15:35:11 -04:00
Roberto Rosario
be358137e6 Fix spacing 2014-06-26 15:32:57 -04:00
Roberto Rosario
97037e8e56 Use Django's SessionWizardView and get rid of our included one 2014-06-26 15:31:47 -04:00
Roberto Rosario
3b73936723 Update patterns, url imports in all of the project's urls.py files 2014-06-26 15:27:03 -04:00
Roberto Rosario
20fa4a543d PEP8 cleanups, add missing imports 2014-06-25 15:46:30 -04:00
Roberto Rosario
3ec31a890e Remove all OCR queue transformation code 2014-06-25 10:44:43 -04:00
Roberto Rosario
3ab175fa53 Update search registration following the related_name updates 2014-06-25 03:14:48 -04:00
Roberto Rosario
5e3d5c7fcb Use metadata model's related name to address a document's metadata instances 2014-06-25 03:01:27 -04:00
Roberto Rosario
ac061f2203 PEP8 Cleanups, simple sintax errors fixes 2014-06-25 02:53:12 -04:00
Roberto Rosario
0209d13150 Change quotation char usage, remarked code cleanups 2014-06-25 02:22:11 -04:00
Roberto Rosario
c4439f45de Move project tool links to their own module 2014-06-25 01:25:53 -04:00
Roberto Rosario
21bad298d3 Move project setup app links to their own module 2014-06-25 01:25:35 -04:00
Roberto Rosario
ff6faa9629 Normalize quoting style, correct app name for the version tag 2014-06-24 22:48:51 -04:00
Roberto Rosario
e0347785b7 Initial implementation of OCR pluggable backends 2014-06-24 22:48:16 -04:00
Roberto Rosario
198402385e Update .gitignore 2014-06-21 02:59:58 -04:00
Roberto Rosario
1ed07736cb Update setup.py and associated files 2014-06-21 02:59:18 -04:00
Roberto Rosario
ce5fdd9477 Update translations URL 2014-06-21 02:58:46 -04:00
Roberto Rosario
dc5a36292e Move __version__ from main app to top level mayan directory 2014-06-21 02:42:26 -04:00
Roberto Rosario
c5c240c12e Update 1.0 release notes 2014-06-21 02:18:45 -04:00
Roberto Rosario
73245e66f4 Update and enable all language translations 2014-06-21 02:01:16 -04:00
Roberto Rosario
431f7a51d1 Add support for pull translation from transifex to the language helper script 2014-06-21 02:00:09 -04:00
Roberto Rosario
cf49f64676 Romanian language translation sync and enabling 2014-06-21 00:23:30 -04:00
Roberto Rosario
076797ff24 Added Bosnian translation files and enable Bosnian language selection 2014-06-21 00:16:38 -04:00
Roberto Rosario
7dde6562ce Update message helper script for new paths and new languages 2014-06-21 00:15:01 -04:00
Roberto Rosario
368e17da64 Update resource file path in the transifex client config file 2014-06-20 23:56:37 -04:00
Roberto Rosario
3d1b4b8460 Import reordering 2014-06-20 22:45:49 -04:00
Roberto Rosario
9cad8e94e4 Merge compressed files code from two modules 2014-06-20 22:45:33 -04:00
Roberto Rosario
45900332c2 Update travis file 2014-06-20 20:21:34 -04:00
Roberto Rosario
58930fed8c Removal of fabric file installation support, this should be its own separate project 2014-06-20 20:20:58 -04:00
Roberto Rosario
956bf0f9d8 Move OCR app links to their own module 2014-06-20 20:04:31 -04:00
Roberto Rosario
eda2592106 Cleanup import, quoting style 2014-06-20 19:59:33 -04:00
Roberto Rosario
3502abf665 Fix sample document paths to fix tests 2014-06-20 19:51:07 -04:00
Roberto Rosario
c0f460e1b2 Simple cleanups 2014-06-20 19:18:14 -04:00
Roberto Rosario
3309060014 Escape text in CharFields in the DetailForm to avoid XSS, issue #3 2014-06-20 19:14:40 -04:00
Roberto Rosario
c42fc542d0 Escape tag name to avoid XSS, issue #3 2014-06-20 19:04:20 -04:00
Roberto Rosario
30e8cff89b Simple cleanups 2014-06-20 18:51:32 -04:00
Roberto Rosario
20dc9ef703 reverse_lazy is now provided by Django itself 2014-06-20 18:38:48 -04:00
Roberto Rosario
b08f89a7eb Reorganize import in the folders app 2014-06-20 18:33:47 -04:00
Roberto Rosario
4df57139e9 Cleanup quote usage in generic templates 2014-06-20 18:30:53 -04:00
Roberto Rosario
ae5317ae83 Fix wsgi.py comment typo 2014-06-20 17:34:05 -04:00
Roberto Rosario
fed1bb7985 Reduce directory struture complexity 2014-06-19 15:42:06 +02:00
Roberto Rosario
9220beb450 Keep improving setup.py file 2014-06-15 20:54:53 +02:00
Roberto Rosario
34272dc013 Update LICENSE path 2014-06-15 20:54:43 +02:00
Roberto Rosario
16eb1ab1cb Fix statistics calculation after related_name updates 2014-06-15 20:31:32 +02:00
Roberto Rosario
ec1745b50b Initial changes to support the new Django 1.6 project structure 2014-06-15 13:13:21 +02:00
Roberto Rosario
7404e36385 Add Simone Federici to contributors 2014-06-15 11:48:24 +02:00
Roberto Rosario
463fd78b09 Keep the required Django to 1.4 until all apps are tested for 1.5 compatibility 2014-06-15 11:46:42 +02:00
Roberto Rosario
fa804c5c3a Merge pull request #6 from simone/master
Just the begin for support Django 1.5
2014-06-15 11:43:48 +02:00
Simone Federici
32706995a5 django < 1.6 dep 2014-06-15 10:53:25 +02:00
Simone Federici
35570a839a remove wrong author 2014-06-15 10:52:09 +02:00
Roberto Rosario
070d4a1579 Merge remote-tracking branch 'origin/master' 2014-06-15 10:45:19 +02:00
Simone Federici
320c701d12 upgrade template to django 1.5 url syntax 2014-06-15 10:38:26 +02:00
Roberto Rosario
fd907587f5 Move sources app links to a separate links.py module 2014-06-15 10:31:32 +02:00
Simone Federici
86afb71314 backport the Django 1.4 generic view in common.backport.generic 2014-06-15 10:30:04 +02:00
Roberto Rosario
56f82ac4ba Move link from main app to their separate module 2014-06-15 10:07:31 +02:00
Mathias Behrle
e393e9a4d0 Adding application/xml to office converter mimetypes. 2014-05-27 19:55:45 +02:00
Mathias Behrle
165acf7945 Some more review of the documentation. 2014-05-24 20:28:00 +02:00
Mathias Behrle
8d44a065fd Adding bootstrap repository to docs. 2014-05-24 14:51:30 +02:00
Mathias Behrle
d03e77d542 Minor improvements of release notes. 2014-05-24 14:25:02 +02:00
Roberto Rosario
b43c69fe63 Update contributors file 2014-05-23 21:15:06 -04:00
Roberto Rosario
b0ef4f9563 Add tags tests to the travis ci config file 2014-05-23 21:09:23 -04:00
Roberto Rosario
ad105e620a Add folders app unit tests 2014-05-23 21:07:24 -04:00
Roberto Rosario
aefefe62d7 Remove remarked document signature test code for the document test module 2014-05-23 20:52:19 -04:00
Roberto Rosario
99142719db Update travis ci config file to include document signature tests 2014-05-23 20:43:56 -04:00
Roberto Rosario
324c4fedd4 Add document signature unit tests 2014-05-23 20:43:07 -04:00
Roberto Rosario
4fbd327f60 Bump version to 1.0 beta 0 2014-05-23 20:18:47 -04:00
Roberto Rosario
6421cfe2cb Move user management app links to their own module 2014-05-23 20:14:09 -04:00
Roberto Rosario
e562cb7398 Move smart_settings app links to a separate module 2014-05-23 20:06:05 -04:00
Roberto Rosario
102f539f75 Move permissions app links to their own module, and update foreign app imports 2014-05-23 20:03:15 -04:00
Roberto Rosario
772f2a6088 Move dynamic_search app links to their own module 2014-05-23 19:58:32 -04:00
Roberto Rosario
b60c8df9d6 Move document_comments app links to their module 2014-05-23 19:56:05 -04:00
Roberto Rosario
16c23972d2 Move document_acls app links to their own module 2014-05-23 19:52:41 -04:00
Roberto Rosario
a64b8d8e5c Move django_gpg links to their own module 2014-05-23 19:50:10 -04:00
Roberto Rosario
008a8bf0e5 Update ACL permission imports 2014-05-23 19:49:21 -04:00
Roberto Rosario
7452c9ce0c Code cleanups 2014-05-23 19:43:19 -04:00
Roberto Rosario
9afafe53f4 Move ACL app links to a separate module 2014-05-23 19:41:31 -04:00
Roberto Rosario
489f7778d1 Add enable lock_manager tests to the travis CI config file 2014-05-23 18:23:13 -04:00
Roberto Rosario
788a709dd9 Backport some test for the lock_manager app 2014-05-23 18:13:33 -04:00
Roberto Rosario
b6e8478daf Revert "Close connection before and after executing periodic OCR task, to avoid stale DB connection remaining open. Ref: Issue #4"
This reverts commit ee1e732776.

73ebc06275 Supersedes this one, thanks a lot to Mathias Behrle for uncovering this bug and all the help squashing it!
2014-05-23 17:45:09 -04:00
Roberto Rosario
53ae32948c Don't run the scheduler when running tests 2014-05-23 17:43:07 -04:00
Roberto Rosario
73ebc06275 Explicitly close all connection for any scheduled task, ref issue #4 2014-05-23 17:01:25 -04:00
Roberto Rosario
721567be2b Update URLs to the new project github page 2014-05-23 03:13:59 -04:00
Roberto Rosario
935845719f Misc cleanups, PEP8, conding conventions, spaces, unused imports, False/True comparisons 2014-05-23 03:06:26 -04:00
Roberto Rosario
cdb93e46ae Update release notes 2014-05-23 01:15:52 -04:00
Roberto Rosario
9eca408c94 Add support for deletion of detached signatures 2014-05-23 01:04:02 -04:00
Roberto Rosario
85d8d23187 PEP8 cleanup, unused imports cleanups, coding conventions, relative imports, sorting of imports 2014-05-22 22:58:55 -04:00
Roberto Rosario
cf340cc08c Update copyright date 2014-05-22 17:29:03 -04:00
Roberto Rosario
398c480c10 Remove the striptags functionality, fixes some instances of XSS, issue #3 2014-05-22 17:27:06 -04:00
Roberto Rosario
12948c155e Update version numbering and copyright years 2014-05-22 17:08:04 -04:00
Roberto Rosario
95520b23bc Add initial version 1.0 release notes 2014-05-22 17:07:45 -04:00
Roberto Rosario
ee1e732776 Close connection before and after executing periodic OCR task, to avoid stale DB connection remaining open. Ref: Issue #4 2014-05-22 16:44:48 -04:00
Roberto Rosario
60bdf37fbd Upgrade to Django 1.4 requires now the addition of the messages context processor 2014-05-22 16:41:06 -04:00
Roberto Rosario
58bcc463c4 Add document search test in relation to related_name updates 2014-05-20 22:40:32 -04:00
Roberto Rosario
4063cb7f7c Update document search configuration inline with the recent related_name updates 2014-05-20 22:39:52 -04:00
Roberto Rosario
df9a9f695b Update README file 2014-05-20 03:24:47 -04:00
Roberto Rosario
f840d66b15 Update contributors file 2014-05-20 03:16:59 -04:00
Roberto Rosario
63d9f02fdd Convert README file to restructured text, add contributors section 2014-05-20 03:13:50 -04:00
Roberto Rosario
96d55dd3f9 Update coveralls badge markup 2014-05-20 02:51:02 -04:00
Roberto Rosario
0804948ff3 Add travis CI and coveralls badges 2014-05-20 02:45:31 -04:00
Roberto Rosario
a51565f3aa Disable document signature tests 2014-05-20 02:45:09 -04:00
Roberto Rosario
7334bc5b3e Update gitignore file to ignore .coverage files 2014-05-19 20:54:45 -04:00
Roberto Rosario
5c908c57c8 Add travis CI config file 2014-05-19 20:54:12 -04:00
Roberto Rosario
07cc6301ae Update requirements file, add testing requirements file 2014-05-19 20:53:26 -04:00
Roberto Rosario
bd3cd8585b Do not update indexes from the documents app 2014-05-19 20:32:15 -04:00
Roberto Rosario
c7e176a793 PEP8 and misc. cleanups 2014-05-19 20:31:01 -04:00
Roberto Rosario
5987a9ed53 Remove 3rd_party_apps folder, don't include filetransfers it is now instalable from PyPI 2014-05-19 20:18:07 -04:00
Roberto Rosario
4152597771 Update django-sendfile and python-magic versions 2014-05-19 20:16:00 -04:00
Roberto Rosario
db5ce56328 Merge remote-tracking branch 'origin/master' 2014-05-19 20:07:29 -04:00
Roberto Rosario
79e28ca853 Check if a node is a root node the proper way, make 'root' translatable 2014-05-19 20:07:04 -04:00
Roberto Rosario
441f900b4c Check is a node is a root node the proper way, make 'root' translatable 2014-05-19 20:04:51 -04:00
Roberto Rosario
5e45d1970f Check if a node is a root node the proper way 2014-05-19 20:04:32 -04:00
Roberto Rosario
2bcdd1017e Update django-mptt version used 2014-05-19 19:55:40 -04:00
Roberto Rosario
ceb1923c8a Update Pillow and South to their latests versions (2.4.0 and 0.8.4) 2014-05-19 19:46:39 -04:00
Roberto Rosario
5e59708246 Reorganize requirements file 2014-05-19 19:43:16 -04:00
Roberto Rosario
eaea9ec6fc Update to Django 1.4.13, update django rest framework to 2.3.13 2014-05-19 19:35:07 -04:00
Roberto Rosario
dd1c06102f Update contributors file 2014-05-19 18:47:30 -04:00
Roberto Rosario
331b595ace Merge remote-tracking branch 'origin/master' 2014-05-19 16:21:28 -04:00
Roberto Rosario
60ac55bfd3 PEP8 and simple cleanups 2014-05-19 16:19:55 -04:00
Roberto Rosario
fd254135f5 Reorganize imports 2014-05-19 15:09:28 -04:00
Roberto Rosario
1d609333dc Update indexes via signals from metadata updates or document deletions 2014-05-19 15:08:59 -04:00
Mathias Behrle
bb1153c7d8 Correcting path to license, it is in PROJECT_ROOT. 2014-05-19 15:44:50 +02:00
Roberto Rosario
c7205aaa59 Fix the document upload link not appearing on some views 2014-05-19 00:38:25 -04:00
Roberto Rosario
cbe587432d Move missing import from __init__ to links.py where is it now used 2014-05-19 00:35:55 -04:00
Roberto Rosario
e258f4c4c1 Remove use of another custom property and use the related_name feature of the document page model 2014-05-19 00:32:36 -04:00
Roberto Rosario
518137415a Update migration to use the form "document.versions" instead of "document.version_set" 2014-05-19 00:28:03 -04:00
Roberto Rosario
66bb049881 Remove custom property and use related_name feature of models 2014-05-19 00:24:31 -04:00
Roberto Rosario
061eb660d1 Go back to the document version list view after uploading a new document version, not to the document detail view 2014-05-19 00:23:09 -04:00
Roberto Rosario
9110b08968 Organize imports 2014-05-19 00:14:31 -04:00
Roberto Rosario
0d9f304eae Update documentation version and repository URL 2014-05-19 00:11:52 -04:00
Roberto Rosario
6f294aab31 Move linking app links to their own module 2014-05-18 18:26:14 -04:00
Roberto Rosario
5187ac2650 Move folder app links to their own module 2014-05-18 18:16:08 -04:00
Roberto Rosario
f233738db6 Move document signature app links to their own module 2014-05-18 18:11:09 -04:00
Roberto Rosario
82964235fa Move document indexing app links to their own module 2014-05-18 18:03:32 -04:00
Roberto Rosario
a986e3fbe7 Reorganize imports 2014-05-18 17:55:53 -04:00
Roberto Rosario
53615f1e0e Move metadata app links to a separate module 2014-05-18 17:49:46 -04:00
Roberto Rosario
c089379df4 Bump version 2014-05-18 04:22:54 -04:00
Roberto Rosario
088f507afd Update project URLs 2014-05-18 04:22:38 -04:00
Roberto Rosario
2288779a1c Move the document create and document sibling create ("clone metadata") views to the source app 2014-05-18 04:17:15 -04:00
Roberto Rosario
7077bf0b96 Add document page transformation view deprecation comment 2014-05-18 03:57:15 -04:00
Roberto Rosario
5a5a88d07d Move the documents app links to their own module 2014-05-18 03:55:24 -04:00
Roberto Rosario
6e76248aed Reorganize imports, update multiline import style 2014-05-18 03:48:57 -04:00
Roberto Rosario
53528e55fb Remove convenience scripts 2014-05-17 19:04:43 -04:00
Roberto Rosario
8cea9298dc German language translation sync 2014-05-17 15:30:11 -04:00
Roberto Rosario
207b7af951 Merge branch 'master' of github.com:mayan-edms/mayan-edms 2014-05-17 15:01:50 -04:00
Roberto Rosario
8a13095c7f Remove print statement 2014-05-17 14:58:26 -04:00
Roberto Rosario
5e791e6d30 Merge pull request #77 from mbehrle/fix/v0.13.1
Additional mimetypes, Fallback for text mimetype, Some whitespace cleanup
2014-05-17 14:57:20 -04:00
Mathias Behrle
25a2f95c7c Correcting typo. 2014-05-17 13:20:03 +02:00
Mathias Behrle
4f14b41de7 Adding fallback for unkown text mimetypes. 2014-05-17 13:19:46 +02:00
Mathias Behrle
697e749c64 Adding more mimetypes. 2014-05-17 13:19:31 +02:00
Roberto Rosario
a74c3eae7c Update README with new location of project 2014-05-01 13:22:08 -07:00
Roberto Rosario
c157848323 Merge pull request #1 from rosarior/master
Sync with rosarior/mayan
2014-04-28 16:47:10 -04:00
Roberto Rosario
abe372c108 Merge pull request #76 from mbehrle/fix/v0.13.1
Adding some more MIME types for ODF.
2014-03-05 15:19:09 -05:00
Mathias Behrle
4b937eff5f Adding some more MIME types for ODF.
According to http://plan-b-for-openoffice.org/glossary/term/mime-type
2014-03-05 20:46:53 +01:00
Roberto Rosario
ed867dc551 Merge pull request #75 from mbehrle/fix/v0.13.1
Changing length of field mimetype to 255 chars.
2014-03-04 13:16:37 -05:00
Mathias Behrle
188033c0f7 Changing length of field mimetype to 255 chars.
According to
http://www.iana.org/assignments/media-types/media-types.xhtml
the length of mimetypes currently can be up to 85 chars, so with 255 we
will be safe.
2014-03-04 19:10:50 +01:00
Roberto Rosario
482468a91d Merge pull request #74 from mbehrle/fix/v0.13.1
Fix/v0.13.1
2014-03-04 11:16:29 -05:00
Mathias Behrle
862eba0ca5 Setting the installed version of python-magic to current HEAD.
- Solves magic.MagicException: no magic files loaded
- https://github.com/ahupp/python-magic/issues/44
2014-03-04 17:06:43 +01:00
Mathias Behrle
e4aa0bb17f Updating transifex server URL. 2014-03-04 17:06:22 +01:00
Roberto Rosario
ce9fc40485 Merge pull request #71 from matbe/master
Removing unnecessary parameter from append statement.
2014-02-10 12:14:18 -05:00
Mathias Behrle
470347b69f Removing unnecessary parameter from append statement.
This unused parameter caused page crashes when viewing Smart-Links.
2014-02-10 17:52:55 +01:00
Roberto Rosario
e2731ff426 Merge pull request #70 from ruipires/master
Update fabile/webservers/apache.py to use mayan.conf as site name. Using...
2014-02-08 11:49:22 -05:00
Rui Pires
1fbfbf4e43 Update fabile/webservers/apache.py to use mayan.conf as site name. Using just 'mayan' was making this fail in ubuntu server 13.10 2014-02-08 13:12:40 -01:00
Roberto Rosario
444c7e6ea5 Merge pull request #57 from bitdeli-chef/master
Add a Bitdeli Badge to README
2013-09-17 14:56:52 -07:00
Bitdeli Chef
1341372e6f Add a Bitdeli badge to README 2013-09-17 21:55:56 +00:00
Roberto Rosario
d91fed40ca Backport fix for default value failure in metadata types with lookup values 2013-02-28 03:29:25 -04:00
Roberto Rosario
0d4c195b09 Manually apply fix for issue #45 to master branch too 2013-02-28 01:51:15 -04:00
Roberto Rosario
9f55fa0933 Merge branch 'master' into feature/arabic_vietnam_trans 2013-01-26 22:37:22 -04:00
Roberto Rosario
bc6e2ddf6c Arabic and Vietnamese translations update 2013-01-26 22:36:30 -04:00
Roberto Rosario
75f4fe4f46 Merge remote-tracking branch 'origin/master' 2013-01-26 00:26:04 -04:00
Roberto Rosario
ceea0ed628 VirtualEnv properties to the installation details report 2013-01-25 22:45:30 -04:00
Roberto Rosario
4b8dc31d23 Create the views one for the installation properties namespaces and another for the details of each namespace 2013-01-25 22:01:30 -04:00
Roberto Rosario
75a6a211a8 Split installation properties into namespaces 2013-01-25 22:00:50 -04:00
Roberto Rosario
55f65109b5 Move LICENSE file to the top level directory 2013-01-25 20:54:35 -04:00
Roberto Rosario
cb1b14f543 Language translations sync 2013-01-25 20:28:44 -04:00
Roberto Rosario
d58c4faa80 Add Arabic and Vietnamese to the list of supported languages 2013-01-25 20:27:51 -04:00
Roberto Rosario
26d6f5b798 Update compressed fabfile 2013-01-25 03:05:52 -04:00
Roberto Rosario
07b82a4760 Reduce field and therefore index size to avoid MySQL regression errors
MySQL/ORACLE is being a jerk again and breaking backwards compatilibity (https://github.com/feincms/feincms/issues/261,
https://github.com/toastdriven/django-tastypie/pull/719)
2013-01-25 02:22:45 -04:00
Roberto Rosario
5b1e7cca3b Upgrade distribute package to the latest version before installing any requirement 2013-01-24 01:34:06 -04:00
Roberto Rosario
85112090b9 Use reverse_lazy to use view names instead of hard coded URLs for the LOGIN_REDIRECT and LOGIN_URL settings 2013-01-24 01:32:29 -04:00
Roberto Rosario
216bce1462 Quick and dirty fix for issue #43 2013-01-17 23:48:55 -04:00
Roberto Rosario
b6b4ea5bb7 Ignore virtualenv installations done alongside the code 2013-01-15 00:35:53 -04:00
Roberto Rosario
f51c1ee70b Add Ed Schipul and Lars Kruse to the contributors file 2013-01-15 00:32:41 -04:00
Roberto Rosario
efe82cde1e Ignore StoredPermissions residing in the database that have no counterpart in the volatile permission set 2013-01-15 00:27:14 -04:00
Roberto Rosario
5a26acb6b2 Merge pull request #42 from sumpfralle/master
replaced dict comprehension (requires Python 2.7) with a simple loop
2013-01-07 21:03:00 -08:00
Lars Kruse
e6f7a1a651 fixed typo in introduction 2013-01-08 04:03:50 +01:00
Lars Kruse
f544ddcefd removed python2.7-specific dict comprehension (see PEP 274) 2013-01-08 03:47:23 +01:00
Roberto Rosario
276119a06a Add remote urls to the installation report 2013-01-05 23:10:10 -04:00
Roberto Rosario
87879c7336 Get the document.Document SearchModel instance in a more elegant way 2013-01-04 07:49:33 -04:00
Roberto Rosario
7d86656bff Update the RecentSearch model to work with the new SearchModel class 2013-01-04 07:49:25 -04:00
Roberto Rosario
25e17fb2b0 Improve a bit the way recent searches are saved 2013-01-04 07:49:16 -04:00
Roberto Rosario
2f09c60d43 Store instances of SearchModel by their full_name in the class registry 2013-01-04 07:49:07 -04:00
Roberto Rosario
f7f6dfc441 Refactor advanced searching 2013-01-04 07:48:58 -04:00
Roberto Rosario
e8fc6c96e0 Simplify code and variable names 2013-01-04 07:48:35 -04:00
Roberto Rosario
d74efbd891 Update documents app to use the new SearchModel class 2013-01-04 07:48:26 -04:00
Roberto Rosario
6317dfd4db Initial refactor of the search app to better support related fields lookups, trying to fix issue #20 in the application side 2013-01-04 07:48:14 -04:00
Roberto Rosario
cd21f49b64 Revert "Remove duplicate processing of sidebar links"
Turn out this is required to show the links to add new holder for acls

This reverts commit abf2bb85ea.
2012-12-27 02:03:24 -04:00
Roberto Rosario
9a31612b5d Fix requirements definition 2012-12-20 17:00:40 -04:00
Roberto Rosario
b515b92a6c Merge remote-tracking branch 'nars/master' 2012-12-17 16:08:54 -04:00
Roberto Rosario
00cea65e64 Update required Pillow version to 1.7.8 2012-12-17 16:07:07 -04:00
Roberto Rosario
af681f677f Since this is a multi document action remove required permission 2012-12-17 16:03:55 -04:00
nars
0240c9a39b Update requirements/production.txt 2012-12-14 17:20:25 +02:00
Roberto Rosario
8d75353bdf Merge branch 'hotfix/v0.12.3' 2012-12-12 03:45:38 -04:00
Roberto Rosario
1804cd8828 Reverting hotfix patch applied to master branch by accident.
Revert "Catch auto admin creation error attempts when common app has still not been migrated."

This reverts commit 35571e184f.
2012-10-05 22:14:12 -04:00
Roberto Rosario
35571e184f Catch auto admin creation error attempts when common app has still not been migrated.
Solves issue #32
2012-10-05 22:05:12 -04:00
10016 changed files with 411238 additions and 161136 deletions

10
.coveragerc Normal file
View File

@@ -0,0 +1,10 @@
[run]
source=
mayan
omit=
mayan/bin/mayan-edms.py
mayan/wsgi.py
mayan/settings/*
tests.py
mayan/apps/*/tests/*
*migrations*

2
.flake8 Normal file
View File

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

35
.gitignore vendored
View File

@@ -1,17 +1,30 @@
*.orig
*.pyc
*.pyo
*.sql
*.sqlite
/settings_local.py
/celerybeat-schedule
/document_storage/
/misc/mayan.geany
/image_cache/
build/
*.sqlite3
*egg-info*
.coverage
.coverage.tox*
.idea/
.tox/
.vagrant
_build/
/gpg_home/
/static/
/whoosh_index/
/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
/server_config.yaml
/dist/
/misc/mayan.geany
/mayan/media/static/
/venv/
/whoosh_index/

41
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,41 @@
image: ubuntu:16.10
services:
- 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 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:
- 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 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 test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations
- codecov

21
.magnum.yml Normal file
View File

@@ -0,0 +1,21 @@
language: python
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
install:
- pip install -r requirements/testing.txt
- pip install -q mysql-python
- pip install -q psycopg2
before_script:
- mysql -u root -e 'create database mayan_edms;'
- psql -c 'create database mayan_edms;' -U postgres
script:
- export TEST_APPS="acls authentication django_gpg document_indexing document_signatures documents dynamic_search folders lock_manager ocr permissions sources tags"
- coverage run manage.py test $TEST_APPS --settings=mayan.settings.testing.base
- coverage run manage.py test $TEST_APPS --settings=mayan.settings.magnum.db_mysql
- coverage run manage.py test $TEST_APPS --settings=mayan.settings.magnum.db_postgres
after_script:
- coveralls
services:
- mysql
- postgresql

36
.travis.yml Normal file
View File

@@ -0,0 +1,36 @@
dist: trusty
sudo: required
language: python
python:
- 2.7
env:
matrix:
- DB=mysql
- DB=postgres
- DB=sqlite
before_install:
- sudo apt-get update -qq
- 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
- if [[ $DB == postgres ]]; then pip install -q psycopg2; fi
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 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:
only:
- master
- development
notifications:
email:
recipients:
- roberto.rosario@mayan-edms.com
on_success: never
on_failure: always

View File

@@ -1,218 +1,194 @@
[main]
host = https://www.transifex.net
host = https://www.transifex.com
[mayan-edms.apps-acls]
file_filter = apps/acls/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.acls-2-0]
file_filter = mayan/apps/acls/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/acls/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/acls/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-bootstrap]
file_filter = apps/bootstrap/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.appearance-2-0]
file_filter = mayan/apps/appearance/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/bootstrap/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/appearance/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-converter]
file_filter = apps/converter/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.authentication-2-0]
file_filter = mayan/apps/authentication/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/converter/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/authentication/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-common]
file_filter = apps/common/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.cabinets-2-0]
file_filter = mayan/apps/cabinets/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/common/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/cabinets/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-checkouts]
file_filter = apps/checkouts/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.checkouts-2-0]
file_filter = mayan/apps/checkouts/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/checkouts/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-clustering]
file_filter = apps/clustering/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.common-2-0]
file_filter = mayan/apps/common/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/clustering/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/common/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-django_gpg]
file_filter = apps/django_gpg/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.converter-2-0]
file_filter = mayan/apps/converter/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/django_gpg/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/converter/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-diagnostics]
file_filter = apps/diagnostics/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.django_gpg-2-0]
file_filter = mayan/apps/django_gpg/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/diagnostics/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-documents]
file_filter = apps/documents/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.documents-2-0]
file_filter = mayan/apps/documents/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/documents/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/documents/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-document_comments]
file_filter = apps/document_comments/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.document_comments-2-0]
file_filter = mayan/apps/document_comments/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/document_comments/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-document_indexing]
file_filter = apps/document_indexing/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.document_indexing-2-0]
file_filter = mayan/apps/document_indexing/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/document_indexing/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-document_signatures]
file_filter = apps/document_signatures/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.document_parsing-2-0]
file_filter = mayan/apps/document_parsing/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/document_signatures/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/document_parsing/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-dynamic_search]
file_filter = apps/dynamic_search/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.document_signatures-2-0]
file_filter = mayan/apps/document_signatures/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/dynamic_search/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-folders]
file_filter = apps/folders/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.document_states-2-0]
file_filter = mayan/apps/document_states/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/folders/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/document_states/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-history]
file_filter = apps/history/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.dynamic_search-2-0]
file_filter = mayan/apps/dynamic_search/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/history/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-installation]
file_filter = apps/installation/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.events-2-0]
file_filter = mayan/apps/events/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/installation/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/events/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-job_processor]
file_filter = apps/job_processor/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.linking-2-0]
file_filter = mayan/apps/linking/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/job_processor/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/linking/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-linking]
file_filter = apps/linking/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.lock_manager-2-0]
file_filter = mayan/apps/lock_manager/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/linking/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-lock_manager]
file_filter = apps/lock_manager/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.mailer-2-0]
file_filter = mayan/apps/mailer/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/lock_manager/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/mailer/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-main]
file_filter = apps/main/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.metadata-2-0]
file_filter = mayan/apps/metadata/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/main/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/metadata/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-maintenance]
file_filter = apps/maintenance/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.mirroring-2-0]
file_filter = mayan/apps/mirroring/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/maintenance/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-metadata]
file_filter = apps/metadata/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.motd-2-0]
file_filter = mayan/apps/motd/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/metadata/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/motd/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-navigation]
file_filter = apps/navigation/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.ocr-2-0]
file_filter = mayan/apps/ocr/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/navigation/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/ocr/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-ocr]
file_filter = apps/ocr/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.permissions-2-0]
file_filter = mayan/apps/permissions/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/ocr/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/permissions/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-permissions]
file_filter = apps/permissions/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.rest_api-2-0]
file_filter = mayan/apps/rest_api/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/permissions/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/rest_api/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-project_setup]
file_filter = apps/project_setup/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.smart_settings-2-0]
file_filter = mayan/apps/smart_settings/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/project_setup/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-project_tools]
file_filter = apps/project_tools/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.sources-2-0]
file_filter = mayan/apps/sources/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/project_tools/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/sources/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-registration]
file_filter = apps/registration/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.statistics-2-0]
file_filter = mayan/apps/mayan_statistics/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/registration/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/mayan_statistics/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-scheduler]
file_filter = apps/scheduler/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.storage-2-0]
file_filter = mayan/apps/storage/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/scheduler/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/storage/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-smart_settings]
file_filter = apps/smart_settings/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.tags-2-0]
file_filter = mayan/apps/tags/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/smart_settings/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/tags/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-sources]
file_filter = apps/sources/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.task_manager-2-0]
file_filter = mayan/apps/task_manager/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/sources/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/task_manager/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-statistics]
file_filter = apps/statistics/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.user_management-2-0]
file_filter = mayan/apps/user_management/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/statistics/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-tags]
file_filter = apps/tags/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/tags/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-trash]
file_filter = apps/trash/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/trash/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-user_management]
file_filter = apps/user_management/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/user_management/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-web_theme]
file_filter = apps/web_theme/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/web_theme/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/user_management/locale/en/LC_MESSAGES/django.po
type = PO

View File

@@ -1,43 +0,0 @@
from django.conf import settings
from django.utils.importlib import import_module
import mimetypes
PREPARE_UPLOAD_BACKEND = getattr(settings,
'PREPARE_UPLOAD_BACKEND',
'filetransfers.backends.default.prepare_upload')
SERVE_FILE_BACKEND = getattr(settings,
'SERVE_FILE_BACKEND',
'filetransfers.backends.default.serve_file')
PUBLIC_DOWNLOAD_URL_BACKEND = getattr(settings,
'PUBLIC_DOWNLOAD_URL_BACKEND',
'filetransfers.backends.default.public_download_url')
_backends_cache = {}
# Public API
def prepare_upload(request, url, private=False, backend=None):
handler = _load_backend(backend, PREPARE_UPLOAD_BACKEND)
return handler(request, url, private=private)
def serve_file(request, file, backend=None, save_as=False, content_type=None):
# Backends are responsible for handling range requests.
handler = _load_backend(backend, SERVE_FILE_BACKEND)
filename = file.name.rsplit('/')[-1]
if save_as is True:
save_as = filename
if not content_type:
content_type = mimetypes.guess_type(filename)[0]
return handler(request, file, save_as=save_as, content_type=content_type)
def public_download_url(file, backend=None):
handler = _load_backend(backend, PUBLIC_DOWNLOAD_URL_BACKEND)
return handler(file)
# Internal utilities
def _load_backend(backend, default_backend):
if backend is None:
backend = default_backend
if backend not in _backends_cache:
module_name, func_name = backend.rsplit('.', 1)
_backends_cache[backend] = getattr(import_module(module_name), func_name)
return _backends_cache[backend]

View File

@@ -1,7 +0,0 @@
from django.conf import settings
def public_download_url(file, **kwargs):
"""
Directs downloads to a handler at settings.PUBLIC_DOWNLOADS_URL_BASE
"""
return settings.PUBLIC_DOWNLOADS_URL_BASE + file.name

View File

@@ -1,30 +0,0 @@
from django.http import HttpResponse
from django.utils.encoding import smart_str
def prepare_upload(request, url, **kwargs):
"""Directly uploads to the given URL"""
return url, {}
def serve_file(request, file, save_as, content_type, **kwargs):
"""
Serves the file in chunks for efficiency reasons, but the transfer still
goes through Django itself, so it's much worse than using the web server,
but at least it works with all configurations.
"""
response = HttpResponse(ChunkedFile(file), content_type=content_type)
if save_as:
response['Content-Disposition'] = smart_str(u'attachment; filename=%s' % save_as)
if file.size is not None:
response['Content-Length'] = file.size
return response
def public_download_url(file, **kwargs):
"""No public download URL"""
return None
class ChunkedFile(object):
def __init__(self, file):
self.file = file
def __iter__(self):
return self.file.chunks()

View File

@@ -1,11 +0,0 @@
from django.conf import settings
from filetransfers.api import prepare_upload as delegate
def prepare_upload(*args, **kwargs):
"""Delegates uploads to other backends based on private=False or True"""
if kwargs['private']:
kwargs['backend'] = settings.PRIVATE_PREPARE_UPLOAD_BACKEND
else:
kwargs['backend'] = settings.PUBLIC_PREPARE_UPLOAD_BACKEND
return delegate(*args, **kwargs)

View File

@@ -1,10 +0,0 @@
from django.http import HttpResponseRedirect
from django.utils.encoding import smart_str
def serve_file(request, file, **kwargs):
"""Serves files by redirecting to file.url (e.g., useful for Amazon S3)"""
return HttpResponseRedirect(smart_str(file.url))
def public_download_url(file, **kwargs):
"""Directs downloads to file.url (useful for normal file system storage)"""
return file.url

View File

@@ -1,12 +0,0 @@
from django.http import HttpResponse
from django.utils.encoding import smart_str
def serve_file(request, file, save_as, content_type, **kwargs):
"""Lets the web server serve the file using the X-Sendfile extension"""
response = HttpResponse(content_type=content_type)
response['X-Sendfile'] = file.path
if save_as:
response['Content-Disposition'] = smart_str(u'attachment; filename=%s' % save_as)
if file.size is not None:
response['Content-Length'] = file.size
return response

View File

@@ -1,17 +0,0 @@
from django.template import Library
from django.utils.safestring import mark_safe
from ..api import public_download_url
register = Library()
_hidden_data_field = '<input type="hidden" name="%s" value="%s" />'
@register.simple_tag
def render_upload_data(data):
inputs = ''.join(_hidden_data_field % item for item in data.items())
if inputs:
return mark_safe('<div style="display:none">%s</div>' % inputs)
return ''
register.filter(public_download_url)

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.

494
HISTORY.rst Normal file
View File

@@ -0,0 +1,494 @@
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.
- Fix metadata lookup for {{ users }} and {{ group }}. Fixes GitLab #290.
- Add Makefile for common development tasks
2.1.1 (2016-05-17)
==================
- Fix navigation issue that make it impossible to add new sources. GitLab issue #288.
- The Tesseract OCR backend now reports if the requested language file is missing. GitLab issue #289.
- Ensure the automatic default index is created after the default document type.
2.1 (2016-05-14)
================
- Upgrade to use Django 1.8.13. Issue #246.
- Upgrade requirements.
- Remove remaining references to Django's User model. GitLab issue #225
- Rename 'Content' search box to 'OCR'.
- Remove included login required middleware using django-stronghold instead (http://mikegrouchy.com/django-stronghold/).
- Improve generation of success and error messages for class based views.
- Remove ownership concept from folders.
- Replace strip_spaces middleware with the spaceless template tag. GitLab issue #255
- Deselect the update checkbox for optional metadata by default.
- Silence all Django 1.8 model import warnings.
- Implement per document type document creation permission. Closes GitLab issue #232.
- Add icons to the document face menu links.
- Increase icon to text spacing to 3px.
- Make document type delete time period optional.
- Fixed date locale handling in document properties, checkout and user detail views.
- Add new permission: checkout details view.
- Add HTML5 upload widget. Issue #162.
- Add Message of the Day app. Issue #222
- Update Document model's uuid field to use Django's native UUIDField class.
- Add new split view index navigation
- Newly uploaded documents appear in the Recent document list of the user.
- Document indexes now have ACL support.
- Remove the document index setup permission.
- Status messages now display the object class on which they operate not just the word "Object".
- More tests added.
- Handle unicode filenames in staging folders.
- Add staging file deletion permission.
- New document_signature_view permission.
- Add support for signing documents.
- Instead of multiple keyservers only one keyserver is now supported.
- Replace document type selection widget with an opened selection list.
- Add mailing documentation chapter.
- Add roadmap documentation chapter.
- API updates.
2.0.2 (2016-02-09)
==================
- Install testing dependencies when installing development dependencies.
- Fix GitLab issue #250 "Empty optional lookup metadata trigger validation error".
- Fix OCR API test.
- Move metadata form value validation to .clean() method.
- Only extract validation error messages from ValidationError exception instances.
- Don't store empty metadata value if the update checkbox is not checked.
- Add 2 second delay to document version tests to workaround MySQL limitation.
- Strip HTML tags from the browser title.
- Remove Docker and Docker Compose files.
2.0.1 (2016-01-22)
==================
- Fix GitLab issue #243, "System allows a user to skip entering values for a required metadata field while uploading a new document"
- Fix GitLab issue #245, "Add multiple metadata not possible"
- Updated Vagrantfile to provision a production box too.
2.0 (2015-12-04)
================
- New source homepage: https://gitlab.com/mayan-edms/mayan-edms
- Update to Django 1.7
- New Bootstrap Frontend UI
- Easier theming and rebranding
- Improved page navigation interface
- Menu reorganization
- Removal of famfam icon set
- Improved document preview generation
- Document submission for OCR changed to POST
- New YAML based settings system
- Removal of auto admin creation as separate app
- Removal of dependencies
- ACL system refactor
- Object access control inheritance
- Removal of anonymous user support
- Metadata validators refactor
- Trash can support
- Retention policies
- Support for sharing indexes as FUSE filesystems
- Clickable preview images titles
- Removal of eval
- Smarter OCR, per page parsing or OCR fallback
- Improve failure tolerance (not all Operational Errors are critical now)
- RGB tags
- Default document type and default document source
- Link unbinding
- Statistics refactor
- Apps merge
- New signals
- Test improvements
- Indexes recalculation after document creation too
- Upgrade command
- OCR data moved to ocr app from documents app
- New internal document creation workflow return a document stub
- Auto console debug logging during development and info during production
- New class based and menu based navigation system
- New class based transformations
- Usage of Font Awesome icons set
- Management command to remove obsolete permissions: `purgepermissions`
- Normalization of 'title' and 'name' fields to 'label'
- Improved API, now at version 1
- Invert page title/project name order in browser title
- Django's class based views pagination
- Reduction of text strings
- Removal of the CombinedSource class
- Removal of default class ACLs
- Removal of the ImageMagick and GraphicsMagick converter backends
- Remove support for applying roles to new users automatically
- Removal of the DOCUMENT_RESTRICTIONS_OVERRIDE permission
- Removed the page_label field
1.1.1 (2015-05-21)
==================
- Update to Django 1.6.11
- Fix make_dist.sh script
- Add test for issue #163
- Activate tests for the sources app
- Removal of the registration app
- New simplified official project description
- Improvements to the index admin interface
- Removal of installation statistics gathering
- Remove unused folder tag
- Fix usage of ugettext to ugettext_lazy
- Increase size of the lock name field
- New style documentation
1.1 (2015-02-10)
================
- Uses Celery for background tasks
- Removal of the splash screen
- Adds a home view with common function buttons
- Support for sending and receiving documents via email
- Removed custom logging app in favor of django-actvity-stream
- Adds watch folders
- Includes Vagrant file for unified development and testing environments
- Per user locale profile (language and timezone)
- Includes news document workflow app
- Optional and required metadata types
- Improved testings. Automated tests against SQLite, MySQL, PostgreSQL
- Many new REST API endpoints added
- Simplified text messages
- Improved method for custom settings
- Addition of CORS support to the REST API
- Per document language setting instead of per installation language setting
- Metadata validation and parsing support
- Start of code updates towards Python 3 support
- Simplified UI
- Stable PDF previews generation
- More technical documentation
1.0 (2014-08-27)
================
- New home @ https://github.com/mayan-edms/mayan-edms
- Updated to use Django 1.6
- Translation updates
- Custom model properties removal
- Source code improvements
- Removal of included 3rd party modules
- Automatic testing and code coverage check
- Update of required modules and libraries versions
- Database connection leaks fixes
- Support for deletion of detached signatures
- Removal of Fabric based installations script
- Pluggable OCR backends
- OCR improvements
- License change, Mayan EDMS in now licensed under the Apache 2.0 License
- PyPI package, Mayan EDMS in now available on PyPI: https://pypi.python.org/pypi/mayan-edms/
- New REST API

13
LICENSE Normal file
View File

@@ -0,0 +1,13 @@
Copyright 2011-2015 Roberto Rosario
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

3
MANIFEST.in Normal file
View File

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

340
Makefile Normal file
View File

@@ -0,0 +1,340 @@
.PHONY: clean-pyc clean-build
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-all - Run all tests."
@echo "test MODULE=<python module name> - Run tests for a single app, module or test class."
@echo "test-with-postgres-all - Run all tests against a Postgres database container."
@echo "test-postgres MODULE=<python module name> - Run tests for a single app, module or test class against a Postgres database container."
@echo "test-with-mysql-all - Run all tests against a MySQL database container."
@echo "test-mysql MODULE=<python module name> - Run tests for a single app, module or test class against a MySQL database container."
@echo "test-with-oracle-all - Run all tests against a Oracle database container."
@echo "test-oracle MODULE=<python module name> - Run tests for a single app, module or test class against a Oracle database container."
@echo "docs_serve - Run the livehtml documentation generator."
@echo "translations_make - Refresh all translation files."
@echo "translations_compile - Compile all translation files."
@echo "translations_push - Upload all translation files to Transifex."
@echo "translations_pull - Download all translation files from Transifex."
@echo "requirements_dev - Install development requirements."
@echo "requirements_docs - Install documentation requirements."
@echo "requirements_testing - Install testing requirements."
@echo "sdist - Build the source distribution package."
@echo "wheel - Build the wheel distribution package."
@echo "release - Package (sdist and wheel) and upload a release."
@echo "test_release - Package (sdist and wheel) and upload to the PyPI test server."
@echo "release_test_via_docker_ubuntu - Package (sdist and wheel) and upload to the PyPI test server using an Ubuntu Docker builder."
@echo "release_test_via_docker_alpine - Package (sdist and wheel) and upload to the PyPI test server using an Alpine Docker builder."
@echo "release_via_docker_ubuntu - Package (sdist and wheel) and upload to PyPI using an Ubuntu Docker builder."
@echo "release_via_docker_alpine - Package (sdist and wheel) and upload to PyPI using an Alpine Docker builder."
@echo "test_sdist_via_docker_ubuntu - Make an sdist packange and test it using an Ubuntu Docker container."
@echo "test_wheel_via_docker_ubuntu - Make a wheel package and test it using an Ubuntu Docker container."
@echo "runserver - Run the development server."
@echo "runserver_plus - Run the Django extension's development server."
@echo "shell_plus - Run the shell_plus command."
@echo "docker_services_on - Launch and initialize production-like services using Docker (Postgres and Redis)."
@echo "docker_services_off - Stop and delete the Docker production-like services."
@echo "docker_services_frontend - Launch a front end instance that uses the production-like services."
@echo "docker_services_worker - Launch a worker instance that uses the production-like services."
@echo "docker_service_mysql_on - Launch and initialize a MySQL Docker container."
@echo "docker_service_mysql_off - Stop and delete the MySQL Docker container."
@echo "docker_service_postgres_on - Launch and initialize a PostgreSQL Docker container."
@echo "docker_service_postgres_off - Stop and delete the PostgreSQL Docker container."
@echo "safety_check - Run a package safety check."
# Cleaning
clean: clean-build clean-pyc
clean-build:
rm -fr build/
rm -fr dist/
rm -fr *.egg-info
clean-pyc:
find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} +
# Testing
test:
./manage.py test $(MODULE) --settings=mayan.settings.testing --nomigrations
test-all:
./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:
cd docs;make livehtml
# Translations
translations_make:
contrib/scripts/process_messages.py -m
translations_compile:
contrib/scripts/process_messages.py -c
translations_push:
tx push -s
translations_pull:
tx pull -f
# Requirements
requirements_dev:
pip install -r requirements/development.txt
requirements_docs:
pip install -r requirements/documentation.txt
requirements_testing:
pip install -r requirements/testing.txt
generate_setup:
@./generate_setup.py
@echo "Complete."
# Releases
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 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:
./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

View File

@@ -1,51 +1,72 @@
![Logo](https://github.com/rosarior/mayan/raw/master/docs/_static/mayan_logo_landscape_black.jpg)
[![pypi][pypi]][pypi-url]
[![builds][builds]][builds-url]
[![coverage][cover]][cover-url]
![python][python]
![license][license]
Mayan EDMS
==========
[pypi]: http://img.shields.io/pypi/v/mayan-edms.svg
[pypi-url]: http://badge.fury.io/py/mayan-edms
Open source, Django based document management system with custom metadata
indexing, file serving integration, tagging, digital signature verification,
text parsing and OCR capabilities.
[builds]: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
[builds-url]: https://gitlab.com/mayan-edms/mayan-edms/pipelines
[Website](http://www.mayan-edms.com)
[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
[Video demostration](http://bit.ly/pADNXv)
[python]: https://img.shields.io/pypi/pyversions/mayan-edms.svg
[python-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
[Documentation](http://readthedocs.org/docs/mayan/en/latest/)
[Translations](https://www.transifex.net/projects/p/mayan-edms/)
[Mailing list (via Google Groups)](http://groups.google.com/group/mayan-edms)
[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
Quick install
-------------
To bootstrap **Mayan EDMS** via the fabfile without having to clone the
entire repository, run the following command, replacing the part that
reads: <Your MySQL root password> with your current MySQL root password
or the MySQL root password you plan to assign to it, during the MySQL
installation when executing the fabfile.
<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>
- Debian or Ubuntu:
<p align="center">
<img src="https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif">
</p>
cd /tmp && sudo apt-get install -y fabric wget tar gzip && wget https://github.com/rosarior/mayan/raw/master/contrib/fabfile.tar.gz -O - | tar -xvzf - && echo "database_manager_admin_password=&lt;Your MySQL root password&gt;" > ~/.fabricrc && fab -H localhost install
- Fedora:
</div>
cd /tmp && sudo yum install -y fabric wget tar gzip && wget https://github.com/rosarior/mayan/raw/master/contrib/fabfile.tar.gz -O - | tar -xvzf - && echo "database_manager_admin_password=&lt;Your MySQL root password&gt;" > ~/.fabricrc && fab -H localhost install
<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>
License
-------
This project is open sourced under [GNU GPL Version 3](http://www.gnu.org/licenses/gpl-3.0.html).
Author
------
Roberto Rosario - [Twitter](http://twitter.com/#siloraptor) [E-mail](mailto://roberto.rosario@mayan-edms.com)
Donations
---------
Please [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W6LMMZHTNUJ6L) if you are willing to support the further development of this project.
- [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/)

58
README.rst Normal file
View File

@@ -0,0 +1,58 @@
|pypi| |builds| |coverage| |python| |license|
.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
:align: center
:width: 200
:height: 200
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
.. |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
.. |python| image:: https://img.shields.io/pypi/pyversions/mayan-edms.svg
.. |license| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat

View File

@@ -1,18 +0,0 @@
from __future__ import absolute_import
from navigation.api import bind_links, register_multi_item_links
from .classes import (AccessHolder, AccessObjectClass, ClassAccessHolder,
AccessObject)
from .links import (acl_detail, acl_grant, acl_revoke,
acl_holder_new, acl_setup_valid_classes, acl_class_list,
acl_class_acl_list, acl_class_acl_detail, acl_class_new_holder_for,
acl_class_grant, acl_class_revoke)
bind_links([AccessHolder], [acl_detail])
register_multi_item_links(['acl_detail'], [acl_grant, acl_revoke])
bind_links([AccessObject], [acl_holder_new], menu_name='sidebar')
bind_links(['acl_setup_valid_classes', 'acl_class_acl_list', 'acl_class_new_holder_for', 'acl_class_acl_detail', 'acl_class_multiple_grant', 'acl_class_multiple_revoke'], [acl_class_list], menu_name='secondary_menu')
bind_links([ClassAccessHolder], [acl_class_acl_detail])
bind_links([AccessObjectClass], [acl_class_acl_list, acl_class_new_holder_for])
register_multi_item_links(['acl_class_acl_detail'], [acl_class_grant, acl_class_revoke])

View File

@@ -1,23 +0,0 @@
from __future__ import absolute_import
from django.contrib import admin
from .models import AccessEntry
#class PermissionHolderInline(admin.StackedInline):
# model = PermissionHolder
# extra = 1
# classes = ('collapse-open',)
# allow_add = True#
#
class AccessEntryAdmin(admin.ModelAdmin):
related_lookup_fields = {
'generic': [['holder_type', 'holder_id'], ['content_type', 'object_id']],
}
#inlines = [PermissionHolderInline]
list_display = ('pk', 'holder_object', 'permission', 'content_object')
list_display_links = ('pk',)
model = AccessEntry
admin.site.register(AccessEntry, AccessEntryAdmin)

View File

@@ -1,28 +0,0 @@
from __future__ import absolute_import
from django.contrib.contenttypes.models import ContentType
_class_permissions = {}
def class_permissions(cls, permission_list):
"""
Associate a permissions list to a class
"""
stored_permissions = _class_permissions.setdefault(cls, [])
stored_permissions.extend(permission_list)
def get_class_permissions_for(obj):
"""
Return a list of permissions associated with a content type
"""
content_type = ContentType.objects.get_for_model(obj)
return _class_permissions.get(content_type.model_class(), [])
def get_classes():
"""
Return a list of encapsulated classes that have been registered
"""
return _class_permissions.keys()

View File

@@ -1,17 +0,0 @@
from common.classes import EncapsulatedObject
class AccessHolder(EncapsulatedObject):
source_object_name = u'holder_object'
class AccessObject(EncapsulatedObject):
source_object_name = u'obj'
class AccessObjectClass(EncapsulatedObject):
source_object_name = u'cls'
class ClassAccessHolder(EncapsulatedObject):
source_object_name = u'class_holder'

View File

@@ -1,8 +0,0 @@
from __future__ import absolute_import
from .models import AccessEntry, DefaultAccessEntry
def cleanup():
AccessEntry.objects.all().delete()
DefaultAccessEntry.objects.all().delete()

View File

@@ -1,58 +0,0 @@
from __future__ import absolute_import
from django import forms
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import User, Group
from permissions.models import Role
from common.utils import get_object_name
from common.models import AnonymousUserSingleton
from .classes import AccessHolder
from .models import CreatorSingleton
def _as_choice_list(holders):
return sorted([(AccessHolder.encapsulate(holder).gid, get_object_name(holder, display_object_type=False)) for holder in holders], key=lambda x: x[1])
class BaseHolderSelectionForm(forms.Form):
holder_gid = forms.ChoiceField(
label=_(u'New holder')
)
def __init__(self, *args, **kwargs):
current_holders = kwargs.pop('current_holders', [])
if current_holders:
current_holders = [holder.source_object for holder in current_holders]
staff_users = User.objects.filter(is_staff=True)
super_users = User.objects.filter(is_superuser=True)
users = set(User.objects.filter(is_active=True)) - set(staff_users) - set(super_users) - set(current_holders)
roles = set(Role.objects.all()) - set(current_holders)
groups = set(Group.objects.all()) - set(current_holders)
special = set(self.special_holders) - set(current_holders)
non_holder_list = []
if users:
non_holder_list.append((_(u'Users'), _as_choice_list(list(users))))
if groups:
non_holder_list.append((_(u'Groups'), _as_choice_list(list(groups))))
if roles:
non_holder_list.append((_(u'Roles'), _as_choice_list(list(roles))))
if special:
non_holder_list.append((_(u'Special'), _as_choice_list(list(special))))
super(BaseHolderSelectionForm, self).__init__(*args, **kwargs)
self.fields['holder_gid'].choices = non_holder_list
class HolderSelectionForm(BaseHolderSelectionForm):
special_holders = [AnonymousUserSingleton.objects.get()]
class ClassHolderSelectionForm(BaseHolderSelectionForm):
special_holders = [AnonymousUserSingleton.objects.get(), CreatorSingleton.objects.get()]

View File

@@ -1,20 +0,0 @@
from __future__ import absolute_import
from icons.literals import (KEY, KEY_GO, KEY_ADD, KEY_DELETE, LOCK, USER_ADD,
PACKAGE, LOCK_GO)
from icons import Icon
icon_acl_app = Icon(LOCK)
icon_acls = Icon(KEY)
icon_acl_detail = Icon(KEY_GO)
icon_acl_grant = Icon(KEY_ADD)
icon_acl_revoke = Icon(KEY_DELETE)
icon_acl_holder_new = Icon(USER_ADD)
icon_acl_class_list = Icon(PACKAGE)
icon_acl_class_acl_list = Icon(LOCK_GO)
icon_acl_class_acl_detail = Icon(KEY_GO)
icon_acl_class_new_holder_for = Icon(USER_ADD)
icon_acl_class_grant = Icon(KEY_ADD)
icon_acl_class_revoke = Icon(KEY_DELETE)

View File

@@ -1,26 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation import Link
from .permissions import (ACLS_EDIT_ACL, ACLS_VIEW_ACL,
ACLS_CLASS_EDIT_ACL, ACLS_CLASS_VIEW_ACL)
from .icons import (icon_acls, icon_acl_detail, icon_acl_grant, icon_acl_revoke,
icon_acl_holder_new, icon_acl_class_list, icon_acl_class_acl_list,
icon_acl_class_acl_list, icon_acl_class_acl_detail, icon_acl_class_new_holder_for,
icon_acl_class_grant, icon_acl_class_revoke)
acl_list = Link(text=_(u'ACLs'), view='acl_list', icon=icon_acls, permissions=[ACLS_VIEW_ACL])
acl_detail = Link(text=_(u'details'), view='acl_detail', args=['access_object.gid', 'object.gid'], icon=icon_acl_detail, permissions=[ACLS_VIEW_ACL])
acl_grant = Link(text=_(u'grant'), view='acl_multiple_grant', icon=icon_acl_grant, permissions=[ACLS_EDIT_ACL])
acl_revoke = Link(text=_(u'revoke'), view='acl_multiple_revoke', icon=icon_acl_revoke, permissions=[ACLS_EDIT_ACL])
acl_holder_new = Link(text=_(u'New holder'), view='acl_holder_new', args='access_object.gid', icon=icon_acl_holder_new, permissions=[ACLS_EDIT_ACL])
acl_setup_valid_classes = Link(text=_(u'Default ACLs'), view='acl_setup_valid_classes', icon=icon_acl_class_list, permissions=[ACLS_CLASS_VIEW_ACL]) # 'children_view_regex=[r'^acl_class', r'^acl_setup']}
acl_class_list = Link(text=_(u'List of classes'), view='acl_setup_valid_classes', icon=icon_acl_class_list, permissions=[ACLS_CLASS_VIEW_ACL])
acl_class_acl_list = Link(text=_(u'ACLs for class'), view='acl_class_acl_list', args='object.gid', icon=icon_acl_class_acl_list, permissions=[ACLS_CLASS_VIEW_ACL])
acl_class_acl_detail = Link(text=_(u'details'), view='acl_class_acl_detail', args=['access_object_class.gid', 'object.gid'], icon=icon_acl_class_acl_detail, permissions=[ACLS_CLASS_VIEW_ACL])
acl_class_new_holder_for = Link(text=_(u'New holder'), view='acl_class_new_holder_for', args='object.gid', icon=icon_acl_class_new_holder_for, permissions=[ACLS_CLASS_EDIT_ACL])
acl_class_grant = Link(text=_(u'grant'), view='acl_class_multiple_grant', icon=icon_acl_class_grant, permissions=[ACLS_CLASS_EDIT_ACL])
acl_class_revoke = Link(text=_(u'revoke'), view='acl_class_multiple_revoke', icon=icon_acl_class_revoke, permissions=[ACLS_CLASS_EDIT_ACL])

View File

@@ -1,13 +0,0 @@
# Content type <-> fam fam icon mapping
CONTENT_TYPE_ICON_MAP = {
'auth.user': 'user',
'auth.group': 'group',
'documents.document': 'page',
'permissions.role': 'medal_gold_1',
'folders.folder': 'folder',
'taggit.tag': 'tag_blue',
'linking.smartlink': 'page_link',
'common.anonymoususersingleton': 'user',
'acls.creatorsingleton': 'user',
}

View File

@@ -1,255 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Iliya Georgiev <ikgeorgiev@gmail.com>, 2012.
# <pkoldamov@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-10-15 10:27+0000\n"
"Last-Translator: Pavlin Koldamov <pkoldamov@gmail.com>\n"
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/"
"language/bg/)\n"
"Language: bg\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"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr "Нов притежател"
#: forms.py:38
msgid "Users"
msgstr "Потребители"
#: forms.py:41
msgid "Groups"
msgstr "Групи"
#: forms.py:44
msgid "Roles"
msgstr "Роли"
#: forms.py:47
msgid "Special"
msgstr ""
#: links.py:14
msgid "ACLs"
msgstr "Контролни списъци за достъп"
#: links.py:15 links.py:23
msgid "details"
msgstr "детайли"
#: links.py:16 links.py:25
msgid "grant"
msgstr "предоставяне"
#: links.py:17 links.py:26
msgid "revoke"
msgstr "отменя"
#: links.py:20
msgid "Default ACLs"
msgstr "Контролни списъци за достъп по подразбиране"
#: links.py:21
msgid "List of classes"
msgstr "Списък на класовете"
#: links.py:22
msgid "ACLs for class"
msgstr "Контролни списъци за клас"
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr "Недостатъчен достъп."
#: models.py:25 models.py:67
msgid "permission"
msgstr "разрешение"
#: models.py:51
msgid "access entry"
msgstr "достъп за влизане"
#: models.py:52
msgid "access entries"
msgstr "достъп вписвания"
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Контролни списъци за достъп"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: registry.py:10
#, fuzzy
msgid "ACL"
msgstr "Контролни списъци за достъп"
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr "разрешения"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr " за %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr " към %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "Сигурни ли сте, че искате да дадете разрешение за %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "Сигурни ли сте, че искате да дадете разрешения за %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr " от %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
"Сигурни ли сте, че искате да отнемете разрешението за %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
"Сигурни ли сте, че искате да отнемете разрешенията за %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr "класове"
#: views.py:388
msgid "class"
msgstr "клас"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "правила за достъп по подразбиране за клас: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

View File

@@ -1,261 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# <sl@suchreflex.de>, 2012.
# <tilmann.sittig@web.de>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-09-20 07:40+0000\n"
"Last-Translator: Manticor <sl@suchreflex.de>\n"
"Language-Team: German (Germany) (http://www.transifex.com/projects/p/mayan-"
"edms/language/de_DE/)\n"
"Language: de_DE\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"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr "Neuer Berechtigter"
#: forms.py:38
msgid "Users"
msgstr "Benutzer"
#: forms.py:41
msgid "Groups"
msgstr "Gruppen"
#: forms.py:44
msgid "Roles"
msgstr "Rollen"
#: forms.py:47
msgid "Special"
msgstr ""
#: links.py:14
msgid "ACLs"
msgstr "ACLs"
#: links.py:15 links.py:23
msgid "details"
msgstr "Details"
#: links.py:16 links.py:25
msgid "grant"
msgstr "Erlauben"
#: links.py:17 links.py:26
msgid "revoke"
msgstr "Entziehen"
#: links.py:20
msgid "Default ACLs"
msgstr "Standard-ACLs"
#: links.py:21
msgid "List of classes"
msgstr "Liste der Klassen"
#: links.py:22
msgid "ACLs for class"
msgstr "ACLs für Klasse"
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr "Unzureichender Zugriff."
#: models.py:25 models.py:67
msgid "permission"
msgstr "Berechtigung"
#: models.py:51
msgid "access entry"
msgstr "Zugriffsberechtigungseintrag"
#: models.py:52
msgid "access entries"
msgstr "Zugriffsberechtigungseinträge"
#: models.py:88
msgid "default access entry"
msgstr "Standard-Zugriffsberechtigungseintrag"
#: models.py:89
msgid "default access entries"
msgstr "Standard-Zugriffsberechtigungseinträge"
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Zugriffsberechtigungslisten (ACLs)"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "ACLs bearbeiten"
#: permissions.py:11
msgid "View ACLs"
msgstr "ACLs anzeigen"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Standard-ACLs für Klasse bearbeiten"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Standard-ACLs für Klasse anzeigen"
#: registry.py:10
#, fuzzy
msgid "ACL"
msgstr "ACLs"
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "Zugriffberechtigungsliste für: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "Berechtigter"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "Berechtigungen"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "verfügbare Berechtigungen: %(actor)s für %(obj)s "
#: views.py:104 views.py:442
msgid "namespace"
msgstr "Namensraum"
#: views.py:105 views.py:443
msgid "label"
msgstr "Bezeichner"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "hat die Berechtigung"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr "für %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr "zu %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigung %(title_suffix)s erteilen "
"möchten?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigungen %(title_suffix)s erteilen "
"möchten?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr "von %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigung %(title_suffix)s enziehen "
"möchten?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigungen %(title_suffix)s enziehen "
"möchten?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "neuen Berechtigten für %s hinzufügen"
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr "Klassen"
#: views.py:388
msgid "class"
msgstr "Klasse"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

View File

@@ -1,249 +0,0 @@
# 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.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-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"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: links.py:14
msgid "ACLs"
msgstr ""
#: links.py:15 links.py:23
msgid "details"
msgstr ""
#: links.py:16 links.py:25
msgid "grant"
msgstr ""
#: links.py:17 links.py:26
msgid "revoke"
msgstr ""
#: links.py:20
msgid "Default ACLs"
msgstr ""
#: links.py:21
msgid "List of classes"
msgstr ""
#: links.py:22
msgid "ACLs for class"
msgstr ""
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: registry.py:10
msgid "ACL"
msgstr ""
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

View File

@@ -1,253 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Roberto Rosario <roberto.rosario.gonzalez@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-02-12 00:16+0000\n"
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/mayan-edms/"
"language/es/)\n"
"Language: es\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"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr "Nuevo titular"
#: forms.py:38
msgid "Users"
msgstr "Usuarios"
#: forms.py:41
msgid "Groups"
msgstr "Grupos"
#: forms.py:44
msgid "Roles"
msgstr "Funciones"
#: forms.py:47
msgid "Special"
msgstr "Especial"
#: links.py:14
msgid "ACLs"
msgstr "LCA"
#: links.py:15 links.py:23
msgid "details"
msgstr "detalles"
#: links.py:16 links.py:25
msgid "grant"
msgstr "otorgar"
#: links.py:17 links.py:26
msgid "revoke"
msgstr "revocar"
#: links.py:20
msgid "Default ACLs"
msgstr "LCA por defecto"
#: links.py:21
msgid "List of classes"
msgstr "Lista de clases"
#: links.py:22
msgid "ACLs for class"
msgstr "LCA para la clase"
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr "Acceso insuficiente."
#: models.py:25 models.py:67
msgid "permission"
msgstr "permiso"
#: models.py:51
msgid "access entry"
msgstr "entrada de acceso"
#: models.py:52
msgid "access entries"
msgstr "entradas de acceso"
#: models.py:88
msgid "default access entry"
msgstr "entrada de acceso por defecto"
#: models.py:89
msgid "default access entries"
msgstr "entradas de acceso por defecto"
#: models.py:108
msgid "Creator"
msgstr "Creador"
#: models.py:111 models.py:112
msgid "creator"
msgstr "creador"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Listas de control de acceso"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Editar LCA"
#: permissions.py:11
msgid "View ACLs"
msgstr "Ver LCA"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Editar LCA por defecto de la clase"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Ver LCA por defecto de la clase"
#: registry.py:10
#, fuzzy
msgid "ACL"
msgstr "LCA"
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "listas de control de acceso para: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "titular"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "permisos"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "permisos disponibles a: %(actor)s para %(obj)s "
#: views.py:104 views.py:442
msgid "namespace"
msgstr "espacio de nombres"
#: views.py:105 views.py:443
msgid "label"
msgstr "etiqueta"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "tiene permiso"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ", "
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr " para %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr " a %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "¿Está seguro que desea conceder el permiso %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "¿Está seguro que desea conceder los permisos de %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Permiso \"%(permission)s\" otorgado a %(actor)s para %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
"%(actor)s, ya tenía el permiso \"%(permission)s\", otorgado para %(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr " de %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "¿Está seguro que desea revocar el permiso %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr "¿Está seguro de querer revocar los permisos %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr "Permiso \"%(permission)s\" revocado del %(actor)s para %(object)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s, no tenía el permiso \"%(permission)s\" para %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "añadir nuevo titular para: %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Seleccionar"
#: views.py:386
msgid "classes"
msgstr "clases"
#: views.py:388
msgid "class"
msgstr "clase"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "listas de control de acceso por defecto para la clase: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "permisos disponibles para: %(actor)s para la clase %(class)s "
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "añadir nuevo titular para la clase: %s"

View File

@@ -1,258 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Pierre Lhoste <peter.cathbad.host@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-07-28 15:20+0000\n"
"Last-Translator: Pierre Lhoste <peter.cathbad.host@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/projects/p/mayan-edms/"
"language/fr/)\n"
"Language: fr\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"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr "Nouveau détenteur"
#: forms.py:38
msgid "Users"
msgstr "Utilisateurs"
#: forms.py:41
msgid "Groups"
msgstr "Groupes"
#: forms.py:44
msgid "Roles"
msgstr "Rôles"
#: forms.py:47
msgid "Special"
msgstr "Spécial"
#: links.py:14
msgid "ACLs"
msgstr "ACLs"
#: links.py:15 links.py:23
msgid "details"
msgstr "détails"
#: links.py:16 links.py:25
msgid "grant"
msgstr "autoriser"
#: links.py:17 links.py:26
msgid "revoke"
msgstr "révoquer"
#: links.py:20
msgid "Default ACLs"
msgstr "ACLs par défaut"
#: links.py:21
msgid "List of classes"
msgstr "Liste des classes"
#: links.py:22
msgid "ACLs for class"
msgstr "ACLs pour la classe"
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr "Autorisations insuffisantes."
#: models.py:25 models.py:67
msgid "permission"
msgstr "autorisation"
#: models.py:51
msgid "access entry"
msgstr "autorisation d'accès"
#: models.py:52
msgid "access entries"
msgstr "autorisations d'accès"
#: models.py:88
msgid "default access entry"
msgstr "autorisation d'accès par défaut"
#: models.py:89
msgid "default access entries"
msgstr "autorisations d'accès par défaut"
#: models.py:108
msgid "Creator"
msgstr "Créateur"
#: models.py:111 models.py:112
msgid "creator"
msgstr "créateur"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Listes de contrôle d'accès (ACL)"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Modifier ACLs"
#: permissions.py:11
msgid "View ACLs"
msgstr "Afficher ACLs"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Modifier ACLs par défaut"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Afficher ACLs par défaut pour la classe"
#: registry.py:10
#, fuzzy
msgid "ACL"
msgstr "ACLs"
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "Liste de contrôle d'accès (ACL) pour: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "détenteur"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "autorisations"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "autorisations pour: %(actor)s for %(obj)s"
#: views.py:104 views.py:442
msgid "namespace"
msgstr "espace de nommage"
#: views.py:105 views.py:443
msgid "label"
msgstr "label"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "autorisation accordée "
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ","
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr "à %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr "sur %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
"Êtes vous certain de vouloir attribuer l'autorisation %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
"Êtes vous certain de vouloir attribuer les autorisations %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Autorisation \"%(permission)s\" accordée à %(actor)s sur %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
"%(actor)s, dispose déjà de l'autorisation \"%(permission)s\" accordée sur "
"%(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr "de %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "Êtes vous certain de vouloir révoquer l'autorisation %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
"Êtes vous certain de vouloir révoquer les autorisations %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
"Autorisation \"%(permission)s\" révoquée pour %(actor)s sur %(object)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s, n'a pas l'autorisation \"%(permission)s\" sur %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "ajouter un nouveau détenteur pour: %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Sélectionner"
#: views.py:386
msgid "classes"
msgstr "classes"
#: views.py:388
msgid "class"
msgstr "classe"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "liste de contrôle d'accès (ACL) par défaut pour: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "autorisations attribuées à: %(actor)s sur la classe %(class)s"
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "ajouter un nouveau détenteur sur la classe: %s"

View File

@@ -1,254 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Carlo Zanatto <>, 2012.
# Pierpaolo Baldan <pierpaolo.baldan@gmail.com>, 2012.
# Roberto Rosario <roberto.rosario.gonzalez@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-06-08 07:20+0000\n"
"Last-Translator: Carlo Zanatto <>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/mayan-edms/"
"language/it/)\n"
"Language: it\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"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr "Nuovo titolare"
#: forms.py:38
msgid "Users"
msgstr "Utenti"
#: forms.py:41
msgid "Groups"
msgstr "Gruppi"
#: forms.py:44
msgid "Roles"
msgstr "Ruoli"
#: forms.py:47
msgid "Special"
msgstr "Speciale"
#: links.py:14
msgid "ACLs"
msgstr "ACL"
#: links.py:15 links.py:23
msgid "details"
msgstr "dettagli"
#: links.py:16 links.py:25
msgid "grant"
msgstr "permetti"
#: links.py:17 links.py:26
msgid "revoke"
msgstr "revocare"
#: links.py:20
msgid "Default ACLs"
msgstr "Default ACL"
#: links.py:21
msgid "List of classes"
msgstr "Elenco delle classi"
#: links.py:22
msgid "ACLs for class"
msgstr "ACL per la classe"
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr "Accesso insufficiente."
#: models.py:25 models.py:67
msgid "permission"
msgstr "autorizzazione"
#: models.py:51
msgid "access entry"
msgstr "voce di accesso"
#: models.py:52
msgid "access entries"
msgstr "voci di accesso"
#: models.py:88
msgid "default access entry"
msgstr "accesso voce predefinita"
#: models.py:89
msgid "default access entries"
msgstr "voci di accesso predefinite "
#: models.py:108
msgid "Creator"
msgstr "Creatore"
#: models.py:111 models.py:112
msgid "creator"
msgstr "creatore"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Liste di controllo accessi"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Modifica ACL"
#: permissions.py:11
msgid "View ACLs"
msgstr "Visualizza ACL"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Modifica ACL predefiniti di classe"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Visualizza classi ACL predefinite"
#: registry.py:10
#, fuzzy
msgid "ACL"
msgstr "ACL"
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "lista controllo accessi per: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "titolare"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "le autorizzazioni"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "autorizzazioni disponibili per: %(actor)s per %(obj)s "
#: views.py:104 views.py:442
msgid "namespace"
msgstr "namespace"
#: views.py:105 views.py:443
msgid "label"
msgstr "etichetta"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "ha l'autorizzazione"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ", "
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr "per %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr "a %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "Sei sicuro di voler concedere l'autorizzazione %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "Sei sicuro di voler concedere permessi %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Permesso \"%(permission)s\" concesso%(actor)s per %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr "%(actor)s, ha già i permessi\"%(permission)s\" concessi per%(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr "da %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "Sei sicuro di voler revocare l'autorizzazione %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr "Sei sicuro di voler revocare permessi %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr "Permessi \"%(permission)s\" revocati al %(actor)s per %(object)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s, non ha i permessi\"%(permission)s\" per %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "aggiungi nuovo titolare per: %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Selezionare"
#: views.py:386
msgid "classes"
msgstr "classi"
#: views.py:388
msgid "class"
msgstr "classe"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "lista di default per il controllo accessi per la classe: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "permessi disponibili per: %(actor)s per la classe %(class)s"
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "aggiungi un nuovo titolare per la calsse: %s"

View File

@@ -1,250 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
"mayan-edms/language/nl_NL/)\n"
"Language: nl_NL\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"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: links.py:14
msgid "ACLs"
msgstr ""
#: links.py:15 links.py:23
msgid "details"
msgstr ""
#: links.py:16 links.py:25
msgid "grant"
msgstr ""
#: links.py:17 links.py:26
msgid "revoke"
msgstr ""
#: links.py:20
msgid "Default ACLs"
msgstr ""
#: links.py:21
msgid "List of classes"
msgstr ""
#: links.py:22
msgid "ACLs for class"
msgstr ""
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: registry.py:10
msgid "ACL"
msgstr ""
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

View File

@@ -1,251 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Polish (http://www.transifex.com/projects/p/mayan-edms/"
"language/pl/)\n"
"Language: pl\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==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: links.py:14
msgid "ACLs"
msgstr ""
#: links.py:15 links.py:23
msgid "details"
msgstr ""
#: links.py:16 links.py:25
msgid "grant"
msgstr ""
#: links.py:17 links.py:26
msgid "revoke"
msgstr ""
#: links.py:20
msgid "Default ACLs"
msgstr ""
#: links.py:21
msgid "List of classes"
msgstr ""
#: links.py:22
msgid "ACLs for class"
msgstr ""
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: registry.py:10
msgid "ACL"
msgstr ""
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

View File

@@ -1,252 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Vítor Figueiró <vfigueiro@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-07-03 19:01+0000\n"
"Last-Translator: Vítor Figueiró <vfigueiro@gmail.com>\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/mayan-edms/"
"language/pt/)\n"
"Language: pt\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"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr "Novo detentor"
#: forms.py:38
msgid "Users"
msgstr "Utilizadores"
#: forms.py:41
msgid "Groups"
msgstr "Grupos"
#: forms.py:44
msgid "Roles"
msgstr "Funções"
#: forms.py:47
msgid "Special"
msgstr "Especial"
#: links.py:14
msgid "ACLs"
msgstr "ACL's"
#: links.py:15 links.py:23
msgid "details"
msgstr "detalhes"
#: links.py:16 links.py:25
msgid "grant"
msgstr "conceder"
#: links.py:17 links.py:26
msgid "revoke"
msgstr "revogar"
#: links.py:20
msgid "Default ACLs"
msgstr "ACL's padrão"
#: links.py:21
msgid "List of classes"
msgstr "Lista de classes"
#: links.py:22
msgid "ACLs for class"
msgstr "ACL's para a classe"
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr "Acesso insuficiente."
#: models.py:25 models.py:67
msgid "permission"
msgstr "permissão"
#: models.py:51
msgid "access entry"
msgstr "entrada de acesso"
#: models.py:52
msgid "access entries"
msgstr "entradas de acesso"
#: models.py:88
msgid "default access entry"
msgstr "entrada de acesso padrão"
#: models.py:89
msgid "default access entries"
msgstr "entradas de acesso padrão"
#: models.py:108
msgid "Creator"
msgstr "Criador"
#: models.py:111 models.py:112
msgid "creator"
msgstr "criador"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Listas de controlo de acesso"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Editar ACL's"
#: permissions.py:11
msgid "View ACLs"
msgstr "Ver ACL's"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Editar os ACL's padrão da classe"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Ver os ACL's padrão da classe"
#: registry.py:10
#, fuzzy
msgid "ACL"
msgstr "ACL's"
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "listas de controlo de acesso para: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "detentor"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "permissões"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "permissões disponíveis para: %(actor)s para %(obj)s"
#: views.py:104 views.py:442
msgid "namespace"
msgstr "escopo"
#: views.py:105 views.py:443
msgid "label"
msgstr "rótulo"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "tem a permissão"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ", "
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr " para %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr " a %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "Tem a certeza de que pretende conceder a permissão %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "Tem a certeza de que pretende conceder as permissões %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Permissão \"%(permission)s\" concedida a %(actor)s para %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr "%(actor)s, já possuia a permissão \"%(permission)s\" para %(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr " de %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "Tem a certeza de que pretende revogar a permissão %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr "Tem a certeza de que pretende revogar as permissões %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr "Permissão \"%(permission)s\" revogada para %(actor)s para %(object)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s, não tinha a permissão \"%(permission)s\" para %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "adicionar novo detentor para: %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Selecionar"
#: views.py:386
msgid "classes"
msgstr "classes"
#: views.py:388
msgid "class"
msgstr "classe"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "Listas de controlo de acesso padrão para a classe: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "permissões disponíveis para: %(actor)s para a classe %(class)s"
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "adicionar novo detentor para a classe: %s"

View File

@@ -1,250 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
"mayan-edms/language/pt_BR/)\n"
"Language: pt_BR\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"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: links.py:14
msgid "ACLs"
msgstr ""
#: links.py:15 links.py:23
msgid "details"
msgstr ""
#: links.py:16 links.py:25
msgid "grant"
msgstr ""
#: links.py:17 links.py:26
msgid "revoke"
msgstr ""
#: links.py:20
msgid "Default ACLs"
msgstr ""
#: links.py:21
msgid "List of classes"
msgstr ""
#: links.py:22
msgid "ACLs for class"
msgstr ""
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: registry.py:10
msgid "ACL"
msgstr ""
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

View File

@@ -1,253 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Sergey Glita <gsv70@mail.ru>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-02-27 04:26+0000\n"
"Last-Translator: Sergey Glita <gsv70@mail.ru>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/mayan-edms/"
"language/ru/)\n"
"Language: ru\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"
#: forms.py:21 links.py:18 links.py:24
msgid "New holder"
msgstr "Новый владелец"
#: forms.py:38
msgid "Users"
msgstr "Пользователи"
#: forms.py:41
msgid "Groups"
msgstr "Группы"
#: forms.py:44
msgid "Roles"
msgstr "Роли"
#: forms.py:47
msgid "Special"
msgstr "Специальный"
#: links.py:14
msgid "ACLs"
msgstr "Списки ACL"
#: links.py:15 links.py:23
msgid "details"
msgstr "детали"
#: links.py:16 links.py:25
msgid "grant"
msgstr "предоставить"
#: links.py:17 links.py:26
msgid "revoke"
msgstr "отозвать"
#: links.py:20
msgid "Default ACLs"
msgstr "ACL по умолчанию"
#: links.py:21
msgid "List of classes"
msgstr "Список классов"
#: links.py:22
msgid "ACLs for class"
msgstr "ACL для класса"
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr "Недостаточный доступ."
#: models.py:25 models.py:67
msgid "permission"
msgstr "разрешение"
#: models.py:51
msgid "access entry"
msgstr "запись доступа"
#: models.py:52
msgid "access entries"
msgstr "записи доступа"
#: models.py:88
msgid "default access entry"
msgstr "запись доступа по умолчанию"
#: models.py:89
msgid "default access entries"
msgstr "записи доступа по умолчанию"
#: models.py:108
msgid "Creator"
msgstr "Создатель"
#: models.py:111 models.py:112
msgid "creator"
msgstr "создатель"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Списки контроля доступа"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Редактировать списки ACL"
#: permissions.py:11
msgid "View ACLs"
msgstr "Просмотр списков ACL"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Редактировать списки ACL класса по умолчанию"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Просмотр списков ACL класса по умолчанию"
#: registry.py:10
#, fuzzy
msgid "ACL"
msgstr "Списки ACL"
#: registry.py:11
msgid "Handles object level access control."
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "списки контроля доступа для %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "владелец"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "разрешения"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "разрешения, доступные %(actor)s для %(obj)s"
#: views.py:104 views.py:442
msgid "namespace"
msgstr "пространство имен"
#: views.py:105 views.py:443
msgid "label"
msgstr "этикетка"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "имеет разрешение"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ","
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr "для %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr "до %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "Вы действительно хотите предоставить разрешение %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "Вы уверены, что хотите предоставить разрешения %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Право \"%(permission)s\" проедоставлено %(actor)s для %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr "%(actor)s, уже имеет право \"%(permission)s\" для %(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr "от%s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "Вы уверены, что хотите отменить разрешение %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr "Вы уверены, что хотите отменить разрешение %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr "Право \"%(permission)s\" для %(object)s отозвано у %(actor)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s не имеет права \"%(permission)s\" для %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "добавить нового владельца для %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Выбор"
#: views.py:386
msgid "classes"
msgstr "классы"
#: views.py:388
msgid "class"
msgstr "класс"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "списки контроля доступа умолчанию для класса %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "разрешения доступные %(actor)s для класса %(class)s"
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "добавить нового владельца для класса %s"

View File

@@ -1,241 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n"
"POT-Creation-Date: 2012-12-12 01:48-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/projects/p/mayan-edms/language/sl_SI/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sl_SI\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#: __init__.py:14
msgid "ACLs"
msgstr ""
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr ""
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr ""
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr ""
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr ""
#: __init__.py:20
msgid "Default ACLs"
msgstr ""
#: __init__.py:21
msgid "List of classes"
msgstr ""
#: __init__.py:22
msgid "ACLs for class"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

View File

@@ -1,331 +0,0 @@
from __future__ import absolute_import
import logging
from django.db import models
from django.utils.translation import ugettext
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth.models import User
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
from django.db.models import Q
from common.models import AnonymousUserSingleton
from common.classes import get_source_object
from permissions.models import Permission, RoleMember
from .classes import AccessHolder, ClassAccessHolder
logger = logging.getLogger(__name__)
class AccessEntryManager(models.Manager):
"""
Implement a 3 tier permission system, involving a permissions, an actor
and an object
"""
def grant(self, permission, actor, obj):
"""
Grant a permission (what), (to) an actor, (on) a specific object
"""
obj = get_source_object(obj)
actor = get_source_object(actor)
access_entry, created = self.model.objects.get_or_create(
permission=permission,
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=ContentType.objects.get_for_model(obj),
object_id=obj.pk
)
return created
def revoke(self, permission, actor, obj):
"""
Revoke a permission (what), (from) an actor, (on) a specific object
"""
obj = get_source_object(obj)
actor = get_source_object(actor)
try:
access_entry = self.model.objects.get(
permission=permission,
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=ContentType.objects.get_for_model(obj),
object_id=obj.pk
)
except self.model.DoesNotExist:
return False
else:
access_entry.delete()
return True
def has_access(self, permission, actor, obj, db_only=False):
"""
Returns whether an actor has a specific permission for an object
"""
obj = get_source_object(obj)
actor = get_source_object(actor)
if isinstance(actor, User) and db_only == False:
# db_only causes the return of only the stored permissions
# and not the perceived permissions for an actor
if actor.is_superuser or actor.is_staff:
return True
actor = AnonymousUserSingleton.objects.passthru_check(actor)
try:
content_type = ContentType.objects.get_for_model(obj)
except AttributeError:
# Object doesn't have a content type, therefore allow access
return True
try:
self.model.objects.get(
permission=permission.get_stored_permission(),
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=content_type,
object_id=obj.pk
)
except self.model.DoesNotExist:
# If not check if the actor's memberships is one of
# the access's holder?
roles = RoleMember.objects.get_roles_for_member(actor)
if isinstance(actor, User):
groups = actor.groups.all()
else:
groups = []
for membership in list(set(roles) | set(groups)):
if self.has_access(permission, membership, obj, db_only):
return True
logger.debug('Fallthru')
return False
else:
return True
def check_access(self, permission, actor, obj):
# TODO: Merge with has_access
obj = get_source_object(obj)
actor = get_source_object(actor)
if self.has_access(permission, actor, obj):
return True
else:
raise PermissionDenied(ugettext(u'Insufficient access.'))
def check_accesses(self, permission_list, actor, obj):
"""
Returns whether an actor has at least one of a list of permissions for an object
"""
obj = get_source_object(obj)
actor = get_source_object(actor)
for permission in permission_list:
if self.has_access(permission, actor, obj):
return True
raise PermissionDenied(ugettext(u'Insufficient access.'))
def get_allowed_class_objects(self, permission, actor, cls, related=None):
logger.debug('related: %s' % related)
actor = AnonymousUserSingleton.objects.passthru_check(actor)
actor_type = ContentType.objects.get_for_model(actor)
content_type = ContentType.objects.get_for_model(cls)
# Calculate actor role membership ACL query
total_queries = Q()
for role in RoleMember.objects.get_roles_for_member(actor):
role_type = ContentType.objects.get_for_model(role)
if related:
query = Q(holder_type=role_type, holder_id=role.pk, permission=permission.get_stored_permission)
else:
query = Q(holder_type=role_type, holder_id=role.pk, content_type=content_type, permission=permission.get_stored_permission)
if not total_queries:
total_queries = query
else:
total_queries = total_queries | query
# Calculate actor group membership ACL query
if isinstance(actor, User):
groups = actor.groups.all()
else:
groups = []
for group in groups:
group_type = ContentType.objects.get_for_model(group)
if related:
query = Q(holder_type=group_type, holder_id=group.pk, permission=permission.get_stored_permission)
else:
query = Q(holder_type=group_type, holder_id=group.pk, content_type=content_type, permission=permission.get_stored_permission)
if not total_queries:
total_queries = query
else:
total_queries = total_queries | query
if related:
actor_query = Q(holder_type=actor_type, holder_id=actor.pk, permission=permission.get_stored_permission)
master_list = [obj.content_object for obj in self.model.objects.select_related().filter(actor_query | total_queries)]
logger.debug('master_list: %s' % master_list)
# TODO: update to use Q objects and check performance diff
# kwargs = {'%s__in' % related: master_list}
# Q(**kwargs)
return (obj for obj in cls.objects.all() if getattr(obj, related) in master_list)
else:
actor_query = Q(holder_type=actor_type, holder_id=actor.pk, content_type=content_type, permission=permission.get_stored_permission)
return (obj.content_object for obj in self.model.objects.filter(actor_query | total_queries))
def get_acl_url(self, obj):
content_type = ContentType.objects.get_for_model(obj)
return reverse('acl_list', args=[content_type.app_label, content_type.model, obj.pk])
def get_new_holder_url(self, obj):
content_type = ContentType.objects.get_for_model(obj)
return reverse('acl_new_holder_for', args=[content_type.app_label, content_type.model, obj.pk])
def get_holders_for(self, obj):
content_type = ContentType.objects.get_for_model(obj)
holder_list = []
for access_entry in self.model.objects.filter(content_type=content_type, object_id=obj.pk):
if access_entry.holder_object:
# Don't add references to non existant content type objects
entry = AccessHolder.encapsulate(access_entry.holder_object)
if entry not in holder_list:
holder_list.append(entry)
return holder_list
def get_holder_permissions_for(self, obj, actor, db_only=False):
"""
Returns a list of actors that hold at least one permission for
a specific object
"""
logger.debug('obj: %s' % obj)
logger.debug('actor: %s' % actor)
if isinstance(actor, User) and db_only == False:
if actor.is_superuser or actor.is_staff:
return Permission.objects.all()
actor_type = ContentType.objects.get_for_model(actor)
content_type = ContentType.objects.get_for_model(obj)
return (access.permission for access in self.model.objects.filter(content_type=content_type, object_id=obj.pk, holder_type=actor_type, holder_id=actor.pk))
def filter_objects_by_access(self, permission, actor, object_list, exception_on_empty=False, related=None):
"""
Filter a list of objects or a QuerySet elements depending on
whether the actor holds the specified permission
"""
logger.debug('exception_on_empty: %s' % exception_on_empty)
logger.debug('object_list: %s' % object_list)
if isinstance(actor, User):
if actor.is_superuser or actor.is_staff:
return object_list
try:
if object_list.count() == 0:
return object_list
except TypeError:
# object_list is not a queryset
if len(object_list) == 0:
return object_list
try:
# Try to process as a QuerySet
qs = object_list.filter(pk__in=[obj.pk for obj in self.get_allowed_class_objects(permission, actor, object_list[0].__class__, related)])
logger.debug('qs: %s' % qs)
if qs.count() == 0 and exception_on_empty == True:
raise PermissionDenied
return qs
except AttributeError:
# Fallback to a filtered list
object_list = list(set(object_list) & set(self.get_allowed_class_objects(permission, actor, object_list[0].__class__, related)))
logger.debug('object_list: %s' % object_list)
if len(object_list) == 0 and exception_on_empty == True:
raise PermissionDenied
return object_list
class DefaultAccessEntryManager(models.Manager):
"""
Implement a 3 tier permission system, involving a permission, an actor
and a class or content type. This model keeps track of the access
control lists that will be added when an instance of the recorded
content type is created.
"""
def get_holders_for(self, cls):
cls = get_source_object(cls)
content_type = ContentType.objects.get_for_model(cls)
holder_list = []
for access_entry in self.model.objects.filter(content_type=content_type):
if access_entry.holder_object:
# Don't add references to non existant content type objects
entry = ClassAccessHolder.encapsulate(access_entry.holder_object)
if entry not in holder_list:
holder_list.append(entry)
return holder_list
def has_access(self, permission, actor, cls):
if isinstance(actor, User):
if actor.is_superuser or actor.is_staff:
return True
try:
self.model.objects.get(
permission=permission.get_stored_permission(),
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=ContentType.objects.get_for_model(cls),
)
except self.model.DoesNotExist:
return False
else:
return True
def grant(self, permission, actor, cls):
"""
Grant a permission (what), (to) an actor, (on) a specific class
"""
access_entry, created = self.model.objects.get_or_create(
permission=permission,
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=ContentType.objects.get_for_model(cls),
)
return created
def revoke(self, permission, actor, cls):
"""
Revoke a permission (what), (from) an actor, (on) a specific class
"""
try:
access_entry = self.model.objects.get(
permission=permission,
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=ContentType.objects.get_for_model(cls),
)
access_entry.delete()
return True
except self.model.DoesNotExist:
return False
def get_holder_permissions_for(self, cls, actor):
if isinstance(actor, User):
if actor.is_superuser or actor.is_staff:
return Permission.objects.all()
actor_type = ContentType.objects.get_for_model(actor)
content_type = ContentType.objects.get_for_model(cls)
return [access.permission for access in self.model.objects.filter(content_type=content_type, holder_type=actor_type, holder_id=actor.pk)]

View File

@@ -1,89 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'AccessEntry'
db.create_table('acls_accessentry', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('permission', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['permissions.StoredPermission'])),
('holder_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='access_holder', to=orm['contenttypes.ContentType'])),
('holder_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
('content_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='object_content_type', to=orm['contenttypes.ContentType'])),
('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
))
db.send_create_signal('acls', ['AccessEntry'])
# Adding model 'DefaultAccessEntry'
db.create_table('acls_defaultaccessentry', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('permission', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['permissions.StoredPermission'])),
('holder_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='default_access_entry_holder', to=orm['contenttypes.ContentType'])),
('holder_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
('content_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='default_access_entry_class', to=orm['contenttypes.ContentType'])),
))
db.send_create_signal('acls', ['DefaultAccessEntry'])
# Adding model 'CreatorSingleton'
db.create_table('acls_creatorsingleton', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('lock_id', self.gf('django.db.models.fields.CharField')(default=1, unique=True, max_length=1)),
))
db.send_create_signal('acls', ['CreatorSingleton'])
def backwards(self, orm):
# Deleting model 'AccessEntry'
db.delete_table('acls_accessentry')
# Deleting model 'DefaultAccessEntry'
db.delete_table('acls_defaultaccessentry')
# Deleting model 'CreatorSingleton'
db.delete_table('acls_creatorsingleton')
models = {
'acls.accessentry': {
'Meta': {'object_name': 'AccessEntry'},
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'object_content_type'", 'to': "orm['contenttypes.ContentType']"}),
'holder_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'holder_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'access_holder'", 'to': "orm['contenttypes.ContentType']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'permission': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['permissions.StoredPermission']"})
},
'acls.creatorsingleton': {
'Meta': {'object_name': 'CreatorSingleton'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'lock_id': ('django.db.models.fields.CharField', [], {'default': '1', 'unique': 'True', 'max_length': '1'})
},
'acls.defaultaccessentry': {
'Meta': {'object_name': 'DefaultAccessEntry'},
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_access_entry_class'", 'to': "orm['contenttypes.ContentType']"}),
'holder_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'holder_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_access_entry_holder'", 'to': "orm['contenttypes.ContentType']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'permission': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['permissions.StoredPermission']"})
},
'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
'permissions.storedpermission': {
'Meta': {'ordering': "('namespace',)", 'unique_together': "(('namespace', 'name'),)", 'object_name': 'StoredPermission'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
'namespace': ('django.db.models.fields.CharField', [], {'max_length': '64'})
}
}
complete_apps = ['acls']

View File

@@ -1,112 +0,0 @@
from __future__ import absolute_import
import logging
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
from permissions.models import StoredPermission
from common.models import Singleton, SingletonManager
from .managers import AccessEntryManager, DefaultAccessEntryManager
from .classes import AccessObjectClass
from .api import get_classes
logger = logging.getLogger(__name__)
class AccessEntry(models.Model):
"""
Model that hold the permission, object, actor relationship
"""
permission = models.ForeignKey(StoredPermission, verbose_name=_(u'permission'))
holder_type = models.ForeignKey(
ContentType,
related_name='access_holder',
limit_choices_to={'model__in': ('user', 'group', 'role')}
)
holder_id = models.PositiveIntegerField()
holder_object = generic.GenericForeignKey(
ct_field='holder_type',
fk_field='holder_id'
)
content_type = models.ForeignKey(
ContentType,
related_name='object_content_type'
)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey(
ct_field='content_type',
fk_field='object_id'
)
objects = AccessEntryManager()
class Meta:
verbose_name = _(u'access entry')
verbose_name_plural = _(u'access entries')
def __unicode__(self):
return u'%s: %s' % (self.content_type, self.content_object)
class DefaultAccessEntry(models.Model):
"""
Model that holds the permission, class, actor relationship, that will
be added upon the creation of an instance of said class
"""
@classmethod
def get_classes(cls):
return [AccessObjectClass.encapsulate(cls) for cls in get_classes()]
permission = models.ForeignKey(StoredPermission, verbose_name=_(u'permission'))
holder_type = models.ForeignKey(
ContentType,
limit_choices_to={'model__in': ('user', 'group', 'role')},
related_name='default_access_entry_holder'
)
holder_id = models.PositiveIntegerField()
holder_object = generic.GenericForeignKey(
ct_field='holder_type',
fk_field='holder_id'
)
content_type = models.ForeignKey(
ContentType,
related_name='default_access_entry_class'
)
objects = DefaultAccessEntryManager()
class Meta:
verbose_name = _(u'default access entry')
verbose_name_plural = _(u'default access entries')
def __unicode__(self):
return u'%s: %s' % (self.content_type, self.content_object)
class CreatorSingletonManager(SingletonManager):
def passthru_check(self, holder, creator=None):
if isinstance(holder, self.model):
# TODO: raise explicit error if is instance and creator=None
return creator
else:
return holder
class CreatorSingleton(Singleton):
objects = CreatorSingletonManager()
def __unicode__(self):
return ugettext('Creator')
class Meta:
verbose_name = _(u'creator')
verbose_name_plural = _(u'creator')

View File

@@ -1,14 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from permissions.models import PermissionNamespace, Permission
acls_namespace = PermissionNamespace('acls', _(u'Access control lists'))
acls_setup_namespace = PermissionNamespace('acls_setup', _(u'Access control lists'))
ACLS_EDIT_ACL = Permission.objects.register(acls_namespace, 'acl_edit', _(u'Edit ACLs'))
ACLS_VIEW_ACL = Permission.objects.register(acls_namespace, 'acl_view', _(u'View ACLs'))
ACLS_CLASS_EDIT_ACL = Permission.objects.register(acls_setup_namespace, 'acl_class_edit', _(u'Edit class default ACLs'))
ACLS_CLASS_VIEW_ACL = Permission.objects.register(acls_setup_namespace, 'acl_class_view', _(u'View class default ACLs'))

View File

@@ -1,20 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from .cleanup import cleanup
from .icons import icon_acl_app
from .links import acl_setup_valid_classes
name = 'acls'
label = _(u'ACL')
description = _(u'Handles object level access control.')
icon = icon_acl_app
setup_links = [acl_setup_valid_classes]
dependencies = ['app_registry', 'permissions', 'navigation']
bootstrap_models = [
{
'name': 'defaultaccessentry',
},
]
cleanup_functions = [cleanup]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,71 +0,0 @@
import logging
from django.core.exceptions import PermissionDenied
from django.template import (TemplateSyntaxError, Library,
Node, Variable, VariableDoesNotExist)
from acls.models import AccessEntry
register = Library()
logger = logging.getLogger(__name__)
class CheckAccessNode(Node):
def __init__(self, permission_list=None, requester=None, obj=None, *args, **kwargs):
self.requester = requester
self.permission_list = permission_list
self.obj = obj
def render(self, context):
permission_list = Variable(self.permission_list).resolve(context)
logger.debug('permission_list: %s' % u','.join([unicode(p) for p in permission_list]))
try:
# Check access_object, useful for document_page views
obj = Variable('access_object').resolve(context)
logger.debug('access_object: %s' % obj)
except VariableDoesNotExist:
try:
obj = Variable(self.obj).resolve(context)
logger.debug('obj: %s' % obj)
except VariableDoesNotExist:
context[u'access'] = False
logger.debug('no obj, access False')
return u''
if not permission_list:
# There is no permissions list to check against which means
# this link is available for all
context[u'access'] = True
return u''
requester = Variable(self.requester).resolve(context)
logger.debug('requester: %s' % requester)
if obj:
try:
AccessEntry.objects.check_accesses(permission_list, requester, obj)
except PermissionDenied:
context[u'access'] = False
logger.debug('access: False')
return u''
else:
context[u'access'] = True
logger.debug('access: True')
return u''
else:
context[u'access'] = False
logger.debug('No object, access: False')
return u''
@register.tag
def check_access(parser, token):
try:
# Splitting by None == splitting by spaces.
tag_name, args = token.contents.split(None, 1)
except ValueError:
raise TemplateSyntaxError(u'%r tag requires arguments' % token.contents.split()[0])
return CheckAccessNode(*args.split())

View File

@@ -1,20 +0,0 @@
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('acls.views',
url(r'^new_holder_for/(?P<app_label>[-\w]+)/(?P<model_name>[-\w]+)/(?P<object_id>\d+)/$', 'acl_new_holder_for', (), 'acl_new_holder_for'),
url(r'^list_for/(?P<app_label>[-\w]+)/(?P<model_name>[-\w]+)/(?P<object_id>\d+)/$', 'acl_list', (), 'acl_list'),
url(r'^details/(?P<access_object_gid>[.\w]+)/holder/(?P<holder_object_gid>[.\w]+)/$', 'acl_detail', (), 'acl_detail'),
url(r'^holder/new/(?P<access_object_gid>[.\w]+)/$', 'acl_holder_new', (), 'acl_holder_new'),
url(r'^multiple/grant/$', 'acl_grant', (), 'acl_multiple_grant'),
url(r'^multiple/revoke/$', 'acl_revoke', (), 'acl_multiple_revoke'),
url(r'^class/$', 'acl_setup_valid_classes', (), 'acl_setup_valid_classes'),
url(r'^class/details/(?P<access_object_class_gid>[.\w]+)/holder/(?P<holder_object_gid>[.\w]+)/$', 'acl_class_acl_detail', (), 'acl_class_acl_detail'),
url(r'^class/list_for/(?P<access_object_class_gid>[.\w]+)/$', 'acl_class_acl_list', (), 'acl_class_acl_list'),
url(r'^class/holder/new/(?P<access_object_class_gid>[.\w]+)/$', 'acl_class_new_holder_for', (), 'acl_class_new_holder_for'),
url(r'^class/multiple/grant/$', 'acl_class_multiple_grant', (), 'acl_class_multiple_grant'),
url(r'^class/multiple/revoke/$', 'acl_class_multiple_revoke', (), 'acl_class_multiple_revoke'),
)

View File

@@ -1,34 +0,0 @@
from __future__ import absolute_import
import logging
from django.contrib.contenttypes.models import ContentType
from common.classes import get_source_object
from common.models import AnonymousUserSingleton
from .models import AccessEntry, DefaultAccessEntry, CreatorSingleton
logger = logging.getLogger(__name__)
def apply_default_acls(obj, actor=None):
logger.debug('actor, init: %s' % actor)
obj = get_source_object(obj)
if actor:
actor = AnonymousUserSingleton.objects.passthru_check(actor)
content_type = ContentType.objects.get_for_model(obj)
for default_acl in DefaultAccessEntry.objects.filter(content_type=content_type):
holder = CreatorSingleton.objects.passthru_check(default_acl.holder_object, actor)
if holder:
# When the creator is admin
access_entry = AccessEntry(
permission=default_acl.permission,
holder_object=holder,
content_object=obj,
)
access_entry.save()

File diff suppressed because it is too large Load Diff

View File

@@ -1,27 +0,0 @@
from __future__ import absolute_import
from django.utils.safestring import mark_safe
from django.contrib.contenttypes.models import ContentType
from django.db.models.base import ModelBase
from django.template.defaultfilters import capfirst
from .literals import CONTENT_TYPE_ICON_MAP
def content_type_icon(content_type):
return mark_safe(u'<span class="famfam active famfam-%s"></span>' % CONTENT_TYPE_ICON_MAP.get('%s.%s' % (content_type.app_label, content_type.model), 'help'))
def object_w_content_type_icon(obj):
content_type = ContentType.objects.get_for_model(obj)
ct_fullname = '%s.%s' % (content_type.app_label, content_type.name)
if isinstance(obj, ModelBase):
label = getattr(obj._meta, 'verbose_name_plural', unicode(content_type))
else:
if ct_fullname == 'auth.user':
label = obj.get_full_name()
else:
label = unicode(obj)
return mark_safe('%s<span>%s</span>' % (content_type_icon(content_type), capfirst(label)))

View File

@@ -1,23 +0,0 @@
from __future__ import absolute_import
import logging
from django.conf import settings
from django.utils.importlib import import_module
from .models import App
logger = logging.getLogger(__name__)
def register_apps():
for app_name in settings.INSTALLED_APPS:
logger.debug('registering: %s' % app_name)
App.register(app_name)
try:
post_init = import_module('%s.post_init' % app_name)
except ImportError:
logger.debug('Unable to import post_init module from: %s' % app_name)
register_apps()

View File

@@ -1,6 +0,0 @@
from __future__ import absolute_import
from icons.literals import PLUGIN
from icons import Icon
icon_app = Icon(PLUGIN)

View File

@@ -1,10 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation import Link
from .icons import icon_app
app_registry_tool_link = Link(text=_(u'Apps'), view='app_list', icon=icon_app)#, permissions=[PERMISSION_BACKUP_JOB_VIEW])
app_list = Link(text=_(u'app list'), view='app_list', icon=icon_app)#, permissions=[PERMISSION_BACKUP_JOB_VIEW])

View File

@@ -1,32 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'App'
db.create_table('app_registry_app', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('name', self.gf('django.db.models.fields.CharField')(max_length=64)),
))
db.send_create_signal('app_registry', ['App'])
def backwards(self, orm):
# Deleting model 'App'
db.delete_table('app_registry_app')
models = {
'app_registry.app': {
'Meta': {'ordering': "('name',)", 'object_name': 'App'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '64'})
}
}
complete_apps = ['app_registry']

View File

@@ -1,37 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'App.icon'
db.add_column('app_registry_app', 'icon',
self.gf('django.db.models.fields.CharField')(default='', max_length=64, blank=True),
keep_default=False)
# Adding unique constraint on 'App', fields ['name']
db.create_unique('app_registry_app', ['name'])
def backwards(self, orm):
# Removing unique constraint on 'App', fields ['name']
db.delete_unique('app_registry_app', ['name'])
# Deleting field 'App.icon'
db.delete_column('app_registry_app', 'icon')
models = {
'app_registry.app': {
'Meta': {'ordering': "('name',)", 'object_name': 'App'},
'icon': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'})
}
}
complete_apps = ['app_registry']

View File

@@ -1,58 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'BackupJob'
db.create_table('app_registry_backupjob', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('name', self.gf('django.db.models.fields.CharField')(max_length=64)),
('enabled', self.gf('django.db.models.fields.BooleanField')(default=True)),
('begin_datetime', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2012, 8, 18, 0, 0))),
('storage_module_name', self.gf('django.db.models.fields.CharField')(max_length=32)),
('storage_arguments_json', self.gf('django.db.models.fields.TextField')(blank=True)),
))
db.send_create_signal('app_registry', ['BackupJob'])
# Adding M2M table for field apps on 'BackupJob'
db.create_table('app_registry_backupjob_apps', (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('backupjob', models.ForeignKey(orm['app_registry.backupjob'], null=False)),
('app', models.ForeignKey(orm['app_registry.app'], null=False))
))
db.create_unique('app_registry_backupjob_apps', ['backupjob_id', 'app_id'])
def backwards(self, orm):
# Deleting model 'BackupJob'
db.delete_table('app_registry_backupjob')
# Removing M2M table for field apps on 'BackupJob'
db.delete_table('app_registry_backupjob_apps')
models = {
'app_registry.app': {
'Meta': {'ordering': "('name',)", 'object_name': 'App'},
'icon': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'})
},
'app_registry.backupjob': {
'Meta': {'object_name': 'BackupJob'},
'apps': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['app_registry.App']", 'symmetrical': 'False'}),
'begin_datetime': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 8, 18, 0, 0)'}),
'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
'storage_arguments_json': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'storage_module_name': ('django.db.models.fields.CharField', [], {'max_length': '32'})
}
}
complete_apps = ['app_registry']

View File

@@ -1,45 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding M2M table for field dependencies on 'App'
db.create_table('app_registry_app_dependencies', (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('from_app', models.ForeignKey(orm['app_registry.app'], null=False)),
('to_app', models.ForeignKey(orm['app_registry.app'], null=False))
))
db.create_unique('app_registry_app_dependencies', ['from_app_id', 'to_app_id'])
def backwards(self, orm):
# Removing M2M table for field dependencies on 'App'
db.delete_table('app_registry_app_dependencies')
models = {
'app_registry.app': {
'Meta': {'ordering': "('name',)", 'object_name': 'App'},
'dependencies': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'dependencies_rel_+'", 'null': 'True', 'to': "orm['app_registry.App']"}),
'icon': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'})
},
'app_registry.backupjob': {
'Meta': {'object_name': 'BackupJob'},
'apps': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['app_registry.App']", 'symmetrical': 'False'}),
'begin_datetime': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 8, 18, 0, 0)'}),
'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
'storage_arguments_json': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'storage_module_name': ('django.db.models.fields.CharField', [], {'max_length': '32'})
}
}
complete_apps = ['app_registry']

View File

@@ -1,44 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Removing M2M table for field dependencies on 'App'
db.delete_table('app_registry_app_dependencies')
def backwards(self, orm):
# Adding M2M table for field dependencies on 'App'
db.create_table('app_registry_app_dependencies', (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('from_app', models.ForeignKey(orm['app_registry.app'], null=False)),
('to_app', models.ForeignKey(orm['app_registry.app'], null=False))
))
db.create_unique('app_registry_app_dependencies', ['from_app_id', 'to_app_id'])
models = {
'app_registry.app': {
'Meta': {'ordering': "('name',)", 'object_name': 'App'},
'icon': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'})
},
'app_registry.backupjob': {
'Meta': {'object_name': 'BackupJob'},
'apps': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['app_registry.App']", 'symmetrical': 'False'}),
'begin_datetime': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 8, 18, 0, 0)'}),
'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
'storage_arguments_json': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'storage_module_name': ('django.db.models.fields.CharField', [], {'max_length': '32'})
}
}
complete_apps = ['app_registry']

View File

@@ -1,45 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding M2M table for field dependencies on 'App'
db.create_table('app_registry_app_dependencies', (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('from_app', models.ForeignKey(orm['app_registry.app'], null=False)),
('to_app', models.ForeignKey(orm['app_registry.app'], null=False))
))
db.create_unique('app_registry_app_dependencies', ['from_app_id', 'to_app_id'])
def backwards(self, orm):
# Removing M2M table for field dependencies on 'App'
db.delete_table('app_registry_app_dependencies')
models = {
'app_registry.app': {
'Meta': {'ordering': "('name',)", 'object_name': 'App'},
'dependencies': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['app_registry.App']", 'null': 'True', 'blank': 'True'}),
'icon': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'})
},
'app_registry.backupjob': {
'Meta': {'object_name': 'BackupJob'},
'apps': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['app_registry.App']", 'symmetrical': 'False'}),
'begin_datetime': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 8, 18, 0, 0)'}),
'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
'storage_arguments_json': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'storage_module_name': ('django.db.models.fields.CharField', [], {'max_length': '32'})
}
}
complete_apps = ['app_registry']

View File

@@ -1,56 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Deleting model 'BackupJob'
db.delete_table('app_registry_backupjob')
# Removing M2M table for field apps on 'BackupJob'
db.delete_table('app_registry_backupjob_apps')
# Deleting field 'App.icon'
db.delete_column('app_registry_app', 'icon')
def backwards(self, orm):
# Adding model 'BackupJob'
db.create_table('app_registry_backupjob', (
('storage_arguments_json', self.gf('django.db.models.fields.TextField')(blank=True)),
('name', self.gf('django.db.models.fields.CharField')(max_length=64)),
('storage_module_name', self.gf('django.db.models.fields.CharField')(max_length=32)),
('begin_datetime', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2012, 8, 18, 0, 0))),
('enabled', self.gf('django.db.models.fields.BooleanField')(default=True)),
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
))
db.send_create_signal('app_registry', ['BackupJob'])
# Adding M2M table for field apps on 'BackupJob'
db.create_table('app_registry_backupjob_apps', (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('backupjob', models.ForeignKey(orm['app_registry.backupjob'], null=False)),
('app', models.ForeignKey(orm['app_registry.app'], null=False))
))
db.create_unique('app_registry_backupjob_apps', ['backupjob_id', 'app_id'])
# Adding field 'App.icon'
db.add_column('app_registry_app', 'icon',
self.gf('django.db.models.fields.CharField')(default='', max_length=64, blank=True),
keep_default=False)
models = {
'app_registry.app': {
'Meta': {'ordering': "('name',)", 'object_name': 'App'},
'dependencies': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['app_registry.App']", 'null': 'True', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'})
}
}
complete_apps = ['app_registry']

View File

@@ -1,115 +0,0 @@
from __future__ import absolute_import
import logging
import imp
import sys
from django.db import models
from django.db import DatabaseError, transaction
from django.utils.translation import ugettext_lazy as _
from django.utils.importlib import import_module
from common.models import TranslatableLabelMixin, LiveObjectMixin
from smart_settings import SettingsNamespace
from project_setup.api import register_setup
from project_tools.api import register_tool
from statistics.api import register_statistics
from navigation.api import register_top_menu
from bootstrap.classes import Cleanup, BootstrapModel
#from .classes import AppBackup, StorageModuleBase, Setting
logger = logging.getLogger(__name__)
class App(TranslatableLabelMixin, LiveObjectMixin, models.Model):
translatables = ['label', 'description', 'icon']
#class UnableToRegister(Exception):
# pass
name = models.CharField(max_length=64, verbose_name=_(u'name'), unique=True)
dependencies = models.ManyToManyField('self', verbose_name=_(u'dependencies'), symmetrical=False, blank=True, null=True)
#version
#top_urls
#namespace
@classmethod
@transaction.commit_on_success
def register(cls, app_name):
logger.debug('Trying to import: %s' % app_name)
try:
app_module = import_module(app_name)
except ImportError:
transaction.rollback
logger.debug('Unable to import app: %s' % app_name)
else:
logger.debug('Trying to import registry from: %s' % app_name)
try:
registration = import_module('%s.registry' % app_name)
except ImportError:
transaction.rollback
logger.debug('Unable to import registry for app: %s' % app_name)
else:
if not getattr(registration, 'disabled', False):
try:
app, created = App.objects.get_or_create(name=app_name)
except DatabaseError:
transaction.rollback()
# If database is not ready create a memory only app instance
app = App()
app.label = getattr(registration, 'label', app_name)
app.description = getattr(registration, 'description', u'')
else:
# If there are not error go ahead with the stored app instance
app.label = getattr(registration, 'label', app_name)
app.description = getattr(registration, 'description', u'')
app.dependencies.clear()
app.save()
for dependency_name in getattr(registration, 'dependencies', []):
dependency, created = App.objects.get_or_create(name=dependency_name)
app.dependencies.add(dependency)
app.icon = getattr(registration, 'icon', None)
settings = getattr(registration, 'settings', None)
if settings:
logger.debug('settings: %s' % settings)
settings_module = imp.new_module('settings')
setattr(app_module, 'settings', settings_module)
sys.modules['%s.settings' % app_name] = settings_module
settings_namespace = SettingsNamespace(app_name, app.label, '%s.settings' % app_name)
for setting in settings:
settings_namespace.add_setting(**setting)
for link in getattr(registration, 'setup_links', []):
logger.debug('setup link: %s' % link)
register_setup(link)
for link in getattr(registration, 'tool_links', []):
logger.debug('tool link: %s' % link)
register_tool(link)
for statistic in getattr(registration, 'statistics', []):
logger.debug('statistic: %s' % statistic)
register_statistics(statistic)
for index, link in enumerate(getattr(registration, 'menu_links', [])):
logger.debug('menu_link: %s' % link)
register_top_menu(name='%s.%s' % (app_name, index), link=link)
for cleanup_function in getattr(registration, 'cleanup_functions', []):
logger.debug('cleanup_function: %s' % cleanup_function)
Cleanup(cleanup_function)
for bootstrap_model in getattr(registration, 'bootstrap_models', []):
logger.debug('bootstrap_model: %s' % bootstrap_model)
BootstrapModel(model_name=bootstrap_model.get('name'), app_name=app_name, sanitize=bootstrap_model.get('sanitize', True), dependencies=bootstrap_model.get('dependencies'))
def __unicode__(self):
return unicode(self.label)
class Meta:
ordering = ('name', )
verbose_name = _(u'app')
verbose_name_plural = _(u'apps')

View File

@@ -1,13 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from .icons import icon_app
from .links import app_registry_tool_link
name = 'app_registry'
label = _(u'App registry')
description = _(u'Handles the registration of apps in a project.')
icon = icon_app
tool_links = [app_registry_tool_link]
dependencies = ['navigation']

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,5 +0,0 @@
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('app_registry.views',
url(r'^list/$', 'app_list', (), 'app_list'),
)

View File

@@ -1,27 +0,0 @@
from __future__ import absolute_import
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext as _
from common.utils import encapsulate
from permissions.models import Permission
from .models import App
from .icons import icon_app
def app_list(request):
#order = [i for i,f in sorted(smart_modules.items(), key=lambda k: 'dependencies' in k[1] and k[1]['dependencies'])]
return render_to_response('generic_list.html', {
'object_list': App.live.all(),
'hide_object': True,
'title': _(u'registered apps'),
'extra_columns': [
{'name': _(u'label'), 'attribute': 'label'},
{'name': _(u'icon'), 'attribute': encapsulate(lambda x: (getattr(x, 'icon') or icon_app).display_big())},
{'name': _(u'description'), 'attribute': 'description'},
{'name': _(u'dependencies'), 'attribute': encapsulate(lambda x: u', '.join([unicode(dependency) for dependency in x.dependencies.all()]))},
],
}, context_instance=RequestContext(request))

View File

@@ -1,63 +0,0 @@
from __future__ import absolute_import
import inspect
from django.conf import settings
from django.db import transaction, DatabaseError
from django.utils.translation import ugettext_lazy as _
from django.utils.importlib import import_module
#from common.utils import encapsulate
#from job_processor.exceptions import JobQueuePushError
#from job_processor.models import JobQueue, JobType
#from project_tools.api import register_tool
#from project_setup.api import register_setup
#from navigation.api import bind_links, register_model_list_columns
#from .classes import AppBackup, ModelBackup
#from .links import (app_registry_tool_link, app_list, backup_tool_link,
# restore_tool_link, backup_job_list, backup_job_create, backup_job_edit,
# backup_job_test)
#from .literals import BACKUP_JOB_QUEUE_NAME
#from .models import App
#from . import models
#class UnableToRegister(Exception):
# pass
#apipkg.initpkg(__name__, {
# #'App': _App,
## 'App': 'app_registry.models:App',
# #'App': models.App
#})
#pp = 1
#from .models import App#as _App#, BackupJob as _BackupJob
#@transaction.commit_on_success
#def create_backups_job_queue():
# global backups_job_queue
# try:
# backups_job_queue, created = JobQueue.objects.get_or_create(name=BACKUP_JOB_QUEUE_NAME, defaults={'label': _('Backups'), 'unique_jobs': True})
# except DatabaseError:
# transaction.rollback()
#bind_links(['app_list'], [app_list], menu_name='secondary_menu')
#create_backups_job_queue()
###backup_job_type = JobType('remote_backup', _(u'Remove backup'), do_backup)
#register_setup(backup_tool_link)
#register_tool(restore_tool_link)
#bind_links([BackupJob, 'backup_job_list', 'backup_job_create'], [backup_job_list], menu_name='secondary_menu')
#bind_links([BackupJob, 'backup_job_list', 'backup_job_create'], [backup_job_create], menu_name='sidebar')
#bind_links([BackupJob], [backup_job_edit, backup_job_test])
#register_model_list_columns(BackupJob, [
# {'name':_(u'begin date time'), 'attribute': 'begin_datetime'},
# {'name':_(u'storage module'), 'attribute': 'storage_module.label'},
# {'name':_(u'apps'), 'attribute': encapsulate(lambda x: u', '.join([unicode(app) for app in x.apps.all()]))},
#])
###app.set_backup([ModelBackup()])

View File

@@ -1,161 +0,0 @@
import logging
import os
from django.core.files.base import ContentFile
from django.core.files.storage import FileSystemStorage
from django.core.management.commands.dumpdata import Command
from django.conf import settings
from django.db import router, DEFAULT_DB_ALIAS
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext
from django.utils.importlib import import_module
logger = logging.getLogger(__name__)
# Data types
class ElementDataBase(object):
"""
The basic unit of a backup, a data type
it is produced or consumed by the ElementBackup classes
"""
def make_filename(self, id):
return '%s-%s' % (self.model_backup.app_backup.app.name, id)
def save(self):
"""
Must return a file like object
"""
raise NotImplemented
def load(self, file_object):
"""
Must read a file like object and store content
"""
raise NotImplemented
class Fixture(ElementDataBase):
name = 'fixture'
def __init__(self, model_backup, content):
self.model_backup = model_backup
self.content = content
@property
def filename(self):
return self.make_filename(self.__class__.name)
def save(self):
return ContentFile(name=self.filename, content=self.content)
#def load(self):
# Element backup
class ElementBackupBase(object):
"""
Sub classes must provide at least:
info()
backup()
restore()
"""
label = _(u'Base backup manager')
def info(self):
"""
Must return at least None
"""
return None
def link(self, app_backup):
self.app_backup = app_backup
return self
def __unicode__(self):
return unicode(self.__class__.label)
class ModelBackup(ElementBackupBase):
label = _(u'Model fixtures')
def __init__(self, models=None):
self.model_list = models or []
def info(self):
return _(u'models: %s') % (u', '.join(self.model_list) if self.model_list else _(u'All'))
def backup(self):
"""
"""
#TODO: turn into a generator
command = Command()
if not self.model_list:
result = [self.app_backup.app.name]
else:
result = [u'%s.%s' (self.app_backup.app.name, model) for model in self.model_list]
#TODO: a single Fixture or a list of Fixtures for each model?
#Can't return multiple Fixture until a way to find all of an app's models is found
return [Fixture(
model_backup=self,
content=command.handle(u' '.join(result), format='json', indent=4, using=DEFAULT_DB_ALIAS, exclude=[], user_base_manager=False, use_natural_keys=False)
)]
class FileBackup(ElementBackupBase):
label = _(u'File copy')
def __init__(self, storage_class, filepath=None):
self.storage_class = storage_class
self.filepath = filepath
def info(self):
return _(u'%s from %s') % (self.filepath or _(u'all files'), self.storage_class)
def backup(self):
"""
Fetch a file specified by filepath from the Django storage class
and return a file like object
"""
return None
# App config
class AppBackup(object):
_registry = {}
STATE_BACKING_UP = 'backing_up'
STATE_RESTORING = 'restoring'
STATE_IDLE = 'idle'
STATE_CHOICES = (
(STATE_BACKING_UP, _(u'backing up')),
(STATE_RESTORING, _(u'restoring')),
(STATE_IDLE, _(u'idle')),
)
@classmethod
def get(cls, name):
return cls._registry[name]
@classmethod
def get_all(cls):
return cls._registry.values()
def __init__(self, app, backup_managers):
# app = App instance from app_registry app
self.app = app
self.backup_managers = [manager.link(self) for manager in backup_managers]
self.state = self.__class__.STATE_IDLE
self.__class__._registry[app] = self
def info(self):
results = []
for manager in self.backup_managers:
results.append(u'%s - %s' % (manager, manager.info() or _(u'Nothing')))
return u', '.join(results)

View File

@@ -1,20 +0,0 @@
from __future__ import absolute_import
from django import forms
from common.widgets import ScrollableCheckboxSelectMultiple
#from .classes import AppBackup
#from .models import App, BackupJob
#def valid_app_choices():
# # Return app that exist in the app registry and that have been registered for backup
# return App.live.filter(pk__in=[appbackup.app.pk for appbackup in AppBackup.get_all()])
#class BackupJobForm(forms.ModelForm):
# apps = forms.ModelMultipleChoiceField(queryset=valid_app_choices(), widget=ScrollableCheckboxSelectMultiple())
#
# class Meta:
# model = BackupJob

View File

@@ -1,17 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation import Link
from .icons import icon_app
from .permissions import PERMISSION_BACKUP_JOB_VIEW, PERMISSION_BACKUP_JOB_CREATE, PERMISSION_BACKUP_JOB_EDIT, PERMISSION_BACKUP_JOB_DELETE
backup_tool_link = Link(text=_(u'backups'), view='backup_job_list', icon='cd_burn.png', permissions=[PERMISSION_BACKUP_JOB_VIEW])
backup_job_list = Link(text=_(u'backup job list'), view='backup_job_list', sprite='cd_burn', permissions=[PERMISSION_BACKUP_JOB_VIEW])
backup_job_create = Link(text=_(u'create'), view='backup_job_create', sprite='cd_add', permissions=[PERMISSION_BACKUP_JOB_CREATE])
backup_job_edit = Link(text=_(u'edit'), view='backup_job_edit', args='object.pk', sprite='cd_edit', permissions=[PERMISSION_BACKUP_JOB_EDIT])
backup_job_test = Link(text=_(u'test'), view='backup_job_test', args='object.pk', sprite='cd_go')#, permissions=[PERMISSION_BACKUP_JOB_TEST])
backup_job_delete = Link(text=_(u'delete'), view='backup_job_delete', args='object.pk', sprite='cd_delete', permissions=[PERMISSION_BACKUP_JOB_DELETE])
restore_tool_link = Link(text=_(u'restore'), view='restore_view', icon='cd_eject.png')#, permissions=[])

View File

@@ -1 +0,0 @@
BACKUP_JOB_QUEUE_NAME = 'backups_queue'

View File

@@ -1,58 +0,0 @@
from django.db import models
from app_registry.models import App
"""
class BackupJob(models.Model):
name = models.CharField(max_length=64, verbose_name=_(u'name'))
enabled = models.BooleanField(default=True, verbose_name=_(u'enabled'))
apps = models.ManyToManyField(App)
begin_datetime = models.DateTimeField(verbose_name=_(u'begin date and time'), default=lambda: datetime.datetime.now())
# * repetition =
# day - 1 days
# weekly - days of week checkbox
# month - day of month, day of week
# * repetition option field
# * ends
# - never
# - After # ocurrences
# - On date
# * end option field
# * type
# - Full
# - Incremental
storage_module_name = models.CharField(max_length=32, choices=StorageModuleBase.get_as_choices(), verbose_name=_(u'storage module'))
storage_arguments_json = models.TextField(verbose_name=_(u'storage module arguments (in JSON)'), blank=True)
def __unicode__(self):
return self.name
@property
def storage_module(self):
return StorageModuleBase.get(self.storage_module_name)
def backup(self, dry_run=False):
logger.debug('starting: %s', self)
logger.debug('dry_run: %s' % dry_run)
storage_module = self.storage_module
#TODO: loads
for app in self.apps.all():
app_backup = AppBackup.get(app)
app_backup.backup(storage_module(backup_path='/tmp'), dry_run=dry_run)
def save(self, *args, **kwargs):
#dump
super(BackupJob, self).save(*args, **kwargs)
@models.permalink
def get_absolute_url(self):
return ('checkout_info', [self.document.pk])
class Meta:
verbose_name = _(u'document checkout')
verbose_name_plural = _(u'document checkouts')
#class BackupJobLog
"""

View File

@@ -1,12 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from permissions.models import PermissionNamespace, Permission
namespace = PermissionNamespace('backups', _(u'Backups'))
PERMISSION_BACKUP_JOB_VIEW = Permission.objects.register(namespace, 'backup_job_view', _(u'View a backup job'))
PERMISSION_BACKUP_JOB_CREATE = Permission.objects.register(namespace, 'backup_job_view', _(u'Create backup jobs'))
PERMISSION_BACKUP_JOB_EDIT = Permission.objects.register(namespace, 'backup_job_edit', _(u'Edit an existing backup jobs'))
PERMISSION_BACKUP_JOB_DELETE = Permission.objects.register(namespace, 'backup_job_delete', _(u'Delete an existing backup jobs'))

View File

@@ -1,9 +0,0 @@
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('backups.views',
#url(r'^jobs/list/$', 'backup_job_list', (), 'backup_job_list'),
#url(r'^jobs/create/$', 'backup_job_create', (), 'backup_job_create'),
#url(r'^jobs/(?P<backup_job_pk>\d+)/edit/$', 'backup_job_edit', (), 'backup_job_edit'),
#url(r'^jobs/(?P<backup_job_pk>\d+)/test/$', 'backup_job_test', (), 'backup_job_test'),
#url(r'^jobs/(?P<backup_job_pk>\d+)/delete/$', 'backup_job_delete', (), 'backup_job_delete'),
)

View File

@@ -1,126 +0,0 @@
from __future__ import absolute_import
from django.conf import settings
from django.contrib import messages
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.utils.translation import ugettext as _
from common.utils import encapsulate
from permissions.models import Permission
#from .classes import AppBackup
#from .forms import BackupJobForm
#from .models import App#, BackupJob
from .permissions import PERMISSION_BACKUP_JOB_VIEW, PERMISSION_BACKUP_JOB_CREATE, PERMISSION_BACKUP_JOB_EDIT
def backup_job_list(request):
pre_object_list = BackupJob.objects.all()
try:
Permission.objects.check_permissions(request.user, [PERMISSION_BACKUP_JOB_VIEW])
except PermissionDenied:
# If user doesn't have global permission, get a list of backup jobs
# for which he/she does have access use it to filter the
# provided object_list
final_object_list = AccessEntry.objects.filter_objects_by_access(PERMISSION_BACKUP_JOB_VIEW, request.user, pre_object_list)
else:
final_object_list = pre_object_list
context = {
'object_list': final_object_list,
'title': _(u'backup jobs'),
'hide_link': True,
#'extra_columns': [
# {'name': _(u'info'), 'attribute': 'info'},
#],
}
return render_to_response('generic_list.html', context,
context_instance=RequestContext(request))
def backup_job_create(request):
Permission.objects.check_permissions(request.user, [PERMISSION_BACKUP_JOB_CREATE])
if request.method == 'POST':
form = BackupJobForm(data=request.POST)
if form.is_valid():
try:
backup_job = form.save()
except Exception, exc:
messages.error(request, _(u'Error creating backup job; %s') % exc)
else:
messages.success(request, _(u'Backup job "%s" created successfully.') % backup_job)
return HttpResponseRedirect(reverse('backup_job_list'))
else:
form = BackupJobForm()
return render_to_response('generic_form.html', {
'form': form,
'title': _(u'Create backup job')
}, context_instance=RequestContext(request))
def backup_job_edit(request, backup_job_pk):
backup_job = get_object_or_404(BackupJob, pk=backup_job_pk)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_BACKUP_JOB_EDIT])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_BACKUP_JOB_EDIT, request.user, backup_job)
if request.method == 'POST':
form = BackupJobForm(data=request.POST, instance=backup_job)
if form.is_valid():
try:
backup_job = form.save()
except Exception, exc:
messages.error(request, _(u'Error editing backup job; %s') % exc)
else:
messages.success(request, _(u'Backup job "%s" edited successfully.') % backup_job)
return HttpResponseRedirect(reverse('backup_job_list'))
else:
form = BackupJobForm(instance=backup_job)
return render_to_response('generic_form.html', {
'form': form,
'object': backup_job,
'title': _(u'Edit backup job: %s') % backup_job
}, context_instance=RequestContext(request))
def backup_job_test(request, backup_job_pk):
backup_job = get_object_or_404(BackupJob, pk=backup_job_pk)
#try:
# Permission.objects.check_permissions(request.user, [PERMISSION_BACKUP_JOB_EDIT])
#except PermissionDenied:
# AccessEntry.objects.check_access(PERMISSION_BACKUP_JOB_EDIT, request.user, backup_job)
try:
backup_job.backup(dry_run=True)
except Exception, exc:
if settings.DEBUG:
raise
else:
messages.error(request, _(u'Error testing backup job; %s') % exc)
return HttpResponseRedirect(reverse('backup_job_list'))
else:
messages.success(request, _(u'Test for backup job "%s" finished successfully.') % backup_job)
return HttpResponseRedirect(reverse('backup_job_list'))
def backup_view(request):
#Permission.objects.check_permissions(request.user, [])
context = {
'object_list': AppBackup.get_all(),
'title': _(u'registered apps for backup'),
'hide_link': True,
'extra_columns': [
{'name': _(u'info'), 'attribute': 'info'},
],
}
return render_to_response('generic_list.html', context,
context_instance=RequestContext(request))

View File

@@ -1 +0,0 @@

View File

@@ -1,7 +0,0 @@
from __future__ import absolute_import
from django.contrib import admin
from .models import BootstrapSetup
admin.site.register(BootstrapSetup)

View File

@@ -1,172 +0,0 @@
from __future__ import absolute_import
import logging
from itertools import chain
from django.db import models
from django.core import serializers
from django.utils.datastructures import SortedDict
from .exceptions import ExistingData, NotABootstrapSetup
from .literals import (FIXTURE_TYPE_PK_NULLIFIER, FIXTURE_TYPE_MODEL_PROCESS,
FIXTURE_METADATA_REMARK_CHARACTER, BOOTSTRAP_SETUP_MAGIC_NUMBER)
from .utils import toposort2
logger = logging.getLogger(__name__)
class Cleanup(object):
"""
Class to store all the registered cleanup functions in one place.
"""
_registry = {}
@classmethod
def execute_all(cls):
for cleanup in cls._registry.values():
cleanup.function()
def __init__(self, function):
self.function = function
self.__class__._registry[id(self)] = self
class BootstrapModel(object):
"""
Class used to keep track of all the models to be dumped to create a
bootstrap setup from the current setup in use.
"""
_registry = SortedDict()
@classmethod
def get_magic_number(cls):
return '%s %s' % (FIXTURE_METADATA_REMARK_CHARACTER, BOOTSTRAP_SETUP_MAGIC_NUMBER)
@classmethod
def check_magic_number(cls, data):
if not data.startswith(cls.get_magic_number()):
raise NotABootstrapSetup
@classmethod
def check_for_data(cls):
for model in cls.get_all():
model_instance = models.get_model(model.app_name, model.model_name)
if model_instance.objects.all().count():
raise ExistingData
@classmethod
def get_all(cls, sort_by_dependencies=False):
"""
Return all boostrap models, sorted by dependencies optionally.
"""
if not sort_by_dependencies:
return cls._registry.values()
else:
return (cls.get_by_name(name) for name in list(chain.from_iterable(toposort2(cls.get_dependency_dict()))))
@classmethod
def get_dependency_dict(cls):
"""
Return a dictionary where the key is the model name and it's value
is a list of models upon which it depends.
"""
result = {}
for instance in cls.get_all():
result[instance.get_fullname()] = set(instance.dependencies)
logger.debug('result: %s' % result)
return result
@classmethod
def get_by_name(cls, name):
"""
Return a BootstrapModel instance by the fullname of the model it
represents.
"""
return cls._registry[name]
def get_fullname(self):
"""
Return a the full app name + model name of the model represented
by the instance.
"""
return '.'.join([self.app_name, self.model_name])
def get_model_instance(self):
"""
Returns an actual Model class instance of the model.
"""
return models.get_model(self.app_name, self.model_name)
def __init__(self, model_name, app_name=None, sanitize=True, dependencies=None):
app_name_splitted = None
if '.' in model_name:
app_name_splitted, model_name = model_name.split('.')
self.app_name = app_name_splitted or app_name
if not self.app_name:
raise Exception('Pass either a dotted app plus model name or a model name and a separate app name')
self.model_name = model_name
self.sanitize = sanitize
self.dependencies = dependencies if dependencies else []
self.__class__._registry[self.get_fullname()] = self
def dump(self, serialization_format):
result = serializers.serialize(serialization_format, self.get_model_instance().objects.all(), indent=4, use_natural_keys=True)
logger.debug('result: "%s"' % result)
if self.sanitize:
# Remove primary key values
result = FIXTURE_TYPE_PK_NULLIFIER[serialization_format](result)
# Do any clean up required on the fixture
result = FIXTURE_TYPE_MODEL_PROCESS[serialization_format](result)
return result
class FixtureMetadata(object):
"""
Class to automatically create and extract metadata from a bootstrap
fixture.
"""
_registry = SortedDict()
@classmethod
def get_all(cls):
return cls._registry.values()
@classmethod
def generate_all(cls, fixture_instance):
result = []
for fixture_metadata in cls.get_all():
result.append(fixture_metadata.generate(fixture_instance))
return '\n'.join(result)
@classmethod
def read_all(cls, data):
result = {}
for instance in cls.get_all():
single_result = instance.read_value(data)
if single_result:
result[instance.property_name] = single_result
return result
def __init__(self, literal, generate_function, read_function=None, property_name=None):
self.literal = literal
self.generate_function = generate_function
self.property_name = property_name
self.read_function = read_function or (lambda x: x)
self.__class__._registry[id(self)] = self
def get_with_remark(self):
return '%s %s' % (FIXTURE_METADATA_REMARK_CHARACTER, self.literal)
def generate(self, fixture_instance):
return '%s: %s' % (self.get_with_remark(), self.generate_function(fixture_instance))
def read_value(self, fixture_data):
if self.property_name:
for line in fixture_data.splitlines(False):
if line.startswith(self.get_with_remark()):
# TODO: replace the "+ 4" with a space and next character finding algo
return self.read_function(line[len(self.literal) + 4:])

View File

@@ -1,18 +0,0 @@
from __future__ import absolute_import
class ExistingData(Exception):
"""
Raised when an attempt to execute a bootstrap setup is made and there is
existing data that would be corrupted or damaged by the loading the
bootstrap's fixture.
"""
pass
class NotABootstrapSetup(Exception):
"""
Raised when an attempting to import a bootstrap setup without a proper
magic number metadata
"""
pass

View File

@@ -1,57 +0,0 @@
from __future__ import absolute_import
import logging
from django import forms
from django.utils.translation import ugettext_lazy as _
from common.forms import DetailForm
from .models import BootstrapSetup
logger = logging.getLogger(__name__)
class BootstrapSetupForm(forms.ModelForm):
class Meta:
model = BootstrapSetup
widgets = {
'description': forms.widgets.Textarea(attrs={
'rows': 5, 'cols': 80,
}
)
}
class BootstrapSetupForm_view(DetailForm):
class Meta:
model = BootstrapSetup
widgets = {
'description': forms.widgets.Textarea(attrs={
'rows': 5, 'cols': 80,
}
)
}
class BootstrapSetupForm_edit(BootstrapSetupForm):
class Meta(BootstrapSetupForm.Meta):
model = BootstrapSetup
exclude = ('type',)
class BootstrapSetupForm_dump(BootstrapSetupForm):
class Meta(BootstrapSetupForm.Meta):
model = BootstrapSetup
exclude = ('fixture',)
class BootstrapFileImportForm(forms.Form):
file = forms.FileField(
label=_(u'Bootstrap setup file'),
)
class BootstrapURLImportForm(forms.Form):
url = forms.URLField(
label=_(u'Bootstrap setup URL'),
)

View File

@@ -1,14 +0,0 @@
from __future__ import absolute_import
from icons.literals import (WIZARD, LIGHTNING, RADIOACTIVITY, MAGIC_WAND_2,
WIZARD_ADD, WIZARD_EDIT, WIZARD_DELETE, WIZARD_LIGHTNING)
from icons import Icon
icon_bootstrap_setup = Icon(WIZARD)
icon_bootstrap_setup_view = Icon(WIZARD)
icon_bootstrap_setup_create = Icon(WIZARD_ADD)
icon_bootstrap_setup_edit = Icon(WIZARD_EDIT)
icon_bootstrap_setup_delete = Icon(WIZARD_DELETE)
icon_bootstrap_setup_execute = Icon(WIZARD_LIGHTNING)
icon_bootstrap_setup_dump = Icon(MAGIC_WAND_2)
icon_nuke_database = Icon(RADIOACTIVITY)

View File

@@ -1,30 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation import Link
from .permissions import (PERMISSION_BOOTSTRAP_VIEW, PERMISSION_BOOTSTRAP_CREATE,
PERMISSION_BOOTSTRAP_EDIT, PERMISSION_BOOTSTRAP_DELETE,
PERMISSION_BOOTSTRAP_EXECUTE, PERMISSION_BOOTSTRAP_DUMP,
PERMISSION_NUKE_DATABASE, PERMISSION_BOOTSTRAP_EXPORT,
PERMISSION_BOOTSTRAP_IMPORT, PERMISSION_BOOTSTRAP_REPOSITORY_SYNC)
from .icons import (icon_bootstrap_setup, icon_bootstrap_setup_execute, icon_bootstrap_setup_create,
icon_bootstrap_setup_edit, icon_bootstrap_setup_delete, icon_bootstrap_setup_view,
icon_bootstrap_setup_dump, icon_nuke_database)
link_bootstrap_setup_tool = Link(text=_(u'bootstrap'), view='bootstrap_setup_list', icon=icon_bootstrap_setup, permissions=[PERMISSION_BOOTSTRAP_VIEW])
link_bootstrap_setup_list = Link(text=_(u'bootstrap setup list'), view='bootstrap_setup_list', icon=icon_bootstrap_setup, permissions=[PERMISSION_BOOTSTRAP_VIEW])
link_bootstrap_setup_create = Link(text=_(u'create new bootstrap setup'), view='bootstrap_setup_create', icon=icon_bootstrap_setup_create, permissions=[PERMISSION_BOOTSTRAP_CREATE])
link_bootstrap_setup_edit = Link(text=_(u'edit'), view='bootstrap_setup_edit', args='object.pk', icon=icon_bootstrap_setup_edit, permissions=[PERMISSION_BOOTSTRAP_EDIT])
link_bootstrap_setup_delete = Link(text=_(u'delete'), view='bootstrap_setup_delete', args='object.pk', icon=icon_bootstrap_setup_delete, permissions=[PERMISSION_BOOTSTRAP_DELETE])
link_bootstrap_setup_view = Link(text=_(u'details'), view='bootstrap_setup_view', args='object.pk', icon=icon_bootstrap_setup_view, permissions=[PERMISSION_BOOTSTRAP_VIEW])
link_bootstrap_setup_execute = Link(text=_(u'execute'), view='bootstrap_setup_execute', args='object.pk', icon=icon_bootstrap_setup_execute, permissions=[PERMISSION_BOOTSTRAP_EXECUTE])
link_bootstrap_setup_dump = Link(text=_(u'dump current setup'), view='bootstrap_setup_dump', icon=icon_bootstrap_setup_dump, permissions=[PERMISSION_BOOTSTRAP_DUMP])
link_erase_database = Link(text=_(u'erase database'), view='erase_database_view', icon=icon_nuke_database, permissions=[PERMISSION_NUKE_DATABASE])
# TODO: convert to Link class and assign icon
link_bootstrap_setup_export = {'text': _(u'export'), 'view': 'bootstrap_setup_export', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_BOOTSTRAP_EXPORT]}
link_bootstrap_setup_import_from_file = {'text': _(u'import from file'), 'view': 'bootstrap_setup_import_from_file', 'famfam': 'folder', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]}
link_bootstrap_setup_import_from_url = {'text': _(u'import from URL'), 'view': 'bootstrap_setup_import_from_url', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]}
link_bootstrap_setup_repository_sync = {'text': _(u'sync with repository'), 'view': 'bootstrap_setup_repository_sync', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_REPOSITORY_SYNC]}

View File

@@ -1,81 +0,0 @@
from __future__ import absolute_import
import re
try:
import yaml
except ImportError:
YAML_AVAILABLE = False
else:
YAML_AVAILABLE = True
from django.utils.translation import ugettext_lazy as _
FIXTURE_TYPE_JSON = 'json'
FIXTURE_TYPE_YAML = 'yaml'
FIXTURE_TYPE_BETTER_YAML = 'better_yaml'
FIXTURE_TYPE_XML = 'xml'
FIXTURE_TYPES_CHOICES = (
(FIXTURE_TYPE_JSON, _(u'JSON')),
# Disabing XML until a way to specify a null pk is found
#(FIXTURE_TYPE_XML, _(u'XML')),
)
FIXTURE_FILE_TYPE = {
FIXTURE_TYPE_JSON: 'json',
FIXTURE_TYPE_YAML: 'yaml',
FIXTURE_TYPE_BETTER_YAML: 'better_yaml',
FIXTURE_TYPE_XML: 'xml',
}
FIXTURE_TYPE_PK_NULLIFIER = {
FIXTURE_TYPE_JSON: lambda x: re.sub('"pk": [0-9]{1,5}', '"pk": null', x),
FIXTURE_TYPE_YAML: lambda x: re.sub('pk: [0-9]{1,5}', 'pk: null', x),
FIXTURE_TYPE_BETTER_YAML: lambda x: re.sub('[0-9]{1,5}:', 'null:', x),
FIXTURE_TYPE_XML: lambda x: re.sub('pk="[0-9]{1,5}"', 'pk=null', x),
}
FIXTURE_TYPE_EMPTY_FIXTURE = {
FIXTURE_TYPE_JSON: lambda x: x.startswith('[]') or x == ',',
FIXTURE_TYPE_YAML: lambda x: x.startswith('[]'),
FIXTURE_TYPE_BETTER_YAML: lambda x: x.startswith('{}'),
FIXTURE_TYPE_XML: lambda x: x,
}
FIXTURE_TYPE_MODEL_PROCESS = {
FIXTURE_TYPE_JSON: lambda x: '%s,' % x[2:-2],
FIXTURE_TYPE_YAML: lambda x: x,
FIXTURE_TYPE_BETTER_YAML: lambda x: x,
FIXTURE_TYPE_XML: lambda x: x,
}
FIXTURE_TYPE_FIXTURE_PROCESS = {
FIXTURE_TYPE_JSON: lambda x: '[\n%s\n]' % x[:-1], # Enclose in [], remove last comma
FIXTURE_TYPE_YAML: lambda x: x,
FIXTURE_TYPE_BETTER_YAML: lambda x: x,
FIXTURE_TYPE_XML: lambda x: x,
}
COMMAND_LOADDATA = 'loaddata'
if YAML_AVAILABLE:
FIXTURE_TYPES_CHOICES += (FIXTURE_TYPE_YAML, _(u'YAML')),
FIXTURE_TYPES_CHOICES += (FIXTURE_TYPE_BETTER_YAML, _(u'Better YAML')),
# better_yaml is not working with natural keys
FIXTURE_METADATA_REMARK_CHARACTER = '#'
DATETIME_STRING_FORMAT = '%a, %d %b %Y %H:%M:%S +0000'
FIXTURE_METADATA_CREATED = 'created'
FIXTURE_METADATA_EDITED = 'edited'
FIXTURE_METADATA_MAYAN_VERSION = 'mayan_edms_version'
FIXTURE_METADATA_FORMAT = 'format'
FIXTURE_METADATA_NAME = 'name'
FIXTURE_METADATA_SLUG = 'slug'
FIXTURE_METADATA_DESCRIPTION = 'description'
BOOTSTRAP_EXTENSION = 'txt'
BOOTSTRAP_SETUP_MAGIC_NUMBER = 'bootstrap setup'
BOOTSTRAP_REPOSITORY_URL = 'http://bootstrap.mayan-edms.com'
BOOTSTRAP_REPOSITORY_INDEX_FILE = '_repo_index.txt'

View File

@@ -1,322 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# <pkoldamov@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/"
"language/bg/)\n"
"Language: bg\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"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:16
msgid "bootstrap"
msgstr ""
#: links.py:17
msgid "bootstrap setup list"
msgstr ""
#: links.py:18
msgid "create new bootstrap setup"
msgstr ""
#: links.py:19
msgid "edit"
msgstr "редактиране"
#: links.py:20
msgid "delete"
msgstr "изтриване"
#: links.py:21
msgid "details"
msgstr "детайли"
#: links.py:22
msgid "execute"
msgstr "изпълнение"
#: links.py:23
msgid "dump current setup"
msgstr "изпринтване на текущата настройка"
#: links.py:24
msgid "erase database"
msgstr "изтриване на база данни"
#: links.py:27
msgid "export"
msgstr ""
#: links.py:28
msgid "import from file"
msgstr ""
#: links.py:29
msgid "import from URL"
msgstr ""
#: links.py:30
msgid "sync with repository"
msgstr ""
#: literals.py:20
msgid "JSON"
msgstr "JSON"
#: literals.py:63
msgid "YAML"
msgstr "YAML"
#: literals.py:64
msgid "Better YAML"
msgstr "Подобрен YAML"
#: models.py:30
msgid "name"
msgstr "име"
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:35
msgid "description"
msgstr "описание"
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
"Това са текущите инструкции за създаване на структурата на базата данни."
#: models.py:34 views.py:36
msgid "type"
msgstr "тип"
#: models.py:35
msgid "creation date and time"
msgstr "дата и време на създаване"
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:32
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr "Изтрийте цялата база данни за съхраняване и документното пространство"
#: registry.py:8
msgid "Bootstrap"
msgstr ""
#: registry.py:9
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:51
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:54
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:59
msgid "create bootstrap"
msgstr ""
#: views.py:79
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:82
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:87
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:112
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:114
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:125
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:165
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:167
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:169
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:181
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:197
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:201
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:207
#, fuzzy
msgid "dump current setup into a bootstrap setup"
msgstr "изпринтване на текущата настройка"
#: views.py:241 views.py:269
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:244
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:246
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:252
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:272
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:274
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:280
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:299
#, python-format
msgid "Error erasing database; %s"
msgstr "Грешка при изтриване на база данни; %s"
#: views.py:301
msgid "Database erased successfully."
msgstr "Базата данни е изтрита успешно."
#: views.py:311
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
"Сигурен ли сте, че искате да изтриете цялата база данни и документното "
"пространство?"
#: views.py:312
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:329
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:331
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:338
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

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