Compare commits

...

431 Commits

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

View File

@@ -1,10 +1,14 @@
image: python:2.7
image: ubuntu:16.10
services:
- mysql
- mysql:latest
- postgres
before_script:
- echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale
- locale-gen en_US.UTF-8
- update-locale LANG=en_US.UTF-8
- export LC_ALL=en_US.UTF-8
- apt-get update -qq
- apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
- apt-get install -qq curl 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"
@@ -12,18 +16,20 @@ variables:
MYSQL_DATABASE: "mayan_edms"
test:mysql:
script:
- apt-get install -qq libmysqlclient-dev
- pip install -r requirements/testing.txt
- pip install -q mysql-python
- 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 "ALTER DATABASE $MYSQL_DATABASE CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
- 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 runtests --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
tags:
- mysql
test:postgres:
script:
- apt-get install -qq libpq-dev
- pip install -r requirements/testing.txt
- pip install -q psycopg2
- pip install psycopg2
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
tags:

View File

@@ -127,10 +127,16 @@ source_lang = en
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.navigation-2-0]
file_filter = mayan/apps/navigation/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.mirroring-2-0]
file_filter = mayan/apps/mirroring/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/navigation/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.motd-2-0]
file_filter = mayan/apps/motd/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/motd/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.ocr-2-0]

71
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,71 @@
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 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. 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.
License
-------
By contributing your code, you agree to license your contribution under the
terms of the project's license.

View File

@@ -1,3 +1,112 @@
2.2 (2016-XX-XX)
================
- 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).
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.
@@ -10,15 +119,16 @@
- 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
@@ -90,7 +200,6 @@
1.1 (2015-02-10)
================
- Uses Celery for background tasks
- Removal of the splash screen
- Adds a home view with common function buttons
@@ -116,7 +225,6 @@
1.0 (2014-08-27)
================
- New home @ https://github.com/mayan-edms/mayan-edms
- Updated to use Django 1.6
- Translation updates

122
Makefile Normal file
View File

@@ -0,0 +1,122 @@
.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 "test MODULE=<python module name> - Run tests for a single App, module or test class."
@echo "test-all - Run all tests."
@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 "runserver - Run the development server."
@echo "runserver_plus - Run the Django extension's development server."
@echo "shell_plus - Run the shell_plus command."
@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 runtests --settings=mayan.settings.testing --nomigrations
# 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
# 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
# Releases
release: clean
python setup.py sdist bdist_wheel upload
sdist: clean
python setup.py sdist
ls -l dist
wheel: clean
python setup.py bdist_wheel
ls -l dist
# Dev server
runserver:
./manage.py runserver
runserver_plus:
$(BROWSER) http://127.0.0.1:8000
./manage.py runserver_plus --settings=mayan.settings.development
shell_plus:
./manage.py shell_plus --settings=mayan.settings.development
# Security
safety_check:
safety check

View File

@@ -1,4 +1,4 @@
|Build Status| |Coverage badge| |PyPI badge| |Installs badge| |License badge|
|PyPI badge| |Build Status| |Coverage badge| |Documentation| |License badge| |Python version|
|Logo|
@@ -19,10 +19,6 @@ Free Open Source Electronic Document Management System.
|Animation|
Support
-------
Help support further improvements and development by donating at: https://www.patreon.com/siloraptor
License
-------
@@ -31,28 +27,19 @@ This project is open sourced under `Apache 2.0 License`_.
Installation
------------
To install **Mayan EDMS**, simply do:
To install Mayan EDMS, simply do:
.. code-block:: bash
$ virtualenv venv
$ source venv/bin/activate
$ pip install mayan-edms
$ mayan-edms.py initialsetup
$ mayan-edms.py runserver
(venv) $ pip install mayan-edms
(venv) $ mayan-edms.py initialsetup
(venv) $ mayan-edms.py runserver
Point your browser to 127.0.0.1:8000 and use the automatically created admin
account.
Contribute
----------
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- Fork `the repository`_ on GitLab to start making your changes to the **development** branch (or branch off of it).
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Add yourself to the `contributors file`_.
- Send a merge request.
.. _Website: http://www.mayan-edms.com
.. _Video demostration: http://bit.ly/pADNXv
@@ -60,20 +47,19 @@ Contribute
.. _Translations: https://www.transifex.com/projects/p/mayan-edms/
.. _Mailing list (via Google Groups): http://groups.google.com/group/mayan-edms
.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt
.. _`the repository`: http://gitlab.com/mayan-edms/mayan-edms
.. _`contributors file`: https://gitlab.com/mayan-edms/mayan-edms/blob/master/docs/topics/contributors.rst
.. |Build Status| image:: https://gitlab.com/ci/projects/6169/status.png?ref=master
:target: https://gitlab.com/ci/projects/6169?ref=master
.. |Build Status| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
:target: https://gitlab.com/mayan-edms/mayan-edms/commits/master
.. |Logo| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
.. |Animation| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif
.. |Installs badge| image:: http://img.shields.io/pypi/dm/mayan-edms.svg?style=flat
:target: https://crate.io/packages/mayan-edms/
.. |PyPI badge| image:: http://img.shields.io/pypi/v/mayan-edms.svg?style=flat
:target: http://badge.fury.io/py/mayan-edms
.. |License badge| image:: http://img.shields.io/badge/license-Apache%202.0-green.svg?style=flat
.. |License badge| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
.. |Analytics| image:: https://ga-beacon.appspot.com/UA-52965619-2/mayan-edms/readme?pixel
.. |Coverage badge| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
:target: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master
.. |Documentation| image:: https://readthedocs.org/projects/mayan/badge/?version=latest
:target: http://mayan.readthedocs.io/en/latest
.. |Python version| images:: https://img.shields.io/pypi/pyversions/mayan-edms.svg
|Analytics|

33
Vagrantfile vendored
View File

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

View File

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

View File

@@ -1,22 +0,0 @@
server {
listen 80;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass unix:/usr/share/mayan-edms/uwsgi.sock;
client_max_body_size 30M; # Increse if your plan to upload bigger documents
proxy_read_timeout 30s; # Increase if your document uploads take more than 30 seconds
}
location /static {
alias /usr/share/mayan-edms/mayan/media/static;
expires 1h;
}
location /favicon.ico {
alias /usr/share/mayan-edms/mayan/media/static/appearance/images/favicon.ico;
expires 1h;
}
}

View File

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

View File

@@ -18,7 +18,7 @@ sudo apt-get -qq update
sudo apt-get -y upgrade
echo -e "\n -> Installing core binaries \n"
sudo apt-get -y install git-core python-virtualenv gcc python-dev libjpeg-dev libpng-dev libtiff-dev tesseract-ocr poppler-utils unpaper libreoffice
sudo apt-get -y install git-core python-virtualenv gcc python-dev libjpeg-dev libpng-dev libtiff-dev tesseract-ocr poppler-utils libreoffice
echo -e "\n -> Cloning development branch of repository \n"
git clone /mayan-edms-repository/ $INSTALLATION_DIRECTORY

View File

@@ -20,7 +20,7 @@ apt-get -qq update
apt-get -y upgrade
echo -e "\n -> Installing core binaries \n"
apt-get install nginx supervisor redis-server postgresql libpq-dev libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr unpaper poppler-utils -y
apt-get install nginx supervisor redis-server postgresql libpq-dev libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr poppler-utils -y
echo -e "\n -> Setting up virtualenv \n"
rm -f ${INSTALLATION_DIRECTORY}

View File

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

View File

@@ -9,19 +9,17 @@ APP_LIST = (
'converter', 'django_gpg', 'document_comments', 'document_indexing',
'document_signatures', 'document_states', 'documents', 'dynamic_search',
'events', 'folders', 'installation', 'linking', 'lock_manager', 'mailer',
'metadata', 'mirroring', 'navigation', 'ocr', 'permissions', 'rest_api',
'smart_settings', 'sources', 'statistics', 'storage', 'tags',
'metadata', 'mirroring', 'motd', 'navigation', 'ocr', 'permissions',
'rest_api', 'smart_settings', 'sources', 'statistics', 'storage', 'tags',
'user_management'
)
LANGUAGE_LIST = (
'ar', 'bg', 'bs_BA', 'da', 'de_DE', 'en', 'es', 'fa', 'fr', 'hu', 'id',
'it', 'nl_NL', 'pl', 'pt', 'pt_BR', 'ro_RO', 'ru', 'sl_SI', 'vi_VN',
'zh_CN',
)
# Inactive translations
# 'de_CH', 'hr_HR', 'lv', 'nb', 'sq', 'tr_TR', 'zh_TW'
makemessages = sh.Command('django-admin.py')
makemessages = makemessages.bake('makemessages')

View File

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

View File

@@ -1,26 +0,0 @@
[program:mayan-worker]
command = /usr/share/mayan-edms/bin/python /usr/share/mayan-edms/bin/mayan-edms.py celery --settings=mayan.settings.production worker -Ofair -l ERROR
directory = /usr/share/mayan-edms
user = www-data
stdout_logfile = /var/log/mayan/worker-stdout.log
stderr_logfile = /var/log/mayan/worker-stderr.log
autostart = true
autorestart = true
startsecs = 10
stopwaitsecs = 10
killasgroup = true
priority = 998
[program:mayan-beat]
command = /usr/share/mayan-edms/bin/python /usr/share/mayan-edms/bin/mayan-edms.py celery --settings=mayan.settings.production beat -l ERROR
directory = /usr/share/mayan-edms
user = www-data
numprocs = 1
stdout_logfile = /var/log/mayan/beat-stdout.log
stderr_logfile = /var/log/mayan/beat-stderr.log
autostart = true
autorestart = true
startsecs = 10
stopwaitsecs = 1
killasgroup = true
priority = 998

View File

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

BIN
docs/_static/api.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

BIN
docs/_static/main.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

BIN
docs/_static/setup.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/_static/tools.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

View File

@@ -1,15 +1,4 @@
<h3>Donate</h3>
<p>Help support further improvements and development, via:
<ul>
<li>
- <a href="https://www.paypal.me/RobertoRosario">PayPal.Me</a>
</li>
<li>
- <a href="https://www.patreon.com/siloraptor">Patreon</a>
</li>
<li>- or Gumroad:
<script type="text/javascript" src="https://gumroad.com/js/gumroad.js"></script>
<a href="https://gumroad.com/l/UNApl" class="gumroad-button">Buy Mayan EDMS</a>
</li>
</ul>
<h3>Support</h3>
<p>
Consulting, support, customization, rebranding, and plug-in development are available. Email for information to: <a href='mailto:info@mayan-edms.com'>info@mayan-edms.com</a>
</p>

View File

@@ -38,7 +38,6 @@ extensions = ['djangodocs', 'sphinxcontrib.blockdiag']
blockdiag_antialias = True
blockdiag_html_image_format = "SVG"
blockdiag_latex_image_format = "PDF"
blockdiag_tex_image_format = "PDF"
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

View File

@@ -1,21 +1,23 @@
Welcome to Mayan EDMS!
======================
**Mayan EDMS** is a `Free Open Source`_ `Electronic Document Management System`_, coded in
Mayan EDMS is a `Free Open Source`_ `Electronic Document Management System`_, coded in
the Python language using the Django_ web application framework and released
under the `Apache 2.0 License`_. It provides an electronic vault or repository for electronic documents.
The easiest way to install and try **Mayan EDMS** is by using a Debian based Linux distribution
and installing it from PyPI with the following commands:
The easiest way to use Mayan EDMS is by using a Debian based Linux distribution
and install it from PyPI with the following commands:
.. code-block:: bash
sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr unpaper poppler-utils -y
virtualenv venv
source venv/bin/activate
pip install mayan-edms
mayan-edms.py initialsetup
mayan-edms.py runserver
$ sudo apt-get install libjpeg-dev libmagic1 libpng-dev \
libreoffice libtiff-dev gcc ghostscript gnupg python-dev \
python-virtualenv tesseract-ocr poppler-utils -y
$ virtualenv venv
$ source venv/bin/activate
(venv) pip install mayan-edms
(venv) mayan-edms.py initialsetup
(venv) mayan-edms.py runserver
Point your browser to 127.0.0.1:8000 and use the automatically created admin
account.
@@ -33,9 +35,9 @@ account.
Concepts <topics/index>
Development <topics/development>
App creation <topics/app_creation>
Roadmap <topics/roadmap>
Translations <topics/translations>
Contributors <topics/contributors>
Screenshots <topics/screenshots>
Licensing <topics/license>
FAQ <topics/faq>
Contact <topics/contact>

View File

@@ -25,9 +25,9 @@ What's new in Mayan EDMS v0.12.1
Fabric file (fabfile)
~~~~~~~~~~~~~~~~~~~~~
A Fabric file is included to help users not very familiar with Ubuntu,
Python and Django install **Mayan EDMS**, or for system administrators
Python and Django install Mayan EDMS, or for system administrators
looking to automate the install whether in local or remote systems.
At the moment the fabfile will install **Mayan EDMS** in the same configurations
At the moment the fabfile will install Mayan EDMS in the same configurations
listed in this documentation, that is: (Ubuntu/Debian/Fedora) + virtualenv + Apache + MySQL.
Feel free to submit your configuration settings and files for different databases,
webserver or Linux distribution. More configurations will be added to
@@ -38,7 +38,7 @@ Documentation update
The installation instructions were updated to include the installation of
the libpng-dev and libjpeg-dev libraries as well as the installation of
the poppler-utils package. An additional step to help users test their
new installation of **Mayan EDMS** was also added.
new installation of Mayan EDMS was also added.
Translations
~~~~~~~~~~~~

View File

@@ -24,7 +24,7 @@ What's new in Mayan EDMS v0.12.2
Smarter auto admin creation
~~~~~~~~~~~~~~~~~~~~~~~~~~~
**Mayan EDMS** creates a administrator user during the
Mayan EDMS creates a administrator user during the
database creation phase to reduce the amount of steps required for a
functional install. The creation of this account is controlled by the configuration
option `COMMON_AUTO_CREATE_ADMIN`, the username of the account is
@@ -41,7 +41,7 @@ As per the feature request filed under `issue #26`_, a new document
check out and check in functionality has been added. Users can now
check out a document and lock new version of it from being uploaded to avoid
editing conflicts. Document check outs have an expiration period after which
**Mayan EDMS** will automatically check them back in to avoid a permanent
Mayan EDMS will automatically check them back in to avoid a permanent
document lockout. Only the user who has checked out a document can upload
new versions of it or check the document back in before the expiration period,
unless being granted the ``Allow overriding check out restrictions`` or
@@ -52,14 +52,14 @@ Installation environment app
Diagnosting remote installations of web based applications without access to the
command line can be a bit hard, to alleviate this situation a new installation
environment details app has been added. The purpose of this app is to provide
support staff information about the physical environment where **Mayan EDMS** has
support staff information about the physical environment where Mayan EDMS has
been installed. To avoid possible security compromises only administrators
can access this app.
Editable compressed documents filename
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Previously when downloading more than one document in a compressed manner,
**Mayan EDMS** would produce a file with the name ``document_bundle.zip`` for
Mayan EDMS would produce a file with the name ``document_bundle.zip`` for
download. A different filename can now be specified at the same download dialog.
German translation
@@ -71,7 +71,7 @@ Statistics gathering
~~~~~~~~~~~~~~~~~~~~
Previous attempts at gathering usage statistics have been met with deficient results.
User participation in surveys as well as the quality of the data entered by users
was disappointing. That is why this version of **Mayan EDMS** features an
was disappointing. That is why this version of Mayan EDMS features an
anonymous statistics gathering functionality.

View File

@@ -6,12 +6,12 @@ Mayan EDMS v0.12 release notes
Welcome to Mayan EDMS v0.12!
This release commemorates **Mayan EDMS** first aniversary!
This release commemorates Mayan EDMS first aniversary!
Overview
========
Aside from new features, the focus of this release of **Mayan EDMS** also
Aside from new features, the focus of this release of Mayan EDMS also
been about improving the code and documentation quality standard
even further. The permission system has been completely overhauled to make
it entire class based. The other big change is the addition of object
@@ -61,7 +61,7 @@ Anonymous user support
~~~~~~~~~~~~~~~~~~~~~~
Anonymous user support is a two tier function, first is the addition of
the `COMMON_ALLOW_ANONYMOUS_ACCESS` configuration option that
allows non authenticated user to browse all the pages of a **Mayan EDMS** installation.
allows non authenticated user to browse all the pages of a Mayan EDMS installation.
The second part of this support is the ability to assign permissions
or individual access to objects to anonymous users.
@@ -89,7 +89,7 @@ the download of several documents in a single compressed file.
Customizable GPG home directory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Addition of the `SIGNATURES_GPG_HOME` configuration option to let
administrators set **Mayan EDMS**'s GPG instance home directory, used to
administrators set Mayan EDMS's GPG instance home directory, used to
store keyrings and other GPG configuration files.
Out of process bulk uploading
@@ -114,7 +114,7 @@ stage to beta stage. Index configuration menus are now available on the
be populated with document links depending on their metadata and properties.
These populated trees can also be mirrored on the physical filesystem and shared
using Samba or another filesharing server giving users a structured view
of the documents contained within **Mayan EDMS** from the ``Indexes`` tab
of the documents contained within Mayan EDMS from the ``Indexes`` tab
or from a mirrored index shared via the network. A new configuration option
has been added, `DOCUMENT_INDEXING_FILESYSTEM_SERVING`, which maps
the index internal name with the physical directory where such index will be
@@ -127,7 +127,7 @@ Included in this version is a small feedback application, found under the
help determine the priority of the next planned features on the pipeline,
or even help add new features if enough requests are received. All questions
are optional but answering as many as possible will help greatly understand
the need of the **Mayan EDMS** user base.
the need of the Mayan EDMS user base.
Staging file previews
~~~~~~~~~~~~~~~~~~~~~

View File

@@ -31,39 +31,39 @@ Attaching or removing tags from a large number of documents is now much easier.
Registration
~~~~~~~~~~~~
Based on requests made by the community for greater commercial support and services for
**Mayan EDMS**, a new feature has been added that allows users to register their
copies of **Mayan EDMS** and better help users with commercial support packages.
Mayan EDMS, a new feature has been added that allows users to register their
copies of Mayan EDMS and better help users with commercial support packages.
Registration for non commercial users is voluntary and optional, and in no way
affects the functionality of **Mayan EDMS**. However even for non commercial users
affects the functionality of Mayan EDMS. However even for non commercial users
registration offers the advantage of automatically branding the user's copy
of **Mayan EDMS** with their name or the company name in the title area.
of Mayan EDMS with their name or the company name in the title area.
Per document type indexing
~~~~~~~~~~~~~~~~~~~~~~~~~~
Index can now be restricted to update only on specific document types, this
greatly increases the usefulness of indexes, and prevents unwanted index
updates.
updates.
Bootstrap
~~~~~~~~~
Setting up **Mayan EDMS** after installation has been indetified by users as the
main difficulty when knowledge about **Mayan EDMS** is relatively low. To
Setting up Mayan EDMS after installation has been indetified by users as the
main difficulty when knowledge about Mayan EDMS is relatively low. To
address this situation a new feature that provides preconfigured setups has been
added. These preconfigured setups are published in the **Mayan EDMS** website and
added. These preconfigured setups are published in the Mayan EDMS website and
upon synchonization are available to users, this gives users access and integrators
access to new setups without having to wait for new versions of **Mayan EDMS**.
access to new setups without having to wait for new versions of Mayan EDMS.
Aside from including preconfigured setups, the new bootstrap app
has the ability of dumping an user's current setup into a serialized text file
which can be tweaked by hand and sent via email to other users. The possibilities
enabled by this range from company wide defaults setups to consultants providing
their clients with customized setups without having to access their clients'
**Mayan EDMS** instances. ``JSON``, ``YAML`` and a custom ``YAML`` format
Mayan EDMS instances. ``JSON``, ``YAML`` and a custom ``YAML`` format
(http://djangosnippets.org/snippets/2461/) are supported by this new app.
Add documents to folders in bulk
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As requested, the ability to add more than one document at a time to a selected
folder has been added.
folder has been added.
Translation updates
~~~~~~~~~~~~~~~~~~~
@@ -96,7 +96,7 @@ removes any traces of code and configuration options related to UNOCONV.
Optimizations
~~~~~~~~~~~~~
Inspired by the idea of getting **Mayan EDMS** running effectively on low power hardware such as
Inspired by the idea of getting Mayan EDMS running effectively on low power hardware such as
the Raspberry Pi, several rounds or profiling and optimization were done.
Some caching optimization were introduced to the permission model, resulting in
@@ -105,13 +105,13 @@ and a 18% query reduction on cache hits.
Upgrading from a previous version
=================================
If you installed **Mayan EDMS** by cloning the Git repository issue the commands::
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the existing installation.
Next add the new requirements::
$ pip install -r requirements/production.txt

View File

@@ -118,7 +118,7 @@ to do document OCR using software or services other than Tesseract.
OCR improvements
~~~~~~~~~~~~~~~~
OCR queue state is now reset when reloading **Mayan EMDS**, avoiding the OCR queue
OCR queue state is now reset when reloading Mayan EMDS, avoiding the OCR queue
to remain locked. `unpaper` binary is now an optional pre OCR requirement, the OCR
queue will now continue working is `unpaper` is not installed. Addition of post
OCR processing support for French and German.
@@ -131,7 +131,7 @@ commercial products is now explicitly allowed.
PyPI package
~~~~~~~~~~~~
**Mayan EDMS** has been packaged and submitted to the PyPI_ Python Package Index
Mayan EDMS has been packaged and submitted to the PyPI_ Python Package Index
making it even easier to install and use.
New REST API

View File

@@ -13,7 +13,7 @@ What's new in Mayan EDMS v1.1
Celery
~~~~~~
All background tasks processing has been converted to use Celery_. By default
**Mayan EDMS** runs in "Eager" until a broker and result backend are configured
Mayan EDMS runs in "Eager" until a broker and result backend are configured
as per `Celery's documentation`_. This change made the built-in scheduler and
job_processing apps obsolete, both were removed.
@@ -21,7 +21,7 @@ job_processing apps obsolete, both were removed.
Views namespaces
~~~~~~~~~~~~~~~~
All views are namespaced_ with the name of the app which defines them. If you have
developed 3rd party apps for **Mayan EDMS** be sure to update any reference to a view
developed 3rd party apps for Mayan EDMS be sure to update any reference to a view
by prepending the app name to the view name.
@@ -43,7 +43,7 @@ mail serving.
Update to Django 1.6.8
~~~~~~~~~~~~~~~~~~~~~~
**Mayan EDMS** has been updated to use Django 1.6.8.
Mayan EDMS has been updated to use Django 1.6.8.
Events app
@@ -55,13 +55,13 @@ for `Django activity stream`_
Watch folders
~~~~~~~~~~~~~
Filesystem folders can be monitored for change and their files automatically
uploaded as documents in **Mayan EDMS**.
uploaded as documents in Mayan EDMS.
Vagrant file included
~~~~~~~~~~~~~~~~~~~~~
A vagrant file is now included to allow developers to provision a virtual machine
with the latest development version of **Mayan EDMS**.
with the latest development version of Mayan EDMS.
User locale profile (language and timezone)
@@ -101,7 +101,7 @@ the metadata types of the new document type are automatically assigned.
New release cycle
~~~~~~~~~~~~~~~~~
Starting with this version a new release cycle methodology will come into effect.
The goal of this release cycle is to allow two series of versions of **Mayan EDMS** to be
The goal of this release cycle is to allow two series of versions of Mayan EDMS to be
active at a given time: A new major version with new functionality and a minor version
providing upgrades and fixes. This release (1.1) will be active and supported
during releases of versions 2.x, but will go into end-of-life as soon as
@@ -111,24 +111,24 @@ maintenance mode.
Deprecation of Python 2.6
~~~~~~~~~~~~~~~~~~~~~~~~~
Series 1.0 of **Mayan EDMS** will be the last series supporting Python 2.6. Series
Series 1.0 of Mayan EDMS will be the last series supporting Python 2.6. Series
2.0 will be using Django 1.7.x which itself requires Python 2.7 or later.
Improved testings
~~~~~~~~~~~~~~~~~
**Mayan EDMS** is now automatically tested against SQLite, MySQL and PostgreSQL.
Mayan EDMS is now automatically tested against SQLite, MySQL and PostgreSQL.
API updates
~~~~~~~~~~~
Many new API endpoints have been added exposing the majority of **Mayan EDMS** functionality.
Many new API endpoints have been added exposing the majority of Mayan EDMS functionality.
Messages contextual improvements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Many updates and simplifications were made to the source text messages to reduce the
difficulty of translating **Mayan EDMS** and maintaing the contextual meaning of the
difficulty of translating Mayan EDMS and maintaing the contextual meaning of the
text messages.
Improved method for custom settings
@@ -186,7 +186,7 @@ More technical documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Many new sub topics were added to the development section of the documentation
to allow developers to better understand the inner workings and philosophies
of **Mayan EDMS**.
of Mayan EDMS.
Other changes

View File

@@ -13,7 +13,7 @@ What's new in Mayan EDMS v2.0
Update to Django 1.7
--------------------
The biggest change of this release comes in the form of support for Django 1.7.
**Mayan EDMS** makes use of several new features of Django 1.7 like: migrations,
Mayan EDMS makes use of several new features of Django 1.7 like: migrations,
app config and transaction handling. The version of Django supported in this
version is 1.7.10. With the move to Django 1.7, support for South migrations
and Python 2.6 is removed. The switch to Django 1.7's app config means that
@@ -27,10 +27,10 @@ update a lot of legacy HTML and CSS was removed, greatly simplifying the
existing template and allowing the removal of some.
Theming and re-branding
----------------------
-----------------------
All the presentation logic and markup has been moved into it's own app, the
'appearance' app. All modifications required to customize the entire look of
the **Mayan EDMS** can now be done in a single app. Very little markup remains
the Mayan EDMS can now be done in a single app. Very little markup remains
in the other apps, and it's usually because of necessity, namely the widgets.py
modules.
@@ -98,7 +98,7 @@ app are no longer required. These are:
* slate
ACL system re-factor
-------------------
--------------------
The Access Control System has been greatly simplified and optimized. The
logistics to grant and revoke permissions are now as follows: Only Roles can
hold permissions, groups and user can no longer on their own be granted a
@@ -135,7 +135,7 @@ support. Administrators wanting to make a group of documents public are
encouraged to create an user, group and role for that purpose.
Metadata validators re-factor
----------------------------
-----------------------------
The metadata validators have been split into: Validators and Parsers.
Validators will just check that the input value conforms to certain
specification, raising a validation error is not and blocking the user from
@@ -194,11 +194,11 @@ Failure tolerance
-----------------
Previous versions made use of transactions to prevent data loss in the event of
an unexpected error. This release improves on that approach by also reacting
to infrastructure failures. **Mayan EDMS** can now recover without any or
to infrastructure failures. Mayan EDMS can now recover without any or
minimal data loss from critical events such as loss of connectivity to the
database manager. This changes allow installation of using database managers
that do not provide guaranteed concurrency such as SQLite, to scale to thousand
of documents. While this configuration is still not recommended, **Mayan EDMS**
of documents. While this configuration is still not recommended, Mayan EDMS
will now work and scale much better in environments where parts of the
infrastructure cannot be changed (such as the database manager).
@@ -219,7 +219,7 @@ new scheme.
Default document type and default document source
-------------------------------------------------
After installation a default document type and document source are created,
this means that users can start uploading documents as soon as **Mayan EDMS**
this means that users can start uploading documents as soon as Mayan EDMS
is installed without having to do any configuration setting changes. The
default document type and default document source are both called 'Default'.
@@ -229,7 +229,7 @@ Support for allowing 3rd party apps to unbind links binded by the core apps
was added to further improve re-branding and customization.
Statistics re-factor
-------------------
--------------------
Statistics gathering and generation has been overhauled to allow for the
creation of scheduled statistics. This allows statistics computation to be
scheduled during low load times. A new management command was added to

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

@@ -0,0 +1,87 @@
===============================
Mayan EDMS v2.1.1 release notes
===============================
Released: May 17, 2016
What's new
==========
This is a bugfix release and all users are encouraged to upgrade.
Fix object column resolution issue in navigation app
----------------------------------------------------
Version 2.1 includes a navigation feature that allows model instances from a
queryset generated using the .defer() or .only() Django filter optimization
features to resolve to their parent class transparently. This optimization
caused problems with the sources app which uses a
Missing Tesseract language files
--------------------------------
The Tesseract OCR backend now reports if the tesseract language file is missing
for the requested document's language.
Other changes
-------------
- Ensure the automatic default index is created after the default document type.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #288 <https://gitlab.com/mayan-edms/mayan-edms/issues/288>`_ Can't add sources in mayan-edms 2.1.
* `GitLab issue #289 <https://gitlab.com/mayan-edms/mayan-edms/issues/289>`_ OCR fails with Exception.
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

86
docs/releases/2.1.2.rst Normal file
View File

@@ -0,0 +1,86 @@
===============================
Mayan EDMS v2.1.2 release notes
===============================
Released: May 20, 2016
What's new
==========
This is a bugfix release and all users are encouraged to upgrade.
Language list sorting
---------------------
The document language list and the user locale profile language list are now
sorted to make it easier to find the desired language.
Fixed the metadata lookup options: {{ users }} and {{ groups }}
---------------------------------------------------------------
When configuring metadata type lookup options the {{ users }} and {{ groups }}
special options can be used to display a list of users or a list of groups.
These options where producing a list in the wrong format and were updated.
Other changes
-------------
- Add Makefile for common development tasks
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #290 <https://gitlab.com/mayan-edms/mayan-edms/issues/290>`_ Unicode characters not supported as metadata values
* `GitLab issue #292 <https://gitlab.com/mayan-edms/mayan-edms/issues/292>`_ Sort languages by name not by abbreviation
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

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

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

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

@@ -0,0 +1,81 @@
===============================
Mayan EDMS v2.1.4 release notes
===============================
Released: October 28, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Other changes
-------------
- Fix statistics namespace list display view
- Fix events list display view
- Update required Django version to 1.8.15
- Update required python-gnupg version to 0.3.9
- Improved orphaned temporary files test mixin
- Re-enable and improve GitLab CI MySQL testing
- Improved GPG handling
- New GPG backend system
- Minor documentation updates
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #311 <https://gitlab.com/mayan-edms/mayan-edms/issues/311>`_ acl page return ContentType:Document
* `GitLab issue #316 <https://gitlab.com/mayan-edms/mayan-edms/issues/316>`_ Error when trying to access the statistics
* `GitLab issue #324 <https://gitlab.com/mayan-edms/mayan-edms/issues/324>`_ Document signature tests fail in Ubuntu 16.10
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

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

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

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

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

238
docs/releases/2.1.rst Normal file
View File

@@ -0,0 +1,238 @@
=============================
Mayan EDMS v2.1 release notes
=============================
Released: May 14, 2016
What's new
==========
Upgrade to use Django 1.8.13
----------------------------
With the end of life support for Django 1.7, moving to the next Mayan EDMS
minor version was a target for this release. The Django minor release chosen was
1.8 as it is very compatible with 1.7 and required minimal changes. Django 1.8
is an LTS release (Long Term Support) meaning that is no new big feature of a
new Django version is required, the project can stay in Django 1.8 for a good
amount of time with no downsides.
Remove remaining references to Django's User model
--------------------------------------------------
The few remaining hard code references to Django's User model that were missed
in a previous release have been removed. Using a custom User model with Mayan
should present very little if any obstacles.
Remove included login required middleware
-----------------------------------------
The custom middleware include with Mayan EDMS that forces user to be
authenticated before being able to access any view has been removed in favor of
a dedicated 3rd party Django app for that purpose. The app chosen was
django-stronghold (http://mikegrouchy.com/django-stronghold/).
Improve generation of success and error messages for class based views
----------------------------------------------------------------------
In the past success messages for actions would show a generic mention to the
object being manipulated (document, folder, tag). Now the errors and success
messages with be more explicit in describing what the view has or was trying
to manipulate.
Remove ownership concept from folders
-------------------------------------
Currently Folders in Mayan EDMS have a field that stores a reference to the
user that has created that folders. One of the design decisions of Mayan EDMS
is that there should never be any explicit ownership of any object. Ownership
is relative and is defined by the Access Control List of an object. The
removal of the user field from the Folders model brings this app in line with
the defined behavior.
Replacement of strip_spaces middleware with the spaceless template tag
----------------------------------------------------------------------
As a size optimization technique HTML content was dynamically stripped of spaces
as it was being served. The technique used involved detecting the MIME type of
the content being served and if found to be of text/HTML type spaces between
tags were stripped. An edge case was found where this did not worked always.
The approached has been changed to use Django's official tag to strip spaces.
In addition to using an official approach, the removal of spaces only happens
when the template is compiled and not at each HTTP response. The optimization
is minimal but since it happened at every response a small increase in speed
is expected for all deployment scenarios.
Deselect the update checkbox for optional metadata by default
-------------------------------------------------------------
During the last releases the behavior of the of metadata edit checkbox has seen
several tune ups. Thanks to community feedback one small change has been
introduced. The edit checkbox will be deselected by default for all optional
document type metadata entries.
Implement per document type document creation permission
--------------------------------------------------------
If is now possible to grant the document creation permission to a role for a
document type. Previously document creation was a "blanket" permission. Having
the permission meant that user could create any type of document. With this
change it is now possible to restrict which types of document users of a
specific role can create.
Make document type delete time period optional
----------------------------------------------
The entries that defined after how long a document in the trash would be
permanently deleted have been made optional. This means that if a document
type has this option blank, the corresponding document of this type would never
be deleted from the trash can.
Fixed date locale handling in document properties, checkout and user detail views
---------------------------------------------------------------------------------
A few releases back the ability to for users to set their timezone was added.
This change also included a smart date rendering update to adjust the dates
and times fields to the user's timezone. Some users reported a few views where
this timezone adjustment was not happening, this has been fully fixed.
Default index
-------------
During new installations a default index that organizes document by year/month
when they were uploaded will be created to help users better understand the
concept of indexes in Mayan EDMS.
HTML5 upload widget
-------------------
A common request is the ability to just drap and drop documents from other
windows into Mayan EDMS's document upload wizard. This release includes that
capability and will also show a completion bar for the upload. Document
uploading is sped up dramatically with this change.
Message of the Day app
----------------------
Administrators wanting to display announcements has no other way to do so
than to customize the login template. To avoid this a new app has been added
that allows for the creation of messages to be shown at the user login
screen. These messages can have an activation and an expiration date and
time. These messages are useful for display company access policies,
maintenance announcement, etc.
Document signing
----------------
The biggest change for this release if the addition of document signing from
within the UI. Enterprise users request this feature very often as in those
environments cryptographic signatures are a basic requirement. Previously
Mayan EDMS had the ability to automatically check if a document was signed and
if signed, verify the validity of the signature. However, to sign documents
user had to download the document, sign the document offline, and either
re-upload the signed document as a new version or upload a detached
signature for the existing document version. Aside from being now able to sign
documents from the web user interface, the way keys are handled has been
rewritten from scratch to support distributed key storage. This means that
a key uploaded in one computer by one user can be used transparently by
other users in other computers to sign documents. The relevant access control
updates were added to the new document signing system. Users wanting to sign a
document need the singing permission for the document (or document type),
for the private key they intend to use, and the passphrase (if the key has one).
Finally documents are now checked just once for signatures and not every time
they are accessed, this provides a very sizable speed improvement in document
access and availability.
Other changes
=============
- Upgrade Python requirements to recent versions.
- Rename 'Content' search box to 'OCR'.
- Silence all Django 1.8 model import warnings.
- Add icons to the document face menu links.
- Increase icon to text spacing to 3px.
- Add new permission: checkout details view.
- Add HTML tags stripping to the browser title generation template.
- Folder and Tag creation API calls now return the id of the created instances.
- 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.
- Start migration from django-sendfile to django-downloadview.
- Index more model fields.
- Navigation system support querysets using .defer() or .only() optimizations.
- API fixes and improvements.
- Increase total test count to 311.
- Increase test coverage to 77%.
- Documentation improvements.
- Handle unicode filenames in staging folders.
- Add staging file deletion permission.
- New document_signature_view permission.
- Instead of multiple keyservers only one keyserver is now supported.
- Replace document type selection widget with an opened selection list.
- Add roadmap documentation chapter.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #137 <https://gitlab.com/mayan-edms/mayan-edms/issues/137>`_ Add app creation chapter to documentation.
* `GitLab issue #147 <https://gitlab.com/mayan-edms/mayan-edms/issues/147>`_ Add in app document signing.
* `GitLab issue #161 <https://gitlab.com/mayan-edms/mayan-edms/issues/161>`_ Email backend setup documentation.
* `GitLab issue #162 <https://gitlab.com/mayan-edms/mayan-edms/issues/162>`_ Add HTML5 file uploader.
* `GitLab issue #191 <https://gitlab.com/mayan-edms/mayan-edms/issues/191>`_ Split index contents title into title and path/breadcrumb widget.
* `GitLab issue #206 <https://gitlab.com/mayan-edms/mayan-edms/issues/206>`_ Support for dynamic LOGIN_EXEMPT_URLS.
* `GitLab issue #208 <https://gitlab.com/mayan-edms/mayan-edms/issues/208>`_ Add tagging step to upload wizard.
* `GitLab issue #218 <https://gitlab.com/mayan-edms/mayan-edms/issues/218>`_ Cookie cutter template for Mayan apps.
* `GitLab issue #222 <https://gitlab.com/mayan-edms/mayan-edms/issues/222>`_ Add notice board or Message of the Day.
* `GitLab issue #225 <https://gitlab.com/mayan-edms/mayan-edms/issues/225>`_ Remove hard coded User model.
* `GitLab issue #232 <https://gitlab.com/mayan-edms/mayan-edms/issues/232>`_ "Create documents" is a blanket permission for a user to create a document of any document type.
* `GitLab issue #246 <https://gitlab.com/mayan-edms/mayan-edms/issues/246>`_ Upgrade to Django version 1.8 as Django 1.7 is end-of-life.
* `GitLab issue #251 <https://gitlab.com/mayan-edms/mayan-edms/issues/251>`_ Add method to disable metadata edit form "update" checkbox when not needed.
* `GitLab issue #255 <https://gitlab.com/mayan-edms/mayan-edms/issues/255>`_ UnicodeDecodeError in apps/common/middleware/strip_spaces_widdleware.py.
* `GitLab issue #256 <https://gitlab.com/mayan-edms/mayan-edms/issues/256>`_ typo in locale settings (Dutch).
* `GitLab issue #261 <https://gitlab.com/mayan-edms/mayan-edms/issues/261>`_ Feature: Document Access Audit Logging.
* `GitLab issue #265 <https://gitlab.com/mayan-edms/mayan-edms/issues/265>`_ Indexes show list (show indexe only if the user has ACLs on document type).
* `GitLab issue #266 <https://gitlab.com/mayan-edms/mayan-edms/issues/266>`_ Smart links : Dynamic label with Postgresql.
* `GitLab issue #267 <https://gitlab.com/mayan-edms/mayan-edms/issues/267>`_ Release 2.1 RC1 : Notes and ideas.
* `GitLab issue #268 <https://gitlab.com/mayan-edms/mayan-edms/issues/268>`_ Release 2.1 RC1 : Bug to access inside an indexes.
* `GitLab issue #270 <https://gitlab.com/mayan-edms/mayan-edms/issues/270>`_ Release 2.1 RC1 : Bug statistics.
* `GitLab issue #274 <https://gitlab.com/mayan-edms/mayan-edms/issues/274>`_ [Release 2.1 RC2] Web Tests.
* `GitLab issue #275 <https://gitlab.com/mayan-edms/mayan-edms/issues/275>`_ [Release 2.1 RC2] Notes.
* `GitLab issue #276 <https://gitlab.com/mayan-edms/mayan-edms/issues/276>`_ [Release 2.1 RC2] API Tests.
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

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

@@ -0,0 +1,96 @@
=============================
Mayan EDMS v2.2 release notes
=============================
Released: XX, 2017
What's new
==========
Other changes
-------------
- Remove the installation app
- Add support for 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
- Dashboard
- Moved licenses to their own module in every app
- Update project to work with Django 1.10.4
- Tags are alphabetically ordered by label
- Stop loading theme fonts from the web
- Add support for attaching multiple tags to single or multiple documents.
- Refactor the workflow for removing tags from single and multiple documents.
- Move new version creation blocking from the documents app to the checkouts app
Removals
--------
* None
Upgrading from a previous version
---------------------------------
If installed via PIP
~~~~~~~~~~~~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
If installed using Git
~~~~~~~~~~~~~~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Manually upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Remove deprecated requirements::
$ pip uninstall -y -r removals.txt 2> /dev/null
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #294 <https://gitlab.com/mayan-edms/mayan-edms/issues/294>`_ Move new version creation blocking from the documents app to the checkouts app
* `GitLab issue #301 <https://gitlab.com/mayan-edms/mayan-edms/issues/301>`_ Remove the installation app
* `GitLab issue #307 <https://gitlab.com/mayan-edms/mayan-edms/issues/307>`_ Enter multiple Tags at once
* `GitLab issue #311 <https://gitlab.com/mayan-edms/mayan-edms/issues/311>`_ acl page return ContentType:Document
* `GitLab issue #319 <https://gitlab.com/mayan-edms/mayan-edms/issues/319>`_ TransformationResize issue with very "long" image
* `GitLab issue #342 <https://gitlab.com/mayan-edms/mayan-edms/issues/342>`_ Tags should be of unordered / unsorted data type
* `GitLab issue #343 <https://gitlab.com/mayan-edms/mayan-edms/issues/343>`_ Bootstrap's dependency on fonts.googleapis.com causes Mayan EDMS web interface load slowly if public internet is unreachable
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -2,19 +2,19 @@
Release notes
=============
Release notes for the official **Mayan EDMS** releases. Each release note will tell you
Release notes for the official Mayan EDMS releases. Each release note will tell you
what's new in each version, and will also describe any backwards-incompatible
changes made in that version.
For those upgrading to a new version of **Mayan EDMS**, you will need to check
For those upgrading to a new version of Mayan EDMS, you will need to check
all the backwards-incompatible changes and deprecated features for
each 'final' release from the one after your current **Mayan EDMS** version,
each 'final' release from the one after your current Mayan EDMS version,
up to and including the latest version.
Final releases
==============
Below are release notes through **Mayan EDMS** |version| and its minor releases. Newer
Below are release notes through Mayan EDMS |version| and its minor releases. Newer
versions of the documentation contain the release notes for any later releases.
2.0 series
@@ -22,9 +22,17 @@ versions of the documentation contain the release notes for any later releases.
.. toctree::
:maxdepth: 1
2.0
2.0.1
2.2
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1
2.0.2
2.0.1
2.0
1.0 series
----------

View File

@@ -2,7 +2,7 @@
Access control lists
====================
Besides the permissions system explained in :doc:`permissions`, **Mayan EDMS**
Besides the permissions system explained in :doc:`permissions`, Mayan EDMS
provides per object permission granting. This feature is used to grant a
permission to a role, but this permission can only be executed for a limited
number of objects (documents, folders, tags) instead of being effective

View File

@@ -2,7 +2,7 @@
App creation
============
**Mayan EDMS** apps are essentially Django app with some extra code to register
Mayan EDMS apps are essentially Django app with some extra code to register
navigation, permissions and other relationships.
@@ -21,7 +21,7 @@ App modules
- api_views.py
REST API views go here. **Mayan EDMS** uses Django REST Framework API view
REST API views go here. Mayan EDMS uses Django REST Framework API view
classes.
- apps.py
@@ -135,7 +135,7 @@ Views
=====
The module common.generics provides custom generic class based views to be used.
The basic views used to create, edit, view and delete objects in **Mayan EDMS**
The basic views used to create, edit, view and delete objects in Mayan EDMS
are: SingleObjectCreateView, SingleObjectDetailView, SingleObjectEditView,
and SingleObjectListView

16
docs/topics/backups.rst Normal file
View File

@@ -0,0 +1,16 @@
=======
Backups
=======
To backup your install of Mayan EDMS just copy the actual document files and
the database content. If you are using the default storage backend, the
document files should be found in ``mayan/media/document_storage/``.
To dump the content of your database manager refer to the documentation chapter
regarding database data "dumping".
Example:
- Postgresl: http://www.postgresql.org/docs/current/static/backup.html
- MySQL: https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
- SQLite: Just copy the file ``mayan/media/db.sqlite3``

View File

@@ -15,14 +15,14 @@ Search for information in the `archives of the mayan-edms mailing list`_, or
`post a question`_. If you prefer news servers, use the gateway provided by
Gmane_.
**Mayan EDMS** community developers do their best to reply to basic questions.
Mayan EDMS community developers do their best to reply to basic questions.
Be sure to check the list archives as it may already containt the answers to
your questions.
Twitter
-------
**Mayan EDMS** has an official Twitter account, `@mayanedms
Mayan EDMS has an official Twitter account, `@mayanedms
<http://twitter.com/mayanedms>`_, which is used for announcements and occasional
related news tidbits.
@@ -30,7 +30,7 @@ related news tidbits.
Bugs/ticket tracker
-------------------
Report bugs with **Mayan EDMS** or search existing ones using Github's `ticket tracker`_.
Report bugs with Mayan EDMS or search existing ones using Gitlab's `ticket tracker`_.
.. _archives of the mayan-edms mailing list: http://groups.google.com/group/mayan-edms/

View File

@@ -8,7 +8,7 @@ Contributors
How to contribute?
------------------
You can help further the development of **Mayan EDMS** by testing, reporting
You can help further the development of Mayan EDMS by testing, reporting
bugs, submitting documentation or code patches.
Lead developer

View File

@@ -2,15 +2,17 @@
Deploying
=========
OS "bare metal"
===============
Below are some ways to deploye and use Mayan EDMS. Do use more than one method.
Like other Django based projects **Mayan EDMS** can be deployed in a wide variety
OS "bare metal" method
======================
Like other Django based projects Mayan EDMS can be deployed in a wide variety
of ways. The method provided below is only a bare minimum example.
These instructions are independent of the instructions mentioned in the
:doc:`installation` chapter but assume you have already made a test install to
test the compatibility of your operating system. These instruction are for
Ubuntu 15.04.
Ubuntu 16.10.
Switch to superuser::
@@ -20,8 +22,12 @@ Install all system dependencies::
apt-get install nginx supervisor redis-server postgresql \
libpq-dev libjpeg-dev libmagic1 libpng-dev libreoffice \
libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv \
tesseract-ocr unpaper poppler-utils -y
libtiff-dev gcc ghostscript gnupg python-dev python-virtualenv \
tesseract-ocr poppler-utils -y
If using Ubuntu 16.10 also install GPG version 1 (as GPG version 2 is the new default for this distribution and not yet supported by Mayan EDMS) ::
apt-get install gnupg1 -y
Change to the directory where the project will be deployed::
@@ -80,6 +86,10 @@ Append the following to the ``mayan/settings/local.py`` file, paying attention t
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'
If using Ubuntu 16.10, also add this line to the ``mayan/settings/local.py`` file::
SIGNATURES_GPG_PATH = '/usr/bin/gpg1'
Migrate the database or initialize the project::
mayan-edms.py initialsetup
@@ -109,7 +119,7 @@ Create the directory for the uWSGI log files::
mkdir /var/log/uwsgi
Create the NGINX site file for **Mayan EDMS**, ``/etc/nginx/sites-available/mayan``::
Create the NGINX site file for Mayan EDMS, ``/etc/nginx/sites-available/mayan``::
server {
listen 80;
@@ -134,7 +144,7 @@ Create the NGINX site file for **Mayan EDMS**, ``/etc/nginx/sites-available/maya
}
}
Enable the NGINX site for **Mayan EDMS**::
Enable the NGINX site for Mayan EDMS::
ln -s /etc/nginx/sites-available/mayan /etc/nginx/sites-enabled/
@@ -186,11 +196,12 @@ Make the installation directory readable and writable by the webserver user::
Restart the services::
/etc/init.d/nginx restart
/etc/init.d/supervisor restart
systemctl enable supervisor
systemctl restart supervisor
systemctl restart nginx
Docker
======
Docker method
=============
Deploy the Docker image stack::
@@ -198,15 +209,15 @@ Deploy the Docker image stack::
docker run --name redis -d redis
docker run --name mayan-edms -p 80:80 --link postgres:postgres --link redis:redis -e POSTGRES_DB=mayan -e POSTGRES_USER=mayan -e POSTGRES_PASSWORD=mysecretpassword -v /usr/local/lib/python2.7/dist-packages/mayan/media -d mayanedms/monolithic
After the **Mayan EDMS** container finishes initializing (about 5 minutes), it will
After the Mayan EDMS container finishes initializing (about 5 minutes), it will
be available by browsing to http://127.0.0.1. You can inspect the initialization
with::
docker logs mayan-edms
Docker Compose
==============
Docker Compose method
=====================
Create a file named ``environment`` with the following content::
@@ -242,14 +253,14 @@ Launch the entire stack (Postgres, Redis, and Mayan EDMS) using::
docker-compose -f docker-compose.yml -p mayanedms up -d
After the **Mayan EDMS** container finishes initializing (about 5 minutes), it will
After the Mayan EDMS container finishes initializing (about 5 minutes), it will
be available by browsing to http://127.0.0.1. You can inspect the initialization
with::
docker logs mayanedms_mayan-edms_1
Vagrant
=======
Vagrant method
==============
Make sure you have Vagrant and a provider properly installed as per
https://docs.vagrantup.com/v2/installation/index.html
Clone the repository and execute::

View File

@@ -3,11 +3,11 @@
Development
===========
**Mayan EDMS** is under active development, and contributions are welcome.
Mayan EDMS is under active development, and contributions are welcome.
If you have a feature request, suggestion or bug report, please open a new
issue on the `GitLab issue tracker`_. To submit patches, please send a pull
request on GitLab_. Make sure to add yourself to the :ref:`contributors` file.
issue on the `GitLab issue tracker`_. To submit patches, please send a merge
request on GitLab_.
.. _GitLab: https://gitlab.com/mayan-edms/mayan-edms/
.. _`GitLab issue tracker`: https://gitlab.com/mayan-edms/mayan-edms/issues
@@ -16,8 +16,8 @@ request on GitLab_. Make sure to add yourself to the :ref:`contributors` file.
Project philosophies
--------------------
How to think about **Mayan EDMS** when doing changes or adding new features,
why things are the way they are in **Mayan EDMS**.
How to think about Mayan EDMS when doing changes or adding new features,
why things are the way they are in Mayan EDMS.
- Functionality must be as market/sector independent as possible, code for the
95% of use cases.
@@ -125,7 +125,7 @@ Correct:
Dependencies
~~~~~~~~~~~~
**Mayan EDMS** apps follow a hierarchical model of dependency. Apps import from
Mayan EDMS apps follow a hierarchical model of dependency. Apps import from
their parents or siblings, never from their children. Think plugins. A parent
app must never assume anything about a possible existing child app. The
documents app and the Document model are the basic entities they must never
@@ -136,7 +136,7 @@ Variables
~~~~~~~~~
Naming of variables should follow a Major to Minor convention, usually
including the purpose of the variable as the first piece of the name, using
underscores as spaces. camelCase is not used in **Mayan EDMS**.
underscores as spaces. camelCase is not used in Mayan EDMS.
Examples:
@@ -171,7 +171,7 @@ Classes:
Strings
~~~~~~~
Quotation character used in **Mayan EDMS** for strings is the single quote.
Quotation character used in Mayan EDMS for strings is the single quote.
Double quote is used for multiple line comments or HTML markup.
Migrations
@@ -199,7 +199,7 @@ as passed directly from the exception object.
Source Control
--------------
**Mayan EDMS** source is controlled with Git_.
Mayan EDMS source is controlled with Git_.
The project is publicly accessible, hosted and can be cloned from **GitLab** using::
@@ -209,7 +209,7 @@ The project is publicly accessible, hosted and can be cloned from **GitLab** usi
Git branch structure
--------------------
**Mayan EDMS** follows a simplified model layout based on Vincent Driessen's
Mayan EDMS follows a simplified model layout based on Vincent Driessen's
`Successful Git Branching Model`_ blog post.
``develop``
@@ -299,7 +299,7 @@ merged.
Debugging
---------
**Mayan EDMS** makes extensive use of Django's new `logging capabilities`_.
Mayan EDMS makes extensive use of Django's new `logging capabilities`_.
By default debug logging for all apps is turned on. If you wish to customize
how logging is managed turn off automatic logging by setting
`COMMON_AUTO_LOGGING` to ``False`` and add the following lines to your

View File

@@ -2,7 +2,7 @@
Document types
==============
The basic unit of data in **Mayan EDMS** is the ``document type``. A document
The basic unit of data in Mayan EDMS is the ``document type``. A document
type can be interpreted also as a document category, a document class, or a
document template. Document types need to be created before documents can be
uploaded. It is not possible to upload documents without assigning them a
@@ -11,7 +11,7 @@ document type. Examples of document type: **invoices**, **blueprints**,
Settings and attributes are applied to document types and documents will
inherit those settings and attributes based on the document type they were
assigned when uploaded into **Mayan EDMS**. A document can only be of one
assigned when uploaded into Mayan EDMS. A document can only be of one
type at a given moment, but if needed, the type of a document can be changed.
Upon changing its type, the document will lose its previous settings and
attributes, and will inherit the settings and attributes of its new type.

View File

@@ -7,7 +7,7 @@ Frequently asked questions and solutions
**Q: PostgreSQL vs. MySQL**
Since Django abstracts database operations from a functional point of view
**Mayan EDMS** will behave exactly the same either way. The only concern
Mayan EDMS will behave exactly the same either way. The only concern
would be that MySQL doesn't support transactions for schema modifying
commands. The only moment this could cause problems is when running
South migrations during upgrades, if a migration fails the database
@@ -90,7 +90,7 @@ When using ``MySQL`` and doing OCR on languages other than English
**Q: Is virtualenv required as specified in the documentation?**
* It is not necessary, it's just a strong recommendation mainly to reduce
* It is not necessary, but it's a strong recommendation mainly to reduce
dependency conflicts by isolation from the main Python system install.
If not using a virtualenv, pip would install Mayan's dependencies
globally coming in conflict with the distribution's prepackaged Python
@@ -116,3 +116,13 @@ http://mayan-edms-ru.blogspot.com/2011/11/blog-post_09.html
**Q: Can you change the display order of documents...i.e can they be in alphabetical order?**
A the moment no, but it is something being considered.
**Q: Does Mayan EDMS work with Python 3?**
Not at the moment. When all the projects and libraries upon which Mayan is
dependent support Python 3 then will the project move to fully support Python 3.
**Q: The watched folder feature is not working**
Make sure that the Celery BEAT scheduler is running correctly as it is the element
that triggers the periodics tasks.

View File

@@ -19,7 +19,7 @@ Features
* Office document format support.
* **Mayan EDMS** can detect the presence of Libre Office and use it to support
* Mayan EDMS can detect the presence of Libre Office and use it to support
word processing files, spreadsheets and presentations.
* User defined metadata fields.
@@ -44,7 +44,7 @@ Features
* Previews for many file formats.
* **Mayan EDMS** provides image preview generation for many popular file
* Mayan EDMS provides image preview generation for many popular file
formats.
* Full text searching.
@@ -78,7 +78,7 @@ Features
* Multilingual user interface.
* **Mayan EDMS** being written using the Django_ framework, can be translated
* Mayan EDMS being written using the Django_ framework, can be translated
to practically any language spoken in the world. For a list of translated
languages have a look at the Transifex_ project location.

View File

@@ -2,7 +2,7 @@
File storage
============
The files are stored and placed under **Mayan EDMS** "control" to avoid
The files are stored and placed under Mayan EDMS "control" to avoid
filename clashes each file gets renamed to its ``UUID`` (Universally Unique ID),
without extension, and stored in a simple flat arrangement in a directory.
@@ -20,9 +20,16 @@ This doesn't stop access to the files but renaming, moving or updating
directly them is not recommended because it would throw the database out
of sync.
Because **Mayan EDMS** components are as decoupled from each other as possible,
Because Mayan EDMS components are as decoupled from each other as possible,
storage in this case is decoupled and its behavior is controlled
not by the project but by the ``Storage`` module class. All the other
modules don't make any assumptions about how the actual document files are
stored. This way files can be saved locally, over the network or even across
the Internet and everything will still operate exactly the same.
The default file storage backend: ``storage.backends.filebasedstorage.FileBasedStorage``
is a simple backend that only supports paths and not IP addresses. In case you
are interested in using remote volumes to store documents (NFS, SAMBA), first
mount these volumes so that they appear as a directories to Mayan EDMS. For
direct support for remote volumes a custom backend would be needed such as those
provided by the Django Storages project (https://django-storages.readthedocs.org/en/latest/).

View File

@@ -1,7 +1,7 @@
Concepts
========
Introductions to all the key parts of **Mayan EDMS** you'll need to know:
Introductions to all the key parts of Mayan EDMS you'll need to know:
.. toctree::
:maxdepth: 1
@@ -15,8 +15,12 @@ Introductions to all the key parts of **Mayan EDMS** you'll need to know:
checkouts
versioning
signatures
ocr_backend
indexes
languages
smart_links
tags
mailing
settings
file_storage
screenshots
backups

View File

@@ -17,7 +17,7 @@ Example:
- Metadata type: ``Product year``, associated as a required metadata for the document type ``Product sheet``.
- Index: ``Product sheets per year``, and associated to the document type ``Product sheet``.
- Index slug: ``product-sheets-per-year``. Slugs are internal unique identifiers that can be used by other **Mayan EDMS** modules to reference each index.
- Index slug: ``product-sheets-per-year``. Slugs are internal unique identifiers that can be used by other Mayan EDMS modules to reference each index.
- Index tree template as follows:
.. blockdiag::

View File

@@ -2,11 +2,11 @@
Installation
============
**Mayan EDMS** should be deployed like any other Django_ project and
Mayan EDMS should be deployed like any other Django_ project and
preferably using virtualenv_.
Being a Django_ and a Python_ project, familiarity with these technologies is
recommended to better understand why **Mayan EDMS** does some of the things it
recommended to better understand why Mayan EDMS does some of the things it
does.
Bellow are the step needed for a test install.
@@ -20,13 +20,13 @@ Ubuntu
If using a Debian_ or Ubuntu_ based Linux distribution, get the executable
requirements using::
sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr unpaper poppler-utils -y
sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr poppler-utils -y
Mac OSX
-------
**Mayan EDMS** is dependent on a number of binary packages and the recommended
Mayan EDMS is dependent on a number of binary packages and the recommended
way is to use a package manager such as `MacPorts <https://www.macports.org/>`_
or `Homebrew <http://brew.sh/>`_.
@@ -45,7 +45,7 @@ With MacPorts installed run the command:
Set the Binary paths
********************
**Mayan EDMS** by default will look in /usr/bin/ for the binary files it needs
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs
so either you can symlink the binaries installed via MacPorts in /opt/local/bin/
to /usr/bin/ with ...
@@ -71,7 +71,7 @@ With Homebrew installed run the command:
Set the Binary paths
********************
**Mayan EDMS** by default will look in /usr/bin/ for the binary files it needs
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs
so either you can symlink the binaries installed via brew in /usr/local/bin/
to /usr/bin/ with ...
@@ -99,8 +99,8 @@ Initialize a ``virtualenv`` to deploy the project:
source venv/bin/activate
pip install mayan-edms
By default **Mayan EDMS** will create a single file SQLite_ database, which makes
it very easy to start using **Mayan EDMS**. Populate the database with the
By default Mayan EDMS will create a single file SQLite_ database, which makes
it very easy to start using Mayan EDMS. Populate the database with the
project's schema doing:
.. code-block:: bash
@@ -112,14 +112,22 @@ Point your browser to http://127.0.0.1:8000. If everything was installed
correctly you should see the login screen and panel showing a randomly generated
admin password.
Note: Background tasks and scheduled tasks will not run when using the test server.
Background tasks and scheduled tasks will not run when using the test server.
The ``runserver`` command is only meant for testing, do not use in a production
server.
Note that the default IP address, 127.0.0.1, is not accessible from other
machines on your network. To make your test server viewable to other
machines on the network, use its own IP address (e.g. 192.168.2.1) or 0.0.0.0 or :: (with IPv6 enabled).
You can provide an IPv6 address surrounded by brackets (e.g. [200a::1]:8000). This will automatically enable IPv6 support.
Production use
==============
After making sure everything is running correctly, stop the `runserver` command.
Deploy **Mayan EDMS** using the webserver of your preference. For more information
After making sure everything is running correctly, stop the ``runserver`` command.
Deploy Mayan EDMS using the webserver of your preference. For more information
on deployment instructions and examples, checkout Django's official documentation
on the topic https://docs.djangoproject.com/en/1.7/howto/deployment/
For a simple production deployment setup follow the instructions in the

19
docs/topics/languages.rst Normal file
View File

@@ -0,0 +1,19 @@
=========
Languages
=========
The list of languages choices in the language dropdown used for documents is
based on the current ISO 639 list. This list can be quite extensive. To reduce
the number of languages available use the settings ``DOCUMENTS_LANGUAGE_CHOICES``,
and set it to a nested list of abbreviations + languages names like::
DOCUMENTS_LANGUAGE_CHOICES = (('eng', 'English'), ('spa', 'Spanish'))
The default language to appear on the dropdown can also be configured using::
DOCUMENTS_LANGUAGE = 'spa'
Use the correct ISO 639-3 language abbreviation (https://en.wikipedia.org/wiki/ISO_639)
as this code is used in several subsystems in Mayan EDMS such as the OCR app
to determine how to interpret the document.

View File

@@ -2,7 +2,7 @@
License
=======
**Mayan EDMS** is distributed under the `Apache 2.0 License`_.
Mayan EDMS is distributed under the `Apache 2.0 License`_.
The complete license terms are included below.
.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt

17
docs/topics/mailing.rst Normal file
View File

@@ -0,0 +1,17 @@
=================
Mailing documents
=================
To be able to send documents via email from inside Mayan EDMS you need to add
and configure the following configuration variables in your
mayan/settings/local.py file::
EMAIL_HOST = 'smtp.gmail.com' # Or similar
EMAIL_PORT = 587
EMAIL_HOST_USER = '<your smtp username>'
EMAIL_HOST_PASSWORD = '<your smtp password>'
EMAIL_USE_TLS = True
"Mail is sent using the SMTP host and port specified in the EMAIL_HOST and EMAIL_PORT settings. The EMAIL_HOST_USER andEMAIL_HOST_PASSWORD settings, if set, are used to authenticate to the SMTP server, and the EMAIL_USE_TLS and EMAIL_USE_SSL settings control whether a secure connection is used."
For more details consult Django's documentation on the topic: https://docs.djangoproject.com/en/1.8/ref/settings/#email-host

View File

@@ -0,0 +1,21 @@
===========
OCR backend
===========
Mayan EDMS ships an OCR backend that uses the FLOSS engine Tesseract
(https://github.com/tesseract-ocr/tesseract/), but it can
use other engines. To support other engines crate a wrapper that subclasess the
``OCRBackendBase`` class defined in mayan/apps/ocr/classes. This subclass should
expose the ``execute`` method. For an example of how the Tesseract backend
is implemented take a look at the file ``mayan/apps/ocr/backends/tesseract.py``
Once you create you own backend, in your local.py settings add the option
OCR_BACKEND and point it to your new OCR backend class path.
The default value of OCR_BACKEND is ``"ocr.backends.tesseract.Tesseract"``
To add support to OCR more languages when using Tesseract, install the
corresponding language file. If using a Debian based OS, this command will
display the available language files:
apt-cache search tesseract-ocr

View File

@@ -2,7 +2,7 @@
Permissions
===========
**Mayan EDMS** provides very fine control over which actions users can
Mayan EDMS provides very fine control over which actions users can
perform. Action control works by allowing ``roles``, that are composed of
``groups`` of ``users`` to be granted a ``permission`` such that the holder of
that permission can exercise it throughout the entire system.

102
docs/topics/roadmap.rst Normal file
View File

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

View File

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

12
docs/topics/settings.rst Normal file
View File

@@ -0,0 +1,12 @@
========
Settings
========
When Mayan EDMS is initially installed a ``local.py`` file is created inside the
``/mayan/settings/`` folder. So if you installed Mayan EDMS according to the
instructions provided in this documentation your ``local.py`` should be located in
the directory: ``/usr/share/mayan-edms/mayan/settings/local.py``.
For a list of all the configuration options, go to "Setup" then "Settings" on
your browser. This is also a good place to check if your overrided setting
option value in your ``local.py`` file is being interpreted correctly.

View File

@@ -2,7 +2,7 @@
Document signatures
===================
**Mayan EDMS** supports two types of document signatures: embedded and
Mayan EDMS supports two types of document signatures: embedded and
detached signatures. When a document with an embedded signature is
uploaded, this signature is readily detected as part of the document
inspection step. The status of the signature can be verified by accessing the
@@ -21,4 +21,6 @@ keys no longer needed can also be deleted from this menu.
Only `GNU Privacy Guard`_ signatures are support at the moment.
Only version 1 of `GNU Privacy Guard`_ is supported for now.
.. _`GNU Privacy Guard`: www.gnupg.org/

View File

@@ -9,9 +9,6 @@ The current document sources supported are:
- Web - ``HTML`` forms with a ``Browse`` button that will open the file dialog
when clicked to allow selection of files in the user's computer to be
uploaded as documents.
- Staging folder - Folder where networked attached scanned can save image
files. The files in these staging folders are scanned and a preview is
generated to help the process of upload.
- POP3 email - Provide the email, server and credential of a ``POP3`` based
email to be scanned periodically for email. The body of the email is uploaded
as a document and the attachments of the email are uploaded as separate
@@ -20,6 +17,19 @@ The current document sources supported are:
the ``IMAP`` protocol.
- Watch folder - A filesystem folder that is scanned periodically for files.
Any file in the watch folder is automatically uploaded.
- Staging folder - Folder where networked attached scanned can save image
files. The files in these staging folders are scanned and a preview is
generated to help the process of upload. Staging folders and Watch folders
work in a similar way with the main difference being that Staging folders are
interactive while Watch folders are automatic; documents in a Watch folder
are uploaded periodically and documents in a Staging folder remain indefinitely
there until an user uploads them. A preview for files in a Staging folder is
also provided. An example of Staging folder use is when multiple people
are scanning documents but only one person must be allowed to upload those
documents. This one person examines the scans quality and decides what to
upload and what to reject and have re-scanned. Watch folders can be used
when the quality of the scans is irrelevant or when they will be known
to be of good quality, such as when receiving e-faxes as PDFs.
Document source can be configure to allow document bundles to uploaded as
compressed files which are decompressed and their content uploaded as separate

View File

@@ -7,5 +7,16 @@ documents. For example: a scanning equipment may only produce landscape PDFs.
In this case an useful transformation for that document source would be to
rotate all documents scanned by 270 degrees after being uploaded, this way
whenever a document is uploaded from that scanner it will appear in portrait
orientation. Transformations do not physically modify the document file but
are just associated with the document's temporary graphical representation.
orientation. In this case add a this transformation to the Mayan EDMS source
that is connected to that device this way all pages scanned via that source
with inherit the transformation as they are created.
Transformations can also be added to existing documents, by clicking on a
document's page, then clicking on "transformations". In this view the Actions
menu will have a new option that reads "Create new transformation". At the
moment the rotation, zoom, crop, and resize transformations are available.
Once the document image has been corrected resubmit it for OCR for improved
results.
Transformations are not destructive and do not physically modify the document
file, they just modify the document's graphical representation.

View File

@@ -2,7 +2,7 @@
Document versioning
===================
**Mayan EDMS** has the ability to store different versions of the same
Mayan EDMS has the ability to store different versions of the same
document. A comment field is provided to allow users to summarize the new
version changes in comparison with the previous one. If a new version was
uploaded by mistake or such new version is no longer necessary the option to

View File

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

View File

@@ -1,10 +1,10 @@
from __future__ import unicode_literals
__title__ = 'Mayan EDMS'
__version__ = '2.0.2'
__build__ = 0x020002
__version__ = '2.1.6'
__build__ = 0x020106
__author__ = 'Roberto Rosario'
__author_email__ = 'roberto.rosario@mayan-edms.com'
__description__ = 'Free Open Source Electronic Document Management System'
__license__ = 'Apache 2.0'
__copyright__ = 'Copyright 2011-2015 Roberto Rosario'
__copyright__ = 'Copyright 2011-2016 Roberto Rosario'

View File

@@ -5,8 +5,7 @@ from django.utils.translation import ugettext_lazy as _
from common import MayanAppConfig, menu_object, menu_sidebar
from navigation import SourceColumn
from .links import link_acl_new, link_acl_delete, link_acl_permissions
from .models import AccessControlList
from .links import link_acl_create, link_acl_delete, link_acl_permissions
class ACLsApp(MayanAppConfig):
@@ -17,6 +16,8 @@ class ACLsApp(MayanAppConfig):
def ready(self):
super(ACLsApp, self).ready()
AccessControlList = self.get_model('AccessControlList')
SourceColumn(
source=AccessControlList, label=_('Permissions'),
attribute='get_permission_titles'
@@ -30,5 +31,5 @@ class ACLsApp(MayanAppConfig):
sources=(AccessControlList,)
)
menu_sidebar.bind_links(
links=(link_acl_new,), sources=('acls:acl_list',)
links=(link_acl_create,), sources=('acls:acl_list',)
)

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals, absolute_import
import logging
from permissions.models import StoredPermission
from django.apps import apps
logger = logging.getLogger(__name__)
@@ -20,15 +20,23 @@ class ModelPermission(object):
@classmethod
def get_for_instance(cls, instance):
try:
permissions = cls._registry[type(instance)]
except KeyError:
try:
permissions = cls._registry[cls._proxies[type(instance)]]
except KeyError:
permissions = ()
StoredPermission = apps.get_model(
app_label='permissions', model_name='StoredPermission'
)
pks = [permission.stored_permission.pk for permission in permissions]
permissions = []
class_permissions = cls._registry.get(type(instance))
if class_permissions:
permissions.extend(class_permissions)
proxy = cls._proxies.get(type(instance))
if proxy:
permissions.extend(cls._registry.get(proxy))
pks = [permission.stored_permission.pk for permission in set(permissions)]
return StoredPermission.objects.filter(pk__in=pks)
@classmethod

View File

@@ -1,6 +1,6 @@
from __future__ import unicode_literals
from django.contrib.contenttypes.models import ContentType
from django.apps import apps
from django.utils.translation import ugettext_lazy as _
from navigation import Link
@@ -10,6 +10,10 @@ from .permissions import permission_acl_view, permission_acl_edit
def get_kwargs_factory(variable_name):
def get_kwargs(context):
ContentType = apps.get_model(
app_label='contenttypes', model_name='ContentType'
)
content_type = ContentType.objects.get_for_model(
context[variable_name]
)
@@ -23,18 +27,20 @@ def get_kwargs_factory(variable_name):
link_acl_delete = Link(
permissions=(permission_acl_edit,), tags='dangerous', text=_('Delete'),
view='acls:acl_delete', args='resolved_object.pk'
permissions=(permission_acl_edit,), permissions_related='content_object',
tags='dangerous', text=_('Delete'), view='acls:acl_delete',
args='resolved_object.pk'
)
link_acl_list = Link(
permissions=(permission_acl_view,), text=_('ACLs'), view='acls:acl_list',
kwargs=get_kwargs_factory('resolved_object')
)
link_acl_new = Link(
link_acl_create = Link(
permissions=(permission_acl_edit,), text=_('New ACL'),
view='acls:acl_new', kwargs=get_kwargs_factory('resolved_object')
view='acls:acl_create', kwargs=get_kwargs_factory('resolved_object')
)
link_acl_permissions = Link(
permissions=(permission_acl_edit,), text=_('Permissions'),
view='acls:acl_permissions', args='resolved_object.pk'
permissions=(permission_acl_edit,), permissions_related='content_object',
text=_('Permissions'), view='acls:acl_permissions',
args='resolved_object.pk'
)

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n"
"MIME-Version: 1.0\n"
@@ -18,31 +18,31 @@ msgstr ""
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr ""
msgstr "ACLs"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr ""
msgstr "الصلاحيات"
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr ""
msgstr "Insufficient access."
#: models.py:44
msgid "Access entry"
@@ -52,55 +52,61 @@ msgstr ""
msgid "Access entries"
msgstr ""
#: models.py:60
msgid "None"
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
msgid "None"
msgstr "لا شيء"
#: permissions.py:7
msgid "Access control lists"
msgstr ""
msgstr "Access control lists"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
msgstr "Edit ACLs"
#: permissions.py:13
msgid "View ACLs"
msgstr ""
msgstr "View ACLs"
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
msgid "Available permissions"
msgstr ""
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr ""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -173,9 +179,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n"
"MIME-Version: 1.0\n"
@@ -18,89 +18,95 @@ msgstr ""
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr ""
msgstr "ACLs"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr ""
msgstr "Разрешения"
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr ""
msgstr "Недостатъчен достъп."
#: models.py:44
msgid "Access entry"
msgstr ""
msgstr "достъп вписване"
#: models.py:45
msgid "Access entries"
msgstr "достъп вписвания"
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:60
#: models.py:64
msgid "None"
msgstr ""
msgstr "Няма"
#: permissions.py:7
msgid "Access control lists"
msgstr ""
msgstr "Контролни списъци за достъп"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
msgstr "Редактиране на контролни списъци за достъп"
#: permissions.py:13
msgid "View ACLs"
msgstr ""
msgstr "Преглед на контролни списъци за достъп"
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
msgid "Available permissions"
msgstr ""
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr ""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -173,9 +179,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n"
"MIME-Version: 1.0\n"
@@ -18,31 +18,31 @@ msgstr ""
"Language: bs_BA\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr ""
msgstr "ACLs"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr ""
msgstr "Dozvole"
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr ""
msgstr "Nedovoljne dozvole."
#: models.py:44
msgid "Access entry"
@@ -52,55 +52,61 @@ msgstr ""
msgid "Access entries"
msgstr ""
#: models.py:60
msgid "None"
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
msgid "None"
msgstr "Nijedno"
#: permissions.py:7
msgid "Access control lists"
msgstr ""
msgstr "Liste kontrole pristupa (ACLs)"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
msgstr "Izmjeniti ACLs"
#: permissions.py:13
msgid "View ACLs"
msgstr ""
msgstr "Pregledati ACLs"
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
msgid "Available permissions"
msgstr ""
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr ""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -173,9 +179,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n"
"MIME-Version: 1.0\n"
@@ -18,29 +18,29 @@ msgstr ""
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr ""
msgstr "ACLs"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr ""
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr ""
@@ -52,10 +52,16 @@ msgstr ""
msgid "Access entries"
msgstr ""
#: models.py:60
msgid "None"
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
msgid "None"
msgstr "Ingen"
#: permissions.py:7
msgid "Access control lists"
msgstr ""
@@ -68,39 +74,39 @@ msgstr ""
msgid "View ACLs"
msgstr ""
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
msgid "Available permissions"
msgstr ""
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr ""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -173,9 +179,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -5,13 +5,14 @@
# Translators:
# Translators:
# Berny <berny@bernhard-marx.de>, 2015
# Tobias Paepke <tobias.paepke@paepke.net>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 17:20+0000\n"
"Last-Translator: Berny <berny@bernhard-marx.de>\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-31 18:56+0000\n"
"Last-Translator: Tobias Paepke <tobias.paepke@paepke.net>\n"
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,29 +20,29 @@ msgstr ""
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr "Zugriffsberechtigungen"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr "Berechtigungen"
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr "Rolle"
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr "Löschen"
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr "Neue Berechtigung"
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr "Fehlende Berechtigung"
@@ -53,7 +54,13 @@ msgstr "Berechtigungseintrag"
msgid "Access entries"
msgstr "Berechtigungseinträge"
#: models.py:60
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Berechtigungen \"%(permissions)s\" zur Rolle \"%(role)s\" für \"%(object)s\""
#: models.py:64
msgid "None"
msgstr "Keine"
@@ -69,39 +76,39 @@ msgstr "Zugriffsberechtigungen bearbeiten"
msgid "View ACLs"
msgstr "Zugriffsberechtigungen anzeigen"
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr "Zugriffsberechtigungen für %s"
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr "Neue Zugriffsberechtigung für %s"
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "ACL \"%s\" löschen"
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr "Zugriffsberechtigungen für %s"
#: views.py:162
msgid "Available permissions"
msgstr "Verfügbare Berechtigungen"
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr "Erteilte Berechtigungen"
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt."
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Berechtigungen von Rolle \"%(role)s\" für \"%(object)s\""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt."
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -174,9 +181,6 @@ msgstr "Berechtigungen von Rolle \"%(role)s\" für \"%(object)s\""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2012-02-02 18:20+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/"
@@ -18,32 +18,32 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr "ACLs"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
#, fuzzy
msgid "Permissions"
msgstr "permissions"
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#, fuzzy
#| msgid "Roles"
msgid "Role"
msgstr "Roles"
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:35
#, fuzzy
#| msgid "View ACLs"
msgid "New ACL"
msgstr "View ACLs"
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr "Insufficient access."
@@ -57,7 +57,13 @@ msgstr "access entry"
msgid "Access entries"
msgstr "access entries"
#: models.py:60
#: models.py:48
#, fuzzy, python-format
#| msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#: models.py:64
msgid "None"
msgstr ""
@@ -73,41 +79,41 @@ msgstr "Edit ACLs"
msgid "View ACLs"
msgstr "View ACLs"
#: views.py:61
#, fuzzy, python-format
msgid "Access control lists for: %s"
msgstr "access control lists for: %s"
#: views.py:107
#: views.py:78
#, fuzzy, python-format
msgid "New access control lists for: %s"
msgstr "access control lists for: %s"
#: views.py:132
#: views.py:109
#, fuzzy, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Default ACLs"
#: views.py:147
#: views.py:151
#, fuzzy, python-format
msgid "Access control lists for: %s"
msgstr "access control lists for: %s"
#: views.py:162
#, fuzzy
msgid "Available permissions"
msgstr "has permission"
#: views.py:148
#: views.py:163
#, fuzzy
msgid "Granted permissions"
msgstr "has permission"
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -191,9 +197,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -6,13 +6,13 @@
# Translators:
# jmcainzos <jmcainzos@vodafone.es>, 2015
# Roberto Rosario, 2015
# Roberto Rosario, 2015
# Roberto Rosario, 2015-2016
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:38+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n"
"MIME-Version: 1.0\n"
@@ -21,29 +21,29 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr "LCAs"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr "Permisos"
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr "Rol"
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr "Borrar"
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr "Nueva LCA"
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr "Acceso insuficiente."
@@ -55,7 +55,13 @@ msgstr "Entrada de acceso"
msgid "Access entries"
msgstr "Entradas de acceso"
#: models.py:60
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permisos \"%(permissions)s\" para el rol \"%(role)s\" para \"%(object)s\""
#: models.py:64
msgid "None"
msgstr "Ninguno"
@@ -71,39 +77,39 @@ msgstr "Editar LCAs"
msgid "View ACLs"
msgstr "Ver LCAs"
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr "Listas de control de acceso para: %s"
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr "Nueva lista de control de acceso para: %s"
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
msgstr "Borrar LCA: %s"
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr "Listas de control de acceso para: %s"
#: views.py:162
msgid "Available permissions"
msgstr "Permisos disponibles"
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr "Permisos otorgados"
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr "Los permisos inactivos se heredan de un objeto precedente."
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Permisos del rol \"%(role)s\" para \"%(object)s\""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr "Los permisos inactivos se heredan de un objeto precedente."
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -176,9 +182,6 @@ msgstr "Permisos del rol \"%(role)s\" para \"%(object)s\""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n"
"MIME-Version: 1.0\n"
@@ -18,89 +18,95 @@ msgstr ""
"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr ""
msgstr "ACLs"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr ""
msgstr "مجوزها"
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
msgstr "نقش"
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
msgstr "حذف"
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr ""
msgstr "دسترسی ناکافی"
#: models.py:44
msgid "Access entry"
msgstr ""
msgstr "ورودی دسترسی"
#: models.py:45
msgid "Access entries"
msgstr "ورودیهای دسترسی"
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:60
#: models.py:64
msgid "None"
msgstr ""
msgstr "هیچکدام."
#: permissions.py:7
msgid "Access control lists"
msgstr ""
msgstr "لیست کنترل دسترسی ها"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
msgstr "ویرایش دسترسی ها"
#: permissions.py:13
msgid "View ACLs"
msgstr ""
msgstr "دیدن دسترسی ها"
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr "لیست کنترل دسترسی ها برای : %s"
#: views.py:162
msgid "Available permissions"
msgstr ""
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr ""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -173,9 +179,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -4,12 +4,13 @@
#
# Translators:
# Translators:
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n"
"MIME-Version: 1.0\n"
@@ -18,88 +19,94 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr ""
msgstr "Droits"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr ""
msgstr "Permissions"
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
msgstr "Rôle"
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
msgstr "Suppression"
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
msgstr "Nouveau droit"
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr ""
msgstr "droit d'accès insuffisant."
#: models.py:44
msgid "Access entry"
msgstr ""
msgstr "Entrée d'accès"
#: models.py:45
msgid "Access entries"
msgstr "Entrées d'accès"
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:60
#: models.py:64
msgid "None"
msgstr ""
msgstr "Aucun"
#: permissions.py:7
msgid "Access control lists"
msgstr ""
msgstr "Liste de contrôle des accès"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
msgstr "Editer les droits"
#: permissions.py:13
msgid "View ACLs"
msgstr ""
msgstr "voir les droits d'accès"
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr ""
msgstr "Nouvelle liste de contrôle d'accès pour: %s"
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
msgstr "Supprimer le droit: %s"
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr "Liste des contrôle d'accès pour: %s"
#: views.py:162
msgid "Available permissions"
msgstr ""
msgstr "Permissions disponibles"
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr ""
msgstr "Permissions autorisées"
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
msgstr "Permission du rôle \"%(role)s\" pour \"%(object)s\"@"
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr "La désactivation de permission est hérité de l'objet parent"
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -173,9 +180,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n"
"MIME-Version: 1.0\n"
@@ -18,29 +18,29 @@ msgstr ""
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr ""
msgstr "ACL-ek"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr ""
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr ""
@@ -52,10 +52,16 @@ msgstr ""
msgid "Access entries"
msgstr ""
#: models.py:60
msgid "None"
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
msgid "None"
msgstr "Semmi"
#: permissions.py:7
msgid "Access control lists"
msgstr ""
@@ -68,39 +74,39 @@ msgstr ""
msgid "View ACLs"
msgstr ""
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
msgid "Available permissions"
msgstr ""
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr ""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -173,9 +179,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n"
"MIME-Version: 1.0\n"
@@ -18,29 +18,29 @@ msgstr ""
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr ""
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr ""
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr ""
@@ -52,7 +52,13 @@ msgstr ""
msgid "Access entries"
msgstr ""
#: models.py:60
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
msgid "None"
msgstr ""
@@ -68,39 +74,39 @@ msgstr ""
msgid "View ACLs"
msgstr ""
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
msgid "Available permissions"
msgstr ""
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr ""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -173,9 +179,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -4,13 +4,14 @@
#
# Translators:
# Translators:
# Marco Camplese <marco.camplese.mc@gmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"Last-Translator: Roberto Rosario\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-30 21:18+0000\n"
"Last-Translator: Marco Camplese <marco.camplese.mc@gmail.com>\n"
"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -18,88 +19,94 @@ msgstr ""
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr ""
msgstr "ACLs"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr ""
msgstr "Permessi"
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
msgstr "Ruolo"
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
msgstr "Cancella"
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
msgstr "Nuova ACL"
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr ""
msgstr "Accesso insufficiente."
#: models.py:44
msgid "Access entry"
msgstr ""
msgstr "Voce di accesso"
#: models.py:45
msgid "Access entries"
msgstr ""
msgstr "Voci di accesso"
#: models.py:60
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permessi \"%(permissions)s\" del ruolo \"%(role)s\" per \"%(object)s\""
#: models.py:64
msgid "None"
msgstr ""
msgstr "Nessuna "
#: permissions.py:7
msgid "Access control lists"
msgstr ""
msgstr "Liste di controllo accessi"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
msgstr "Modifica ACL"
#: permissions.py:13
msgid "View ACLs"
msgstr ""
msgstr "Visualizza ACL"
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr ""
msgstr "Nuova lista di controllo accesso per: %s"
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
msgstr "Cancella ACL: %s"
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr "Lista dei permessi d'accesso per: %s"
#: views.py:162
msgid "Available permissions"
msgstr ""
msgstr "Autorizzazioni disponibili "
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr ""
msgstr "Autorizzazioni concesse "
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
msgstr "Permessi del ruolo \"%(role)s\" per \"%(object)s\""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr "Il permesso disabilita è ereditato dall'oggetto padre"
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -173,9 +180,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -4,13 +4,15 @@
#
# Translators:
# Translators:
# Evelijn Saaltink <evelijnsaaltink@gmail.com>, 2016
# Justin Albstbstmeijer <justin@albstmeijer.nl>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"Last-Translator: Roberto Rosario\n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 12:43+0000\n"
"Last-Translator: Evelijn Saaltink <evelijnsaaltink@gmail.com>\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -18,88 +20,94 @@ msgstr ""
"Language: nl_NL\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:30
#: apps.py:14 links.py:31
msgid "ACLs"
msgstr ""
msgstr "Authorisatielijsten"
#: apps.py:20 links.py:38 models.py:36
#: apps.py:22 links.py:40 models.py:36
msgid "Permissions"
msgstr ""
msgstr "Permissies"
#: apps.py:24 models.py:38
#: apps.py:26 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
msgstr "Gebruikersrol"
#: links.py:26
#: links.py:27
msgid "Delete"
msgstr ""
msgstr "Verwijder"
#: links.py:34
#: links.py:35
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
msgstr "Nieuwe authorisatielijst"
#: managers.py:72
#: managers.py:85
msgid "Insufficient access."
msgstr ""
msgstr "Permissie is ontoereikend"
#: models.py:44
msgid "Access entry"
msgstr ""
msgstr "Authorisatie invoer"
#: models.py:45
msgid "Access entries"
msgstr ""
msgstr "Authorisaties invoer"
#: models.py:60
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permissies \"%(permissions)s\" voor gebruikersrol \"%(role)s\" voor \"%(object)s\""
#: models.py:64
msgid "None"
msgstr ""
msgstr "Geen"
#: permissions.py:7
msgid "Access control lists"
msgstr ""
msgstr "Authorisatielijsten"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
msgstr "Bewerk authorisatielijsten"
#: permissions.py:13
msgid "View ACLs"
msgstr ""
msgstr "Bekijk authorisatielijsten"
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr ""
msgstr "Nieuwe authorisatielijsten voor: %s"
#: views.py:132
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
msgstr "Verwijder authorisatielijst: %s"
#: views.py:147
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr "Authorisatielijsten voor: %s"
#: views.py:162
msgid "Available permissions"
msgstr ""
msgstr "Beschikbare permissies"
#: views.py:148
#: views.py:163
msgid "Granted permissions"
msgstr ""
msgstr "Toegekende permissies"
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:218
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
msgstr "Rol \"%(role)s\" permissies voor \"%(object)s\""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr "Uitgeschakelde permissies zijn geërfd van een parent object."
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -173,9 +181,6 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

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