Compare commits

...
Author SHA1 Message Date
Roberto Rosario 71ede69c3f Update linking app to use organizations. 2016-07-01 02:02:34 -04:00
Roberto Rosario b6161e9d92 PEP8 and code style cleanups. 2016-06-30 21:30:01 -04:00
Roberto Rosario aa56e8ae14 Update dynamic_search app to work with organizations. Remove Recent search feature. 2016-06-30 18:46:26 -04:00
Roberto Rosario 1b8436add7 Merge remote-tracking branch 'origin/master' into feature/multi-tenant 2016-06-30 16:59:46 -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 883e1cc510 Merge remote-tracking branch 'origin/master' into feature/merge_test 2016-06-30 01:00:55 -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 debec7b4a2 Update the django_gpg app to support organizations. 2016-06-24 04:22:49 -04:00
Roberto Rosario 0be3e130c1 Merge branch 'master' into feature/merge2 2016-06-24 03:28:36 -04:00
Roberto Rosario dd28e3dc09 Allow superusers to login from any organization. 2016-06-24 03:26:24 -04:00
Roberto Rosario 09e375654d Improve verbose name of custom group model. Allow user to be created without belonging to an organization, this is used for superusers. 2016-06-24 03:24:35 -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 ba493cf984 Update document_states app to support organizations. 2016-06-10 19:59:09 -04:00
Roberto Rosario 9ffcfeb49b Use simple password hasher to speed up tests.
Before: Ran 346 tests in 156.928s
After: Ran 346 tests in 144.324s
2016-06-08 19:30:45 -04:00
Roberto Rosario 41f68cf435 Remove unused import. 2016-06-08 19:30:34 -04:00
Roberto Rosario 072bfcf2aa Use organization manager. 2016-06-08 19:30:20 -04:00
Roberto Rosario 6a258e4a02 Remove remarked imports. 2016-06-08 19:30:04 -04:00
Roberto Rosario 59fbe2d409 Turn on all warnings when running tests. 2016-06-08 19:29:45 -04:00
Roberto Rosario aa0f48b1a0 Update OCR app to use organizations. 2016-06-08 19:29:20 -04:00
Roberto Rosario a2f8e8b8d8 Finish updating checkouts app to support organizations. 2016-06-08 16:58:57 -04:00
Roberto Rosario 7ae0917564 Fix document app tests. 2016-06-08 02:02:25 -04:00
Roberto Rosario ff30268a4b Fix folder api tests. 2016-06-08 01:59:32 -04:00
Roberto Rosario 5466dcdad3 Convert metadata app to use organizations. 2016-06-08 01:37:15 -04:00
Roberto Rosario 2035602836 Make the organization and rest api tests cleaner to import from other modules. 2016-06-08 01:26:01 -04:00
Roberto Rosario 326919271a Merge branch 'development' into feature/multi-tenant 2016-06-06 05:20:43 -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 331a4da3b3 Don't create a default organization on each initialization of the organization app. GitLab issue #297. 2016-06-06 02:54:32 -04:00
Roberto Rosario 017dc67d3c Fix trashed document list view url name. 2016-06-01 12:19:41 -04:00
Roberto Rosario aea00db37e Replace imports of Group for MayanGroup. 2016-05-31 01:23:24 -04:00
Roberto Rosario 629cc24090 Add OrganizationAdminMixin. Enable OrganizationAdminMixin for the tags, folders and user_management apps. 2016-05-31 01:22:15 -04:00
Roberto Rosario f799d379d1 Remove print statement. 2016-05-30 23:55:25 -04:00
Roberto Rosario 8221f90fd3 Improve tags app organization test. 2016-05-30 23:55:02 -04:00
Roberto Rosario f6dfff5949 Use the OrganizationTestCase class for the tags app model tests. 2016-05-30 23:54:32 -04:00
Roberto Rosario 38eb65151a Use the GenericAPITestCase for the documents and tags api tests. 2016-05-30 23:52:23 -04:00
Roberto Rosario 8435b8444a Add REST API base test case class. 2016-05-30 23:51:28 -04:00
Roberto Rosario e5c51749da The return value is an user instance not an username. 2016-05-30 23:50:54 -04:00
Roberto Rosario 132d66fff8 Use the plural form 'required_permissions' to make it all uniform thruough the project. 2016-05-30 23:47:49 -04:00
Roberto Rosario 0a545f4b33 Return the created organization instance when creating the default organization. 2016-05-30 23:46:11 -04:00
Roberto Rosario 305aad0bfa Invalidate caches when creating organization admins. 2016-05-30 23:45:26 -04:00
Roberto Rosario ccf3795601 Update the acls, common and documents tests to use OrganizationTestCase class. 2016-05-30 19:33:49 -04:00
Roberto Rosario 18bd82ba55 Fix authentication app view tests. 2016-05-30 19:23:27 -04:00
Roberto Rosario 3ebadf763b Add clean up method to OrganizationModelTestCase 2016-05-30 19:18:23 -04:00
Roberto Rosario f9670ea7c2 Add a base organization test case class. 2016-05-30 19:16:58 -04:00
Roberto Rosario de40977f5f Convert checkouts app to use organizations. 2016-05-30 19:14:34 -04:00
Roberto Rosario aca93a0deb Update the Message of the day (motd) app to support organizations. 2016-05-30 17:51:24 -04:00
Roberto Rosario e943588ba2 Move the OrganizationSourceManager manager to it's own module. Cleanups. 2016-05-30 15:42:33 -04:00
Roberto Rosario db1673dd0a Convert sources app to use organizations. 2016-05-30 15:37:58 -04:00
Roberto Rosario 2dcad10805 Add missing .objects. 2016-05-30 06:49:52 -04:00
Roberto Rosario ead86806d4 Add explicit organization deletion to the common generic test. 2016-05-30 06:18:26 -04:00
Roberto Rosario cc360be4a4 Finish converting the tags app to user organizations. 2016-05-30 06:18:06 -04:00
Roberto Rosario 69bd6cc308 Finish conversion of the folders app to organizations. 2016-05-30 06:12:57 -04:00
Roberto Rosario 395fe0cb98 Finish conversion of the documents app to support organizations. 2016-05-30 06:10:08 -04:00
Roberto Rosario d9137b4361 Folder model no longer links to the user model. 2016-05-30 06:00:24 -04:00
Roberto Rosario e5c9e91104 Rename view and models from "deleted document" to "trashed document". Implement document level organization support via custom 'on_organization' manager. Unfilter default 'objects' manager to operate on all documents in the database. 2016-05-30 03:58:30 -04:00
Roberto Rosario 67f88b79c6 Fix queryset filter. 2016-05-27 23:03:52 -04:00
Roberto Rosario 266cf5c8a3 Import from the permissions app, not the permission module. 2016-05-27 18:03:25 -04:00
Roberto Rosario e228dfc8c5 Add initial organization view tests for the documents app. 2016-05-27 18:01:31 -04:00
Roberto Rosario fc86abe951 Make generic organization test class inherit from GenericViewTestCase. 2016-05-27 18:00:57 -04:00
Roberto Rosario ba1c5c1b17 Add organization view tests for the tags app. 2016-05-27 00:16:46 -04:00
Roberto Rosario 48d88d39e7 The folder creation is meant to succeed. 2016-05-26 23:52:24 -04:00
Roberto Rosario de81fc58dd Generalize organization test. Add more organization tests to the folders app. 2016-05-26 21:58:31 -04:00
Roberto Rosario b71ebe45f9 Initial sample a organization view test. 2016-05-26 14:52:25 -04:00
Roberto Rosario 05a46445d9 Don't use on_organization as we may be operating on an organization that is not our own. Return the username and password to be used for tests. 2016-05-26 14:47:41 -04:00
Roberto Rosario 907744cf18 Document page has to reference to document model. 2016-05-25 03:11:55 -04:00
Roberto Rosario f7fd9634df Change group->user related_name to 'users'. Update all references. 2016-05-25 03:07:45 -04:00
Roberto Rosario 796e4cea04 Test are completely broken, disable CI for now. 2016-05-25 02:55:46 -04:00
Roberto Rosario b2304119fc Improve the organization app tests. 2016-05-25 02:51:58 -04:00
Roberto Rosario 07a124187f Organization related improvements to the permissions app tests. 2016-05-25 02:51:32 -04:00
Roberto Rosario eab5296c7a Organization related improvements to the user management app tests. 2016-05-25 02:51:06 -04:00
Roberto Rosario ab83e23f27 Use the new group accessor for the user groups. 2016-05-25 02:50:39 -04:00
Roberto Rosario 5e7a62e022 Use MayanGroup in the user management views. Filter user for the current organization. 2016-05-25 02:49:19 -04:00
Roberto Rosario e34dffb176 Make a hybrid user manager class to allow calling 'create_user' and 'create_superuser' from the on_organization manager. 2016-05-25 02:48:35 -04:00
Roberto Rosario 3a2d8bac33 Use the organization aware group model in the user serializer. Filter users for the current organization. 2016-05-25 02:47:58 -04:00
Roberto Rosario 58d634a395 Organization related improvements for the tags app. 2016-05-25 02:47:26 -04:00
Roberto Rosario a0df9d260d Organization support improvements in the common app tests. 2016-05-25 02:46:32 -04:00
Roberto Rosario 626cc1cd07 Move the organizations.managment module to .utils to avoid class with /management/ folder. 2016-05-25 02:45:42 -04:00
Roberto Rosario c49f8b1def Improve organization support for the folders app. 2016-05-25 02:45:20 -04:00
Roberto Rosario 2ca3a67c9c Don't make the default organization name hardcoded. 2016-05-25 02:44:24 -04:00
Roberto Rosario 7be1d76f62 Move import. Improve comment. 2016-05-25 02:44:05 -04:00
Roberto Rosario c5f64d4805 Make the acls app organizations aware. 2016-05-25 02:43:12 -04:00
Roberto Rosario 27c1a33762 Call the command to create an organization admin during the initial setup stage. 2016-05-25 01:08:20 -04:00
Roberto Rosario ce0b0a9a79 Add management command to create an organization admin. 2016-05-25 01:08:03 -04:00
Roberto Rosario 90778c709c Style cleanups 2016-05-25 01:07:42 -04:00
Roberto Rosario 6e6a6073d2 Relate roles to organizations 2016-05-25 01:06:57 -04:00
Roberto Rosario a3a03ec095 Add custom Group model that relates to organization. 2016-05-25 01:06:20 -04:00
Roberto Rosario 433e295d07 Fix folder document list. GitLab issue #273 2016-05-24 18:18:40 -04:00
Roberto Rosario c37430ff12 Folders no longer have an user field. GitLab issue #272. 2016-05-24 18:09:01 -04:00
Roberto Rosario 0e5521160b Move basic tests from the Site convertion to tests/test_middleware 2016-05-24 18:08:33 -04:00
Roberto Rosario 83046882b1 Remove repeated migrations. 2016-05-24 17:53:33 -04:00
Baptiste GAILLET 56f1a7d537 Add initial tests for organizations 2016-05-24 17:48:29 -04:00
Baptiste GAILLET fba20b0a91 Fix postgresql organization creation id error after the first migration 2016-05-24 17:47:25 -04:00
Baptiste GAILLET ab69031662 Add data migration for organizations apps and change documents migration 35 dependencies to this new migration 2016-05-24 17:46:50 -04:00
Roberto Rosario 14bd599387 Merge branch 'development' into feature/multi-tenant 2016-05-22 17:47:12 -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 d71357cf81 Merge branch 'development' into feature/multi-tenant 2016-05-17 17:02:00 -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 4aea55339f Merge branch 'development' into feature/multi-tenant 2016-05-07 20:13:52 -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 9013793b5c Fix migrations conflicts with development branch. 2016-05-04 02:40:28 -04:00
Roberto Rosario bd3bdb9b13 Merge branch 'development' into feature/multi-tenant 2016-05-04 02:22:38 -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 9efa7c9543 Fix typo in document image generation query. Support multiple logins using different sessions iDS. 2016-03-07 04:13:14 -04:00
Roberto Rosario 8a5a26c0b4 Update authenthication code to support multitenants. Replace all remaining instances of hardcoded User model. 2016-03-07 03:08:11 -04:00
Roberto Rosario 6492908c59 Make folders and tags apps multitenant. 2016-03-07 01:53:13 -04:00
Roberto Rosario ce6a1f4020 Merge branch 'master' into feature/merge_master 2016-03-03 16:46:11 -04:00
Roberto Rosario 378a346e79 Remove Docker and Docker Componse files. These files now live in https://gitlab.com/mayan-edms/mayan-edms-docker. 2016-02-14 21:30:08 -04:00
Roberto Rosario 11a9d10e0f Add 2.0.2 release notes. 2016-02-14 21:06:33 -04:00
Roberto Rosario 3fdc5e523a Strip tags from browser title. 2016-02-13 17:35:43 -04:00
Roberto Rosario ed70f96b49 Update changelog. 2016-02-11 04:05:08 -04:00
Roberto Rosario c5c0ad0cce Revert "Configure GitLab-CI mysql service to use UTF-8 and fix failing test in MySQL."
This reverts commit bfa6c51f86.
2016-02-11 03:55:27 -04:00
Roberto Rosario bfa6c51f86 Configure GitLab-CI mysql service to use UTF-8 and fix failing test in MySQL. 2016-02-11 03:08:10 -04:00
Roberto Rosario 0295f7feb5 Add 2 second delay to workaround MySQL not storing millisecond part of timestamp. 2016-02-10 12:11:51 -04:00
Roberto Rosario 7db560d799 Increase delay in test from 1 second to 2 seconds to workaround MySQL truncating millisecond part of timestamp. 2016-02-10 12:10:42 -04:00
Roberto Rosario c3b0146b96 Update changelog. 2016-02-10 03:03:04 -04:00
Roberto Rosario f3d1faebf1 Move metadata form value validation to .clean() and update field data may not be available yet when validatng the value field. Only validate form value if form has a metadata type associated. 2016-02-10 02:27:42 -04:00
Roberto Rosario 03e7339f9b Only extract validation error messages from ValidationError exception instances. 2016-02-10 02:26:57 -04:00
Roberto Rosario f1b090f8d6 Don't store empty metadata value if the update checkbox is not checked. 2016-02-09 19:41:43 -04:00
Roberto Rosario ca326440a2 Revert "Add ability to disable the metadata update column. Disable the metadata update column in the new document upload wizard."
This reverts commit 511e397850.
2016-02-09 19:37:52 -04:00
Roberto Rosario 7e25ff0c0b Add missing browser title generation tag to wizard template. 2016-02-09 19:15:32 -04:00
Roberto Rosario 79e1889e95 Bump version to 2.0.2 2016-02-09 19:08:13 -04:00
Roberto Rosario 16a1a4d3af Fix test test_get_document_version_content, API view return document version page OCR content not document version OCR content. 2016-02-09 19:07:24 -04:00
Roberto Rosario c67080c2d3 Update HISTORY.rst 2016-02-09 13:47:00 -04:00
Roberto Rosario 511e397850 Add ability to disable the metadata update column. Disable the metadata update column in the new document upload wizard. 2016-02-09 13:43:58 -04:00
Roberto Rosario 59624d75cb Fix GitLab issue #250 "Empty optional lookup metadata trigger validation error". Thanks to LeVon Smoker for the find and for the proposed fix.
Reference: https://groups.google.com/forum/#!topic/mayan-edms/VUGRl4xX-1c
2016-02-09 13:00:45 -04:00
Roberto Rosario 2300f4d793 Install testing dependencies when installing development dependencies. 2016-02-09 13:00:24 -04:00
Roberto Rosario 652613452b Add new document upload wizard step to attach tags. GitLab issue #208. 2016-02-05 03:25:27 -04:00
Roberto Rosario 74d8f1d994 Add debug logging during general exception catch. 2016-02-04 22:22:05 -04:00
Roberto Rosario 10eb7d49b2 Update API tests to use login instead of force_authenticate. 2016-02-04 17:39:27 -04:00
Roberto Rosario 8614bc4bfc Remove included login required middleware using django-stronghold instead (http://mikegrouchy.com/django-stronghold/). GitLab Issue #206 2016-02-04 15:33:20 -04:00
Roberto Rosario 2bb96ca98d Add HISTORY entry for upcomming version 2.1. 2016-01-28 06:09:27 -04:00
Roberto Rosario eae11a1b0c Fix remaining tests for Django 1.8. Closes GitLab issue #246. 2016-01-28 06:04:28 -04:00
Roberto Rosario 2ebb84f18f Remove remaining direct references to the User model. Closes GitLab issue #225. 2016-01-28 05:55:15 -04:00
Roberto Rosario 27d8644438 Silence 90% of remaining Django 1.8 model warnings. 2016-01-28 05:43:08 -04:00
Roberto Rosario d5c73eaad6 Rename the 'Content' search label to 'OCR' for proper meaning. 2016-01-28 04:42:26 -04:00
Roberto Rosario 09f4d674a4 Pass the request instance to properly resolve the setup and tools links. 2016-01-28 04:40:31 -04:00
Roberto Rosario 830e83d107 Remove unused template. 2016-01-28 04:21:18 -04:00
Roberto Rosario 24644e3538 Remove select_related using reverse related name field. 2016-01-27 18:34:32 -04:00
Roberto Rosario 2dd4ca1f13 Workaround undocumented backward incompatible change in python-gnupy 0.3.8. 2016-01-26 05:14:07 -04:00
Roberto Rosario 59661f643b Update API pagination for DRF 3.3.2. 2016-01-26 03:55:44 -04:00
Roberto Rosario 0b830c380d Silence furder Django 1.8 warnings about ContentType imports. Fix get_model in handlers. 2016-01-26 03:55:10 -04:00
Roberto Rosario 6b3fe7a876 Fix futher Django Warnings. 2016-01-22 04:52:47 -04:00
Roberto Rosario 20535529dc Fix address in about template. 2016-01-22 04:51:48 -04:00
Roberto Rosario ac9bc9454d Update source app code for new extracted formtools package. 2016-01-22 04:02:12 -04:00
Roberto Rosario ca15cadc5e Add missing migration for pycountry update. 2016-01-22 04:01:49 -04:00
Roberto Rosario 5ec3025120 Use OneToOneField instead of a ForeignKey with unique=True. 2016-01-22 04:01:15 -04:00
Roberto Rosario fbb22affaa Update pycountry code to new 1.19 backwards incompatible changes. 2016-01-22 04:00:30 -04:00
Roberto Rosario b19225e95d Load models by calling AppConfig.get_model method instead. 2016-01-22 03:59:42 -04:00
Roberto Rosario 2f344f299f Update all requirements to most recent version. Update Django to 1.8.8 LTS. 2016-01-22 03:58:00 -04:00
Roberto Rosario 699bda40c2 Bump version to 2.0.1. 2016-01-22 00:30:32 -04:00
Roberto Rosario f8da7fe1a9 Revert "Testing base settings now import from settings/local.py first."
This reverts commit 2f298df1a0.
2016-01-17 00:44:57 -04:00
Roberto Rosario c5d4d3e95b Revert "Update changelog."
This reverts commit eadce3bd77.
2016-01-17 00:44:21 -04:00
Roberto Rosario eadce3bd77 Update changelog. 2016-01-17 00:25:05 -04:00
Roberto Rosario 2f298df1a0 Testing base settings now import from settings/local.py first. 2016-01-17 00:23:51 -04:00
Roberto Rosario acba510b90 Add mention that repository cloning is needed to install via Vagrant. 2016-01-17 00:08:15 -04:00
Roberto Rosario 29ba24336c Remove sudo, this script is meant to run as root. 2016-01-17 00:07:00 -04:00
Roberto Rosario a3a589fee8 Update Vagrantfile to provision a production box too. 2016-01-12 14:32:47 -04:00
Roberto Rosario 460076004a Fix GitLab issue #245, "Add multiple metadata not possible" 2016-01-12 03:48:21 -04:00
Roberto Rosario 79c5a103a2 Fix GitLab issue #243, "System allows a user to skip entering values for a required metadata field while uploading a new document". 2016-01-12 02:40:47 -04:00
Roberto Rosario 6c0ce71086 Add production install script. 2016-01-11 22:24:41 -04:00
Roberto Rosario 70761c055b Merge branch 'master' of gitlab.com:mayan-edms/mayan-edms 2016-01-08 03:37:14 -04:00
Roberto Rosario 3e1fc43112 Clarify some instruction steps. 2016-01-08 03:35:50 -04:00
Roberto Rosario 4da79ea1d1 Clarify some instructions steps. 2016-01-08 03:20:48 -04:00
Roberto Rosario e95e90cc47 Add more donation options. 2015-12-29 01:46:41 -04:00
Roberto Rosario 7f34ff7875 Improve docker composer instructions. 2015-12-18 03:56:45 -04:00
Roberto Rosario 02ba174a40 Add missing uwsgi.ini file to the deployment installation chapter. Simplified Docker and Docker Compose instructions. 2015-12-18 03:13:15 -04:00
Roberto Rosario 8c763cec0f Expand docker and docker compose instruction. 2015-12-04 21:15:05 -04:00
Roberto Rosario c20a63760b Update references from GitHub to GitLab. 2015-12-04 05:45:06 -04:00
Roberto Rosario e702d45c41 Update release date. 2015-12-04 05:42:36 -04:00
Roberto Rosario a3530f3627 Update all branch references from development to master. 2015-12-04 05:36:01 -04:00
Roberto Rosario 1d4040a3d3 Merge branch 'development' 2015-12-04 05:32:13 -04:00
Roberto Rosario 9062d8817b Bump version to 2.0.0 final. 2015-12-04 05:27:48 -04:00
Roberto Rosario d0ec5ef87a Update release date. 2015-12-04 05:27:42 -04:00
Roberto Rosario cf10f7f528 Add Docker and Docker Compose deploying instructions. 2015-12-04 05:09:42 -04:00
Roberto Rosario 79b79fa0f9 Point to official docker hub image. 2015-12-04 05:09:26 -04:00
Roberto Rosario b5109f679c Point to release version. 2015-12-04 05:08:59 -04:00
Roberto Rosario 76f09d6c60 Add docker compose file. 2015-12-03 03:12:33 -04:00
Roberto Rosario 1f8f860f2c Merge branch 'development' into feature/docker 2015-12-03 02:08:53 -04:00
Roberto Rosario 7f0b37f8b6 Show overview gif animation on docs index. 2015-12-03 02:08:01 -04:00
Roberto Rosario acebfaedd4 Update overview GIF animation. 2015-12-03 02:07:46 -04:00
Roberto Rosario 37647ca27a Tweak the first time login panel width. 2015-12-02 04:30:25 -04:00
Roberto Rosario d62ee8ad19 Documentation updates. Add screenshots chapter. 2015-12-02 04:09:49 -04:00
Roberto Rosario 0a9d0fc69b Rename entrypoint script. 2015-11-30 02:41:09 -04:00
Roberto Rosario 69ae1ead57 Don't demonize celery worker, send to the background instead. 2015-11-30 02:40:40 -04:00
Roberto Rosario 1cf1065f8a Delete more apt-get files to decrease docker image size. 2015-11-30 02:40:12 -04:00
Roberto Rosario 63102765cd Ignore all of the repository when building the docker image. 2015-11-30 01:06:18 -04:00
Roberto Rosario ad439fb9ce Initial commit required to build a Docker image. 2015-11-29 19:00:21 -04:00
Roberto Rosario 6ef9b25e74 Document spell check and format cleanup. Small content fixes. 2015-11-29 18:38:19 -04:00
Roberto Rosario 1ad68a61f5 Only create the initial document type and web source if none exists. 2015-11-19 00:45:04 -04:00
Roberto Rosario 3d1d1fb44f Fix coverage badge markup. Remove wheel badge. 2015-11-04 18:15:58 -04:00
Roberto Rosario 24da09b360 Add wheel to the development requirements. 2015-11-04 17:54:04 -04:00
Roberto Rosario 6f0805c8dd Bump version to 2.0.0 release candidate 1. 2015-11-04 17:15:38 -04:00
Roberto Rosario 1867c589f5 Remove admin user tests for the documents app views. SPlit all view test into priviledged and unpriviledged tests. 2015-11-04 01:43:44 -04:00
Roberto Rosario 97c3a74331 Fix incorrect ACL check method. 2015-11-04 01:43:11 -04:00
Roberto Rosario ec4324a3d6 Make arguments explicit. 2015-11-04 01:42:43 -04:00
Roberto Rosario 13b167abc9 Split mode documents app view tests into test with and without permissions. 2015-11-03 23:32:09 -04:00
Roberto Rosario 3a6cf48068 Return PermissionDenied when user has no sufficient permission and accessting one document. 2015-11-03 16:31:03 -04:00
Roberto Rosario 8a50721117 Expand and improve the documents app view tests. 2015-11-03 01:37:35 -04:00
Roberto Rosario 23270e948c PEP8 cleanups. 2015-11-02 17:40:27 -04:00
Roberto Rosario 750127eb92 Raise PermissionDenied on single document access, show 'Selected at least 1 document' when the multidocument view is used. GL issue #240. 2015-11-01 03:06:40 -04:00
Roberto Rosario cbc1f12bf6 Simplify tests teatDown method. 2015-11-01 02:57:55 -04:00
Roberto Rosario 391298eea1 Improve ACLs tests. 2015-11-01 02:49:21 -04:00
Roberto Rosario 8c1d5319dd Test an object's parent for permission but also test the child object if the parent test fails. 2015-11-01 02:47:24 -04:00
Roberto Rosario 379f9d6bee Update mailer view document collection to be a queryset and not a list of instances. 2015-10-28 02:22:25 -04:00
Roberto Rosario 923ecc85d8 PEP8 Cleanups. 2015-10-28 02:22:10 -04:00
Roberto Rosario a1a0a6da52 PEP8 Cleanups. 2015-10-28 02:14:48 -04:00
Roberto Rosario 2180ab22bd Fix typo. 2015-10-28 02:03:59 -04:00
Roberto Rosario b9585cb4ad Multi document links should not have permissions. 2015-10-28 02:03:25 -04:00
Roberto Rosario 26250412ce Add test for the document version revert and document version download links. GL issue #230. 2015-10-28 01:33:43 -04:00
Roberto Rosario c116a46af4 PEP8 cleanusp. 2015-10-28 01:33:26 -04:00
Roberto Rosario 81568d051f Add test method to request the test view using the GET HTTP verb. 2015-10-28 01:32:28 -04:00
Roberto Rosario f517057dba Add permission inheritance to document pages and documents version with 'document' as the parent object. 2015-10-28 01:07:24 -04:00
Roberto Rosario 7b2eae4b5c ACL access check now check the object for permission inheritance too. IE: page navigation links. 2015-10-28 01:06:18 -04:00
Roberto Rosario 124c6dab5e Implement repeatable way to add test views. 2015-10-27 15:23:26 -04:00
Roberto Rosario b1fa66b78c Code style update. 2015-10-27 10:34:07 -04:00
Roberto Rosario 7e365de569 Code style updates. 2015-10-26 02:24:52 -04:00
Roberto Rosario f4a461e5a5 Don't error out link resolution if user doesn't has permission for the object argument. This issue manifests during the forcefull check in attempt of issue GL #237. Solved and test added. 2015-10-26 02:15:53 -04:00
Roberto Rosario 31846a739d Change the document OCR tab label and view title from 'Content' to 'OCR', to eliminate confusion of OCR text vs. original document content. 2015-10-25 01:59:07 -04:00
Roberto Rosario ce07077f3e Test links ACL against the view's resolved_object or fallback to test against the {{ object }} context variable. Solves GL issue #230. 2015-10-25 01:54:18 -04:00
Roberto Rosario 9bbd148497 Remove NewDocumentVersionBlockViewTestCase, it belongs in the sources app only. 2015-10-25 01:53:32 -04:00
Roberto Rosario b0f5e8741b Raise PermissionDenied instead of redirecting with a message if user doesn't have the tag attach permission. GL issue #235. 2015-10-24 00:46:29 -04:00
Roberto Rosario dfda765d34 Make sure to test that the user can't attach a tag with the proper permission. GL issue #235. 2015-10-23 14:45:43 -04:00
Roberto Rosario da4c41c5b2 Change the way new document version are blocked, moving the logic to the documents app from the checkouts app signal handler. Disable the upload new document version button and have the new version upload view redirect to the document version list with a message. GitLab issue #231. 2015-10-23 06:06:59 -04:00
Roberto Rosario 414c55f824 Update the metadata_add and metadata_remove views to use the new ACL filter_by_access code. Update and improve tests. 2015-10-23 02:52:27 -04:00
Roberto Rosario 02171755f0 Update the document_multiple_clear_transformations, document_clear_transformations_view, document_multiple_update_page_count, and document_update_page_count views to use the new filter by access ACL code. Add some and improve other document views tests. 2015-10-22 21:59:35 -04:00
Roberto Rosario 8d266693c8 Add sample configuration from the deploying chapter. 2015-10-22 15:49:59 -04:00
Roberto Rosario 10f2bd6226 Improve multi user delete view. Add view tests for the user management app. 2015-10-22 04:23:16 -04:00
Roberto Rosario 11d6b100b4 Update tag views to use updated ACL filter_by_access. Add better tag app views tests. 2015-10-22 04:22:22 -04:00
Roberto Rosario 1eb2190f86 Update tags app views tag_delete, single_document_multiple_tag_remove, and multiple_documents_selection_tag_remove to work with the new way filter_by_access works. Add tags app views tests. 2015-10-22 03:09:44 -04:00
Roberto Rosario 73abe297ee Add .get .post .login method to GenericViewTestCase. Update folder app view tests. 2015-10-22 02:00:02 -04:00
Roberto Rosario b02cee1759 Update the folder_document_multiple_remove, folder_add_document, folder_add_multiple_documents views to use queryset instead of list of objects. Improve folder app views tests. 2015-10-22 00:17:39 -04:00
Roberto Rosario f1069fad74 Code style fix. 2015-10-22 00:17:02 -04:00
Roberto Rosario 2f67a20f7e Use GenericViewTestCase to test the about view. 2015-10-22 00:16:31 -04:00
Roberto Rosario ec7460a0fe Update folder_document_remove view work with the ACL queryset only code. 2015-10-21 20:51:11 -04:00
Roberto Rosario 54ae8bcda5 Add GenericViewTestCase and GenericDocumentViewTestCase classes. 2015-10-21 20:50:31 -04:00
Roberto Rosario 475ceb054f OCR errors are deleted at the next successfull retry, remove redundant option to delete OCR log entries. 2015-10-21 04:07:20 -04:00
Roberto Rosario 71ac2cbf79 With full document OCR queue and per document type OCR queuing, re_queueing OCR errors is redundant, removing. 2015-10-21 03:58:09 -04:00
Roberto Rosario da0134a7fb Fix label of the left box in group members views. GL issue #233. 2015-10-21 03:45:28 -04:00
Roberto Rosario 6f82ee8cb5 Make MultipleInstanceActionMixin operate on a queryset and not on a list of objects. Get the id_list from GET or POST requests, not just GET requests. 2015-10-21 03:41:12 -04:00
Roberto Rosario 6d80b40ed4 Remove unused related parameter for the ACL filter method. 2015-10-21 03:40:13 -04:00
Roberto Rosario f739dd54ac Fix document download views. Fixes GL issue #229. Thanks to @ammaranjith for the find and fix idea. 2015-10-21 03:38:56 -04:00
Roberto Rosario 58f73f0b1e Use Django's six library for Py3 compatibility. 2015-10-21 03:33:10 -04:00
Roberto Rosario 6b950b7ccf Style update. 2015-10-21 03:32:51 -04:00
Roberto Rosario ec1b3e9007 Eliminate repetition in the testing requirements files. 2015-10-21 01:40:05 -04:00
Roberto Rosario 35d33b1a74 Ignore coverage temporary files produce during tox test runs. 2015-10-21 01:34:33 -04:00
Roberto Rosario 5f9c847239 Move stub deletion code from tasks.py to the manager of the Document model. 2015-10-21 01:34:03 -04:00
Roberto Rosario 0cf963c19f Make user or admin login more explicit in the documents apps view tests. 2015-10-21 00:52:19 -04:00
Roberto Rosario fc81d4315e Process multiple documents in the tag attach views as querysets not as list of objects. AccessControlList.objects.filter_by_access only supports querysets now. Closes GL issue #228. 2015-10-21 00:50:04 -04:00
Roberto Rosario df7a5c6e1c Reorganize tests literals and move then to their respective apps. 2015-10-20 21:14:07 -04:00
Roberto Rosario 2bd92d8fac Use the unified test management command for continious integration. 2015-10-20 21:12:33 -04:00
Roberto Rosario 0cb43e1d46 Release notes updates. 2015-10-20 21:12:13 -04:00
Roberto Rosario 6c65598a4d Remove permission check from the multiple document action links, an user may not have permissions for some items but maybe does for others, we don't know as scanning the entire queryset for ACLs is costly, so we leave the links enable, permission check is done by the view. 2015-10-20 20:05:40 -04:00
Roberto Rosario 9fbc8647b8 Fix document list generation for the document's type change views. Move type change event and recent document addition to the models. Add view tests for the document's type change views. 2015-10-20 20:03:54 -04:00
Roberto Rosario ebfd37ebf5 Documentation updates. 2015-10-20 04:14:48 -04:00
Roberto Rosario 9bb3cb4595 Add command to create an initial settings file. Existing local.py don't stop the initialsetup command now. 2015-10-20 04:13:59 -04:00
Roberto Rosario 3065e5be62 Cleanup contributed files. 2015-10-20 04:13:23 -04:00
Roberto Rosario 6f6270f11c Documentation updates. 2015-10-19 06:15:54 -04:00
Roberto Rosario 24d0866d8b Split development requirements and add documentation writting requirements. 2015-10-19 06:14:42 -04:00
Roberto Rosario f9940f1fd0 Add default_app_config value to each app. Closes issue GL #216. 2015-10-19 02:57:00 -04:00
Roberto Rosario 5167e91c90 Remove TODO reminder, this link position was implemented. 2015-10-19 02:54:34 -04:00
Roberto Rosario 19a2c02594 Document count column in document type list view is now permission aware. 2015-10-19 02:19:08 -04:00
Roberto Rosario 94bebf90ca Remove TODO reminder, error are logged by Celery. 2015-10-19 02:10:12 -04:00
Roberto Rosario 3f8b23d751 Show 'no results' on empty list. 2015-10-19 02:09:40 -04:00
Roberto Rosario 64faa0ca15 Fix documents app view tests. Update code to match code style. PEP8 fixes. 2015-10-19 01:54:37 -04:00
Roberto Rosario bfe621ba89 PEP8 updates. 2015-10-19 01:27:26 -04:00
Roberto Rosario e57080b06d Style updates. 2015-10-19 01:21:43 -04:00
Roberto Rosario e791f2d36c Get deserialized documents by UUID only. 2015-10-19 01:21:16 -04:00
Roberto Rosario 32c7b0e379 Fix import typo. 2015-10-19 00:56:24 -04:00
Roberto Rosario 81c7a90c04 Fix message typo. 2015-10-19 00:56:11 -04:00
Roberto Rosario 6e43b99ecd Add natural key serialization. 2015-10-17 05:13:58 -04:00
Roberto Rosario 1907130ef2 Remove github buttons from documentation's theme. 2015-10-17 04:27:34 -04:00
Roberto Rosario 61525d2479 Add Gumroad button. 2015-10-17 04:11:44 -04:00
Roberto Rosario 8c886dd788 Add Sphinx and sphinx-autobuild to development requirements. 2015-10-17 04:11:21 -04:00
Roberto Rosario f7daffde49 Update setup.py dependencies. 2015-10-17 03:14:05 -04:00
Roberto Rosario 3b9e65f5d3 Bump version to 2.0.0 beta 2. 2015-10-17 03:05:45 -04:00
Roberto Rosario 6e9c2a14ae Add folder app view tests. 2015-10-17 02:17:36 -04:00
Roberto Rosario 480a107c61 Ignore coverage files. 2015-10-17 01:30:21 -04:00
Roberto Rosario 1c72e29a5b Add tox testing for different python and django versions. Add automatic coverage reporting. 2015-10-17 01:29:47 -04:00
Roberto Rosario 35b0e321f9 Exclude tests and settings from coverage report. 2015-10-17 01:28:59 -04:00
Roberto Rosario b49b960298 Fix tag app test import. 2015-10-16 03:38:09 -04:00
Roberto Rosario 2e2dc3de3c Update to version 1.1.0 of django-autoadmin which closes issue GL#202. 2015-10-16 03:24:04 -04:00
Roberto Rosario 90a1ecb826 Add permissions app views tests. 2015-10-15 19:37:04 -04:00
Roberto Rosario 8744bd82ee Fix allow editing a required metadata after changing the document type. Closes issue GL #204. 2015-10-15 16:40:35 -04:00
Roberto Rosario 572ceb50ec Fix typo, install mysql-client binary not Python library. 2015-10-15 16:36:41 -04:00
Roberto Rosario ec92caaac0 Modify mysql database collation directly using the mysql-client. 2015-10-15 15:30:59 -04:00
Roberto Rosario 5b0359d379 Increase delay after new version in test. 2015-10-15 14:54:38 -04:00
Roberto Rosario 418a3ac213 Documentation updates. 2015-10-15 14:54:22 -04:00
Roberto Rosario 35fa8495bd Force MySQL to use UTF-8 collation for tests. 2015-10-15 14:53:54 -04:00
Roberto Rosario bdc15fb518 Show thumbnails and previews for deleted documents. 2015-10-14 15:23:02 -04:00
Roberto Rosario 572d7b68d7 Backport fix from development branch.
Fix worklow state and transition deletion views. GH issue #237.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This reverts commit 35571e184f.
2012-10-05 22:14:12 -04:00
Roberto Rosario 35571e184f Catch auto admin creation error attempts when common app has still not been migrated.
Solves issue #32
2012-10-05 22:05:12 -04:00
3979 changed files with 304574 additions and 145006 deletions
+10
View File
@@ -0,0 +1,10 @@
[run]
source=
mayan
omit=
mayan/bin/mayan-edms.py
mayan/wsgi.py
mayan/settings/*
tests.py
mayan/apps/*/tests/*
*migrations*
+19 -6
View File
@@ -1,15 +1,28 @@
*.orig
*.pyc
*.pyo
/*.sqlite
/settings_local.py
*.sqlite
*.sqlite3
settings_local.py
/celerybeat-schedule
/document_storage/
document_storage/
/misc/mayan.geany
/image_cache/
mayan/media/document_cache/
build/
_build/
/gpg_home/
/static/
gpg_home/
/mayan/media/static/
/whoosh_index/
/fabfile_install
/venv/
.coverage
/dist/
.idea/
static_collected/
*egg-info*
mayan/settings/local.py
.vagrant
.tox/
coverage.xml
.coverage.tox*
htmlcov/
+35
View File
@@ -0,0 +1,35 @@
image: python:2.7
services:
- mysql
- postgres
before_script:
- apt-get update -qq
- apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
variables:
POSTGRES_DB: "mayan_edms"
POSTGRES_PASSWORD: "postgres"
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "mayan_edms"
#test:mysql:
# script:
# - pip install -r requirements/testing.txt
# - pip install -q mysql-python
# - apt-get install -qq mysql-client
# - mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "ALTER DATABASE $MYSQL_DATABASE CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
# - coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
# - bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
# tags:
# - mysql
#test:postgres:
# script:
# - pip install -r requirements/testing.txt
# - pip install -q psycopg2
# - coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
# - bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
# tags:
# - postgres
#test:sqlite:
# script:
# - pip install -r requirements/testing.txt
# - coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci --nomigrations
# - bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
+21
View File
@@ -0,0 +1,21 @@
language: python
before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev poppler-utils
install:
- pip install -r requirements/testing.txt
- pip install -q mysql-python
- pip install -q psycopg2
before_script:
- mysql -u root -e 'create database mayan_edms;'
- psql -c 'create database mayan_edms;' -U postgres
script:
- export TEST_APPS="acls authentication django_gpg document_indexing document_signatures documents dynamic_search folders lock_manager ocr permissions sources tags"
- coverage run manage.py test $TEST_APPS --settings=mayan.settings.testing.base
- coverage run manage.py test $TEST_APPS --settings=mayan.settings.magnum.db_mysql
- coverage run manage.py test $TEST_APPS --settings=mayan.settings.magnum.db_postgres
after_script:
- coveralls
services:
- mysql
- postgresql
+34
View File
@@ -0,0 +1,34 @@
language: python
python:
- 2.7
env:
matrix:
- DB=mysql
- DB=postgres
- DB=sqlite
before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev poppler-utils libreoffice
install:
- "pip install -r requirements/testing.txt"
- if [[ $DB == mysql ]]; then pip install -q mysql-python; fi
- if [[ $DB == postgres ]]; then pip install -q psycopg2; fi
before_script:
- mysql -e 'create database mayan_edms;'
- psql -c 'create database mayan_edms;' -U postgres
script:
- if [[ $DB == mysql ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi
- if [[ $DB == postgres ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi
- if [[ $DB == sqlite ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.base --nomigrations; fi
after_success:
- coveralls
branches:
only:
- master
- development
notifications:
email:
recipients:
- roberto.rosario@mayan-edms.com
on_success: never
on_failure: always
+106 -88
View File
@@ -1,176 +1,194 @@
[main]
host = https://www.transifex.net
host = https://www.transifex.com
[mayan-edms.apps-acls]
file_filter = apps/acls/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.acls-2-0]
file_filter = mayan/apps/acls/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/acls/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/acls/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-bootstrap]
file_filter = apps/bootstrap/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.appearance-2-0]
file_filter = mayan/apps/appearance/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/bootstrap/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/appearance/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-checkouts]
file_filter = apps/checkouts/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.authentication-2-0]
file_filter = mayan/apps/authentication/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/checkouts/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/authentication/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-common]
file_filter = apps/common/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.checkouts-2-0]
file_filter = mayan/apps/checkouts/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/common/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-converter]
file_filter = apps/converter/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.common-2-0]
file_filter = mayan/apps/common/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/converter/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/common/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-django_gpg]
file_filter = apps/django_gpg/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.converter-2-0]
file_filter = mayan/apps/converter/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/django_gpg/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/converter/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-documents]
file_filter = apps/documents/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.django_gpg-2-0]
file_filter = mayan/apps/django_gpg/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/documents/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-document_comments]
file_filter = apps/document_comments/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.documents-2-0]
file_filter = mayan/apps/documents/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/document_comments/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/documents/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-document_indexing]
file_filter = apps/document_indexing/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.document_comments-2-0]
file_filter = mayan/apps/document_comments/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/document_indexing/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-document_signatures]
file_filter = apps/document_signatures/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.document_indexing-2-0]
file_filter = mayan/apps/document_indexing/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/document_signatures/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-dynamic_search]
file_filter = apps/dynamic_search/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.document_signatures-2-0]
file_filter = mayan/apps/document_signatures/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/dynamic_search/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-folders]
file_filter = apps/folders/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.document_states-2-0]
file_filter = mayan/apps/document_states/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/folders/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/document_states/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-history]
file_filter = apps/history/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.dynamic_search-2-0]
file_filter = mayan/apps/dynamic_search/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/history/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-installation]
file_filter = apps/installation/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.events-2-0]
file_filter = mayan/apps/events/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/installation/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/events/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-linking]
file_filter = apps/linking/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.folders-2-0]
file_filter = mayan/apps/folders/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/linking/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/folders/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-main]
file_filter = apps/main/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.installation-2-0]
file_filter = mayan/apps/installation/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/main/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/installation/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-metadata]
file_filter = apps/metadata/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.linking-2-0]
file_filter = mayan/apps/linking/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/metadata/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/linking/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-navigation]
file_filter = apps/navigation/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.lock_manager-2-0]
file_filter = mayan/apps/lock_manager/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/navigation/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-ocr]
file_filter = apps/ocr/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.mailer-2-0]
file_filter = mayan/apps/mailer/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/ocr/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/mailer/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-permissions]
file_filter = apps/permissions/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.metadata-2-0]
file_filter = mayan/apps/metadata/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/permissions/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/metadata/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-project_setup]
file_filter = apps/project_setup/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.mirroring-2-0]
file_filter = mayan/apps/mirroring/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/project_setup/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-project_tools]
file_filter = apps/project_tools/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.mirroring-2-0]
file_filter = mayan/apps/mirroring/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/project_tools/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-registration]
file_filter = apps/registration/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.motd-2-0]
file_filter = mayan/apps/motd/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/registration/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/motd/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-scheduler]
file_filter = apps/scheduler/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.ocr-2-0]
file_filter = mayan/apps/ocr/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/scheduler/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/ocr/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-smart_settings]
file_filter = apps/smart_settings/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.permissions-2-0]
file_filter = mayan/apps/permissions/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/smart_settings/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/permissions/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-sources]
file_filter = apps/sources/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.rest_api-2-0]
file_filter = mayan/apps/rest_api/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/sources/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/rest_api/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-tags]
file_filter = apps/tags/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.smart_settings-2-0]
file_filter = mayan/apps/smart_settings/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/tags/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-user_management]
file_filter = apps/user_management/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.sources-2-0]
file_filter = mayan/apps/sources/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/user_management/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/sources/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-web_theme]
file_filter = apps/web_theme/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.statistics-2-0]
file_filter = mayan/apps/statistics/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/web_theme/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/statistics/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.storage-2-0]
file_filter = mayan/apps/storage/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/storage/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.tags-2-0]
file_filter = mayan/apps/tags/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/tags/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.user_management-2-0]
file_filter = mayan/apps/user_management/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/user_management/locale/en/LC_MESSAGES/django.po
type = PO
-43
View File
@@ -1,43 +0,0 @@
from django.conf import settings
from django.utils.importlib import import_module
import mimetypes
PREPARE_UPLOAD_BACKEND = getattr(settings,
'PREPARE_UPLOAD_BACKEND',
'filetransfers.backends.default.prepare_upload')
SERVE_FILE_BACKEND = getattr(settings,
'SERVE_FILE_BACKEND',
'filetransfers.backends.default.serve_file')
PUBLIC_DOWNLOAD_URL_BACKEND = getattr(settings,
'PUBLIC_DOWNLOAD_URL_BACKEND',
'filetransfers.backends.default.public_download_url')
_backends_cache = {}
# Public API
def prepare_upload(request, url, private=False, backend=None):
handler = _load_backend(backend, PREPARE_UPLOAD_BACKEND)
return handler(request, url, private=private)
def serve_file(request, file, backend=None, save_as=False, content_type=None):
# Backends are responsible for handling range requests.
handler = _load_backend(backend, SERVE_FILE_BACKEND)
filename = file.name.rsplit('/')[-1]
if save_as is True:
save_as = filename
if not content_type:
content_type = mimetypes.guess_type(filename)[0]
return handler(request, file, save_as=save_as, content_type=content_type)
def public_download_url(file, backend=None):
handler = _load_backend(backend, PUBLIC_DOWNLOAD_URL_BACKEND)
return handler(file)
# Internal utilities
def _load_backend(backend, default_backend):
if backend is None:
backend = default_backend
if backend not in _backends_cache:
module_name, func_name = backend.rsplit('.', 1)
_backends_cache[backend] = getattr(import_module(module_name), func_name)
return _backends_cache[backend]
@@ -1,7 +0,0 @@
from django.conf import settings
def public_download_url(file, **kwargs):
"""
Directs downloads to a handler at settings.PUBLIC_DOWNLOADS_URL_BASE
"""
return settings.PUBLIC_DOWNLOADS_URL_BASE + file.name
@@ -1,30 +0,0 @@
from django.http import HttpResponse
from django.utils.encoding import smart_str
def prepare_upload(request, url, **kwargs):
"""Directly uploads to the given URL"""
return url, {}
def serve_file(request, file, save_as, content_type, **kwargs):
"""
Serves the file in chunks for efficiency reasons, but the transfer still
goes through Django itself, so it's much worse than using the web server,
but at least it works with all configurations.
"""
response = HttpResponse(ChunkedFile(file), content_type=content_type)
if save_as:
response['Content-Disposition'] = smart_str(u'attachment; filename=%s' % save_as)
if file.size is not None:
response['Content-Length'] = file.size
return response
def public_download_url(file, **kwargs):
"""No public download URL"""
return None
class ChunkedFile(object):
def __init__(self, file):
self.file = file
def __iter__(self):
return self.file.chunks()
@@ -1,11 +0,0 @@
from django.conf import settings
from filetransfers.api import prepare_upload as delegate
def prepare_upload(*args, **kwargs):
"""Delegates uploads to other backends based on private=False or True"""
if kwargs['private']:
kwargs['backend'] = settings.PRIVATE_PREPARE_UPLOAD_BACKEND
else:
kwargs['backend'] = settings.PUBLIC_PREPARE_UPLOAD_BACKEND
return delegate(*args, **kwargs)
@@ -1,10 +0,0 @@
from django.http import HttpResponseRedirect
from django.utils.encoding import smart_str
def serve_file(request, file, **kwargs):
"""Serves files by redirecting to file.url (e.g., useful for Amazon S3)"""
return HttpResponseRedirect(smart_str(file.url))
def public_download_url(file, **kwargs):
"""Directs downloads to file.url (useful for normal file system storage)"""
return file.url
@@ -1,12 +0,0 @@
from django.http import HttpResponse
from django.utils.encoding import smart_str
def serve_file(request, file, save_as, content_type, **kwargs):
"""Lets the web server serve the file using the X-Sendfile extension"""
response = HttpResponse(content_type=content_type)
response['X-Sendfile'] = file.path
if save_as:
response['Content-Disposition'] = smart_str(u'attachment; filename=%s' % save_as)
if file.size is not None:
response['Content-Length'] = file.size
return response
@@ -1,17 +0,0 @@
from django.template import Library
from django.utils.safestring import mark_safe
from ..api import public_download_url
register = Library()
_hidden_data_field = '<input type="hidden" name="%s" value="%s" />'
@register.simple_tag
def render_upload_data(data):
inputs = ''.join(_hidden_data_field % item for item in data.items())
if inputs:
return mark_safe('<div style="display:none">%s</div>' % inputs)
return ''
register.filter(public_download_url)
+200
View File
@@ -0,0 +1,200 @@
2.1.4 (2016-XX-XX)
==================
- Add missing link to the 2.1.3 release notes in the index file.
- Improve TempfileCheckMixin.
2.1.3 (2016-06-29)
==================
- Add help message when initialsetup migration phase fails. Relates to GitLab issue #296.
- Start using self.setdout instead of print as per documentation.
- Fix GitLab issue #295, "When editing a user the top bar jumps to the name of the user".
- Normalize handling of temporary file and directory creation.
- Fix GitLab issue #309, "Temp files quickly filling-up my /tmp (1GB tmpfs)".
- Explicitly check for residual temporary files in tests.
- Add missing temporary file cleanup for office documents.
- Fix file descriptor leak in the document signature download test.
2.1.2 (2016-05-20)
==================
- Sort document languages and user profile locale language lists. GitLab issue #292.
- Fix metadata lookup for {{ users }} and {{ group }}. Fixes GitLab #290.
- Add Makefile for common development tasks
2.1.1 (2016-05-17)
==================
- Fix navigation issue that make it impossible to add new sources. GitLab issue #288.
- The Tesseract OCR backend now reports if the requested language file is missing. GitLab issue #289.
- Ensure the automatic default index is created after the default document type.
2.1 (2016-05-14)
================
- Upgrade to use Django 1.8.13. Issue #246.
- Upgrade requirements.
- Remove remaining references to Django's User model. GitLab issue #225
- Rename 'Content' search box to 'OCR'.
- Remove included login required middleware using django-stronghold instead (http://mikegrouchy.com/django-stronghold/).
- Improve generation of success and error messages for class based views.
- Remove ownership concept from folders.
- Replace strip_spaces middleware with the spaceless template tag. GitLab issue #255
- Deselect the update checkbox for optional metadata by default.
- Silence all Django 1.8 model import warnings.
- Implement per document type document creation permission. Closes GitLab issue #232.
- Add icons to the document face menu links.
- Increase icon to text spacing to 3px.
- Make document type delete time period optional.
- Fixed date locale handling in document properties, checkout and user detail views.
- Add new permission: checkout details view.
- Add HTML5 upload widget. Issue #162.
- Add Message of the Day app. Issue #222
- Update Document model's uuid field to use Django's native UUIDField class.
- Add new split view index navigation
- Newly uploaded documents appear in the Recent document list of the user.
- Document indexes now have ACL support.
- Remove the document index setup permission.
- Status messages now display the object class on which they operate not just the word "Object".
- More tests added.
- Handle unicode filenames in staging folders.
- Add staging file deletion permission.
- New document_signature_view permission.
- Add support for signing documents.
- Instead of multiple keyservers only one keyserver is now supported.
- Replace document type selection widget with an opened selection list.
- Add mailing documentation chapter.
- Add roadmap documentation chapter.
- API updates.
2.0.2 (2016-02-09)
==================
- Install testing dependencies when installing development dependencies.
- Fix GitLab issue #250 "Empty optional lookup metadata trigger validation error".
- Fix OCR API test.
- Move metadata form value validation to .clean() method.
- Only extract validation error messages from ValidationError exception instances.
- Don't store empty metadata value if the update checkbox is not checked.
- Add 2 second delay to document version tests to workaround MySQL limitation.
- Strip HTML tags from the browser title.
- Remove Docker and Docker Compose files.
2.0.1 (2016-01-22)
==================
- Fix GitLab issue #243, "System allows a user to skip entering values for a required metadata field while uploading a new document"
- Fix GitLab issue #245, "Add multiple metadata not possible"
- Updated Vagrantfile to provision a production box too.
2.0 (2015-12-04)
================
- New source homepage: https://gitlab.com/mayan-edms/mayan-edms
- Update to Django 1.7
- New Bootstrap Frontend UI
- Easier theming and rebranding
- Improved page navigation interface
- Menu reorganization
- Removal of famfam icon set
- Improved document preview generation
- Document submission for OCR changed to POST
- New YAML based settings system
- Removal of auto admin creation as separate app
- Removal of dependencies
- ACL system refactor
- Object access control inheritance
- Removal of anonymous user support
- Metadata validators refactor
- Trash can support
- Retention policies
- Support for sharing indexes as FUSE filesystems
- Clickable preview images titles
- Removal of eval
- Smarter OCR, per page parsing or OCR fallback
- Improve failure tolerance (not all Operational Errors are critical now)
- RGB tags
- Default document type and default document source
- Link unbinding
- Statistics refactor
- Apps merge
- New signals
- Test improvements
- Indexes recalculation after document creation too
- Upgrade command
- OCR data moved to ocr app from documents app
- New internal document creation workflow return a document stub
- Auto console debug logging during development and info during production
- New class based and menu based navigation system
- New class based transformations
- Usage of Font Awesome icons set
- Management command to remove obsolete permissions: `purgepermissions`
- Normalization of 'title' and 'name' fields to 'label'
- Improved API, now at version 1
- Invert page title/project name order in browser title
- Django's class based views pagination
- Reduction of text strings
- Removal of the CombinedSource class
- Removal of default class ACLs
- Removal of the ImageMagick and GraphicsMagick converter backends
- Remove support for applying roles to new users automatically
- Removal of the DOCUMENT_RESTRICTIONS_OVERRIDE permission
- Removed the page_label field
1.1.1 (2015-05-21)
==================
- Update to Django 1.6.11
- Fix make_dist.sh script
- Add test for issue #163
- Activate tests for the sources app
- Removal of the registration app
- New simplified official project description
- Improvements to the index admin interface
- Removal of installation statistics gathering
- Remove unused folder tag
- Fix usage of ugettext to ugettext_lazy
- Increase size of the lock name field
- New style documentation
1.1 (2015-02-10)
================
- Uses Celery for background tasks
- Removal of the splash screen
- Adds a home view with common function buttons
- Support for sending and receiving documents via email
- Removed custom logging app in favor of django-actvity-stream
- Adds watch folders
- Includes Vagrant file for unified development and testing environments
- Per user locale profile (language and timezone)
- Includes news document workflow app
- Optional and required metadata types
- Improved testings. Automated tests against SQLite, MySQL, PostgreSQL
- Many new REST API endpoints added
- Simplified text messages
- Improved method for custom settings
- Addition of CORS support to the REST API
- Per document language setting instead of per installation language setting
- Metadata validation and parsing support
- Start of code updates towards Python 3 support
- Simplified UI
- Stable PDF previews generation
- More technical documentation
1.0 (2014-08-27)
================
- New home @ https://github.com/mayan-edms/mayan-edms
- Updated to use Django 1.6
- Translation updates
- Custom model properties removal
- Source code improvements
- Removal of included 3rd party modules
- Automatic testing and code coverage check
- Update of required modules and libraries versions
- Database connection leaks fixes
- Support for deletion of detached signatures
- Removal of Fabric based installations script
- Pluggable OCR backends
- OCR improvements
- License change, Mayan EDMS in now licensed under the Apache 2.0 License
- PyPI package, Mayan EDMS in now available on PyPI: https://pypi.python.org/pypi/mayan-edms/
- New REST API
+13
View File
@@ -0,0 +1,13 @@
Copyright 2011-2015 Roberto Rosario
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+3
View File
@@ -0,0 +1,3 @@
include README.rst LICENSE HISTORY.rst
recursive-include mayan *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 LICENSE
global-exclude mayan/settings/local.py mayan/settings/travis/* mayan/media/*
+113
View File
@@ -0,0 +1,113 @@
.PHONY: clean-pyc clean-build
define BROWSER_PYSCRIPT
import sys, webbrowser
webbrowser.open(sys.argv[1])
endef
export BROWSER_PYSCRIPT
BROWSER := python -c "$$BROWSER_PYSCRIPT"
help:
@echo
@echo "clean-build - Remove build artifacts."
@echo "clean-pyc - Remove Python artifacts."
@echo "clean - Remove Python and build artifacts."
@echo "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."
# 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:
python -Wall ./manage.py test $(MODULE) --settings=mayan.settings.testing --nomigrations
test-all:
python -Wall ./manage.py runtests --settings=mayan.settings.testing --nomigrations
# Documentation
docs_serve:
$(BROWSER) http://127.0.0.1:8000
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:
$(BROWSER) http://127.0.0.1:8000
./manage.py runserver
-51
View File
@@ -1,51 +0,0 @@
![Logo](https://github.com/rosarior/mayan/raw/master/docs/_static/mayan_logo_landscape_black.jpg)
Mayan EDMS
==========
Open source, Django based document management system with custom metadata
indexing, file serving integration, tagging, digital signature verification,
text parsing and OCR capabilities.
[Website](http://www.mayan-edms.com)
[Video demostration](http://bit.ly/pADNXv)
[Documentation](http://readthedocs.org/docs/mayan/en/latest/)
[Translations](https://www.transifex.net/projects/p/mayan-edms/)
[Mailing list (via Google Groups)](http://groups.google.com/group/mayan-edms)
Quick install
-------------
To bootstrap **Mayan EDMS** via the fabfile without having to clone the
entire repository, run the following command, replacing the part that
reads: <Your MySQL root password> with your current MySQL root password
or the MySQL root password you plan to assign to it, during the MySQL
installation when executing the fabfile.
- Debian or Ubuntu:
cd /tmp && sudo apt-get install -y fabric wget tar gzip && wget https://github.com/rosarior/mayan/raw/master/contrib/fabfile.tar.gz -O - | tar -xvzf - && echo "database_manager_admin_password=&lt;Your MySQL root password&gt;" > ~/.fabricrc && fab -H localhost install
- Fedora:
cd /tmp && sudo yum install -y fabric wget tar gzip && wget https://github.com/rosarior/mayan/raw/master/contrib/fabfile.tar.gz -O - | tar -xvzf - && echo "database_manager_admin_password=&lt;Your MySQL root password&gt;" > ~/.fabricrc && fab -H localhost install
License
-------
This project is open sourced under [GNU GPL Version 3](http://www.gnu.org/licenses/gpl-3.0.html).
Author
------
Roberto Rosario - [Twitter](http://twitter.com/#siloraptor) [E-mail](mailto://roberto.rosario@mayan-edms.com)
Donations
---------
Please [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W6LMMZHTNUJ6L) if you are willing to support the further development of this project.
+73
View File
@@ -0,0 +1,73 @@
|PyPI badge| |Build Status| |Coverage badge| |License badge|
|Logo|
Description
-----------
Free Open Source Electronic Document Management System.
`Website`_
`Video demostration`_
`Documentation`_
`Translations`_
`Mailing list (via Google Groups)`_
|Animation|
License
-------
This project is open sourced under `Apache 2.0 License`_.
Installation
------------
To install Mayan EDMS, simply do:
.. code-block:: bash
$ virtualenv venv
$ source venv/bin/activate
$ pip install mayan-edms
$ mayan-edms.py initialsetup
$ mayan-edms.py runserver
Point your browser to 127.0.0.1:8000 and use the automatically created admin
account.
Contribute
----------
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- Fork `the repository`_ on GitLab to start making your changes to the **development** branch (or branch off of it).
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Add yourself to the `contributors file`_.
- Send a merge request.
.. _Website: http://www.mayan-edms.com
.. _Video demostration: http://bit.ly/pADNXv
.. _Documentation: http://readthedocs.org/docs/mayan/en/latest/
.. _Translations: https://www.transifex.com/projects/p/mayan-edms/
.. _Mailing list (via Google Groups): http://groups.google.com/group/mayan-edms
.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt
.. _`the repository`: http://gitlab.com/mayan-edms/mayan-edms
.. _`contributors file`: https://gitlab.com/mayan-edms/mayan-edms/blob/master/docs/topics/contributors.rst
.. |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
.. |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
.. |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
|Analytics|
Vendored
+33
View File
@@ -0,0 +1,33 @@
# -*- 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
-39
View File
@@ -1,39 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from navigation.api import register_links, register_multi_item_links
from project_setup.api import register_setup
from .classes import (AccessHolder, AccessObjectClass, ClassAccessHolder,
AccessObject)
from .permissions import (ACLS_EDIT_ACL, ACLS_VIEW_ACL,
ACLS_CLASS_EDIT_ACL, ACLS_CLASS_VIEW_ACL)
acl_list = {'text': _(u'ACLs'), 'view': 'acl_list', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]}
acl_detail = {'text': _(u'details'), 'view': 'acl_detail', 'args': ['access_object.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_VIEW_ACL]}
acl_grant = {'text': _(u'grant'), 'view': 'acl_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_EDIT_ACL]}
acl_revoke = {'text': _(u'revoke'), 'view': 'acl_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_EDIT_ACL]}
acl_holder_new = {'text': _(u'New holder'), 'view': 'acl_holder_new', 'args': 'access_object.gid', 'famfam': 'user', 'permissions': [ACLS_EDIT_ACL]}
acl_setup_valid_classes = {'text': _(u'Default ACLs'), 'view': 'acl_setup_valid_classes', 'icon': 'lock.png', 'permissions': [ACLS_CLASS_VIEW_ACL], 'children_view_regex': [r'^acl_class', r'^acl_setup']}
acl_class_list = {'text': _(u'List of classes'), 'view': 'acl_setup_valid_classes', 'famfam': 'package', 'permissions': [ACLS_CLASS_VIEW_ACL]}
acl_class_acl_list = {'text': _(u'ACLs for class'), 'view': 'acl_class_acl_list', 'args': 'object.gid', 'famfam': 'lock_go', 'permissions': [ACLS_CLASS_VIEW_ACL]}
acl_class_acl_detail = {'text': _(u'details'), 'view': 'acl_class_acl_detail', 'args': ['access_object_class.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_CLASS_VIEW_ACL]}
acl_class_new_holder_for = {'text': _(u'New holder'), 'view': 'acl_class_new_holder_for', 'args': 'object.gid', 'famfam': 'user', 'permissions': [ACLS_CLASS_EDIT_ACL]}
acl_class_grant = {'text': _(u'grant'), 'view': 'acl_class_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_CLASS_EDIT_ACL]}
acl_class_revoke = {'text': _(u'revoke'), 'view': 'acl_class_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_CLASS_EDIT_ACL]}
register_links(AccessHolder, [acl_detail])
register_multi_item_links(['acl_detail'], [acl_grant, acl_revoke])
register_links([AccessObject], [acl_holder_new], menu_name='sidebar')
register_setup(acl_setup_valid_classes)
register_links(['acl_setup_valid_classes', 'acl_class_acl_list', 'acl_class_new_holder_for', 'acl_class_acl_detail', 'acl_class_multiple_grant', 'acl_class_multiple_revoke'], [acl_class_list], menu_name='secondary_menu')
register_links(ClassAccessHolder, [acl_class_acl_detail])
register_links(AccessObjectClass, [acl_class_acl_list, acl_class_new_holder_for])
register_multi_item_links(['acl_class_acl_detail'], [acl_class_grant, acl_class_revoke])
-23
View File
@@ -1,23 +0,0 @@
from __future__ import absolute_import
from django.contrib import admin
from .models import AccessEntry
#class PermissionHolderInline(admin.StackedInline):
# model = PermissionHolder
# extra = 1
# classes = ('collapse-open',)
# allow_add = True#
#
class AccessEntryAdmin(admin.ModelAdmin):
related_lookup_fields = {
'generic': [['holder_type', 'holder_id'], ['content_type', 'object_id']],
}
#inlines = [PermissionHolderInline]
list_display = ('pk', 'holder_object', 'permission', 'content_object')
list_display_links = ('pk',)
model = AccessEntry
admin.site.register(AccessEntry, AccessEntryAdmin)
-28
View File
@@ -1,28 +0,0 @@
from __future__ import absolute_import
from django.contrib.contenttypes.models import ContentType
_class_permissions = {}
def class_permissions(cls, permission_list):
"""
Associate a permissions list to a class
"""
stored_permissions = _class_permissions.setdefault(cls, [])
stored_permissions.extend(permission_list)
def get_class_permissions_for(obj):
"""
Return a list of permissions associated with a content type
"""
content_type = ContentType.objects.get_for_model(obj)
return _class_permissions.get(content_type.model_class(), [])
def get_classes():
"""
Return a list of encapsulated classes that have been registered
"""
return _class_permissions.keys()
-158
View File
@@ -1,158 +0,0 @@
from __future__ import absolute_import
import logging
import sys
import types
from django.contrib.contenttypes.models import ContentType
from django.db.models.base import ModelBase
from django.template.defaultfilters import capfirst
from django.core.exceptions import ObjectDoesNotExist
from common.models import AnonymousUserSingleton
logger = logging.getLogger(__name__)
_cache = {}
def get_source_object(obj):
if isinstance(obj, EncapsulatedObject):
return obj.source_object
else:
return obj
class EncapsulatedObject(object):
source_object_name = u'source_object'
@classmethod
def object_key(cls, app_label=None, model=None, pk=None):
if pk:
return '%s.%s.%s.%s' % (cls.__name__, app_label, model, pk)
else:
return '%s.%s.%s' % (cls.__name__, app_label, model)
@classmethod
def add_to_class(cls, name, value):
if hasattr(value, 'contribute_to_class'):
value.contribute_to_class(cls, name)
else:
setattr(cls, name, value)
@classmethod
def set_source_object_name(cls, new_name):
cls.source_object_name = new_name
#@classmethod
#def encapsulate_list(cls, source_object=None, app_label=None, model=None, pk=None):
@classmethod
def encapsulate(cls, source_object):
source_object = AnonymousUserSingleton.objects.passthru_check(source_object)
content_type = ContentType.objects.get_for_model(source_object)
if hasattr(source_object, 'pk'):
# Object
object_key = cls.object_key(content_type.app_label, content_type.model, source_object.pk)
else:
# Class
object_key = cls.object_key(content_type.app_label, content_type.model)
try:
return _cache[object_key]
except KeyError:
encapsulated_object = cls(source_object)
_cache[object_key] = encapsulated_object
return encapsulated_object
@classmethod
def get(cls, gid):
elements = gid.split('.')
if len(elements) == 3:
app_label, model, pk = elements[0], elements[1], elements[2]
elif len(elements) == 2:
app_label, model = elements[0], elements[1]
pk = None
object_key = cls.object_key(*elements)
try:
return _cache[object_key]
except KeyError:
try:
content_type = ContentType.objects.get(app_label=app_label, model=model)
except ContentType.DoesNotExist:
#cls.add_to_class('DoesNotExist', subclass_exception('DoesNotExist', (ObjectDoesNotExist,), cls.__name__))
#raise cls.DoesNotExist("%s matching query does not exist." % ContentType._meta.object_name)
raise ObjectDoesNotExist("%s matching query does not exist." % ContentType._meta.object_name)
else:
source_object_model_class = content_type.model_class()
if pk:
try:
source_object = content_type.get_object_for_this_type(pk=pk)
except source_object_model_class.DoesNotExist:
#cls.add_to_class('DoesNotExist', subclass_exception('DoesNotExist', (ObjectDoesNotExist,), cls.__name__))
#raise cls.DoesNotExist("%s matching query does not exist." % source_object_model_class._meta.object_name)
raise ObjectDoesNotExist("%s matching query does not exist." % source_object_model_class._meta.object_name)
else:
source_object = source_object_model_class
return cls.encapsulate(source_object)
def __init__(self, source_object):
self.content_type = ContentType.objects.get_for_model(source_object)
self.ct_fullname = '%s.%s' % (self.content_type.app_label, self.content_type.model)
if isinstance(source_object, ModelBase):
# Class
self.gid = '%s.%s' % (self.content_type.app_label, self.content_type.model)
else:
# Object
self.gid = '%s.%s.%s' % (self.content_type.app_label, self.content_type.model, source_object.pk)
setattr(self, self.__class__.source_object_name, source_object)
def __unicode__(self):
if isinstance(self.source_object, ModelBase):
return capfirst(unicode(self.source_object._meta.verbose_name_plural))
elif self.ct_fullname == 'auth.user':
return u'%s %s' % (self.source_object._meta.verbose_name, self.source_object.get_full_name())
elif self.ct_fullname == 'common.anonymoususersingleton':
return unicode(self.source_object)
elif self.ct_fullname == 'acls.creatorsingleton':
return unicode(self.source_object)
else:
return u'%s %s' % (self.source_object._meta.verbose_name, self.source_object)
def __repr__(self):
return self.__unicode__()
@property
def source_object(self):
return getattr(self, self.__class__.source_object_name, None)
class AccessHolder(EncapsulatedObject):
source_object_name = u'holder_object'
class AccessObject(EncapsulatedObject):
source_object_name = u'obj'
class AccessObjectClass(EncapsulatedObject):
source_object_name = u'cls'
class ClassAccessHolder(EncapsulatedObject):
source_object_name = u'class_holder'
if sys.version_info < (2, 5):
# Prior to Python 2.5, Exception was an old-style class
def subclass_exception(name, parents, unused):
return types.ClassType(name, parents, {})
else:
def subclass_exception(name, parents, module):
return type(name, parents, {'__module__': module})
-8
View File
@@ -1,8 +0,0 @@
from __future__ import absolute_import
from .models import AccessEntry, DefaultAccessEntry
def cleanup():
AccessEntry.objects.all().delete()
DefaultAccessEntry.objects.all().delete()
-58
View File
@@ -1,58 +0,0 @@
from __future__ import absolute_import
from django import forms
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import User, Group
from permissions.models import Role
from common.utils import get_object_name
from common.models import AnonymousUserSingleton
from .classes import AccessHolder
from .models import CreatorSingleton
def _as_choice_list(holders):
return sorted([(AccessHolder.encapsulate(holder).gid, get_object_name(holder, display_object_type=False)) for holder in holders], key=lambda x: x[1])
class BaseHolderSelectionForm(forms.Form):
holder_gid = forms.ChoiceField(
label=_(u'New holder')
)
def __init__(self, *args, **kwargs):
current_holders = kwargs.pop('current_holders', [])
if current_holders:
current_holders = [holder.source_object for holder in current_holders]
staff_users = User.objects.filter(is_staff=True)
super_users = User.objects.filter(is_superuser=True)
users = set(User.objects.filter(is_active=True)) - set(staff_users) - set(super_users) - set(current_holders)
roles = set(Role.objects.all()) - set(current_holders)
groups = set(Group.objects.all()) - set(current_holders)
special = set(self.special_holders) - set(current_holders)
non_holder_list = []
if users:
non_holder_list.append((_(u'Users'), _as_choice_list(list(users))))
if groups:
non_holder_list.append((_(u'Groups'), _as_choice_list(list(groups))))
if roles:
non_holder_list.append((_(u'Roles'), _as_choice_list(list(roles))))
if special:
non_holder_list.append((_(u'Special'), _as_choice_list(list(special))))
super(BaseHolderSelectionForm, self).__init__(*args, **kwargs)
self.fields['holder_gid'].choices = non_holder_list
class HolderSelectionForm(BaseHolderSelectionForm):
special_holders = [AnonymousUserSingleton.objects.get()]
class ClassHolderSelectionForm(BaseHolderSelectionForm):
special_holders = [AnonymousUserSingleton.objects.get(), CreatorSingleton.objects.get()]
-13
View File
@@ -1,13 +0,0 @@
# Content type <-> fam fam icon mapping
CONTENT_TYPE_ICON_MAP = {
'auth.user': 'user',
'auth.group': 'group',
'documents.document': 'page',
'permissions.role': 'medal_gold_1',
'folders.folder': 'folder',
'taggit.tag': 'tag_blue',
'linking.smartlink': 'page_link',
'common.anonymoususersingleton': 'user',
'acls.creatorsingleton': 'user',
}
Binary file not shown.
-246
View File
@@ -1,246 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Iliya Georgiev <ikgeorgiev@gmail.com>, 2012.
# <pkoldamov@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-10-15 10:27+0000\n"
"Last-Translator: Pavlin Koldamov <pkoldamov@gmail.com>\n"
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/"
"language/bg/)\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr "Контролни списъци за достъп"
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr "детайли"
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr "предоставяне"
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr "отменя"
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr "Нов притежател"
#: __init__.py:20
msgid "Default ACLs"
msgstr "Контролни списъци за достъп по подразбиране"
#: __init__.py:21
msgid "List of classes"
msgstr "Списък на класовете"
#: __init__.py:22
msgid "ACLs for class"
msgstr "Контролни списъци за клас"
#: forms.py:38
msgid "Users"
msgstr "Потребители"
#: forms.py:41
msgid "Groups"
msgstr "Групи"
#: forms.py:44
msgid "Roles"
msgstr "Роли"
#: forms.py:47
msgid "Special"
msgstr ""
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr "Недостатъчен достъп."
#: models.py:25 models.py:67
msgid "permission"
msgstr "разрешение"
#: models.py:51
msgid "access entry"
msgstr "достъп за влизане"
#: models.py:52
msgid "access entries"
msgstr "достъп вписвания"
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Контролни списъци за достъп"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr "разрешения"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr " за %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr " към %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "Сигурни ли сте, че искате да дадете разрешение за %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "Сигурни ли сте, че искате да дадете разрешения за %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr " от %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
"Сигурни ли сте, че искате да отнемете разрешението за %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
"Сигурни ли сте, че искате да отнемете разрешенията за %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr "класове"
#: views.py:388
msgid "class"
msgstr "клас"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "правила за достъп по подразбиране за клас: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""
Binary file not shown.
@@ -1,252 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# <sl@suchreflex.de>, 2012.
# <tilmann.sittig@web.de>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-09-20 07:40+0000\n"
"Last-Translator: Manticor <sl@suchreflex.de>\n"
"Language-Team: German (Germany) (http://www.transifex.com/projects/p/mayan-"
"edms/language/de_DE/)\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr "ACLs"
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr "Details"
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr "Erlauben"
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr "Entziehen"
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr "Neuer Berechtigter"
#: __init__.py:20
msgid "Default ACLs"
msgstr "Standard-ACLs"
#: __init__.py:21
msgid "List of classes"
msgstr "Liste der Klassen"
#: __init__.py:22
msgid "ACLs for class"
msgstr "ACLs für Klasse"
#: forms.py:38
msgid "Users"
msgstr "Benutzer"
#: forms.py:41
msgid "Groups"
msgstr "Gruppen"
#: forms.py:44
msgid "Roles"
msgstr "Rollen"
#: forms.py:47
msgid "Special"
msgstr ""
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr "Unzureichender Zugriff."
#: models.py:25 models.py:67
msgid "permission"
msgstr "Berechtigung"
#: models.py:51
msgid "access entry"
msgstr "Zugriffsberechtigungseintrag"
#: models.py:52
msgid "access entries"
msgstr "Zugriffsberechtigungseinträge"
#: models.py:88
msgid "default access entry"
msgstr "Standard-Zugriffsberechtigungseintrag"
#: models.py:89
msgid "default access entries"
msgstr "Standard-Zugriffsberechtigungseinträge"
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Zugriffsberechtigungslisten (ACLs)"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "ACLs bearbeiten"
#: permissions.py:11
msgid "View ACLs"
msgstr "ACLs anzeigen"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Standard-ACLs für Klasse bearbeiten"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Standard-ACLs für Klasse anzeigen"
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "Zugriffberechtigungsliste für: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "Berechtigter"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "Berechtigungen"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "verfügbare Berechtigungen: %(actor)s für %(obj)s "
#: views.py:104 views.py:442
msgid "namespace"
msgstr "Namensraum"
#: views.py:105 views.py:443
msgid "label"
msgstr "Bezeichner"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "hat die Berechtigung"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr "für %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr "zu %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigung %(title_suffix)s erteilen "
"möchten?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigungen %(title_suffix)s erteilen "
"möchten?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr "von %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigung %(title_suffix)s enziehen "
"möchten?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigungen %(title_suffix)s enziehen "
"möchten?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "neuen Berechtigten für %s hinzufügen"
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr "Klassen"
#: views.py:388
msgid "class"
msgstr "Klasse"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""
Binary file not shown.
-241
View File
@@ -1,241 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: __init__.py:14
msgid "ACLs"
msgstr ""
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr ""
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr ""
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr ""
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr ""
#: __init__.py:20
msgid "Default ACLs"
msgstr ""
#: __init__.py:21
msgid "List of classes"
msgstr ""
#: __init__.py:22
msgid "ACLs for class"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""
Binary file not shown.
-244
View File
@@ -1,244 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Roberto Rosario <roberto.rosario.gonzalez@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-02-12 00:16+0000\n"
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/mayan-edms/"
"language/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr "LCA"
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr "detalles"
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr "otorgar"
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr "revocar"
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr "Nuevo titular"
#: __init__.py:20
msgid "Default ACLs"
msgstr "LCA por defecto"
#: __init__.py:21
msgid "List of classes"
msgstr "Lista de clases"
#: __init__.py:22
msgid "ACLs for class"
msgstr "LCA para la clase"
#: forms.py:38
msgid "Users"
msgstr "Usuarios"
#: forms.py:41
msgid "Groups"
msgstr "Grupos"
#: forms.py:44
msgid "Roles"
msgstr "Funciones"
#: forms.py:47
msgid "Special"
msgstr "Especial"
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr "Acceso insuficiente."
#: models.py:25 models.py:67
msgid "permission"
msgstr "permiso"
#: models.py:51
msgid "access entry"
msgstr "entrada de acceso"
#: models.py:52
msgid "access entries"
msgstr "entradas de acceso"
#: models.py:88
msgid "default access entry"
msgstr "entrada de acceso por defecto"
#: models.py:89
msgid "default access entries"
msgstr "entradas de acceso por defecto"
#: models.py:108
msgid "Creator"
msgstr "Creador"
#: models.py:111 models.py:112
msgid "creator"
msgstr "creador"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Listas de control de acceso"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Editar LCA"
#: permissions.py:11
msgid "View ACLs"
msgstr "Ver LCA"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Editar LCA por defecto de la clase"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Ver LCA por defecto de la clase"
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "listas de control de acceso para: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "titular"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "permisos"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "permisos disponibles a: %(actor)s para %(obj)s "
#: views.py:104 views.py:442
msgid "namespace"
msgstr "espacio de nombres"
#: views.py:105 views.py:443
msgid "label"
msgstr "etiqueta"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "tiene permiso"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ", "
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr " para %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr " a %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "¿Está seguro que desea conceder el permiso %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "¿Está seguro que desea conceder los permisos de %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Permiso \"%(permission)s\" otorgado a %(actor)s para %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
"%(actor)s, ya tenía el permiso \"%(permission)s\", otorgado para %(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr " de %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "¿Está seguro que desea revocar el permiso %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr "¿Está seguro de querer revocar los permisos %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr "Permiso \"%(permission)s\" revocado del %(actor)s para %(object)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s, no tenía el permiso \"%(permission)s\" para %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "añadir nuevo titular para: %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Seleccionar"
#: views.py:386
msgid "classes"
msgstr "clases"
#: views.py:388
msgid "class"
msgstr "clase"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "listas de control de acceso por defecto para la clase: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "permisos disponibles para: %(actor)s para la clase %(class)s "
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "añadir nuevo titular para la clase: %s"
Binary file not shown.
-249
View File
@@ -1,249 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Pierre Lhoste <peter.cathbad.host@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-28 15:20+0000\n"
"Last-Translator: Pierre Lhoste <peter.cathbad.host@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/projects/p/mayan-edms/"
"language/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr "ACLs"
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr "détails"
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr "autoriser"
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr "révoquer"
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr "Nouveau détenteur"
#: __init__.py:20
msgid "Default ACLs"
msgstr "ACLs par défaut"
#: __init__.py:21
msgid "List of classes"
msgstr "Liste des classes"
#: __init__.py:22
msgid "ACLs for class"
msgstr "ACLs pour la classe"
#: forms.py:38
msgid "Users"
msgstr "Utilisateurs"
#: forms.py:41
msgid "Groups"
msgstr "Groupes"
#: forms.py:44
msgid "Roles"
msgstr "Rôles"
#: forms.py:47
msgid "Special"
msgstr "Spécial"
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr "Autorisations insuffisantes."
#: models.py:25 models.py:67
msgid "permission"
msgstr "autorisation"
#: models.py:51
msgid "access entry"
msgstr "autorisation d'accès"
#: models.py:52
msgid "access entries"
msgstr "autorisations d'accès"
#: models.py:88
msgid "default access entry"
msgstr "autorisation d'accès par défaut"
#: models.py:89
msgid "default access entries"
msgstr "autorisations d'accès par défaut"
#: models.py:108
msgid "Creator"
msgstr "Créateur"
#: models.py:111 models.py:112
msgid "creator"
msgstr "créateur"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Listes de contrôle d'accès (ACL)"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Modifier ACLs"
#: permissions.py:11
msgid "View ACLs"
msgstr "Afficher ACLs"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Modifier ACLs par défaut"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Afficher ACLs par défaut pour la classe"
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "Liste de contrôle d'accès (ACL) pour: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "détenteur"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "autorisations"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "autorisations pour: %(actor)s for %(obj)s"
#: views.py:104 views.py:442
msgid "namespace"
msgstr "espace de nommage"
#: views.py:105 views.py:443
msgid "label"
msgstr "label"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "autorisation accordée "
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ","
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr "à %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr "sur %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
"Êtes vous certain de vouloir attribuer l'autorisation %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
"Êtes vous certain de vouloir attribuer les autorisations %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Autorisation \"%(permission)s\" accordée à %(actor)s sur %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
"%(actor)s, dispose déjà de l'autorisation \"%(permission)s\" accordée sur "
"%(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr "de %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "Êtes vous certain de vouloir révoquer l'autorisation %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
"Êtes vous certain de vouloir révoquer les autorisations %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
"Autorisation \"%(permission)s\" révoquée pour %(actor)s sur %(object)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s, n'a pas l'autorisation \"%(permission)s\" sur %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "ajouter un nouveau détenteur pour: %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Sélectionner"
#: views.py:386
msgid "classes"
msgstr "classes"
#: views.py:388
msgid "class"
msgstr "classe"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "liste de contrôle d'accès (ACL) par défaut pour: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "autorisations attribuées à: %(actor)s sur la classe %(class)s"
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "ajouter un nouveau détenteur sur la classe: %s"
Binary file not shown.
-245
View File
@@ -1,245 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Carlo Zanatto <>, 2012.
# Pierpaolo Baldan <pierpaolo.baldan@gmail.com>, 2012.
# Roberto Rosario <roberto.rosario.gonzalez@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-06-08 07:20+0000\n"
"Last-Translator: Carlo Zanatto <>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/mayan-edms/"
"language/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr "ACL"
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr "dettagli"
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr "permetti"
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr "revocare"
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr "Nuovo titolare"
#: __init__.py:20
msgid "Default ACLs"
msgstr "Default ACL"
#: __init__.py:21
msgid "List of classes"
msgstr "Elenco delle classi"
#: __init__.py:22
msgid "ACLs for class"
msgstr "ACL per la classe"
#: forms.py:38
msgid "Users"
msgstr "Utenti"
#: forms.py:41
msgid "Groups"
msgstr "Gruppi"
#: forms.py:44
msgid "Roles"
msgstr "Ruoli"
#: forms.py:47
msgid "Special"
msgstr "Speciale"
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr "Accesso insufficiente."
#: models.py:25 models.py:67
msgid "permission"
msgstr "autorizzazione"
#: models.py:51
msgid "access entry"
msgstr "voce di accesso"
#: models.py:52
msgid "access entries"
msgstr "voci di accesso"
#: models.py:88
msgid "default access entry"
msgstr "accesso voce predefinita"
#: models.py:89
msgid "default access entries"
msgstr "voci di accesso predefinite "
#: models.py:108
msgid "Creator"
msgstr "Creatore"
#: models.py:111 models.py:112
msgid "creator"
msgstr "creatore"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Liste di controllo accessi"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Modifica ACL"
#: permissions.py:11
msgid "View ACLs"
msgstr "Visualizza ACL"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Modifica ACL predefiniti di classe"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Visualizza classi ACL predefinite"
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "lista controllo accessi per: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "titolare"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "le autorizzazioni"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "autorizzazioni disponibili per: %(actor)s per %(obj)s "
#: views.py:104 views.py:442
msgid "namespace"
msgstr "namespace"
#: views.py:105 views.py:443
msgid "label"
msgstr "etichetta"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "ha l'autorizzazione"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ", "
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr "per %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr "a %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "Sei sicuro di voler concedere l'autorizzazione %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "Sei sicuro di voler concedere permessi %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Permesso \"%(permission)s\" concesso%(actor)s per %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr "%(actor)s, ha già i permessi\"%(permission)s\" concessi per%(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr "da %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "Sei sicuro di voler revocare l'autorizzazione %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr "Sei sicuro di voler revocare permessi %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr "Permessi \"%(permission)s\" revocati al %(actor)s per %(object)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s, non ha i permessi\"%(permission)s\" per %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "aggiungi nuovo titolare per: %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Selezionare"
#: views.py:386
msgid "classes"
msgstr "classi"
#: views.py:388
msgid "class"
msgstr "classe"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "lista di default per il controllo accessi per la classe: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "permessi disponibili per: %(actor)s per la classe %(class)s"
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "aggiungi un nuovo titolare per la calsse: %s"
Binary file not shown.
@@ -1,242 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
"mayan-edms/language/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr ""
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr ""
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr ""
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr ""
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr ""
#: __init__.py:20
msgid "Default ACLs"
msgstr ""
#: __init__.py:21
msgid "List of classes"
msgstr ""
#: __init__.py:22
msgid "ACLs for class"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""
Binary file not shown.
-243
View File
@@ -1,243 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Polish (http://www.transifex.com/projects/p/mayan-edms/"
"language/pl/)\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
#: __init__.py:14
msgid "ACLs"
msgstr ""
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr ""
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr ""
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr ""
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr ""
#: __init__.py:20
msgid "Default ACLs"
msgstr ""
#: __init__.py:21
msgid "List of classes"
msgstr ""
#: __init__.py:22
msgid "ACLs for class"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""
Binary file not shown.
-243
View File
@@ -1,243 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Vítor Figueiró <vfigueiro@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-03 19:01+0000\n"
"Last-Translator: Vítor Figueiró <vfigueiro@gmail.com>\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/mayan-edms/"
"language/pt/)\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr "ACL's"
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr "detalhes"
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr "conceder"
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr "revogar"
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr "Novo detentor"
#: __init__.py:20
msgid "Default ACLs"
msgstr "ACL's padrão"
#: __init__.py:21
msgid "List of classes"
msgstr "Lista de classes"
#: __init__.py:22
msgid "ACLs for class"
msgstr "ACL's para a classe"
#: forms.py:38
msgid "Users"
msgstr "Utilizadores"
#: forms.py:41
msgid "Groups"
msgstr "Grupos"
#: forms.py:44
msgid "Roles"
msgstr "Funções"
#: forms.py:47
msgid "Special"
msgstr "Especial"
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr "Acesso insuficiente."
#: models.py:25 models.py:67
msgid "permission"
msgstr "permissão"
#: models.py:51
msgid "access entry"
msgstr "entrada de acesso"
#: models.py:52
msgid "access entries"
msgstr "entradas de acesso"
#: models.py:88
msgid "default access entry"
msgstr "entrada de acesso padrão"
#: models.py:89
msgid "default access entries"
msgstr "entradas de acesso padrão"
#: models.py:108
msgid "Creator"
msgstr "Criador"
#: models.py:111 models.py:112
msgid "creator"
msgstr "criador"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Listas de controlo de acesso"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Editar ACL's"
#: permissions.py:11
msgid "View ACLs"
msgstr "Ver ACL's"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Editar os ACL's padrão da classe"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Ver os ACL's padrão da classe"
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "listas de controlo de acesso para: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "detentor"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "permissões"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "permissões disponíveis para: %(actor)s para %(obj)s"
#: views.py:104 views.py:442
msgid "namespace"
msgstr "escopo"
#: views.py:105 views.py:443
msgid "label"
msgstr "rótulo"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "tem a permissão"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ", "
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr " para %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr " a %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "Tem a certeza de que pretende conceder a permissão %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "Tem a certeza de que pretende conceder as permissões %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Permissão \"%(permission)s\" concedida a %(actor)s para %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr "%(actor)s, já possuia a permissão \"%(permission)s\" para %(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr " de %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "Tem a certeza de que pretende revogar a permissão %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr "Tem a certeza de que pretende revogar as permissões %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr "Permissão \"%(permission)s\" revogada para %(actor)s para %(object)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s, não tinha a permissão \"%(permission)s\" para %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "adicionar novo detentor para: %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Selecionar"
#: views.py:386
msgid "classes"
msgstr "classes"
#: views.py:388
msgid "class"
msgstr "classe"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "Listas de controlo de acesso padrão para a classe: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "permissões disponíveis para: %(actor)s para a classe %(class)s"
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "adicionar novo detentor para a classe: %s"
Binary file not shown.
@@ -1,242 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
"mayan-edms/language/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr ""
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr ""
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr ""
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr ""
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr ""
#: __init__.py:20
msgid "Default ACLs"
msgstr ""
#: __init__.py:21
msgid "List of classes"
msgstr ""
#: __init__.py:22
msgid "ACLs for class"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""
Binary file not shown.
-244
View File
@@ -1,244 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Sergey Glita <gsv70@mail.ru>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-02-27 04:26+0000\n"
"Last-Translator: Sergey Glita <gsv70@mail.ru>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/mayan-edms/"
"language/ru/)\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: __init__.py:14
msgid "ACLs"
msgstr "Списки ACL"
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr "детали"
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr "предоставить"
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr "отозвать"
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr "Новый владелец"
#: __init__.py:20
msgid "Default ACLs"
msgstr "ACL по умолчанию"
#: __init__.py:21
msgid "List of classes"
msgstr "Список классов"
#: __init__.py:22
msgid "ACLs for class"
msgstr "ACL для класса"
#: forms.py:38
msgid "Users"
msgstr "Пользователи"
#: forms.py:41
msgid "Groups"
msgstr "Группы"
#: forms.py:44
msgid "Roles"
msgstr "Роли"
#: forms.py:47
msgid "Special"
msgstr "Специальный"
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr "Недостаточный доступ."
#: models.py:25 models.py:67
msgid "permission"
msgstr "разрешение"
#: models.py:51
msgid "access entry"
msgstr "запись доступа"
#: models.py:52
msgid "access entries"
msgstr "записи доступа"
#: models.py:88
msgid "default access entry"
msgstr "запись доступа по умолчанию"
#: models.py:89
msgid "default access entries"
msgstr "записи доступа по умолчанию"
#: models.py:108
msgid "Creator"
msgstr "Создатель"
#: models.py:111 models.py:112
msgid "creator"
msgstr "создатель"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Списки контроля доступа"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Редактировать списки ACL"
#: permissions.py:11
msgid "View ACLs"
msgstr "Просмотр списков ACL"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Редактировать списки ACL класса по умолчанию"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Просмотр списков ACL класса по умолчанию"
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "списки контроля доступа для %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "владелец"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "разрешения"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "разрешения, доступные %(actor)s для %(obj)s"
#: views.py:104 views.py:442
msgid "namespace"
msgstr "пространство имен"
#: views.py:105 views.py:443
msgid "label"
msgstr "этикетка"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "имеет разрешение"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ","
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr "для %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr "до %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "Вы действительно хотите предоставить разрешение %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "Вы уверены, что хотите предоставить разрешения %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Право \"%(permission)s\" проедоставлено %(actor)s для %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr "%(actor)s, уже имеет право \"%(permission)s\" для %(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr "от%s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "Вы уверены, что хотите отменить разрешение %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr "Вы уверены, что хотите отменить разрешение %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr "Право \"%(permission)s\" для %(object)s отозвано у %(actor)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s не имеет права \"%(permission)s\" для %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "добавить нового владельца для %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Выбор"
#: views.py:386
msgid "classes"
msgstr "классы"
#: views.py:388
msgid "class"
msgstr "класс"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "списки контроля доступа умолчанию для класса %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "разрешения доступные %(actor)s для класса %(class)s"
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "добавить нового владельца для класса %s"
@@ -1,241 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n"
"POT-Creation-Date: 2012-07-26 23:54-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/projects/p/mayan-edms/language/sl_SI/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sl_SI\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#: forms.py:21 links.py:14 links.py:20
msgid "New holder"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: links.py:10
msgid "ACLs"
msgstr ""
#: links.py:11 links.py:19
msgid "details"
msgstr ""
#: links.py:12 links.py:21
msgid "grant"
msgstr ""
#: links.py:13 links.py:22
msgid "revoke"
msgstr ""
#: links.py:16
msgid "Default ACLs"
msgstr ""
#: links.py:17
msgid "List of classes"
msgstr ""
#: links.py:18
msgid "ACLs for class"
msgstr ""
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""
-330
View File
@@ -1,330 +0,0 @@
from __future__ import absolute_import
import logging
from django.db import models
from django.utils.translation import ugettext
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth.models import User
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
from django.db.models import Q
from common.models import AnonymousUserSingleton
from permissions.models import Permission, RoleMember
from .classes import AccessHolder, ClassAccessHolder, get_source_object
logger = logging.getLogger(__name__)
class AccessEntryManager(models.Manager):
"""
Implement a 3 tier permission system, involving a permissions, an actor
and an object
"""
def grant(self, permission, actor, obj):
"""
Grant a permission (what), (to) an actor, (on) a specific object
"""
obj = get_source_object(obj)
actor = get_source_object(actor)
access_entry, created = self.model.objects.get_or_create(
permission=permission,
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=ContentType.objects.get_for_model(obj),
object_id=obj.pk
)
return created
def revoke(self, permission, actor, obj):
"""
Revoke a permission (what), (from) an actor, (on) a specific object
"""
obj = get_source_object(obj)
actor = get_source_object(actor)
try:
access_entry = self.model.objects.get(
permission=permission,
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=ContentType.objects.get_for_model(obj),
object_id=obj.pk
)
except self.model.DoesNotExist:
return False
else:
access_entry.delete()
return True
def has_access(self, permission, actor, obj, db_only=False):
"""
Returns whether an actor has a specific permission for an object
"""
obj = get_source_object(obj)
actor = get_source_object(actor)
if isinstance(actor, User) and db_only == False:
# db_only causes the return of only the stored permissions
# and not the perceived permissions for an actor
if actor.is_superuser or actor.is_staff:
return True
actor = AnonymousUserSingleton.objects.passthru_check(actor)
try:
content_type=ContentType.objects.get_for_model(obj)
except AttributeError:
# Object doesn't have a content type, therefore allow access
return True
try:
self.model.objects.get(
permission=permission.get_stored_permission(),
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=content_type,
object_id=obj.pk
)
except self.model.DoesNotExist:
# If not check if the actor's memberships is one of
# the access's holder?
roles = RoleMember.objects.get_roles_for_member(actor)
if isinstance(actor, User):
groups = actor.groups.all()
else:
groups = []
for membership in list(set(roles) | set(groups)):
if self.has_access(permission, membership, obj, db_only):
return True
logger.debug('Fallthru')
return False
else:
return True
def check_access(self, permission, actor, obj):
# TODO: Merge with has_access
obj = get_source_object(obj)
actor = get_source_object(actor)
if self.has_access(permission, actor, obj):
return True
else:
raise PermissionDenied(ugettext(u'Insufficient access.'))
def check_accesses(self, permission_list, actor, obj):
"""
Returns whether an actor has at least one of a list of permissions for an object
"""
obj = get_source_object(obj)
actor = get_source_object(actor)
for permission in permission_list:
if self.has_access(permission, actor, obj):
return True
raise PermissionDenied(ugettext(u'Insufficient access.'))
def get_allowed_class_objects(self, permission, actor, cls, related=None):
logger.debug('related: %s' % related)
actor = AnonymousUserSingleton.objects.passthru_check(actor)
actor_type = ContentType.objects.get_for_model(actor)
content_type = ContentType.objects.get_for_model(cls)
# Calculate actor role membership ACL query
total_queries = Q()
for role in RoleMember.objects.get_roles_for_member(actor):
role_type = ContentType.objects.get_for_model(role)
if related:
query = Q(holder_type=role_type, holder_id=role.pk, permission=permission.get_stored_permission)
else:
query = Q(holder_type=role_type, holder_id=role.pk, content_type=content_type, permission=permission.get_stored_permission)
if not total_queries:
total_queries = query
else:
total_queries = total_queries | query
# Calculate actor group membership ACL query
if isinstance(actor, User):
groups = actor.groups.all()
else:
groups = []
for group in groups:
group_type = ContentType.objects.get_for_model(group)
if related:
query = Q(holder_type=group_type, holder_id=group.pk, permission=permission.get_stored_permission)
else:
query = Q(holder_type=group_type, holder_id=group.pk, content_type=content_type, permission=permission.get_stored_permission)
if not total_queries:
total_queries = query
else:
total_queries = total_queries | query
if related:
actor_query = Q(holder_type=actor_type, holder_id=actor.pk, permission=permission.get_stored_permission)
master_list = [obj.content_object for obj in self.model.objects.select_related().filter(actor_query | total_queries)]
logger.debug('master_list: %s' % master_list)
# TODO: update to use Q objects and check performance diff
# kwargs = {'%s__in' % related: master_list}
# Q(**kwargs)
return (obj for obj in cls.objects.all() if getattr(obj, related) in master_list)
else:
actor_query = Q(holder_type=actor_type, holder_id=actor.pk, content_type=content_type, permission=permission.get_stored_permission)
return (obj.content_object for obj in self.model.objects.filter(actor_query | total_queries))
def get_acl_url(self, obj):
content_type = ContentType.objects.get_for_model(obj)
return reverse('acl_list', args=[content_type.app_label, content_type.model, obj.pk])
def get_new_holder_url(self, obj):
content_type = ContentType.objects.get_for_model(obj)
return reverse('acl_new_holder_for', args=[content_type.app_label, content_type.model, obj.pk])
def get_holders_for(self, obj):
content_type = ContentType.objects.get_for_model(obj)
holder_list = []
for access_entry in self.model.objects.filter(content_type=content_type, object_id=obj.pk):
if access_entry.holder_object:
# Don't add references to non existant content type objects
entry = AccessHolder.encapsulate(access_entry.holder_object)
if entry not in holder_list:
holder_list.append(entry)
return holder_list
def get_holder_permissions_for(self, obj, actor, db_only=False):
"""
Returns a list of actors that hold at least one permission for
a specific object
"""
logger.debug('obj: %s' % obj)
logger.debug('actor: %s' % actor)
if isinstance(actor, User) and db_only == False:
if actor.is_superuser or actor.is_staff:
return Permission.objects.all()
actor_type = ContentType.objects.get_for_model(actor)
content_type = ContentType.objects.get_for_model(obj)
return (access.permission for access in self.model.objects.filter(content_type=content_type, object_id=obj.pk, holder_type=actor_type, holder_id=actor.pk))
def filter_objects_by_access(self, permission, actor, object_list, exception_on_empty=False, related=None):
"""
Filter a list of objects or a QuerySet elements depending on
whether the actor holds the specified permission
"""
logger.debug('exception_on_empty: %s' % exception_on_empty)
logger.debug('object_list: %s' % object_list)
if isinstance(actor, User):
if actor.is_superuser or actor.is_staff:
return object_list
try:
if object_list.count() == 0:
return object_list
except TypeError:
# object_list is not a queryset
if len(object_list) == 0:
return object_list
try:
# Try to process as a QuerySet
qs = object_list.filter(pk__in=[obj.pk for obj in self.get_allowed_class_objects(permission, actor, object_list[0].__class__, related)])
logger.debug('qs: %s' % qs)
if qs.count() == 0 and exception_on_empty == True:
raise PermissionDenied
return qs
except AttributeError:
# Fallback to a filtered list
object_list = list(set(object_list) & set(self.get_allowed_class_objects(permission, actor, object_list[0].__class__, related)))
logger.debug('object_list: %s' % object_list)
if len(object_list) == 0 and exception_on_empty == True:
raise PermissionDenied
return object_list
class DefaultAccessEntryManager(models.Manager):
"""
Implement a 3 tier permission system, involving a permission, an actor
and a class or content type. This model keeps track of the access
control lists that will be added when an instance of the recorded
content type is created.
"""
def get_holders_for(self, cls):
cls = get_source_object(cls)
content_type = ContentType.objects.get_for_model(cls)
holder_list = []
for access_entry in self.model.objects.filter(content_type=content_type):
if access_entry.holder_object:
# Don't add references to non existant content type objects
entry = ClassAccessHolder.encapsulate(access_entry.holder_object)
if entry not in holder_list:
holder_list.append(entry)
return holder_list
def has_access(self, permission, actor, cls):
if isinstance(actor, User):
if actor.is_superuser or actor.is_staff:
return True
try:
self.model.objects.get(
permission=permission.get_stored_permission(),
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=ContentType.objects.get_for_model(cls),
)
except self.model.DoesNotExist:
return False
else:
return True
def grant(self, permission, actor, cls):
"""
Grant a permission (what), (to) an actor, (on) a specific class
"""
access_entry, created = self.model.objects.get_or_create(
permission=permission,
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=ContentType.objects.get_for_model(cls),
)
return created
def revoke(self, permission, actor, cls):
"""
Revoke a permission (what), (from) an actor, (on) a specific class
"""
try:
access_entry = self.model.objects.get(
permission=permission,
holder_type=ContentType.objects.get_for_model(actor),
holder_id=actor.pk,
content_type=ContentType.objects.get_for_model(cls),
)
access_entry.delete()
return True
except self.model.DoesNotExist:
return False
def get_holder_permissions_for(self, cls, actor):
if isinstance(actor, User):
if actor.is_superuser or actor.is_staff:
return Permission.objects.all()
actor_type = ContentType.objects.get_for_model(actor)
content_type = ContentType.objects.get_for_model(cls)
return [access.permission for access in self.model.objects.filter(content_type=content_type, holder_type=actor_type, holder_id=actor.pk)]
-112
View File
@@ -1,112 +0,0 @@
from __future__ import absolute_import
import logging
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
from permissions.models import StoredPermission
from common.models import Singleton, SingletonManager
from .managers import AccessEntryManager, DefaultAccessEntryManager
from .classes import AccessObjectClass
from .api import get_classes
logger = logging.getLogger(__name__)
class AccessEntry(models.Model):
"""
Model that hold the permission, object, actor relationship
"""
permission = models.ForeignKey(StoredPermission, verbose_name=_(u'permission'))
holder_type = models.ForeignKey(
ContentType,
related_name='access_holder',
limit_choices_to={'model__in': ('user', 'group', 'role')}
)
holder_id = models.PositiveIntegerField()
holder_object = generic.GenericForeignKey(
ct_field='holder_type',
fk_field='holder_id'
)
content_type = models.ForeignKey(
ContentType,
related_name='object_content_type'
)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey(
ct_field='content_type',
fk_field='object_id'
)
objects = AccessEntryManager()
class Meta:
verbose_name = _(u'access entry')
verbose_name_plural = _(u'access entries')
def __unicode__(self):
return u'%s: %s' % (self.content_type, self.content_object)
class DefaultAccessEntry(models.Model):
"""
Model that holds the permission, class, actor relationship, that will
be added upon the creation of an instance of said class
"""
@classmethod
def get_classes(cls):
return [AccessObjectClass.encapsulate(cls) for cls in get_classes()]
permission = models.ForeignKey(StoredPermission, verbose_name=_(u'permission'))
holder_type = models.ForeignKey(
ContentType,
limit_choices_to={'model__in': ('user', 'group', 'role')},
related_name='default_access_entry_holder'
)
holder_id = models.PositiveIntegerField()
holder_object = generic.GenericForeignKey(
ct_field='holder_type',
fk_field='holder_id'
)
content_type = models.ForeignKey(
ContentType,
related_name='default_access_entry_class'
)
objects = DefaultAccessEntryManager()
class Meta:
verbose_name = _(u'default access entry')
verbose_name_plural = _(u'default access entries')
def __unicode__(self):
return u'%s: %s' % (self.content_type, self.content_object)
class CreatorSingletonManager(SingletonManager):
def passthru_check(self, holder, creator=None):
if isinstance(holder, self.model):
# TODO: raise explicit error if is instance and creator=None
return creator
else:
return holder
class CreatorSingleton(Singleton):
objects = CreatorSingletonManager()
def __unicode__(self):
return ugettext('Creator')
class Meta:
verbose_name = _(u'creator')
verbose_name_plural = _(u'creator')
-14
View File
@@ -1,14 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from permissions.models import PermissionNamespace, Permission
acls_namespace = PermissionNamespace('acls', _(u'Access control lists'))
acls_setup_namespace = PermissionNamespace('acls_setup', _(u'Access control lists'))
ACLS_EDIT_ACL = Permission.objects.register(acls_namespace, 'acl_edit', _(u'Edit ACLs'))
ACLS_VIEW_ACL = Permission.objects.register(acls_namespace, 'acl_view', _(u'View ACLs'))
ACLS_CLASS_EDIT_ACL = Permission.objects.register(acls_setup_namespace, 'acl_class_edit', _(u'Edit class default ACLs'))
ACLS_CLASS_VIEW_ACL = Permission.objects.register(acls_setup_namespace, 'acl_class_view', _(u'View class default ACLs'))
-10
View File
@@ -1,10 +0,0 @@
from __future__ import absolute_import
from .cleanup import cleanup
bootstrap_models = [
{
'name': 'defaultaccessentry',
},
]
cleanup_functions = [cleanup]
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

-71
View File
@@ -1,71 +0,0 @@
import logging
from django.core.exceptions import PermissionDenied
from django.template import (TemplateSyntaxError, Library,
Node, Variable, VariableDoesNotExist)
from acls.models import AccessEntry
register = Library()
logger = logging.getLogger(__name__)
class CheckAccessNode(Node):
def __init__(self, permission_list=None, requester=None, obj=None, *args, **kwargs):
self.requester = requester
self.permission_list = permission_list
self.obj = obj
def render(self, context):
permission_list = Variable(self.permission_list).resolve(context)
logger.debug('permission_list: %s' % u','.join([unicode(p) for p in permission_list]))
try:
# Check access_object, useful for document_page views
obj = Variable('access_object').resolve(context)
logger.debug('access_object: %s' % obj)
except VariableDoesNotExist:
try:
obj = Variable(self.obj).resolve(context)
logger.debug('obj: %s' % obj)
except VariableDoesNotExist:
context[u'access'] = False
logger.debug('no obj, access False')
return u''
if not permission_list:
# There is no permissions list to check against which means
# this link is available for all
context[u'access'] = True
return u''
requester = Variable(self.requester).resolve(context)
logger.debug('requester: %s' % requester)
if obj:
try:
AccessEntry.objects.check_accesses(permission_list, requester, obj)
except PermissionDenied:
context[u'access'] = False
logger.debug('access: False')
return u''
else:
context[u'access'] = True
logger.debug('access: True')
return u''
else:
context[u'access'] = False
logger.debug('No object, access: False')
return u''
@register.tag
def check_access(parser, token):
try:
# Splitting by None == splitting by spaces.
tag_name, args = token.contents.split(None, 1)
except ValueError:
raise TemplateSyntaxError(u'%r tag requires arguments' % token.contents.split()[0])
return CheckAccessNode(*args.split())
-20
View File
@@ -1,20 +0,0 @@
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('acls.views',
url(r'^new_holder_for/(?P<app_label>[-\w]+)/(?P<model_name>[-\w]+)/(?P<object_id>\d+)/$', 'acl_new_holder_for', (), 'acl_new_holder_for'),
url(r'^list_for/(?P<app_label>[-\w]+)/(?P<model_name>[-\w]+)/(?P<object_id>\d+)/$', 'acl_list', (), 'acl_list'),
url(r'^details/(?P<access_object_gid>[.\w]+)/holder/(?P<holder_object_gid>[.\w]+)/$', 'acl_detail', (), 'acl_detail'),
url(r'^holder/new/(?P<access_object_gid>[.\w]+)/$', 'acl_holder_new', (), 'acl_holder_new'),
url(r'^multiple/grant/$', 'acl_grant', (), 'acl_multiple_grant'),
url(r'^multiple/revoke/$', 'acl_revoke', (), 'acl_multiple_revoke'),
url(r'^class/$', 'acl_setup_valid_classes', (), 'acl_setup_valid_classes'),
url(r'^class/details/(?P<access_object_class_gid>[.\w]+)/holder/(?P<holder_object_gid>[.\w]+)/$', 'acl_class_acl_detail', (), 'acl_class_acl_detail'),
url(r'^class/list_for/(?P<access_object_class_gid>[.\w]+)/$', 'acl_class_acl_list', (), 'acl_class_acl_list'),
url(r'^class/holder/new/(?P<access_object_class_gid>[.\w]+)/$', 'acl_class_new_holder_for', (), 'acl_class_new_holder_for'),
url(r'^class/multiple/grant/$', 'acl_class_multiple_grant', (), 'acl_class_multiple_grant'),
url(r'^class/multiple/revoke/$', 'acl_class_multiple_revoke', (), 'acl_class_multiple_revoke'),
)
-34
View File
@@ -1,34 +0,0 @@
from __future__ import absolute_import
import logging
from django.contrib.contenttypes.models import ContentType
from common.models import AnonymousUserSingleton
from .models import AccessEntry, DefaultAccessEntry, CreatorSingleton
from .classes import get_source_object
logger = logging.getLogger(__name__)
def apply_default_acls(obj, actor=None):
logger.debug('actor, init: %s' % actor)
obj = get_source_object(obj)
if actor:
actor = AnonymousUserSingleton.objects.passthru_check(actor)
content_type = ContentType.objects.get_for_model(obj)
for default_acl in DefaultAccessEntry.objects.filter(content_type=content_type):
holder = CreatorSingleton.objects.passthru_check(default_acl.holder_object, actor)
if holder:
# When the creator is admin
access_entry = AccessEntry(
permission=default_acl.permission,
holder_object=holder,
content_object=obj,
)
access_entry.save()
-649
View File
File diff suppressed because it is too large Load Diff
-27
View File
@@ -1,27 +0,0 @@
from __future__ import absolute_import
from django.utils.safestring import mark_safe
from django.contrib.contenttypes.models import ContentType
from django.db.models.base import ModelBase
from django.template.defaultfilters import capfirst
from .literals import CONTENT_TYPE_ICON_MAP
def content_type_icon(content_type):
return mark_safe(u'<span class="famfam active famfam-%s"></span>' % CONTENT_TYPE_ICON_MAP.get('%s.%s' % (content_type.app_label, content_type.model), 'help'))
def object_w_content_type_icon(obj):
content_type = ContentType.objects.get_for_model(obj)
ct_fullname = '%s.%s' % (content_type.app_label, content_type.name)
if isinstance(obj, ModelBase):
label = getattr(obj._meta, 'verbose_name_plural', unicode(content_type))
else:
if ct_fullname == 'auth.user':
label = obj.get_full_name()
else:
label = unicode(obj)
return mark_safe('%s<span>%s</span>' % (content_type_icon(content_type), capfirst(label)))
-23
View File
@@ -1,23 +0,0 @@
from __future__ import absolute_import
import logging
from django.conf import settings
from django.utils.importlib import import_module
from .models import App
logger = logging.getLogger(__name__)
def register_apps():
for app_name in settings.INSTALLED_APPS:
logger.debug('registering: %s' % app_name)
App.register(app_name)
try:
post_init = import_module('%s.post_init' % app_name)
except ImportError:
logger.debug('Unable to import post_init module from: %s' % app_name)
register_apps()
-62
View File
@@ -1,62 +0,0 @@
from __future__ import absolute_import
import logging
import imp
import sys
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.importlib import import_module
from project_setup.api import register_setup
from project_tools.api import register_tool
from navigation.api import register_top_menu
from bootstrap.classes import Cleanup, BootstrapModel
logger = logging.getLogger(__name__)
class App(object):
@classmethod
def register(cls, app_name):
logger.debug('Trying to import: %s' % app_name)
try:
app_module = import_module(app_name)
except ImportError:
logger.debug('Unable to import app: %s' % app_name)
else:
logger.debug('Trying to import registry from: %s' % app_name)
try:
registration = import_module('%s.registry' % app_name)
except ImportError:
logger.debug('Unable to import registry for app: %s' % app_name)
else:
if not getattr(registration, 'disabled', False):
app = App()
app.name=app_name
# If there are not error go ahead with the stored app instance
app.label = getattr(registration, 'label', app_name)
app.description = getattr(registration, 'description', u'')
for link in getattr(registration, 'setup_links', []):
logger.debug('setup link: %s' % link)
register_setup(link)
for link in getattr(registration, 'tool_links', []):
logger.debug('tool link: %s' % link)
register_tool(link)
for index, link in enumerate(getattr(registration, 'menu_links', [])):
logger.debug('menu_link: %s' % link)
register_top_menu(name='%s.%s' % (app_name, index), link=link)
for cleanup_function in getattr(registration, 'cleanup_functions', []):
logger.debug('cleanup_function: %s' % cleanup_function)
Cleanup(cleanup_function)
for bootstrap_model in getattr(registration, 'bootstrap_models', []):
logger.debug('bootstrap_model: %s' % bootstrap_model)
BootstrapModel(model_name=bootstrap_model.get('name'), app_name=app_name, sanitize=bootstrap_model.get('sanitize', True), dependencies=bootstrap_model.get('dependencies'))
def __unicode__(self):
return unicode(self.label)
-7
View File
@@ -1,7 +0,0 @@
from __future__ import absolute_import
from django.contrib import admin
from .models import BootstrapSetup
admin.site.register(BootstrapSetup)
-172
View File
@@ -1,172 +0,0 @@
from __future__ import absolute_import
import logging
from itertools import chain
from django.db import models
from django.core import serializers
from django.utils.datastructures import SortedDict
from .exceptions import ExistingData, NotABootstrapSetup
from .literals import (FIXTURE_TYPE_PK_NULLIFIER, FIXTURE_TYPE_MODEL_PROCESS,
FIXTURE_METADATA_REMARK_CHARACTER, BOOTSTRAP_SETUP_MAGIC_NUMBER)
from .utils import toposort2
logger = logging.getLogger(__name__)
class Cleanup(object):
"""
Class to store all the registered cleanup functions in one place.
"""
_registry = {}
@classmethod
def execute_all(cls):
for cleanup in cls._registry.values():
cleanup.function()
def __init__(self, function):
self.function = function
self.__class__._registry[id(self)] = self
class BootstrapModel(object):
"""
Class used to keep track of all the models to be dumped to create a
bootstrap setup from the current setup in use.
"""
_registry = SortedDict()
@classmethod
def get_magic_number(cls):
return '%s %s' % (FIXTURE_METADATA_REMARK_CHARACTER, BOOTSTRAP_SETUP_MAGIC_NUMBER)
@classmethod
def check_magic_number(cls, data):
if not data.startswith(cls.get_magic_number()):
raise NotABootstrapSetup
@classmethod
def check_for_data(cls):
for model in cls.get_all():
model_instance = models.get_model(model.app_name, model.model_name)
if model_instance.objects.all().count():
raise ExistingData
@classmethod
def get_all(cls, sort_by_dependencies=False):
"""
Return all boostrap models, sorted by dependencies optionally.
"""
if not sort_by_dependencies:
return cls._registry.values()
else:
return (cls.get_by_name(name) for name in list(chain.from_iterable(toposort2(cls.get_dependency_dict()))))
@classmethod
def get_dependency_dict(cls):
"""
Return a dictionary where the key is the model name and it's value
is a list of models upon which it depends.
"""
result = {}
for instance in cls.get_all():
result[instance.get_fullname()] = set(instance.dependencies)
logger.debug('result: %s' % result)
return result
@classmethod
def get_by_name(cls, name):
"""
Return a BootstrapModel instance by the fullname of the model it
represents.
"""
return cls._registry[name]
def get_fullname(self):
"""
Return a the full app name + model name of the model represented
by the instance.
"""
return '.'.join([self.app_name, self.model_name])
def get_model_instance(self):
"""
Returns an actual Model class instance of the model.
"""
return models.get_model(self.app_name, self.model_name)
def __init__(self, model_name, app_name=None, sanitize=True, dependencies=None):
app_name_splitted = None
if '.' in model_name:
app_name_splitted, model_name = model_name.split('.')
self.app_name = app_name_splitted or app_name
if not self.app_name:
raise Exception('Pass either a dotted app plus model name or a model name and a separate app name')
self.model_name = model_name
self.sanitize = sanitize
self.dependencies = dependencies if dependencies else []
self.__class__._registry[self.get_fullname()] = self
def dump(self, serialization_format):
result = serializers.serialize(serialization_format, self.get_model_instance().objects.all(), indent=4, use_natural_keys=True)
logger.debug('result: "%s"' % result)
if self.sanitize:
# Remove primary key values
result = FIXTURE_TYPE_PK_NULLIFIER[serialization_format](result)
# Do any clean up required on the fixture
result = FIXTURE_TYPE_MODEL_PROCESS[serialization_format](result)
return result
class FixtureMetadata(object):
"""
Class to automatically create and extract metadata from a bootstrap
fixture.
"""
_registry = SortedDict()
@classmethod
def get_all(cls):
return cls._registry.values()
@classmethod
def generate_all(cls, fixture_instance):
result = []
for fixture_metadata in cls.get_all():
result.append(fixture_metadata.generate(fixture_instance))
return '\n'.join(result)
@classmethod
def read_all(cls, data):
result = {}
for instance in cls.get_all():
single_result = instance.read_value(data)
if single_result:
result[instance.property_name] = single_result
return result
def __init__(self, literal, generate_function, read_function=None, property_name=None):
self.literal = literal
self.generate_function = generate_function
self.property_name = property_name
self.read_function = read_function or (lambda x: x)
self.__class__._registry[id(self)] = self
def get_with_remark(self):
return '%s %s' % (FIXTURE_METADATA_REMARK_CHARACTER, self.literal)
def generate(self, fixture_instance):
return '%s: %s' % (self.get_with_remark(), self.generate_function(fixture_instance))
def read_value(self, fixture_data):
if self.property_name:
for line in fixture_data.splitlines(False):
if line.startswith(self.get_with_remark()):
# TODO: replace the "+ 4" with a space and next character finding algo
return self.read_function(line[len(self.literal) + 4:])
-18
View File
@@ -1,18 +0,0 @@
from __future__ import absolute_import
class ExistingData(Exception):
"""
Raised when an attempt to execute a bootstrap setup is made and there is
existing data that would be corrupted or damaged by the loading the
bootstrap's fixture.
"""
pass
class NotABootstrapSetup(Exception):
"""
Raised when an attempting to import a bootstrap setup without a proper
magic number metadata
"""
pass
-57
View File
@@ -1,57 +0,0 @@
from __future__ import absolute_import
import logging
from django import forms
from django.utils.translation import ugettext_lazy as _
from common.forms import DetailForm
from .models import BootstrapSetup
logger = logging.getLogger(__name__)
class BootstrapSetupForm(forms.ModelForm):
class Meta:
model = BootstrapSetup
widgets = {
'description': forms.widgets.Textarea(attrs={
'rows': 5, 'cols': 80,
}
)
}
class BootstrapSetupForm_view(DetailForm):
class Meta:
model = BootstrapSetup
widgets = {
'description': forms.widgets.Textarea(attrs={
'rows': 5, 'cols': 80,
}
)
}
class BootstrapSetupForm_edit(BootstrapSetupForm):
class Meta(BootstrapSetupForm.Meta):
model = BootstrapSetup
exclude = ('type',)
class BootstrapSetupForm_dump(BootstrapSetupForm):
class Meta(BootstrapSetupForm.Meta):
model = BootstrapSetup
exclude = ('fixture',)
class BootstrapFileImportForm(forms.Form):
file = forms.FileField(
label=_(u'Bootstrap setup file'),
)
class BootstrapURLImportForm(forms.Form):
url = forms.URLField(
label=_(u'Bootstrap setup URL'),
)
-23
View File
@@ -1,23 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from .permissions import (PERMISSION_BOOTSTRAP_VIEW, PERMISSION_BOOTSTRAP_CREATE,
PERMISSION_BOOTSTRAP_EDIT, PERMISSION_BOOTSTRAP_DELETE,
PERMISSION_BOOTSTRAP_EXECUTE, PERMISSION_BOOTSTRAP_DUMP,
PERMISSION_NUKE_DATABASE, PERMISSION_BOOTSTRAP_EXPORT,
PERMISSION_BOOTSTRAP_IMPORT, PERMISSION_BOOTSTRAP_REPOSITORY_SYNC)
link_bootstrap_setup_tool = {'text': _(u'bootstrap'), 'view': 'bootstrap_setup_list', 'icon': 'lightning.png', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]}
link_bootstrap_setup_list = {'text': _(u'bootstrap setup list'), 'view': 'bootstrap_setup_list', 'famfam': 'lightning', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]}
link_bootstrap_setup_create = {'text': _(u'create new bootstrap setup'), 'view': 'bootstrap_setup_create', 'famfam': 'lightning_add', 'permissions': [PERMISSION_BOOTSTRAP_CREATE]}
link_bootstrap_setup_edit = {'text': _(u'edit'), 'view': 'bootstrap_setup_edit', 'args': 'object.pk', 'famfam': 'pencil', 'permissions': [PERMISSION_BOOTSTRAP_EDIT]}
link_bootstrap_setup_delete = {'text': _(u'delete'), 'view': 'bootstrap_setup_delete', 'args': 'object.pk', 'famfam': 'lightning_delete', 'permissions': [PERMISSION_BOOTSTRAP_DELETE]}
link_bootstrap_setup_view = {'text': _(u'details'), 'view': 'bootstrap_setup_view', 'args': 'object.pk', 'famfam': 'lightning', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]}
link_bootstrap_setup_execute = {'text': _(u'execute'), 'view': 'bootstrap_setup_execute', 'args': 'object.pk', 'famfam': 'lightning_go', 'permissions': [PERMISSION_BOOTSTRAP_EXECUTE]}
link_bootstrap_setup_dump = {'text': _(u'dump current setup'), 'view': 'bootstrap_setup_dump', 'famfam': 'arrow_down', 'permissions': [PERMISSION_BOOTSTRAP_DUMP]}
link_bootstrap_setup_export = {'text': _(u'export'), 'view': 'bootstrap_setup_export', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_BOOTSTRAP_EXPORT]}
link_bootstrap_setup_import_from_file = {'text': _(u'import from file'), 'view': 'bootstrap_setup_import_from_file', 'famfam': 'folder', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]}
link_bootstrap_setup_import_from_url = {'text': _(u'import from URL'), 'view': 'bootstrap_setup_import_from_url', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]}
link_bootstrap_setup_repository_sync = {'text': _(u'sync with repository'), 'view': 'bootstrap_setup_repository_sync', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_REPOSITORY_SYNC]}
link_erase_database = {'text': _(u'erase database'), 'view': 'erase_database_view', 'icon': 'radioactivity.png', 'permissions': [PERMISSION_NUKE_DATABASE]}
-81
View File
@@ -1,81 +0,0 @@
from __future__ import absolute_import
import re
try:
import yaml
except ImportError:
YAML_AVAILABLE = False
else:
YAML_AVAILABLE = True
from django.utils.translation import ugettext_lazy as _
FIXTURE_TYPE_JSON = 'json'
FIXTURE_TYPE_YAML = 'yaml'
FIXTURE_TYPE_BETTER_YAML = 'better_yaml'
FIXTURE_TYPE_XML = 'xml'
FIXTURE_TYPES_CHOICES = (
(FIXTURE_TYPE_JSON, _(u'JSON')),
# Disabing XML until a way to specify a null pk is found
#(FIXTURE_TYPE_XML, _(u'XML')),
)
FIXTURE_FILE_TYPE = {
FIXTURE_TYPE_JSON: 'json',
FIXTURE_TYPE_YAML: 'yaml',
FIXTURE_TYPE_BETTER_YAML: 'better_yaml',
FIXTURE_TYPE_XML: 'xml',
}
FIXTURE_TYPE_PK_NULLIFIER = {
FIXTURE_TYPE_JSON: lambda x: re.sub('"pk": [0-9]{1,5}', '"pk": null', x),
FIXTURE_TYPE_YAML: lambda x: re.sub('pk: [0-9]{1,5}', 'pk: null', x),
FIXTURE_TYPE_BETTER_YAML: lambda x: re.sub('[0-9]{1,5}:', 'null:', x),
FIXTURE_TYPE_XML: lambda x: re.sub('pk="[0-9]{1,5}"', 'pk=null', x),
}
FIXTURE_TYPE_EMPTY_FIXTURE = {
FIXTURE_TYPE_JSON: lambda x: x.startswith('[]') or x == ',',
FIXTURE_TYPE_YAML: lambda x: x.startswith('[]'),
FIXTURE_TYPE_BETTER_YAML: lambda x: x.startswith('{}'),
FIXTURE_TYPE_XML: lambda x: x,
}
FIXTURE_TYPE_MODEL_PROCESS = {
FIXTURE_TYPE_JSON: lambda x: '%s,' % x[2:-2],
FIXTURE_TYPE_YAML: lambda x: x,
FIXTURE_TYPE_BETTER_YAML: lambda x: x,
FIXTURE_TYPE_XML: lambda x: x,
}
FIXTURE_TYPE_FIXTURE_PROCESS = {
FIXTURE_TYPE_JSON: lambda x: '[\n%s\n]' % x[:-1], # Enclose in [], remove last comma
FIXTURE_TYPE_YAML: lambda x: x,
FIXTURE_TYPE_BETTER_YAML: lambda x: x,
FIXTURE_TYPE_XML: lambda x: x,
}
COMMAND_LOADDATA = 'loaddata'
if YAML_AVAILABLE:
FIXTURE_TYPES_CHOICES += (FIXTURE_TYPE_YAML, _(u'YAML')),
FIXTURE_TYPES_CHOICES += (FIXTURE_TYPE_BETTER_YAML, _(u'Better YAML')),
# better_yaml is not working with natural keys
FIXTURE_METADATA_REMARK_CHARACTER = '#'
DATETIME_STRING_FORMAT = '%a, %d %b %Y %H:%M:%S +0000'
FIXTURE_METADATA_CREATED = 'created'
FIXTURE_METADATA_EDITED = 'edited'
FIXTURE_METADATA_MAYAN_VERSION = 'mayan_edms_version'
FIXTURE_METADATA_FORMAT = 'format'
FIXTURE_METADATA_NAME = 'name'
FIXTURE_METADATA_SLUG = 'slug'
FIXTURE_METADATA_DESCRIPTION = 'description'
BOOTSTRAP_EXTENSION = 'txt'
BOOTSTRAP_SETUP_MAGIC_NUMBER = 'bootstrap setup'
BOOTSTRAP_REPOSITORY_URL = 'http://bootstrap.mayan-edms.com'
BOOTSTRAP_REPOSITORY_INDEX_FILE = '_repo_index.txt'
Binary file not shown.
@@ -1,329 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# <pkoldamov@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: 2012-10-17 10:27+0000\n"
"Last-Translator: Pavlin Koldamov <pkoldamov@gmail.com>\n"
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/"
"language/bg/)\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr "редактиране"
#: links.py:15
msgid "delete"
msgstr "изтриване"
#: links.py:16
msgid "details"
msgstr "детайли"
#: links.py:17
msgid "execute"
msgstr "изпълнение"
#: links.py:18
msgid "dump current setup"
msgstr "изпринтване на текущата настройка"
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr "изтриване на база данни"
#: literals.py:20
msgid "JSON"
msgstr "JSON"
#: literals.py:63
msgid "YAML"
msgstr "YAML"
#: literals.py:64
msgid "Better YAML"
msgstr "Подобрен YAML"
#: models.py:30
msgid "name"
msgstr "име"
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr "описание"
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
"Това са текущите инструкции за създаване на структурата на базата данни."
#: models.py:34 views.py:35
msgid "type"
msgstr "тип"
#: models.py:35
msgid "creation date and time"
msgstr "дата и време на създаване"
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr "Изтрийте цялата база данни за съхраняване и документното пространство"
#: registry.py:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
#, fuzzy
msgid "Bootstrap setup created successfully"
msgstr "Базата данни е изтрита успешно."
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, fuzzy, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
"Сигурен ли сте, че искате да изтриете цялата база данни и документното "
"пространство?"
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
#, fuzzy
msgid "Bootstrap setup created successfully."
msgstr "Базата данни е изтрита успешно."
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
#, fuzzy
msgid "Bootstrap setup imported successfully."
msgstr "Базата данни е изтрита успешно."
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr "Грешка при изтриване на база данни; %s"
#: views.py:300
msgid "Database erased successfully."
msgstr "Базата данни е изтрита успешно."
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
"Сигурен ли сте, че искате да изтриете цялата база данни и документното "
"пространство?"
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
#, fuzzy
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
"Сигурен ли сте, че искате да изтриете цялата база данни и документното "
"пространство?"
Binary file not shown.
@@ -1,316 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr ""
#: literals.py:20
msgid "JSON"
msgstr ""
#: literals.py:63
msgid "YAML"
msgstr ""
#: literals.py:64
msgid "Better YAML"
msgstr ""
#: models.py:30
msgid "name"
msgstr ""
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr ""
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
#: models.py:34 views.py:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr ""
#: registry.py:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
Binary file not shown.
@@ -1,316 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr ""
#: literals.py:20
msgid "JSON"
msgstr ""
#: literals.py:63
msgid "YAML"
msgstr ""
#: literals.py:64
msgid "Better YAML"
msgstr ""
#: models.py:30
msgid "name"
msgstr ""
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr ""
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
#: models.py:34 views.py:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr ""
#: registry.py:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
Binary file not shown.
@@ -1,328 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Roberto Rosario <roberto.rosario.gonzalez@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/mayan-edms/"
"language/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr "arranque"
#: links.py:12
msgid "bootstrap setup list"
msgstr "list de configuraciones de arranque"
#: links.py:13
msgid "create new bootstrap setup"
msgstr "crear nueva configuración de arranque"
#: links.py:14
msgid "edit"
msgstr "editar"
#: links.py:15
msgid "delete"
msgstr "borrar"
#: links.py:16
msgid "details"
msgstr "detalles"
#: links.py:17
msgid "execute"
msgstr "ejecutar"
#: links.py:18
msgid "dump current setup"
msgstr "grabar la configuración actual"
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr "borrar la base de datos"
#: literals.py:20
msgid "JSON"
msgstr "JSON"
#: literals.py:63
msgid "YAML"
msgstr "YAML"
#: literals.py:64
msgid "Better YAML"
msgstr "Better YAML"
#: models.py:30
msgid "name"
msgstr "nombre"
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr "descripción"
#: models.py:33
msgid "fixture"
msgstr "código"
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
"Estas son la instrucciones reales para la creación de las estructuras de la "
"base de datos."
#: models.py:34 views.py:35
msgid "type"
msgstr "tipo"
#: models.py:35
msgid "creation date and time"
msgstr "fecha y hora de creación"
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr "configuración de arranque"
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr "configuraciones de arranque"
#: permissions.py:7
msgid "Database bootstrap"
msgstr "Arranque de base de datos"
#: permissions.py:9
msgid "View bootstrap setups"
msgstr "Ver las configuraciones de arranque"
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr "Crear configuraciones de arranque"
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr "Editar las configuraciones de arranque"
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr "Eliminar las configuraciones de arranque"
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr "Ejecutar configuraciones de arranque"
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
"Grabar la configuración actual del projecto en una configuración de arranque"
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr "Borrar toda la base de datos y almacenamiento de documentos"
#: registry.py:7
msgid "Bootstrap"
msgstr "Arranque"
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
"Proporciona configuraciones pre ajustadas para los índices, tipos de "
"documentos, etiquetas, etc"
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr "Error al crear la configuración de arranque."
#: views.py:58
msgid "create bootstrap"
msgstr "crear configuración de arranque"
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr "Configuración de arranque editada exitosamente."
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr "Error editando la configuración de arranque."
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr "editar configuración de arranque: %s"
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr "Configuración de arranque :%s eliminada exitosamente."
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr "¿Seguro que desea borrar la configuración de arranque: %s?"
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr "Error al ejecutar la configuración de arranque; %s"
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr "Configuración de arranque \"%s\" ejecutada exitosamente."
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr "Error borrando la base de datos; %s"
#: views.py:300
msgid "Database erased successfully."
msgstr "Base de datos borrada exitosamente."
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
"¿Está seguro que desea borrar de la base de datos completamente y el "
"almacenamiento de documentos?"
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
"¡Todos los documentos, las fuentes, los metadatos, los tipos de metadatos, "
"los conjuntos de metadatos, las etiquetas, los índices y vitacoras se "
"perderán irreversiblemente!"
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
Binary file not shown.
@@ -1,317 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr ""
#: literals.py:20
msgid "JSON"
msgstr ""
#: literals.py:63
msgid "YAML"
msgstr ""
#: literals.py:64
msgid "Better YAML"
msgstr ""
#: models.py:30
msgid "name"
msgstr ""
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr ""
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
#: models.py:34 views.py:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr ""
#: registry.py:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
Binary file not shown.
@@ -1,317 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr ""
#: literals.py:20
msgid "JSON"
msgstr ""
#: literals.py:63
msgid "YAML"
msgstr ""
#: literals.py:64
msgid "Better YAML"
msgstr ""
#: models.py:30
msgid "name"
msgstr ""
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr ""
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
#: models.py:34 views.py:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr ""
#: registry.py:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
Binary file not shown.
@@ -1,316 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr ""
#: literals.py:20
msgid "JSON"
msgstr ""
#: literals.py:63
msgid "YAML"
msgstr ""
#: literals.py:64
msgid "Better YAML"
msgstr ""
#: models.py:30
msgid "name"
msgstr ""
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr ""
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
#: models.py:34 views.py:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr ""
#: registry.py:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
Binary file not shown.
@@ -1,318 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2)\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr ""
#: literals.py:20
msgid "JSON"
msgstr ""
#: literals.py:63
msgid "YAML"
msgstr ""
#: literals.py:64
msgid "Better YAML"
msgstr ""
#: models.py:30
msgid "name"
msgstr ""
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr ""
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
#: models.py:34 views.py:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr ""
#: registry.py:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
Binary file not shown.
@@ -1,317 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr ""
#: literals.py:20
msgid "JSON"
msgstr ""
#: literals.py:63
msgid "YAML"
msgstr ""
#: literals.py:64
msgid "Better YAML"
msgstr ""
#: models.py:30
msgid "name"
msgstr ""
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr ""
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
#: models.py:34 views.py:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr ""
#: registry.py:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
Binary file not shown.
@@ -1,317 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr ""
#: literals.py:20
msgid "JSON"
msgstr ""
#: literals.py:63
msgid "YAML"
msgstr ""
#: literals.py:64
msgid "Better YAML"
msgstr ""
#: models.py:30
msgid "name"
msgstr ""
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr ""
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
#: models.py:34 views.py:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr ""
#: registry.py:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
Binary file not shown.
@@ -1,318 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr ""
#: literals.py:20
msgid "JSON"
msgstr ""
#: literals.py:63
msgid "YAML"
msgstr ""
#: literals.py:64
msgid "Better YAML"
msgstr ""
#: models.py:30
msgid "name"
msgstr ""
#: models.py:31
msgid "slug"
msgstr ""
#: models.py:32 views.py:34
msgid "description"
msgstr ""
#: models.py:33
msgid "fixture"
msgstr ""
#: models.py:33
msgid "These are the actual database structure creation instructions."
msgstr ""
#: models.py:34 views.py:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
msgid "View bootstrap setups"
msgstr ""
#: permissions.py:10
msgid "Create bootstrap setups"
msgstr ""
#: permissions.py:11
msgid "Edit bootstrap setups"
msgstr ""
#: permissions.py:12
msgid "Delete bootstrap setups"
msgstr ""
#: permissions.py:13
msgid "Execute bootstrap setups"
msgstr ""
#: permissions.py:14
msgid "Dump the current project\\s setup into a bootstrap setup"
msgstr ""
#: permissions.py:15
msgid "Export bootstrap setups as files"
msgstr ""
#: permissions.py:16
msgid "Import new bootstrap setups"
msgstr ""
#: permissions.py:17
msgid "Sync the local bootstrap setups with a published repository"
msgstr ""
#: permissions.py:18
msgid "Erase the entire database and document storage"
msgstr ""
#: registry.py:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
@@ -1,64 +0,0 @@
from __future__ import absolute_import
from optparse import make_option
from django.db import models, router, connections, DEFAULT_DB_ALIAS
from django.core.management import call_command
from django.core.management.base import NoArgsCommand, CommandError
from django.core.management.color import no_style
from django.core.management.sql import emit_post_sync_signal
from ...classes import Cleanup
class Command(NoArgsCommand):
option_list = NoArgsCommand.option_list + (
make_option('--noinput', action='store_false', dest='interactive', default=True,
help='Tells Django to NOT prompt the user for input of any kind.'),
make_option('--database', action='store', dest='database',
default=DEFAULT_DB_ALIAS, help='Nominates a database to erase. '
'Defaults to the "default" database.'),
)
help = 'Erases all data in a Mayan EDMS installation.'
def handle_noargs(self, **options):
db = options.get('database', DEFAULT_DB_ALIAS)
connection = connections[db]
verbosity = int(options.get('verbosity', 1))
interactive = options.get('interactive')
self.style = no_style()
if interactive:
confirm = raw_input("""You have requested a erase all the data in the current Mayan EDMS installation.
This will IRREVERSIBLY ERASE all user data currently in the database,
and return each table to the state it was in after syncdb.
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: """)
else:
confirm = 'yes'
if confirm == 'yes':
try:
Cleanup.execute_all()
except Exception, e:
raise CommandError("""Unable to erase data. Possible reasons:
* The database isn't running or isn't configured correctly.
* At least one of the expected database tables doesn't exist.""")
# Emit the post sync signal. This allows individual
# applications to respond as if the database had been
# sync'd from scratch.
all_models = []
for app in models.get_apps():
all_models.extend([
m for m in models.get_models(app, include_auto_created=True)
if router.allow_syncdb(db, m)
])
emit_post_sync_signal(set(all_models), verbosity, interactive, db)
# Reinstall the initial_data fixture.
kwargs = options.copy()
kwargs['database'] = db
else:
print 'Erase data cancelled.'
@@ -1,31 +0,0 @@
from __future__ import absolute_import
from optparse import make_option
from django.core.management.base import BaseCommand, CommandError
from ...models import BootstrapSetup
from ...exceptions import ExistingData
class Command(BaseCommand):
help = 'Execute a bootstrap setup by the given slug.'
args = '[bootstrap setup slug]'
def handle(self, bootstrap_setup_slug=None, **options):
if not bootstrap_setup_slug:
raise CommandError('Enter one bootstrap setup slug.')
# Get corresponding bootstrap setup instance
try:
bootstrap_setup = BootstrapSetup.objects.get(slug=bootstrap_setup_slug)
except BootstrapSetup.DoesNotExist:
raise CommandError('No bootstrap setup with such a slug.')
# Try to execute bootstrap setup, catch errors
try:
bootstrap_setup.execute()
except ExistingData:
raise CommandError('Cannot execute bootstrap setup, there is existing data. Erase all data and try again.')
except Exception as exception:
raise CommandError('Unhandled exception: %s' % exception)
-75
View File
@@ -1,75 +0,0 @@
from __future__ import absolute_import
import logging
import requests
from django.db import models
from django.core import serializers
from django.utils.simplejson import loads
from django.db import IntegrityError
from django.db.models import Q
from .classes import BootstrapModel, FixtureMetadata
from .literals import (FIXTURE_TYPE_FIXTURE_PROCESS, FIXTURE_TYPE_EMPTY_FIXTURE,
BOOTSTRAP_REPOSITORY_URL, BOOTSTRAP_REPOSITORY_INDEX_FILE)
logger = logging.getLogger(__name__)
class BootstrapSetupManager(models.Manager):
def dump(self, serialization_format):
"""
Get the current setup of Mayan in bootstrap format fixture
"""
result = []
logger.debug('start dumping data')
for bootstrap_model in BootstrapModel.get_all(sort_by_dependencies=True):
logger.debug('dumping model: %s' % bootstrap_model.get_fullname())
model_fixture = bootstrap_model.dump(serialization_format)
# Only add non empty model fixtures
if not FIXTURE_TYPE_EMPTY_FIXTURE[serialization_format](model_fixture):
result.append(model_fixture)
return FIXTURE_TYPE_FIXTURE_PROCESS[serialization_format]('\n'.join(result))
def import_setup(self, file_data, overwrite=False):
BootstrapModel.check_magic_number(file_data)
metadata = FixtureMetadata.read_all(file_data)
instance = self.model(fixture=file_data, **metadata)
try:
instance.save(update_metadata=False)
except IntegrityError:
if not overwrite:
raise
else:
# Delete conflicting bootstrap setups
query = Q()
if 'slug' in metadata:
query = query | Q(slug=metadata['slug'])
if 'name' in metadata:
query = query | Q(name=metadata['name'])
self.model.objects.filter(query).delete()
self.import_setup(file_data)
def import_from_file(self, files):
file_data = files.read()
self.import_setup(file_data)
def import_from_url(self, url, **kwargs):
response = requests.get(url)
if response.status_code == requests.codes.ok:
self.import_setup(response.text, **kwargs)
else:
response.raise_for_status()
def repository_sync(self):
response = requests.get('%s/%s' % (BOOTSTRAP_REPOSITORY_URL, BOOTSTRAP_REPOSITORY_INDEX_FILE))
if response.status_code == requests.codes.ok:
for entry in loads(response.text):
bootstrap_setup_url = '%s/%s' % (BOOTSTRAP_REPOSITORY_URL, entry['filename'])
self.import_from_url(bootstrap_setup_url, overwrite=True)
else:
response.raise_for_status()
-38
View File
@@ -1,38 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'BootstrapSetup'
db.create_table('bootstrap_bootstrapsetup', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)),
('description', self.gf('django.db.models.fields.TextField')(blank=True)),
('fixture', self.gf('django.db.models.fields.TextField')()),
('type', self.gf('django.db.models.fields.CharField')(max_length=16)),
))
db.send_create_signal('bootstrap', ['BootstrapSetup'])
def backwards(self, orm):
# Deleting model 'BootstrapSetup'
db.delete_table('bootstrap_bootstrapsetup')
models = {
'bootstrap.bootstrapsetup': {
'Meta': {'ordering': "['name']", 'object_name': 'BootstrapSetup'},
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'fixture': ('django.db.models.fields.TextField', [], {}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
'type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
}
}
complete_apps = ['bootstrap']
@@ -1,34 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'BootstrapSetup.created'
db.add_column('bootstrap_bootstrapsetup', 'created',
self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2012, 10, 8, 0, 0)),
keep_default=False)
def backwards(self, orm):
# Deleting field 'BootstrapSetup.created'
db.delete_column('bootstrap_bootstrapsetup', 'created')
models = {
'bootstrap.bootstrapsetup': {
'Meta': {'ordering': "['name']", 'object_name': 'BootstrapSetup'},
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 10, 8, 0, 0)'}),
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'fixture': ('django.db.models.fields.TextField', [], {}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
'type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
}
}
complete_apps = ['bootstrap']
@@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'BootstrapSetup.slug'
db.add_column('bootstrap_bootstrapsetup', 'slug',
self.gf('django.db.models.fields.SlugField')(default='', unique=True, max_length=128, blank=True),
keep_default=False)
def backwards(self, orm):
# Deleting field 'BootstrapSetup.slug'
db.delete_column('bootstrap_bootstrapsetup', 'slug')
models = {
'bootstrap.bootstrapsetup': {
'Meta': {'ordering': "['name']", 'object_name': 'BootstrapSetup'},
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 10, 16, 0, 0)'}),
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'fixture': ('django.db.models.fields.TextField', [], {}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '128', 'blank': 'True'}),
'type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
}
}
complete_apps = ['bootstrap']
-106
View File
@@ -1,106 +0,0 @@
from __future__ import absolute_import
import os
import tempfile
import re
import datetime
import slugify
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.core import management
from django.core.files.uploadedfile import SimpleUploadedFile
from .literals import (FIXTURE_TYPES_CHOICES, FIXTURE_FILE_TYPE, COMMAND_LOADDATA,
BOOTSTRAP_EXTENSION, FIXTURE_METADATA_REMARK_CHARACTER)
from .managers import BootstrapSetupManager
from .classes import BootstrapModel, FixtureMetadata
class BootstrapSetup(models.Model):
"""
Model to store the fixture for a pre configured setup.
"""
name = models.CharField(max_length=128, verbose_name=_(u'name'), unique=True)
slug = models.SlugField(max_length=128, verbose_name=_(u'slug'), unique=True, blank=True)
description = models.TextField(verbose_name=_(u'description'), blank=True)
fixture = models.TextField(verbose_name=_(u'fixture'), help_text=_(u'These are the actual database structure creation instructions.'))
type = models.CharField(max_length=16, verbose_name=_(u'type'), choices=FIXTURE_TYPES_CHOICES)
created = models.DateTimeField(verbose_name=_('creation date and time'), default=lambda: datetime.datetime.now(), editable=False)
objects = BootstrapSetupManager()
def __unicode__(self):
return self.name
def get_extension(self):
"""
Return the fixture file extension based on the fixture type.
"""
return FIXTURE_FILE_TYPE[self.type]
def execute(self):
"""
Read a bootstrap's fixture and create the corresponding model
instances based on it.
"""
BootstrapModel.check_for_data()
handle, filepath = tempfile.mkstemp()
# Just need the filepath, close the file description
os.close(handle)
filepath = os.path.extsep.join([filepath, self.get_extension()])
with open(filepath, 'w') as file_handle:
file_handle.write(self.cleaned_fixture)
content = StringIO()
management.call_command(COMMAND_LOADDATA, filepath, verbosity=0, stderr=content)
content.seek(0, os.SEEK_END)
if content.tell():
content.seek(0)
raise Exception(content.readlines()[-2])
os.unlink(filepath)
@property
def cleaned_fixture(self):
"""
Return the bootstrap setup's fixture without comments.
"""
return re.sub(re.compile('%s.*?\n' % FIXTURE_METADATA_REMARK_CHARACTER), '', self.fixture)
def get_metadata_string(self):
"""
Return all the metadata for the current bootstrap fixture.
"""
return FixtureMetadata.generate_all(self)
def get_filename(self):
return os.extsep.join([self.name, BOOTSTRAP_EXTENSION])
def as_file(self):
return SimpleUploadedFile(name=self.get_filename(), content=self.fixture)
def save(self, *args, **kwargs):
update_metadata = kwargs.pop('update_metadata', True)
if update_metadata:
self.fixture = '%s\n%s\n%s' % (
BootstrapModel.get_magic_number(),
self.get_metadata_string(),
self.cleaned_fixture
)
if not self.slug:
self.slug = slugify.slugify(self.name)
return super(BootstrapSetup, self).save(*args, **kwargs)
class Meta:
verbose_name = _(u'bootstrap setup')
verbose_name_plural = _(u'bootstrap setups')
ordering = ['name']
-18
View File
@@ -1,18 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from permissions.models import PermissionNamespace, Permission
namespace = PermissionNamespace('bootstrap', _(u'Database bootstrap'))
PERMISSION_BOOTSTRAP_VIEW = Permission.objects.register(namespace, 'bootstrap_view', _(u'View bootstrap setups'))
PERMISSION_BOOTSTRAP_CREATE = Permission.objects.register(namespace, 'bootstrap_create', _(u'Create bootstrap setups'))
PERMISSION_BOOTSTRAP_EDIT = Permission.objects.register(namespace, 'bootstrap_edit', _(u'Edit bootstrap setups'))
PERMISSION_BOOTSTRAP_DELETE = Permission.objects.register(namespace, 'bootstrap_delete', _(u'Delete bootstrap setups'))
PERMISSION_BOOTSTRAP_EXECUTE = Permission.objects.register(namespace, 'bootstrap_execute', _(u'Execute bootstrap setups'))
PERMISSION_BOOTSTRAP_DUMP = Permission.objects.register(namespace, 'bootstrap_dump', _(u'Dump the current project\s setup into a bootstrap setup'))
PERMISSION_BOOTSTRAP_EXPORT = Permission.objects.register(namespace, 'bootstrap_export', _(u'Export bootstrap setups as files'))
PERMISSION_BOOTSTRAP_IMPORT = Permission.objects.register(namespace, 'bootstrap_import', _(u'Import new bootstrap setups'))
PERMISSION_BOOTSTRAP_REPOSITORY_SYNC = Permission.objects.register(namespace, 'bootstrap_repo_sync', _(u'Sync the local bootstrap setups with a published repository'))
PERMISSION_NUKE_DATABASE = Permission.objects.register(namespace, 'nuke_database', _(u'Erase the entire database and document storage'))
-29
View File
@@ -1,29 +0,0 @@
from __future__ import absolute_import
import datetime
from navigation.api import register_links
from main import __version__
from .links import (link_bootstrap_setup_create, link_bootstrap_setup_execute,
link_bootstrap_setup_list, link_bootstrap_setup_edit, link_bootstrap_setup_delete,
link_bootstrap_setup_view, link_bootstrap_setup_dump, link_bootstrap_setup_export,
link_bootstrap_setup_import_from_url, link_bootstrap_setup_import_from_file,
link_bootstrap_setup_repository_sync)
from .models import BootstrapSetup
from .classes import FixtureMetadata
from .literals import (FIXTURE_METADATA_CREATED, FIXTURE_METADATA_EDITED,
FIXTURE_METADATA_MAYAN_VERSION, FIXTURE_METADATA_FORMAT, FIXTURE_METADATA_NAME,
FIXTURE_METADATA_DESCRIPTION, DATETIME_STRING_FORMAT, FIXTURE_METADATA_SLUG)
register_links([BootstrapSetup], [link_bootstrap_setup_view, link_bootstrap_setup_edit, link_bootstrap_setup_delete, link_bootstrap_setup_execute, link_bootstrap_setup_export])
register_links([BootstrapSetup], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import_from_file, link_bootstrap_setup_import_from_url, link_bootstrap_setup_repository_sync], menu_name='secondary_menu')
register_links(['bootstrap_setup_list', 'bootstrap_setup_create', 'bootstrap_setup_dump', 'bootstrap_setup_import_from_file', 'bootstrap_setup_import_from_url', 'bootstrap_setup_repository_sync'], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import_from_file, link_bootstrap_setup_import_from_url, link_bootstrap_setup_repository_sync], menu_name='secondary_menu')
FixtureMetadata(FIXTURE_METADATA_CREATED, generate_function=lambda fixture_instance: fixture_instance.created.strftime(DATETIME_STRING_FORMAT), read_function=lambda x: datetime.datetime.strptime(x, DATETIME_STRING_FORMAT), property_name='created')
FixtureMetadata(FIXTURE_METADATA_EDITED, generate_function=lambda fixture_instance: datetime.datetime.now().strftime(DATETIME_STRING_FORMAT))
FixtureMetadata(FIXTURE_METADATA_MAYAN_VERSION, generate_function=lambda fixture_instance: __version__)
FixtureMetadata(FIXTURE_METADATA_FORMAT, generate_function=lambda fixture_instance: fixture_instance.type, property_name='type')
FixtureMetadata(FIXTURE_METADATA_NAME, generate_function=lambda fixture_instance: fixture_instance.name, property_name='name')
FixtureMetadata(FIXTURE_METADATA_SLUG, generate_function=lambda fixture_instance: fixture_instance.slug, property_name='slug')
FixtureMetadata(FIXTURE_METADATA_DESCRIPTION, generate_function=lambda fixture_instance: fixture_instance.description, property_name='description')
-10
View File
@@ -1,10 +0,0 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from .links import link_bootstrap_setup_tool, link_erase_database
label = _(u'Bootstrap')
description = _(u'Provides pre configured setups for indexes, document types, tags, etc.')
dependencies = ['app_registry', 'icons', 'navigation', 'documents', 'indexing', 'metadata', 'tags']
setup_links = [link_bootstrap_setup_tool, link_erase_database]

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