Compare commits

..

168 Commits

Author SHA1 Message Date
Roberto Rosario
0e35cca704 Add cabinets and metadata control codes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-06 03:25:56 -04:00
Roberto Rosario
661301f057 Finalize icon
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-06 02:44:13 -04:00
Roberto Rosario
9448b148e9 Improve tests, update migrations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-05 22:18:59 -04:00
Roberto Rosario
a13f033104 Add first control code
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-05 01:40:08 -04:00
Roberto Rosario
968abe2cdb Finish view tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-05 01:24:54 -04:00
Roberto Rosario
cca08d8103 Add initial tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-04 16:23:12 -04:00
HGWells
3872db8c9f Add code selecton and create views
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-04 07:41:11 -04:00
Roberto Rosario
1315a74e27 Add control sheet codes views
Add list, edit, delete views.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-03 16:15:08 -04:00
Roberto Rosario
8c6812203c Add permissions, setup views, icons
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-02 01:20:03 -04:00
Roberto Rosario
4ed36e0114 Add contol sheet preview
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-01 17:55:18 -04:00
Roberto Rosario
c48fc203e3 Add dependencies and cache handling
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-01 15:34:59 -04:00
Roberto Rosario
af71ba927f Put file cache label column first
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-01 15:34:31 -04:00
Roberto Rosario
894e009c2a Update file cache model
Index the name field. Add help texts for maximum size and current
size methods.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-01 15:33:41 -04:00
Roberto Rosario
f9ba08ee59 Add control code preview generation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-09-01 14:35:04 -04:00
Roberto Rosario
2819f9445b Add control codes app proof of concept
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-30 05:22:13 -04:00
Roberto Rosario
1b2ed08c7c Enable web links app tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-30 02:36:54 -04:00
Roberto Rosario
c6c605e320 Add missing line
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-30 02:34:01 -04:00
Roberto Rosario
4b3ab82ee2 Fix autoadmin tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-29 23:51:57 -04:00
Roberto Rosario
f8eda67bd5 Add support for changing system messages position
GitLab issue #640. Thanks to Matthias Urhahn (@d4rken).

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-29 23:41:22 -04:00
Roberto Rosario
58bcf20a46 Remove tests * imports
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-29 23:10:28 -04:00
Roberto Rosario
49979dede5 Merge remote-tracking branch 'origin/versions/micro' into feature/merge_micro
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-29 00:07:18 -04:00
09f481f5f0 Unify all line endings to be Linux style.
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-28 23:51:59 -04:00
Roberto Rosario
a250919acc Merge remote-tracking branch 'origin/versions/micro' into features/micro_merge
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-25 23:48:12 -04:00
Roberto Rosario
38980e5f75 Rename test method names for clarity
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-25 22:06:34 -04:00
Roberto Rosario
6503d9474d Fix remaining tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 16:42:31 -04:00
Roberto Rosario
e7734def58 Fix documents app failing tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 05:03:24 -04:00
Roberto Rosario
f50d22b382 Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 00:22:28 -04:00
Roberto Rosario
ad37228466 Add converter layers, redactions app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 00:21:03 -04:00
Roberto Rosario
0917bd57b3 Add ACL filter support for case 6
Support inherited field of a related field that is Generic
Foreign Key.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-20 00:09:56 -04:00
Roberto Rosario
4dd270e75b Add mixins to retrieve content type object
Add ContentTypeViewMixin and ExternalContentTypeObjectMixin.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-05 00:27:15 -04:00
Roberto Rosario
3428c6aa20 Update ExternalObjectMixin
Call ModelPermission to select the proper manager for the queryset
when specifying just the model.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-05 00:23:45 -04:00
Roberto Rosario
eb1fb8511b Move manager get code to ModelPermission class
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-08-05 00:20:06 -04:00
Roberto Rosario
bdbc7ef086 Add rectangle drawing transformations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:55:58 -04:00
Roberto Rosario
abea863184 Fix metadata widget overflow on long values
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:55:24 -04:00
Roberto Rosario
d394583729 Remove HTML title anchor on disabled pages
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:54:51 -04:00
Roberto Rosario
4db59c0808 Disable page links on disabled pages
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:54:21 -04:00
Roberto Rosario
12f24316a1 Improve page navigation limit logic
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:53:35 -04:00
Roberto Rosario
ef0843276b Support source column widget condition
- Add default HTML anchor widget for source columns that
  return and absolute URL.
- Fix CSS pointer behavior on list item panel headers.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-31 01:51:43 -04:00
Roberto Rosario
e20102333e Update URLs for uniformity
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-30 04:46:21 -04:00
Roberto Rosario
4ecf075fd4 Add support for disabling document pages
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-30 03:11:20 -04:00
Roberto Rosario
cc81a6905a Add kwargs
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-30 03:10:25 -04:00
Roberto Rosario
3c9454160f Support custom model managers for check_access()
Allow app to specify which model manager will be used
when creating the queryset that is passed to check_access.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-30 03:10:15 -04:00
Roberto Rosario
2e1600c334 Remove obsolete DocumentPageCachedImage manager
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-29 02:53:07 -04:00
Roberto Rosario
3e9f30cb91 Reduce the number of pager buttons
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-29 02:44:31 -04:00
Roberto Rosario
a3a78f755d Display thousand commas in numeric dashboard
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-29 02:36:57 -04:00
Roberto Rosario
3988dedebf Add missing migrations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-28 22:36:51 -04:00
Roberto Rosario
ff34c7d00a Add cabinet label help text
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-28 22:36:17 -04:00
Roberto Rosario
fe2de33e98 Display column help text as a tooltip
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-28 22:35:52 -04:00
Roberto Rosario
3efd1bd89d Add web links app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-27 01:08:54 -04:00
Roberto Rosario
ea516cbc23 Correct order of super in file caching test mixin
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-27 00:56:40 -04:00
Roberto Rosario
52ad3e7418 Update the URL class to work with Python 3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 23:23:18 -04:00
Roberto Rosario
a001b4bbb3 Move new version block to its own test case
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 18:20:23 -04:00
Roberto Rosario
31ed0e1ac8 Clean non ASCII character in docstring
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 18:19:56 -04:00
Roberto Rosario
9ad82695d9 Add cleaning up of Python 3 files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 18:19:38 -04:00
Roberto Rosario
69af4dd6b3 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 18:03:13 -04:00
Roberto Rosario
1c7ceca432 Add file caching tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 15:49:07 -04:00
Roberto Rosario
c05dcf5b05 Remove fs_cleanup file_descriptor argument
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 15:16:54 -04:00
Roberto Rosario
85b05dd6ec Add kwargs to fs_cleanup usage
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 15:16:37 -04:00
Roberto Rosario
9752584135 Rename file_descriptor usage to file_object
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 15:14:53 -04:00
Roberto Rosario
fd0d5728a1 Improve toolbar display logic
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 02:34:01 -04:00
Roberto Rosario
88863fd6d0 Fix typo in Cache get_model
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 02:23:09 -04:00
Roberto Rosario
3a7025d9c4 Add exists method to cache file model
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 02:22:50 -04:00
Roberto Rosario
150c5d8cc2 Make cache columns sortable
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 02:22:34 -04:00
Roberto Rosario
93ba547350 Convert workflow previews app to use file caching
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 02:22:04 -04:00
Roberto Rosario
f920dffc01 Remove document model cache invalidation
The cache invalidation is now handled by the file caching app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 01:33:41 -04:00
Roberto Rosario
c2e99e6efb Purge cache partition before deleting them
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 01:33:14 -04:00
Roberto Rosario
ff6674cc4a Fix workflow preview under Python 3
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 01:24:55 -04:00
Roberto Rosario
669dfeb30a Use common app serialization util
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-26 01:21:01 -04:00
Roberto Rosario
6635bb4235 Tweak CSS to unify widths in plain template
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-25 20:36:47 -04:00
Roberto Rosario
88bc29e4d7 Update the file caching app
- Add view to list available caches.
- Add links to view and purge caches.
- Add permissions.
- Add events.
- Add purge task.
- Remove document image clear link and view.
  This is now handled by the file caching app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-25 02:24:33 -04:00
Roberto Rosario
9315776926 Add missing migrations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-25 00:52:21 -04:00
Roberto Rosario
40a306996c Update transformation tests
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-25 00:48:47 -04:00
Roberto Rosario
033cecd946 Move pagination navigation inside the toolbar
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-25 00:44:07 -04:00
Roberto Rosario
ee63829e7f Update runserver targets to run nonthreaded
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 16:07:28 -04:00
Roberto Rosario
e4bc007bba Unify lists header markup
Convert list headers into a separate template

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 16:06:45 -04:00
Roberto Rosario
84b329f661 Fix more test case method resolution
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 15:29:25 -04:00
Roberto Rosario
4c73239dde Fix http.URL class final URL generation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 03:20:57 -04:00
Roberto Rosario
2e12a6af41 Fix test case method resolution
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 02:58:29 -04:00
Roberto Rosario
3d7e6b6fbe Update GUID to GID in documentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 02:50:55 -04:00
Roberto Rosario
6f907d156a Remove task inspection from task manager app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 02:49:37 -04:00
Roberto Rosario
fac77a2f73 Workaround for the OCR task-inside-task issue
Thanks to Jakob Haufe (@sur5r) for the solution.
2423254aa4

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 02:25:49 -04:00
Jiri B
0c3b6e5388 I was shocked my PDFs were deleted from source directory thus this needs to be clarified. 2019-07-24 02:21:01 -04:00
Roberto Rosario
e652c7208c Move Celery dependencies to task_manager app
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 02:17:37 -04:00
Roberto Rosario
53928b2ab6 Run EXIFTOOL always regardless of MIME type
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 01:57:20 -04:00
Roberto Rosario
afc6b54520 Update release notes and changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-24 01:56:09 -04:00
Roberto Rosario
070355033e Update changelog
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:41:44 -04:00
Roberto Rosario
0029d3074f Modify PYTHONPATH in-place
Avoid including a hard coded path.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:40:10 -04:00
Roberto Rosario
4558894faf Include devpi-server as a development dependency
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:39:42 -04:00
Roberto Rosario
adeea6247f Update Docker stack file
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:38:48 -04:00
Roberto Rosario
3563297d48 Update default Docker compose file
- Launch a Redis container.
- Include optional services examples.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:34:58 -04:00
Roberto Rosario
1e1b4dedf4 Update Docker make file
- Include PIP proxies.
- Add docker compose targets.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:22:30 -04:00
Roberto Rosario
d65bbb718a Update Docker entrypoint
- Use bash instead of sh/dash to support argument slicing.
- Default Celery worker concurrency to 0 (auto).
- Set DJANGO_SETTINGS_MODULE environment variable to make it
  available to sub processes.
- Add entrypoint commands to run single workers, single gunicorn
  or single celery commands like "flower".
- Update Gunicorn to use sync workers.
- Add platform template to return queues for a worker.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:15:12 -04:00
Roberto Rosario
5352c6ac6f Update Docker image
- Remove Redis from the Docker image.
- Add Celery flower.
- Add Python 3 packages needed for in-container pip installs.
- Fix typos.
- Allow PIP proxying.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-23 21:12:11 -04:00
Roberto Rosario
cb7d5bf82a Update djcelery imports
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-20 00:15:19 -04:00
Roberto Rosario
41a7d00e9e Fix setting typo
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-19 20:05:12 -04:00
Roberto Rosario
82d7339a64 Update documentation Docker chapter
Update to show the new MAYAN_DATABASES setting. Remove
settings that are not Docker exclusive.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-19 20:04:21 -04:00
Roberto Rosario
e889021f43 Update command options
Match the rename of the installjavascript command rename
to installdependencies.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-19 20:02:40 -04:00
Roberto Rosario
d3a53fb53a Remove unused SETTING_FILE_TEMPLATE
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-19 20:02:00 -04:00
Roberto Rosario
b6565effb5 Support wildcard MIME type associations
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-19 01:04:04 -04:00
Roberto Rosario
cf43ef2f73 Fix setting import
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 05:19:40 -04:00
Roberto Rosario
6ca2845d19 Update requirement files
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 04:44:00 -04:00
Roberto Rosario
ab601f9180 Initial commit to support Celery 4.3.0
Merges 55e9b2263c from versions/next
with code from GitLab issue #594 and GitLab merge request !55.

Thanks to Jakob Haufe (@sur5r) and Jesaja Everling (@jeverling)
for much of the research and code updates.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 04:30:11 -04:00
Roberto Rosario
0b42567179 Remove direct Celery queue update
Queue updates are handled by the task manager app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 02:41:00 -04:00
Roberto Rosario
030ddd68e0 PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 01:13:00 -04:00
Roberto Rosario
649571ebb1 Add kwargs
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 00:48:22 -04:00
Roberto Rosario
b99bb88008 Update OCR manager to use document cache
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-17 00:47:28 -04:00
Roberto Rosario
fd08a23339 Soften top bar shadow
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 16:21:24 -04:00
Roberto Rosario
917ec55ada Style tweaks
Enable dashboard widget icon shadows. Make block button text
shadow more pronounced.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 16:18:36 -04:00
Roberto Rosario
ec4644b5c9 Fix typo on open method
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 01:28:55 -04:00
Roberto Rosario
ff86c4c518 Unbind non applicable workflow runtime proxy links
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 01:28:31 -04:00
Roberto Rosario
daebf2ddcc Don't react on paginator current page click
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 01:27:44 -04:00
Roberto Rosario
49a16acdf5 Backport panel selection and panel toolbar
Support selection by panel body clicking. Styling changes for highlighted panel.
Self-display multiple item action list. New select all button.
Fix fancybox click area on thumbnail display.
Remove the multi item form processing view.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-16 01:24:57 -04:00
Roberto Rosario
8c064c953a Add file caching app
Convert document image cache to use file cache manager app.
Add setting DOCUMENTS_CACHE_MAXIMUM_SIZE defaults to 500 MB.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-15 01:33:32 -04:00
Roberto Rosario
3c7a23a5a9 Add support for setting post update callbacks
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-15 01:24:22 -04:00
Roberto Rosario
6bcf35bef5 Add database conversion removal explanation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 05:17:15 -04:00
Roberto Rosario
7ef6102876 Update release notes
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:52:34 -04:00
Roberto Rosario
4363bba0fe Remove encapsulate
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:50:37 -04:00
Roberto Rosario
e2f2181ebb Complete multiple check in/out support
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:49:39 -04:00
Roberto Rosario
d4f7e2cd16 Support creating multiple test users
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:49:09 -04:00
Roberto Rosario
058e36b4a9 Introspect proxy's parent only it is a model
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:48:00 -04:00
Roberto Rosario
1ddd5f26b1 Support menu inheritance
Proxy models will now inherit the menus from their parents.
Added to allow checked out documents to show multi item links
of their parents.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:40:48 -04:00
Roberto Rosario
44652d49fb Add test utility to return an id_list
Makes creating an id_list for testing from a list test instances
easier.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:39:48 -04:00
Roberto Rosario
119c1bde76 Add user test mixin to base test class
Allow tests to create test users.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:39:18 -04:00
Roberto Rosario
ed227b4111 Emphasize source column labels
Use the same CSS style as the view's extra_columns.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-12 04:38:06 -04:00
Roberto Rosario
c44090aca6 Initial commit to support multidocument checkouts
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 20:00:17 -04:00
Roberto Rosario
8a7da6a103 Update release notes closed issues
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 02:26:24 -04:00
Roberto Rosario
3e3b1f75a0 Remove django-environ
Work done in 9564db398f

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 02:02:45 -04:00
Roberto Rosario
1ab7b7b9b1 Backport FakeStorageSubclass from versions/next
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 01:56:06 -04:00
Roberto Rosario
3fab5c1427 Return empty dict if there is no config file
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 01:31:37 -04:00
Roberto Rosario
516c3aeb2c Add default for OCR backend argument setting
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 01:31:05 -04:00
Roberto Rosario
3ac1000b46 Merge remote-tracking branch 'origin/features/move_django_settings' into merge_features 2019-07-11 01:21:40 -04:00
Roberto Rosario
4adeefc978 Merge remote-tracking branch 'origin/features/move_yaml_code' into merge_features
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-11 01:21:23 -04:00
Roberto Rosario
8bc4b6a95e Move YAML code to its own module
Code now resides in common.serialization in the form
of two new functions: yaml_load and yaml_dump.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-10 19:35:42 -04:00
Roberto Rosario
37e85590e8 Move Django and Celery settings
Django settings now reside in the smart settings app.
Celery settings now reside in the task manager app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-10 19:02:22 -04:00
Roberto Rosario
78a0189e1c Add YAML env variables support to platform app
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-10 00:34:09 -04:00
Roberto Rosario
91b0b2d9c3 Update smart setting's app URLs for uniformity
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:46:09 -04:00
Roberto Rosario
8a54deba3d Unify individual database configuration options
All database configuration is now done using MAYAN_DATABASES to
mirror Django way of doing database setup.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:45:30 -04:00
Roberto Rosario
22da1e0a78 Update import
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:43:39 -04:00
Roberto Rosario
c9668d62e5 Move mailer defaults to the literals module
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:43:15 -04:00
Roberto Rosario
7a01a77c43 Remove smart_settings * import
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:42:57 -04:00
Roberto Rosario
9564db398f Backport configuration file improvements
Remove support for quoted entried. Support unquoted entries. Support
custom location for the config files.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-09 15:40:20 -04:00
Roberto Rosario
7faa24eb7b Remove database conversion command
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:42:11 -04:00
Roberto Rosario
51f278301b Sort list of apps
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:40:24 -04:00
Roberto Rosario
2cc35c3c61 Remove outdated contrib scripts
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:37:58 -04:00
Roberto Rosario
8c73fda1ae Rename installjavascript to installdependencies
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:35:14 -04:00
Roberto Rosario
8811c8269f Rename document states apps view and URLs.
Object layout: WorkflowTemplate, WorkflowInstance, WorkflowRuntimeProxy,
WorkflowTemplateState, WorkflowTemplateTransition.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 02:21:58 -04:00
Roberto Rosario
f36f99c5fb Split workflow URL patterns
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 01:23:49 -04:00
Roberto Rosario
0e972eff06 Fix typos and PEP8 warnings
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 01:12:25 -04:00
Roberto Rosario
7913b5ddcc Sort dictionary entry
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 01:06:58 -04:00
Roberto Rosario
1c86ea5b5b Backport individual index rebuild support
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 01:03:39 -04:00
Roberto Rosario
ec6a3bd960 Move AJAX spinner to the left of the top bar
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 00:43:14 -04:00
Roberto Rosario
080553c797 Add trashed date time label and position
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 00:38:47 -04:00
Roberto Rosario
08ee07e652 Remove duplicated trashed document previews
Side effect of source column inheritance added in
06c3ef6583.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 00:37:47 -04:00
Roberto Rosario
d7d77fcb55 Backport workflow email action
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-07 00:27:29 -04:00
Roberto Rosario
bb5324ef50 Encode settings YAML before hashing
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2019-07-06 17:14:44 -04:00
Roberto Rosario
4c212f6ea4 Backport workflow context and field support
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 04:13:26 -04:00
Roberto Rosario
941356ed69 Add a general use YAML validator
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 04:11:43 -04:00
Roberto Rosario
97804b255b Add and exclude Index instance columns
Exclude inherited columns from the Index models.
Add the label columns to Index instances.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 04:10:41 -04:00
Roberto Rosario
06c3ef6583 Add source column inheritance and exclusions
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 04:09:44 -04:00
Roberto Rosario
6cd857e2bf Use Select2 widget for the document type selection form
This was committed in 109fcba795 without
adding the actual change.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 02:44:00 -04:00
Roberto Rosario
fbb0f0b9bd Backport workflow preview refactor
GitLab issue #532.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 02:41:16 -04:00
Roberto Rosario
9e068c3e83 Add topbar shadow
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 02:01:48 -04:00
Roberto Rosario
72a3807354 Add vertical main menu
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-07-06 01:53:45 -04:00
Roberto Rosario
109fcba795 Use Select2 for the document type selection form
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 23:26:11 -04:00
Roberto Rosario
01380e0572 Merge branch 'versions/minor' of gitlab.com:mayan-edms/mayan-edms into versions/minor 2019-07-05 23:23:50 -04:00
Roberto Rosario
5146c6d202 Tweak setup buttom border and tag shadows
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 23:23:34 -04:00
Roberto Rosario
300bdbfc8a Tweak setup buttom border and tag shadows
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 21:34:20 -04:00
Roberto Rosario
a0331e0236 Add support for icon shadows
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
2019-07-05 21:26:45 -04:00
1610 changed files with 22354 additions and 13240 deletions

View File

@@ -115,6 +115,12 @@ source_lang = en
source_file = mayan/apps/events/locale/en/LC_MESSAGES/django.po source_file = mayan/apps/events/locale/en/LC_MESSAGES/django.po
type = PO type = PO
[mayan-edms.file_caching-3-0]
file_filter = mayan/apps/file_caching/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/file_caching/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.file_metadata-3-0] [mayan-edms.file_metadata-3-0]
file_filter = mayan/apps/file_metadata/locale/<lang>/LC_MESSAGES/django.po file_filter = mayan/apps/file_metadata/locale/<lang>/LC_MESSAGES/django.po
source_lang = en source_lang = en
@@ -222,3 +228,10 @@ file_filter = mayan/apps/user_management/locale/<lang>/LC_MESSAGES/django.po
source_lang = en source_lang = en
source_file = mayan/apps/user_management/locale/en/LC_MESSAGES/django.po source_file = mayan/apps/user_management/locale/en/LC_MESSAGES/django.po
type = PO type = PO
[mayan-edms.weblink-3-0]
file_filter = mayan/apps/weblinks/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/weblinks/locale/en/LC_MESSAGES/django.po
type = PO

View File

@@ -1,23 +1,79 @@
3.2.8 (2019-10-01) 3.3 (2019-XX-XX)
================== ================
- Fix error when accessing some API entry points without - Add support for icon shadows.
being authenticated. - Add icons and no-result template to the object error log view and
- Add cabinet add and remove workflow actions. links.
- Tweaked the jstree component's appearance to cope with - Use Select2 widget for the document type selection form.
long cabinet labels. - Backport the vertical main menu update.
- Update Django to version 1.11.24 - Backport workflow preview refactor. GitLab issue #532.
- Update jQuery to version 3.4.1 - Add support for source column inheritance.
- Add support for deleting the OCR content of a document - Add support for source column exclusion.
or selection of documents. - Backport workflow context support.
- Add OCR content deleted event. - Backport workflow transitions field support.
- Add missing recursive option to Docker entrypoint - Backport workflow email action.
chown. GitLab issue #668. Thanks to John Wice (@brilthor) - Backport individual index rebuild support.
for the report. - Rename the installjavascript command to installdependencies.
- Add support for deleting the parsed content of a document - Remove database conversion command.
of selection of documents. - Remove support for quoted configuration entries. Support unquoted,
- Add parsed content deleted event. nested dictionaries in the configuration. Requires manual
- Allow scaling of UI on mobile devices. update of existing config.yml files.
- Add Chinese fonts to the Docker image - Support user specified locations for the configuration file with the
CONFIGURATION_FILEPATH (MAYAN_CONFIGURATION_FILEPATH environment variable),
and CONFIGURATION_LAST_GOOD_FILEPATH
(MAYAN_CONFIGURATION_LAST_GOOD_FILEPATH environment variable) settings.
- Move bootstrapped settings code to their own module in the smart_settings
apps.
- Remove individual database configuration options. All database
configuration is now done using MAYAN_DATABASES to mirror Django way of
doing atabase etup.
- Added support for YAML encoded environment variables to the platform
templates apps.
- Move YAML code to its own module.
- Move Django and Celery settings.
- Backport FakeStorageSubclass from versions/next.
- Remove django-environ.
- Support checking in and out multiple documents.
- Remove encapsulate helper.
- Add support for menu inheritance.
- Emphasize source column labels.
- Backport file cache manager app.
- Convert document image cache to use file cache manager app.
Add setting DOCUMENTS_CACHE_MAXIMUM_SIZE defaults to 500 MB.
- Replace djcelery and replace it with django-celery-beat.
- Update Celery to version 4.3.0
Thanks to Jakob Haufe (@sur5r) and Jesaja Everling (@jeverling)
for much of the research and code updates.
- Support wildcard MIME type associations for the file metadata drivers.
- Rename MAYAN_GUID to MAYAN_GID
- Update Gunicorn to use sync workers.
- Include devpi-server as a development dependency.
- Update default Docker stack file.
- Remove Redis from the Docker image.
- Add Celery flower to the Docker image.
- Allow PIP proxying to the Docker image during build.
- Default Celery worker concurrency to 0 (auto).
- Set DJANGO_SETTINGS_MODULE environment variable to make it
available to sub processes.
- Add entrypoint commands to run single workers, single gunicorn
or single celery commands like "flower".
- Add platform template to return queues for a worker.
- Update the EXIFTOOL driver to run for all documents
regardless of MIME type.
- Remove task inspection from task manager app.
- Move pagination navigation inside the toolbar.
- Remove document image clear link and view.
This is now handled by the file caching app.
- Add web links app.
- Add support to display column help text
as a tooltip.
- Update numeric dashboard widget to display
thousand commas.
- Add support for disabling document pages.
- Add support for converter layers.
- Add redactions app.
- Unify all line endings to be Linux style.
- Add support for changing the system messages position.
GitLab issue #640. Thanks to Matthias Urhahn (@d4rken).
3.2.7 (2019-08-28) 3.2.7 (2019-08-28)
================== ==================
@@ -48,11 +104,11 @@
for the report. for the report.
- Rename the MAYAN_USER_GUID environment variable - Rename the MAYAN_USER_GUID environment variable
to MAYAN_USER_GID. to MAYAN_USER_GID.
- Add automatic adjustment of HTML body on navigation * Add automatic adjustment of HTML body on navigation
bar changes. Closes GitLab issue #643. Thanks to bar changes. Closes GitLab issue #643. Thanks to
Light Templar (@LightTemplar) for the report. Light Templar (@LightTemplar) for the report.
- Unify all line endings to be Linux style. * Unify all line endings to be Linux style.
- Make sure system alerts don't appear under * Make sure system alerts don't appear under
floating elements. floating elements.
3.2.6 (2019-07-10) 3.2.6 (2019-07-10)
@@ -451,9 +507,6 @@
- Add workflow actions to grant or remove permissions to - Add workflow actions to grant or remove permissions to
a document. a document.
- Add support for locked files for watchfolder. - Add support for locked files for watchfolder.
3.1.11 (2019-04-XX)
===================
- Fix multiple tag selection wizard step. - Fix multiple tag selection wizard step.
- Change the required permission for the checkout info link from - Change the required permission for the checkout info link from
document check in to document checkout details view. document check in to document checkout details view.
@@ -470,18 +523,17 @@
- Add support for disabling the content type checking test case mixin. - Add support for disabling the content type checking test case mixin.
- Update document indexing tests to be order agnostic. GitLab issue #559. - Update document indexing tests to be order agnostic. GitLab issue #559.
- Add test for the advanced search API. - Add test for the advanced search API.
- Apply merge !36 by Simeon Walker (@simeon-walker) to fix the advanced - Apply merge !36 by Simeon Walker (@simeon-walker) to fix the advanced search
search API. API.
- Apply merge !35 by Manoel Brunnen (@mbru) to fix building the Docker image - Apply merge !35 by Manoel Brunnen (@mbru) to fix building the Docker image
on the armv7l platform (RasperryPi, Odroid XU4, Odroid HC2). Also fixes on the armv7l platform (RasperryPi, Odroid XU4, Odroid HC2). Also fixes
assertion errors from pip (https://github.com/pypa/pip/issues/6197). assertion errors from pip (https://github.com/pypa/pip/issues/6197).
- Apply merge !37 by Roger Hunwicks (@roger.hunwicks) to allow - Apply merge !37 by Roger Hunwicks (@roger.hunwicks) to allow
TestViewTestCaseMixin to work with a custom ROOT_URLCONF. GitLab issue TestViewTestCaseMixin to work with a custom ROOT_URLCONF. GitLab issue #566.
#566.
- Apply merge !40 by Roger Hunwicks (@/roger.hunwicks) to pin the Tornado - Apply merge !40 by Roger Hunwicks (@/roger.hunwicks) to pin the Tornado
version used to 6.0 and continue supporting Python 2.7. GitLab issue #568. version used to 6.0 and continue supporting Python 2.7. GitLab issue #568.
- Apply merge !41 by Jorge E. Gomez (@jorgeegomez) to fix the compressed - Apply merge !41 by Jorge E. Gomez (@jorgeegomez) to fix the compressed class
class method name. GitLab issue #572. method name. GitLab issue #572.
- Remove notification badge AJAX setup. Individual link AJAX workers are - Remove notification badge AJAX setup. Individual link AJAX workers are
obsolete now that the menu is being rendered by its own AJAX renderer. obsolete now that the menu is being rendered by its own AJAX renderer.
GitLab issue #562. GitLab issue #562.
@@ -492,11 +544,10 @@
(@robert.schoeftner)for the report and solution. GitLab issue #574. (@robert.schoeftner)for the report and solution. GitLab issue #574.
- Add missing document index API view create permission. - Add missing document index API view create permission.
- Fix index list API view. Add index create, delete, detail API tests. - Fix index list API view. Add index create, delete, detail API tests.
GitLab issue #564. Thanks to the Stéphane (@shoyu) for the report and GitLab issue #564. Thanks to the Stéphane (@shoyu) for the report and debug
debug information. information.
- Validate the state completion value before saving. Thanks to - Validate the state completion value before saving. Thanks to Manoel Brunnen
Manoel Brunnen (@mbru) for the report and debug information. (@mbru) for the report and debug information. GitLab issue #557.
GitLab issue #557.
- Add the MIMETYPE_FILE_READ_SIZE setting to limit the number of bytes read - Add the MIMETYPE_FILE_READ_SIZE setting to limit the number of bytes read
to determine the MIME type of a new document. to determine the MIME type of a new document.
- Force object to text when raising PermissionDenied to avoid - Force object to text when raising PermissionDenied to avoid
@@ -540,7 +591,7 @@
- Fix an issue with some browsers not firing the .load event on cached - Fix an issue with some browsers not firing the .load event on cached
images. Ref: http://api.jquery.com/load-event/ images. Ref: http://api.jquery.com/load-event/
- Remove duplicate YAML loading of environment variables. - Remove duplicate YAML loading of environment variables.
- Don't load development apps if they are already loaded. Don't load development apps if they are already loaded.
- Make sure all key used as input for the cache key hash are - Make sure all key used as input for the cache key hash are
bytes and not unicode. GitLab issue #520. Thanks to TheOneValen bytes and not unicode. GitLab issue #520. Thanks to TheOneValen
@TheOneValen for the report. @TheOneValen for the report.
@@ -658,17 +709,15 @@
- Improve natural key support in the UserOptions model. - Improve natural key support in the UserOptions model.
- Update from Django 1.11.11 to 1.11.15. - Update from Django 1.11.11 to 1.11.15.
- Add support to the convertdb command to operate on specified apps too. - Add support to the convertdb command to operate on specified apps too.
- Add test mixin to test the db conversion (dumping and loading) of a - Add test mixin to test the db conversion (dumping and loading) of a specific app.
specific app.
- Add an user test mixin to group user testing. - Add an user test mixin to group user testing.
- Add test the user managament app for database conversion. - Add test the user managament app for database conversion.
- Add support for natural keys to the DocumentPageImageCache model. - Add support for natural keys to the DocumentPageImageCache model.
- Add database conversion test to the common app. - Add database conversion test to the common app.
- Fix label display for resolved smart links when not using a dynamic label. - Fix label display for resolved smart links when not using a dynamic label.
- Only show smart link resolution errors to the user with the smart link - Only show smart link resolution errors to the user with the smart link edit
edit permission. permission.
- Intercept document list view exception and display them as an error - Intercept document list view exception and display them as an error message.
message.
3.1.1 (2018-09-18) 3.1.1 (2018-09-18)
================== ==================
@@ -693,8 +742,7 @@
document (document stub that has no document version). document (document stub that has no document version).
- Add support for client side caching of document page images. The time - Add support for client side caching of document page images. The time
the images are cached is controlled by the new setting the images are cached is controlled by the new setting
DOCUMENTS_PAGE_IMAGE_CACHE_TIME which defaults to 31556926 seconds DOCUMENTS_PAGE_IMAGE_CACHE_TIME which defaults to 31556926 seconds (1 year).
(1 year).
- The document quick label selection field now uses a select2 widget. - The document quick label selection field now uses a select2 widget.
- Include querystring when force reload of a bare template view. - Include querystring when force reload of a bare template view.
- Speed up document image fade in reveal. - Speed up document image fade in reveal.
@@ -839,10 +887,9 @@
model. model.
- Make icon classes file template based. - Make icon classes file template based.
- Add the current step and total steps of a wizard in the template context. - Add the current step and total steps of a wizard in the template context.
- Chart updates: Show last update date and time in list view and details - Chart updates: Show last update date and time in list view and details view.
view. Change color scheme to match rest of project. Increase size of Change color scheme to match rest of project. Increase size of data points.
data points. Improve responsive settings. Redirect to the current view Improve responsive settings. Redirect to the current view after queueing.
after queueing.
- Split document type retention policies into it own view. - Split document type retention policies into it own view.
3.0.3 (2018-08-17) 3.0.3 (2018-08-17)
@@ -866,10 +913,10 @@
- Builds: Limit the number of branches that trigger the full test suit. - Builds: Limit the number of branches that trigger the full test suit.
- Converter app: Fix crop transformation argument parsing. - Converter app: Fix crop transformation argument parsing.
- Converter app: Add error checking to the crop transformation arguments. - Converter app: Add error checking to the crop transformation arguments.
Thanks to Jordan Wages (@wagesj45) for the report and investigation on Thanks to Jordan Wages (@wagesj45) for the report and investigation on the issue.
the issue. Closes GitLab issue #490 Closes GitLab issue #490
- Common app: Fix post login redirection to honor the ?next= URL query - Common app: Fix post login redirection to honor the ?next= URL query string
string argument. Thanks go to K.C. Wong(@dvusboy1). Closes GitLab argument. Thanks go to K.C. Wong(@dvusboy1). Closes GitLab
issue #489. issue #489.
- Docker install script: Detect if Docker installed and provide help - Docker install script: Detect if Docker installed and provide help
text if not. text if not.
@@ -879,8 +926,7 @@
- Documents app: Display error when attempting to recalculate the page - Documents app: Display error when attempting to recalculate the page
count of an empty count of an empty
document (document stub that has no document version). document (document stub that has no document version).
- Appearance app: Include querystring when force reload of a bare template - Appearance app: Include querystring when force reload of a bare template view.
view.
- Documents app: Fix trashed document count and document page count swapped - Documents app: Fix trashed document count and document page count swapped
dashboard icons. dashboard icons.
- Documents app: Rename the multi document download link from "Download" to - Documents app: Rename the multi document download link from "Download" to
@@ -933,13 +979,12 @@
- Display a proper message in the document type metadata type relationship - Display a proper message in the document type metadata type relationship
view when there are no metadata types exist. view when there are no metadata types exist.
- Require the document view permission to view trashed documents. - Require the document view permission to view trashed documents.
- Make the multi object form perform an auto submit when the value is - Make the multi object form perform an auto submit when the value is changed.
changed.
- Improved styling and interaction of the multiple object action form. - Improved styling and interaction of the multiple object action form.
- Add checkbox to allow selecting all item in the item list view. - Add checkbox to allow selecting all item in the item list view.
- Revise and improve permission requirements for the documents app API. - Revise and improve permission requirements for the documents app API.
- Downloading a document version now requires the document download - Downloading a document version now requires the document download permission
permission instead of just the document view permission. instead of just the document view permission.
- Creating a new document no longer works by having the document create - Creating a new document no longer works by having the document create
permission in a global manner. It is now possible to create a document via permission in a global manner. It is now possible to create a document via
the API by having the document permission for a specific document type. the API by having the document permission for a specific document type.
@@ -954,33 +999,25 @@
- Update project to work with Django 1.11.11. - Update project to work with Django 1.11.11.
- Fix deprecations in preparation for Django 2.0. - Fix deprecations in preparation for Django 2.0.
- Improve permission handling in the workflow app. - Improve permission handling in the workflow app.
- The checkedout detail view permission is now required for the checked - The checkedout detail view permission is now required for the checked out document detail API view.
out document detail API view.
- Switch to a resource and service based API from previous app based one. - Switch to a resource and service based API from previous app based one.
- Add missing services for the checkout API. - Add missing services for the checkout API.
- Fix existing checkout APIs. - Fix existing checkout APIs.
- Update API vies and serializers for the latest Django REST framework - Update API vies and serializers for the latest Django REST framework version. Replace DRF Swagger with DRF-YASG.
version. Replace DRF Swagger with DRF-YASG. - Update to the latest version of Pillow, django-activity-stream, django-compressor, django-cors-headers,
- Update to the latest version of Pillow, django-activity-stream, django-formtools, django-qsstats-magic, django-stronghold, django-suit, furl, graphviz, pyocr,
django-compressor, django-cors-headers, django-formtools, python-dateutil, python-magic, pytz, sh.
django-qsstats-magic, django-stronghold, django-suit, furl, graphviz, - Update to the latest version the packages for building, development, documentation and testing.
pyocr, python-dateutil, python-magic, pytz, sh. - Add statistics script to produce a report of the views, APIs and test for each app.
- Update to the latest version the packages for building, development,
documentation and testing.
- Add statistics script to produce a report of the views, APIs and test
for each app.
- Merge base64 filename patch from Cornelius Ludmann. - Merge base64 filename patch from Cornelius Ludmann.
- SearchModel retrun interface changed. The class no longer returns the - SearchModel retrun interface changed. The class no longer returns the result_set value. Use the queryset returned instead.
result_set value. Use the queryset returned instead.
- Update to Font Awesome 5. - Update to Font Awesome 5.
- Turn Mayan EDMS into a single page app. - Turn Mayan EDMS into a single page app.
- Split base.js into mayan_app.js, mayan_image.js, partial_navigation.js. - Split base.js into mayan_app.js, mayan_image.js, partial_navigation.js.
- Add a HOME_VIEW setting. Use it for the default view to be loaded. - Add a HOME_VIEW setting. Use it for the default view to be loaded.
- Fix bug in document page view. Was storing the URL and the querystring - Fix bug in document page view. Was storing the URL and the querystring as a single url variable.
as a single url variable.
- Use history.back instead of history.go(-1). - Use history.back instead of history.go(-1).
- Don't use the previous variable when canceling a form action. Form now - Don't use the previous variable when canceling a form action. Form now use only javascript's history.back().
use only javascript's history.back().
- Add template and modal to display server side errors. - Add template and modal to display server side errors.
- Remove the unused scrollable_content internal feature. - Remove the unused scrollable_content internal feature.
- Remove unused animate.css package. - Remove unused animate.css package.
@@ -989,34 +1026,25 @@
- Add notification count inside a badge on the notification link. - Add notification count inside a badge on the notification link.
- Add the MERC specifying javascript library usage. - Add the MERC specifying javascript library usage.
- Documents without at least a version are not scanned for duplicates. - Documents without at least a version are not scanned for duplicates.
- Use a SHA256 hex digest of the secret key at the name of the lockfile. - Use a SHA256 hex digest of the secret key at the name of the lockfile. This makes the generation of the name repeatable while unique between installations.
This makes the generation of the name repeatable while unique
between installations.
- Squashed apps migrations. - Squashed apps migrations.
- Convert document thumbnails, preview, image preview and staging files - Convert document thumbnails, preview, image preview and staging files to template base widgets.
to template base widgets.
- Unify all document widgets. - Unify all document widgets.
- Display resolution settings are now specified as width and height and not - Display resolution settings are now specified as width and height and not a single resolution value.
a single resolution value.
- Printed pages are now full width. - Printed pages are now full width.
- Move the invalid document markup to a separate HTML template. - Move the invalid document markup to a separate HTML template.
- Update to Fancybox 3. - Update to Fancybox 3.
- Update to jQuery 3.3.1 - Update to jQuery 3.3.1
- Move transfomations to their own module. - Move transfomations to their own module.
- Split documents.tests.test_views into base.py, - Split documents.tests.test_views into base.py, test_deleted_document_views.py,
test_deleted_document_views.py, test_document_page_views.py, test_document_type_views.py, test_document_version_views.py,
test_document_page_views.py, test_document_type_views.py, test_document_views.py, test_duplicated_document_views.py
test_document_version_views.py, test_document_views.py,
test_duplicated_document_views.py
- Sort smart links by label. - Sort smart links by label.
- Rename the internal name of the document type permissions namespace. - Rename the internal name of the document type permissions namespace. Existing permissions will need to be updated.
Existing permissions will need to be updated. - Add support for OR type searches. Use the "OR" string between the terms. Example: term1 OR term2.
- Add support for OR type searches. Use the "OR" string between the terms.
Example: term1 OR term2.
- Removed redundant permissions checks. - Removed redundant permissions checks.
- Move the page count display to the top of the image. - Move the page count display to the top of the image.
- Unify the way to gather the project's metadata. Use mayan.__XX__ and - Unify the way to gather the project's metadata. Use mayan.__XX__ and a new common tag named {% project_information '' %}
a new common tag named {% project_information '' %}
- Return to the same source view after uploading a document. - Return to the same source view after uploading a document.
- Add new WizardStep class to decouple the wizard step configuration. - Add new WizardStep class to decouple the wizard step configuration.
- Add support for deregister upload wizard steps. - Add support for deregister upload wizard steps.
@@ -1026,8 +1054,7 @@
- Improve and add additional diagrams. - Improve and add additional diagrams.
- Change documenation theme to rtd. - Change documenation theme to rtd.
- Fix carousel item height issues. - Fix carousel item height issues.
- Add the "to=" keyword argument to all ForeignKey, ManayToMany and OneToOne - Add the "to=" keyword argument to all ForeignKey, ManayToMany and OneToOne Fields.
Fields.
- Add Makefile target to check the format of the README.rst file. - Add Makefile target to check the format of the README.rst file.
- Mark the feature to detect and fix the orientatin of PDF as experimental. - Mark the feature to detect and fix the orientatin of PDF as experimental.
- Don't show documents with 0 duplicates in the duplicated document list. - Don't show documents with 0 duplicates in the duplicated document list.
@@ -1037,14 +1064,14 @@
- Add support for groups ACLs. - Add support for groups ACLs.
- Sort permission namespaces and permissions in the role permission views. - Sort permission namespaces and permissions in the role permission views.
- Invert the columns in the ACL detail view. - Invert the columns in the ACL detail view.
- Fix issue #454. Thanks to Andrei Korostelev@kindkaktus for the issue and - Fix issue #454. Thanks to Andrei Korostelev@kindkaktus for the issue and the
the solution. solution.
- Update the role permission edit view require the permission grant or - Update the role permission edit view require the permission grant or permission
permission revoke permissions for the selected role. revoke permissions for the selected role.
- Only show the new document link if the user has access to create documents - Only show the new document link if the user has access to create documents of
of at least one document type. GitLab Issue #302. Thanks to kg @kgraves. at least one document type. GitLab Issue #302. Thanks to kg @kgraves.
- Support passing arguments to the document, document cache and document - Support passing arguments to the document, document cache and document signatures
signatures storage backends. New settings: DOCUMENTS_STORAGE_BACKEND_ARGUMENTS, storage backends. New settings: DOCUMENTS_STORAGE_BACKEND_ARGUMENTS,
DOCUMENTS_CACHE_STORAGE_BACKEND_ARGUMENTS, SIGNATURES_STORAGE_BACKEND_ARGUMENTS DOCUMENTS_CACHE_STORAGE_BACKEND_ARGUMENTS, SIGNATURES_STORAGE_BACKEND_ARGUMENTS
- Remove the setting STORAGE_FILESTORAGE_LOCATION. Document storage - Remove the setting STORAGE_FILESTORAGE_LOCATION. Document storage
location for the storage.backend.filebasedstorage.FileBasedStorage location for the storage.backend.filebasedstorage.FileBasedStorage
@@ -1071,57 +1098,39 @@
the solution. the solution.
- Removing running workflow instances in document of a specific type if - Removing running workflow instances in document of a specific type if
that document type is removed from the workflow. that document type is removed from the workflow.
- Make error messages persistent and increase the timeout of warning to 10 - Make error messages persistent and increase the timeout of warning to 10 seconds.
seconds.
- Improve rendering of the details form. - Improve rendering of the details form.
- Update rendering of the readonly multiselect widget to conform to Django's - Update rendering of the readonly multiselect widget to conform to Django's updated field class interface.
updated field class interface.
- Add warning when using SQLite as the database backend. - Add warning when using SQLite as the database backend.
- Use Mailgun's flanker library to process the email sources. - Use Mailgun's flanker library to process the email sources.
- Add locking for interval sources. This reduces the chance of repeated - Add locking for interval sources. This reduces the chance of repeated documents from long running email downloads.
documents from long running email downloads. - Add the option to enable or disable parsing when uploading a document for each document type.
- Add the option to enable or disable parsing when uploading a document - Add a new setting option to enable automatic parsing for each new document type created.
for each document type.
- Add a new setting option to enable automatic parsing for each new
document type created.
- Add support for HTML bodies to the user mailers. - Add support for HTML bodies to the user mailers.
- Production ALLOWED_HOSTS settings now defaults to a safer - Production ALLOWED_HOSTS settings now defaults to a safer ['127.0.0.1', 'localhost', '[::1]']
['127.0.0.1', 'localhost', '[::1]']
- Capture menu resolution errors on invalid URLs. Closes GitLab issue #420. - Capture menu resolution errors on invalid URLs. Closes GitLab issue #420.
- New environment variables: MAYAN_SECRET_KEY, MAYAN_CELERY_ALWAYS_EAGER, - New environment variables: MAYAN_SECRET_KEY, MAYAN_CELERY_ALWAYS_EAGER, MAYAN_CELERY_RESULT_BACKEND,
MAYAN_CELERY_RESULT_BACKEND, MAYAN_BROKER_URL, MAYAN_DATABASE_ENGINE, MAYAN_BROKER_URL, MAYAN_DATABASE_ENGINE, MAYAN_DATABASE_CONN_MAX_AGE, MAYAN_DATABASE_NAME,
MAYAN_DATABASE_CONN_MAX_AGE, MAYAN_DATABASE_NAME, MAYAN_DATABASE_USER, MAYAN_DATABASE_USER, MAYAN_DATABASE_PASSWORD, MAYAN_DATABASE_HOST, MAYAN_DATABASE_PORT,
MAYAN_DATABASE_PASSWORD, MAYAN_DATABASE_HOST, MAYAN_DATABASE_PORT,
MAYAN_DEBUG. MAYAN_DEBUG.
- Stricter defaults. CELERY_ALWAYS_EAGER to False, ALLOWED_HOSTS to - Stricter defaults. CELERY_ALWAYS_EAGER to False, ALLOWED_HOSTS to ['127.0.0.1', 'localhost', '[::1]'].
['127.0.0.1', 'localhost', '[::1]']. - New initialization command. Creates media/system and populates the SECRET_KEY and VERSION files.
- New initialization command. Creates media/system and populates the
SECRET_KEY and VERSION files.
- Sane scanner source paper source now defaults to blank. - Sane scanner source paper source now defaults to blank.
- Merge Docker image creation back into the main repository. - Merge Docker image creation back into the main repository.
- Docker image now uses gunicorn and whitenoise instead of NGINX to server - Docker image now uses gunicorn and whitenoise instead of NGINX to server the app and
the app and the static media. the static media.
- All installation artifact are now created and read from the media folder. - All installation artifact are now created and read from the media folder.
- Debian is now the Linux distribution used for the Docker image. - Debian is now the Linux distribution used for the Docker image.
- Most Docker Celery workers are now execute using a lower OS priority number. - Most Docker Celery workers are now execute using a lower OS priority number.
- Add COMMON_PRODUCTION_ERROR_LOGGING setting to control the logging of - Add COMMON_PRODUCTION_ERROR_LOGGING setting to control the logging of errors in production. Defaults to False.
errors in production. Defaults to False. - Change the error log file handle class to RotatingFileHandle to avoid an indefinitely growing log file.
- Change the error log file handle class to RotatingFileHandle to avoid an
indefinitely growing log file.
- Disable embedded signatute verification during the perform upgrade command. - Disable embedded signatute verification during the perform upgrade command.
- Replace the DOCUMENTS_LANGUAGE_CHOICES setting option. Replaced with the - Replace the DOCUMENTS_LANGUAGE_CHOICES setting option. Replaced with the new DOCUMENTS_LANGUAGE_CODES.
new DOCUMENTS_LANGUAGE_CODES. - Fix error when trying to upload a document from and email account with 'from' and 'subject' metadata.
- Fix error when trying to upload a document from and email account with
'from' and 'subject' metadata.
- Fix typo on message.header get from 'Suject' to 'Subject'. - Fix typo on message.header get from 'Suject' to 'Subject'.
- On multi part emails keep the original From and Subject properties - On multi part emails keep the original From and Subject properties for all subsequent parts if the sub parts don't specify them. Fixes issue #481. Thanks to Robert Schöftner @robert.schoeftner for the report and debug information.
for all subsequent parts if the sub parts don't specify them. - Don't provide a default for the scanner source adf_mode. Some scanners throw an error even when the selection
Fixes issue #481. Thanks to Robert Schöftner @robert.schoeftner for the if supported.
report and debug information. - Add a "Quick Download" action to reduce the number of steps to download a single document. GitLab issue #338.
- Don't provide a default for the scanner source adf_mode. Some scanners - Recalculate a document's indexes when attaching or removing a tag from or to it.
throw an error even when the selection if supported.
- Add a "Quick Download" action to reduce the number of steps to download
a single document. GitLab issue #338.
- Recalculate a document's indexes when attaching or removing a tag from
or to it.
- Recalculate all of a tag's documents when a tag is about to be deleted. - Recalculate all of a tag's documents when a tag is about to be deleted.

View File

@@ -18,7 +18,7 @@ clean-pyc: ## Remove Python artifacts.
find . -name '*.pyc' -exec rm -f {} + find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} + find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} + find . -name '*~' -exec rm -f {} +
find . -name '__pycache__' -exec rm -R -f {} +
# Testing # Testing
@@ -234,10 +234,10 @@ generate-requirements: ## Generate all requirements files from the project deped
# Dev server # Dev server
runserver: ## Run the development server. runserver: ## Run the development server.
./manage.py runserver --settings=mayan.settings.development $(ADDRPORT) ./manage.py runserver --nothreading --settings=mayan.settings.development $(ADDRPORT)
runserver_plus: ## Run the Django extension's development server. runserver_plus: ## Run the Django extension's development server.
./manage.py runserver_plus --settings=mayan.settings.development $(ADDRPORT) ./manage.py runserver_plus --nothreading --settings=mayan.settings.development $(ADDRPORT)
shell_plus: ## Run the shell_plus command. shell_plus: ## Run the shell_plus command.
./manage.py shell_plus --settings=mayan.settings.development ./manage.py shell_plus --settings=mayan.settings.development
@@ -258,7 +258,7 @@ test-with-docker-frontend: ## Launch a front end instance that uses the producti
./manage.py runserver --settings=mayan.settings.staging.docker ./manage.py runserver --settings=mayan.settings.staging.docker
test-with-docker-worker: ## Launch a worker instance that uses the production-like services. test-with-docker-worker: ## Launch a worker instance that uses the production-like services.
./manage.py celery worker --settings=mayan.settings.staging.docker -B -l INFO -O fair DJANGO_SETTINGS_MODULE=mayan.settings.staging.docker ./manage.py celery worker -A mayan -B -l INFO -O fair
docker-mysql-on: ## Launch and initialize a MySQL Docker container. docker-mysql-on: ## Launch and initialize a MySQL Docker container.
docker run -d --name mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan_edms mysql docker run -d --name mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan_edms mysql

View File

@@ -1,72 +0,0 @@
#!/usr/bin/env bash
INSTALLATION_DIRECTORY=/home/vagrant/mayan-edms/
DB_NAME=mayan_edms
DB_PASSWORD=test123
cat << EOF | sudo tee -a /etc/motd.tail
**********************************sudo apt
Mayan EDMS Vagrant Development Box
**********************************
EOF
# Update sources
echo -e "\n -> Running apt-get update & upgrade \n"
sudo apt-get -qq update
sudo apt-get -y upgrade
echo -e "\n -> Installing core binaries \n"
sudo apt-get -y install git-core python-virtualenv gcc python-dev libjpeg-dev libpng-dev libtiff-dev tesseract-ocr poppler-utils libreoffice
echo -e "\n -> Cloning development branch of repository \n"
git clone /mayan-edms-repository/ $INSTALLATION_DIRECTORY
cd $INSTALLATION_DIRECTORY
git checkout development
git reset HEAD --hard
echo -e "\n -> Setting up virtual env \n"
virtualenv venv
source venv/bin/activate
echo -e "\n -> Installing python dependencies \n"
pip install -r requirements.txt
echo -e "\n -> Running Mayan EDMS initial setup \n"
./manage.py initialsetup
echo -e "\n -> Installing Redis server \n"
sudo apt-get install -y redis-server
pip install redis
echo -e "\n -> Installing testing software \n"
pip install coverage
echo -e "\n -> Installing MySQL \n"
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password '$DB_PASSWORD
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password '$DB_PASSWORD
sudo apt-get install -y mysql-server libmysqlclient-dev
# Create a passwordless root and travis users
mysql -u root -p$DB_PASSWORD -e "SET PASSWORD = PASSWORD('');"
mysql -u root -e "CREATE USER 'travis'@'localhost' IDENTIFIED BY '';GRANT ALL PRIVILEGES ON * . * TO 'travis'@'localhost';FLUSH PRIVILEGES;"
mysql -u travis -e "CREATE DATABASE $DB_NAME;"
pip install mysql-python
echo -e "\n -> Installing PostgreSQL \n"
sudo apt-get install -y postgresql postgresql-server-dev-all
sudo -u postgres psql -c 'create database mayan_edms;' -U postgres
sudo cat > /etc/postgresql/9.3/main/pg_hba.conf << EOF
local all postgres trust
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
EOF
pip install -q psycopg2

File diff suppressed because it is too large Load Diff

View File

@@ -1,171 +0,0 @@
#!/usr/bin/env bash
# ====== CONFIG ======
INSTALLATION_DIRECTORY=/usr/share/mayan-edms/
DB_NAME=mayan_edms
DB_USERNAME=mayan
DB_PASSWORD=test123
# ==== END CONFIG ====
cat << EOF | tee -a /etc/motd.tail
**********************************
Mayan EDMS Vagrant Production Box
**********************************
EOF
echo -e "\n -> Running apt-get update & upgrade \n"
apt-get -qq update
apt-get -y upgrade
echo -e "\n -> Installing core binaries \n"
apt-get install nginx supervisor redis-server postgresql libpq-dev libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr poppler-utils -y
echo -e "\n -> Setting up virtualenv \n"
rm -f ${INSTALLATION_DIRECTORY}
virtualenv ${INSTALLATION_DIRECTORY}
source ${INSTALLATION_DIRECTORY}bin/activate
echo -e "\n -> Installing Mayan EDMS from PyPI \n"
pip install mayan-edms
echo -e "\n -> Installing Python client for PostgreSQL, Redis, and uWSGI \n"
pip install psycopg2 redis uwsgi
echo -e "\n -> Creating the database for the installation \n"
echo "CREATE USER mayan WITH PASSWORD '$DB_PASSWORD';" | sudo -u postgres psql
sudo -u postgres createdb -O $DB_USERNAME $DB_NAME
echo -e "\n -> Creating the directories for the logs \n"
mkdir /var/log/mayan
echo -e "\n -> Making a convenience symlink \n"
cd ${INSTALLATION_DIRECTORY}
ln -s lib/python2.7/site-packages/mayan .
echo -e "\n -> Creating an initial settings file \n"
mayan-edms.py createsettings
echo -e "\n -> Updating the mayan/settings/local.py file \n"
cat >> mayan/settings/local.py << EOF
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '$DB_NAME',
'USER': '$DB_USERNAME',
'PASSWORD': '$DB_PASSWORD',
'HOST': 'localhost',
'PORT': '5432',
}
}
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'
EOF
echo -e "\n -> Migrating the database or initialize the project \n"
mayan-edms.py initialsetup
echo -e "\n -> Disabling the default NGINX site \n"
rm -f /etc/nginx/sites-enabled/default
echo -e "\n -> Creating a uwsgi.ini file \n"
cat > uwsgi.ini << EOF
[uwsgi]
chdir = ${INSTALLATION_DIRECTORY}lib/python2.7/site-packages/mayan
chmod-socket = 664
chown-socket = www-data:www-data
env = DJANGO_SETTINGS_MODULE=mayan.settings.production
gid = www-data
logto = /var/log/uwsgi/%n.log
pythonpath = ${INSTALLATION_DIRECTORY}lib/python2.7/site-packages
master = True
max-requests = 5000
socket = ${INSTALLATION_DIRECTORY}uwsgi.sock
uid = www-data
vacuum = True
wsgi-file = ${INSTALLATION_DIRECTORY}lib/python2.7/site-packages/mayan/wsgi.py
EOF
echo -e "\n -> Creating the directory for the uWSGI log files \n"
mkdir -p /var/log/uwsgi
echo -e "\n -> Creating the NGINX site file for Mayan EDMS, /etc/nginx/sites-available/mayan \n"
cat > /etc/nginx/sites-available/mayan << EOF
server {
listen 80;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass unix:${INSTALLATION_DIRECTORY}uwsgi.sock;
client_max_body_size 30M; # Increse if your plan to upload bigger documents
proxy_read_timeout 30s; # Increase if your document uploads take more than 30 seconds
}
location /static {
alias ${INSTALLATION_DIRECTORY}mayan/media/static;
expires 1h;
}
location /favicon.ico {
alias ${INSTALLATION_DIRECTORY}mayan/media/static/appearance/images/favicon.ico;
expires 1h;
}
}
EOF
echo -e "\n -> Enabling the NGINX site for Mayan EDMS \n"
ln -s /etc/nginx/sites-available/mayan /etc/nginx/sites-enabled/
echo -e "\n -> Creating the supervisor file for the uWSGI process, /etc/supervisor/conf.d/mayan-uwsgi.conf \n"
cat > /etc/supervisor/conf.d/mayan-uwsgi.conf << EOF
[program:mayan-uwsgi]
command = ${INSTALLATION_DIRECTORY}bin/uwsgi --ini ${INSTALLATION_DIRECTORY}uwsgi.ini
user = root
autostart = true
autorestart = true
redirect_stderr = true
EOF
echo -e "\n -> Creating the supervisor file for the Celery worker, /etc/supervisor/conf.d/mayan-celery.conf \n"
cat > /etc/supervisor/conf.d/mayan-celery.conf << EOF
[program:mayan-worker]
command = ${INSTALLATION_DIRECTORY}bin/python ${INSTALLATION_DIRECTORY}bin/mayan-edms.py celery --settings=mayan.settings.production worker -Ofair -l ERROR
directory = ${INSTALLATION_DIRECTORY}
user = www-data
stdout_logfile = /var/log/mayan/worker-stdout.log
stderr_logfile = /var/log/mayan/worker-stderr.log
autostart = true
autorestart = true
startsecs = 10
stopwaitsecs = 10
killasgroup = true
priority = 998
[program:mayan-beat]
command = ${INSTALLATION_DIRECTORY}bin/python ${INSTALLATION_DIRECTORY}bin/mayan-edms.py celery --settings=mayan.settings.production beat -l ERROR
directory = ${INSTALLATION_DIRECTORY}
user = www-data
numprocs = 1
stdout_logfile = /var/log/mayan/beat-stdout.log
stderr_logfile = /var/log/mayan/beat-stderr.log
autostart = true
autorestart = true
startsecs = 10
stopwaitsecs = 1
killasgroup = true
priority = 998
EOF
echo -e "\n -> Collecting the static files \n"
mayan-edms.py preparestatic --noinput
echo -e "\n -> Making the installation directory readable and writable by the webserver user \n"
chown www-data:www-data ${INSTALLATION_DIRECTORY} -R
echo -e "\n -> Restarting the services \n"
/etc/init.d/nginx restart
/etc/init.d/supervisor restart

View File

@@ -13,11 +13,12 @@ APP_LIST = (
'checkouts', 'common', 'converter', 'dashboards', 'dependencies', 'checkouts', 'common', 'converter', 'dashboards', 'dependencies',
'django_gpg', 'document_comments', 'document_indexing', 'django_gpg', 'document_comments', 'document_indexing',
'document_parsing', 'document_signatures', 'document_states', 'document_parsing', 'document_signatures', 'document_states',
'documents', 'dynamic_search', 'events', 'file_metadata', 'linking', 'documents', 'dynamic_search', 'events', 'file_caching',
'lock_manager', 'mayan_statistics', 'mailer', 'metadata', 'mirroring', 'file_metadata', 'linking', 'lock_manager', 'mailer',
'motd', 'navigation', 'ocr', 'permissions', 'platform', 'rest_api', 'mayan_statistics', 'metadata', 'mirroring', 'motd', 'navigation',
'smart_settings', 'sources', 'storage', 'tags', 'task_manager', 'ocr', 'permissions', 'platform', 'rest_api', 'smart_settings',
'user_management' 'sources', 'storage', 'tags', 'task_manager', 'user_management',
'weblinks'
) )
LANGUAGE_LIST = ( LANGUAGE_LIST = (

View File

@@ -1,35 +0,0 @@
#!/bin/bash
NAME="mayan-edms"
DJANGODIR=/usr/share/mayan-edms
SOCKFILE=/var/tmp/filesystem.sock
USER=www-data
GROUP=www-data
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=mayan.settings.production
DJANGO_WSGI_MODULE=mayan.wsgi
TIMEOUT=600
echo "Starting $NAME as `whoami`"
# Activate the virtual environment
cd $DJANGODIR
source bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
# Create the run directory if it doesn't exist
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR
# Start your Django Unicorn
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
exec bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--log-level=debug \
--bind=unix:$SOCKFILE \
--timeout=$TIMEOUT

View File

@@ -4,7 +4,7 @@
# BASE_IMAGE - Bare bones image with the base packages needed to run Mayan EDMS # BASE_IMAGE - Bare bones image with the base packages needed to run Mayan EDMS
#### ####
FROM debian:9.8-slim as BASE_IMAGE FROM debian:10.0-slim as BASE_IMAGE
LABEL maintainer="Roberto Rosario roberto.rosario@mayan-edms.com" LABEL maintainer="Roberto Rosario roberto.rosario@mayan-edms.com"
@@ -22,20 +22,19 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive \ && DEBIAN_FRONTEND=noninteractive \
apt-get update \ apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
ca-certificates \
exiftool \ exiftool \
fonts-arphic-uming \
fonts-arphic-ukai \
ghostscript \ ghostscript \
gpgv \ gpgv \
gnupg1 \ gnupg1 \
graphviz \ graphviz \
libfuse2 \ libfuse2 \
libmagic1 \ libmagic1 \
libmariadbclient18 \ libmariadb3 \
libreoffice \ libreoffice \
libpq5 \ libpq5 \
poppler-utils \ poppler-utils \
redis-server \ python3-distutils \
sane-utils \ sane-utils \
sudo \ sudo \
supervisor \ supervisor \
@@ -54,21 +53,20 @@ apt-get update \
&& if [ "$(uname -m)" = "armv7l" ]; then \ && if [ "$(uname -m)" = "armv7l" ]; then \
ln -s /usr/lib/arm-linux-gnueabihf/libz.so /usr/lib/ \ ln -s /usr/lib/arm-linux-gnueabihf/libz.so /usr/lib/ \
&& ln -s /usr/lib/arm-linux-gnueabihf/libjpeg.so /usr/lib/ \ && ln -s /usr/lib/arm-linux-gnueabihf/libjpeg.so /usr/lib/ \
; fi \ ; fi
# Discard data when Redis runs out of memory
&& echo "maxmemory-policy allkeys-lru" >> /etc/redis/redis.conf \
# Disable saving the Redis database
echo "save \"\"" >> /etc/redis/redis.conf \
# Only provision 1 database
&& echo "databases 1" >> /etc/redis/redis.conf
#### ####
# BUILDER_IMAGE - This image buildS the Python package and is discarded afterwards # BUILDER_IMAGE - This image builds the Python package and is discarded afterwards
# only the build artifact is carried over to the next image.
#### ####
# Reuse image # Reuse image
FROM BASE_IMAGE as BUILDER_IMAGE FROM BASE_IMAGE as BUILDER_IMAGE
# Python libraries caching
ARG PIP_INDEX_URL
ARG PIP_TRUSTED_HOST
WORKDIR /src WORKDIR /src
# Copy the source files needed to build the Python package # Copy the source files needed to build the Python package
@@ -97,39 +95,40 @@ apt-get install -y --no-install-recommends \
libssl-dev \ libssl-dev \
g++ \ g++ \
gcc \ gcc \
python-dev \ python3-dev \
python-virtualenv \ python3-venv \
&& mkdir -p "${PROJECT_INSTALL_DIR}" \ && mkdir -p "${PROJECT_INSTALL_DIR}" \
&& chown -R mayan:mayan "${PROJECT_INSTALL_DIR}" \ && chown -R mayan:mayan "${PROJECT_INSTALL_DIR}" \
&& chown -R mayan:mayan /src && chown -R mayan:mayan /src
USER mayan USER mayan
RUN python -m virtualenv "${PROJECT_INSTALL_DIR}" \ RUN python3 -m venv "${PROJECT_INSTALL_DIR}" \
&& . "${PROJECT_INSTALL_DIR}/bin/activate" \ && . "${PROJECT_INSTALL_DIR}/bin/activate" \
&& pip install --no-cache-dir --no-use-pep517 \ && pip install --no-cache-dir \
librabbitmq==1.6.1 \ librabbitmq==2.0.0 \
mysql-python==1.2.5 \ mysqlclient==1.4.2.post1 \
psycopg2==2.7.3.2 \ psycopg2==2.8.3 \
redis==2.10.6 \ redis==3.2.1 \
flower==0.9.3 \
# psutil is needed by ARM builds otherwise gevent and gunicorn fail to start # psutil is needed by ARM builds otherwise gevent and gunicorn fail to start
&& UNAME=`uname -m` && if [ "${UNAME#*arm}" != $UNAME ]; then \ && UNAME=`uname -m` && if [ "${UNAME#*arm}" != $UNAME ]; then \
pip install --no-cache-dir --no-use-pep517 \ pip install --no-cache-dir \
psutil==5.6.2 \ psutil==5.6.2 \
; fi \ ; fi \
# Install the Python packages needed to build Mayan EDMS # Install the Python packages needed to build Mayan EDMS
&& pip install --no-cache-dir --no-use-pep517 -r /src/requirements/build.txt \ && pip install --no-cache-dir -r /src/requirements/build.txt \
# Build Mayan EDMS # Build Mayan EDMS
&& python setup.py sdist \ && python3 setup.py sdist \
# Install the built Mayan EDMS package # Install the built Mayan EDMS package
&& pip install --no-cache-dir --no-use-pep517 dist/mayan* \ && pip install --no-cache-dir dist/mayan* \
# Install the static content # Install the static content
&& mayan-edms.py installjavascript \ && mayan-edms.py installdependencies \
&& MAYAN_STATIC_ROOT=${PROJECT_INSTALL_DIR}/static mayan-edms.py preparestatic --link --noinput && MAYAN_STATIC_ROOT=${PROJECT_INSTALL_DIR}/static mayan-edms.py preparestatic --link --noinput
COPY --chown=mayan:mayan requirements/testing-base.txt "${PROJECT_INSTALL_DIR}" COPY --chown=mayan:mayan requirements/testing-base.txt "${PROJECT_INSTALL_DIR}"
#### ####
# Final image - BASE_IMAGE + Mayan install directory from the builder image # Final image - BASE_IMAGE + BUILDER_IMAGE artifact (Mayan install directory)
#### ####
FROM BASE_IMAGE FROM BASE_IMAGE
@@ -145,7 +144,7 @@ VOLUME ["/var/lib/mayan"]
ENTRYPOINT ["entrypoint.sh"] ENTRYPOINT ["entrypoint.sh"]
EXPOSE 8000 EXPOSE 8000
CMD ["mayan"] CMD ["run_all"]
RUN ${PROJECT_INSTALL_DIR}/bin/mayan-edms.py platformtemplate supervisord_docker > /etc/supervisor/conf.d/mayan.conf \ RUN ${PROJECT_INSTALL_DIR}/bin/mayan-edms.py platformtemplate supervisord_docker > /etc/supervisor/conf.d/mayan.conf \
&& apt-get clean autoclean \ && apt-get clean autoclean \

View File

@@ -1,4 +1,9 @@
APT_PROXY ?= `/sbin/ip route|awk '/docker0/ { print $$9 }'`:3142 HOST_IP = `/sbin/ip route|awk '/docker0/ { print $$9 }'`
APT_PROXY ?= $(HOST_IP):3142
PIP_INDEX_URL ?= http://$(HOST_IP):3141/root/pypi/+simple/
PIP_TRUSTED_HOST ?= $(HOST_IP)
IMAGE_VERSION ?= `cat docker/rootfs/version` IMAGE_VERSION ?= `cat docker/rootfs/version`
CONSOLE_COLUMNS ?= `echo $$(tput cols)` CONSOLE_COLUMNS ?= `echo $$(tput cols)`
CONSOLE_LINES ?= `echo $$(tput lines)` CONSOLE_LINES ?= `echo $$(tput lines)`
@@ -7,7 +12,7 @@ docker-build: ## Build a new image locally.
docker build -t mayanedms/mayanedms:$(IMAGE_VERSION) -f docker/Dockerfile . docker build -t mayanedms/mayanedms:$(IMAGE_VERSION) -f docker/Dockerfile .
docker-build-with-proxy: ## Build a new image locally using an APT proxy as APT_PROXY. docker-build-with-proxy: ## Build a new image locally using an APT proxy as APT_PROXY.
docker build -t mayanedms/mayanedms:$(IMAGE_VERSION) -f docker/Dockerfile --build-arg APT_PROXY=$(APT_PROXY) . docker build -t mayanedms/mayanedms:$(IMAGE_VERSION) -f docker/Dockerfile --build-arg APT_PROXY=$(APT_PROXY) --build-arg PIP_INDEX_URL=$(PIP_INDEX_URL) --build-arg PIP_TRUSTED_HOST=$(PIP_TRUSTED_HOST) --build-arg HTTP_PROXY=$(HTTP_PROXY) --build-arg HTTPS_PROXY=$(HTTPS_PROXY) .
docker-shell: ## Launch a bash instance inside a running container. Pass the container name via DOCKER_CONTAINER. docker-shell: ## Launch a bash instance inside a running container. Pass the container name via DOCKER_CONTAINER.
docker exec -e TERM=$(TERM) -e "COLUMNS=$(CONSOLE_COLUMNS)" -e "LINES=$(CONSOLE_LINES)" -it $(DOCKER_CONTAINER) /bin/bash docker exec -e TERM=$(TERM) -e "COLUMNS=$(CONSOLE_COLUMNS)" -e "LINES=$(CONSOLE_LINES)" -it $(DOCKER_CONTAINER) /bin/bash
@@ -23,3 +28,13 @@ docker-test-cleanup: ## Delete the test container and the test volume.
docker-test-all: ## Build and executed the test suite in a test container. docker-test-all: ## Build and executed the test suite in a test container.
docker-test-all: docker-build-with-proxy docker-test-all: docker-build-with-proxy
docker run --rm run-tests docker run --rm run-tests
docker-compose-build:
docker-compose -f docker/docker-compose.yml -p mayan-edms build
docker-compose-build-with-proxy:
docker-compose -f docker/docker-compose.yml -p mayan-edms build --build-arg APT_PROXY=$(APT_PROXY) --build-arg PIP_INDEX_URL=$(PIP_INDEX_URL) --build-arg PIP_TRUSTED_HOST=$(PIP_TRUSTED_HOST) --build-arg HTTP_PROXY=$(HTTP_PROXY) --build-arg HTTPS_PROXY=$(HTTPS_PROXY)
docker-compose-up:
docker-compose -f docker/docker-compose.yml -p mayan-edms up

View File

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

View File

@@ -1,58 +1,130 @@
version: '2.1' version: '3.7'
volumes: networks:
broker: mayan-bridge:
driver: local driver: bridge
app:
driver: local
db:
driver: local
results:
driver: local
services: services:
broker: app:
container_name: mayan-edms-broker build:
image: healthcheck/rabbitmq context: ..
environment: dockerfile: ./docker/Dockerfile
RABBITMQ_DEFAULT_USER: mayan
RABBITMQ_DEFAULT_PASS: mayan
RABBITMQ_DEFAULT_VHOST: mayan
volumes:
- broker:/var/lib/rabbitmq
results:
container_name: mayan-edms-results
image: healthcheck/redis
volumes:
- results:/data
db:
container_name: mayan-edms-db
image: healthcheck/postgres
environment:
POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayan-password
POSTGRES_USER: mayan
volumes:
- db:/var/lib/postgresql/data
mayan-edms:
container_name: mayan-edms-app
image: mayanedms/mayanedms:latest
depends_on: depends_on:
broker: - postgresql
condition: service_healthy - redis
db: # Enable to use RabbitMQ
condition: service_healthy #- rabbitmq
results: environment: &mayan_env
condition: service_healthy # Enable to use RabbitMQ
environment: # MAYAN_CELERY_BROKER_URL: amqp://mayan:mayanrabbitpass@broker:5672/mayan
MAYAN_BROKER_URL: amqp://mayan:mayan@broker:5672/mayan # Disable Redis Broker to use RabbitMQ as Broker
MAYAN_CELERY_RESULT_BACKEND: redis://results:6379/0 MAYAN_CELERY_BROKER_URL: redis://redis:6379/1
MAYAN_DATABASE_ENGINE: django.db.backends.postgresql MAYAN_CELERY_RESULT_BACKEND: redis://redis:6379/0
MAYAN_DATABASE_HOST: db MAYAN_DATABASES: "{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayandbpass','USER':'mayan','HOST':'postgresql'}}"
MAYAN_DATABASE_NAME: mayan image: mayanedms/mayanedms:3.2.6
MAYAN_DATABASE_PASSWORD: mayan-password networks:
MAYAN_DATABASE_USER: mayan - mayan-bridge
ports: ports:
- "80:8000" - "80:8000"
restart: unless-stopped
volumes: volumes:
- app:/var/lib/mayan - /docker-volumes/mayan-edms/media:/var/lib/mayan
postgresql:
environment:
POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayandbpass
POSTGRES_USER: mayan
image: postgres:9.6
networks:
- mayan-bridge
restart: unless-stopped
volumes:
- /docker-volumes/mayan-edms/postgres:/var/lib/postgresql/data
redis:
command:
- redis-server
- --databases
- "2"
- --maxmemory-policy
- allkeys-lru
- --save
- ""
image: redis:5.0
networks:
- mayan-bridge
restart: unless-stopped
# Optional services
# celery_flower:
# command:
# - run_celery
# - flower
# depends_on:
# - postgresql
# - redis
# # Enable to use RabbitMQ
# # - rabbitmq
# environment:
# <<: *mayan_env
# image: mayanedms/mayanedms:3.2.6
# networks:
# - mayan-bridge
# ports:
# - "5555:5555"
# restart: unless-stopped
# Enable to use RabbitMQ
# rabbitmq:
# container_name: mayan-edms-rabbitmq
# image: healthcheck/rabbitmq
# environment:
# RABBITMQ_DEFAULT_USER: mayan
# RABBITMQ_DEFAULT_PASS: mayanrabbitpass
# RABBITMQ_DEFAULT_VHOST: mayan
# networks:
# - mayan-bridge
# restart: unless-stopped
# volumes:
# - /docker-volumes/mayan-edms/rabbitmq:/var/lib/rabbitmq
# Enable to run stand alone workers
# worker_fast:
# command:
# - run_worker
# - fast
# depends_on:
# - postgresql
# - redis
# # Enable to use RabbitMQ
# # - rabbitmq
# environment:
# <<: *mayan_env
# image: mayanedms/mayanedms:3.2.6
# networks:
# - mayan-bridge
# restart: unless-stopped
# volumes:
# - /docker-volumes/mayan-edms/media:/var/lib/mayan
# Enable to run stand frontend gunicorn
# frontend:
# command:
# - run_frontend
# depends_on:
# - postgresql
# - redis
# # Enable to use RabbitMQ
# # - rabbitmq
# environment:
# <<: *mayan_env
# image: mayanedms/mayanedms:3.2.6
# networks:
# - mayan-bridge
# ports:
# - "81:8000"
# restart: unless-stopped
# volumes:
# - /docker-volumes/mayan-edms/media:/var/lib/mayan

View File

@@ -1,4 +1,7 @@
#!/bin/sh #!/bin/bash
# Use bash and not sh to support argument slicing "${@:2}"
# sh defaults to dash instead of bash.
set -e set -e
echo "mayan: starting entrypoint.sh" echo "mayan: starting entrypoint.sh"
@@ -11,17 +14,13 @@ DEFAULT_USER_GID=1000
MAYAN_USER_UID=${MAYAN_USER_UID:-${DEFAULT_USER_UID}} MAYAN_USER_UID=${MAYAN_USER_UID:-${DEFAULT_USER_UID}}
MAYAN_USER_GID=${MAYAN_USER_GID:-${DEFAULT_USER_GID}} MAYAN_USER_GID=${MAYAN_USER_GID:-${DEFAULT_USER_GID}}
export MAYAN_DEFAULT_BROKER_URL=redis://127.0.0.1:6379/0
export MAYAN_DEFAULT_CELERY_RESULT_BACKEND=redis://127.0.0.1:6379/0
export MAYAN_ALLOWED_HOSTS='["*"]' export MAYAN_ALLOWED_HOSTS='["*"]'
export MAYAN_BIN=/opt/mayan-edms/bin/mayan-edms.py export MAYAN_BIN=/opt/mayan-edms/bin/mayan-edms.py
export MAYAN_BROKER_URL=${MAYAN_BROKER_URL:-${MAYAN_DEFAULT_BROKER_URL}}
export MAYAN_CELERY_RESULT_BACKEND=${MAYAN_CELERY_RESULT_BACKEND:-${MAYAN_DEFAULT_CELERY_RESULT_BACKEND}}
export MAYAN_INSTALL_DIR=/opt/mayan-edms export MAYAN_INSTALL_DIR=/opt/mayan-edms
export MAYAN_PYTHON_BIN_DIR=/opt/mayan-edms/bin/ export MAYAN_PYTHON_BIN_DIR=/opt/mayan-edms/bin/
export MAYAN_MEDIA_ROOT=/var/lib/mayan export MAYAN_MEDIA_ROOT=/var/lib/mayan
export MAYAN_SETTINGS_MODULE=${MAYAN_SETTINGS_MODULE:-mayan.settings.production} export MAYAN_SETTINGS_MODULE=${MAYAN_SETTINGS_MODULE:-mayan.settings.production}
export DJANGO_SETTINGS_MODULE=${MAYAN_SETTINGS_MODULE}
export MAYAN_GUNICORN_BIN=${MAYAN_PYTHON_BIN_DIR}gunicorn export MAYAN_GUNICORN_BIN=${MAYAN_PYTHON_BIN_DIR}gunicorn
export MAYAN_GUNICORN_WORKERS=${MAYAN_GUNICORN_WORKERS:-2} export MAYAN_GUNICORN_WORKERS=${MAYAN_GUNICORN_WORKERS:-2}
@@ -29,9 +28,9 @@ export MAYAN_GUNICORN_TIMEOUT=${MAYAN_GUNICORN_TIMEOUT:-120}
export MAYAN_PIP_BIN=${MAYAN_PYTHON_BIN_DIR}pip export MAYAN_PIP_BIN=${MAYAN_PYTHON_BIN_DIR}pip
export MAYAN_STATIC_ROOT=${MAYAN_INSTALL_DIR}/static export MAYAN_STATIC_ROOT=${MAYAN_INSTALL_DIR}/static
MAYAN_WORKER_FAST_CONCURRENCY=${MAYAN_WORKER_FAST_CONCURRENCY:-1} MAYAN_WORKER_FAST_CONCURRENCY=${MAYAN_WORKER_FAST_CONCURRENCY:-0}
MAYAN_WORKER_MEDIUM_CONCURRENCY=${MAYAN_WORKER_MEDIUM_CONCURRENCY:-1} MAYAN_WORKER_MEDIUM_CONCURRENCY=${MAYAN_WORKER_MEDIUM_CONCURRENCY:-0}
MAYAN_WORKER_SLOW_CONCURRENCY=${MAYAN_WORKER_SLOW_CONCURRENCY:-1} MAYAN_WORKER_SLOW_CONCURRENCY=${MAYAN_WORKER_SLOW_CONCURRENCY:-0}
update_uid_gid() { update_uid_gid() {
echo "mayan: update_uid_gid()" echo "mayan: update_uid_gid()"
@@ -40,7 +39,7 @@ update_uid_gid() {
if [ ${MAYAN_USER_UID} -ne ${DEFAULT_USER_UID} ] || [ ${MAYAN_USER_GID} -ne ${DEFAULT_USER_GID} ]; then if [ ${MAYAN_USER_UID} -ne ${DEFAULT_USER_UID} ] || [ ${MAYAN_USER_GID} -ne ${DEFAULT_USER_GID} ]; then
echo "mayan: Updating file ownership. This might take a while if there are many documents." echo "mayan: Updating file ownership. This might take a while if there are many documents."
chown -R mayan:mayan ${MAYAN_INSTALL_DIR} ${MAYAN_STATIC_ROOT} ${MAYAN_MEDIA_ROOT} chown mayan:mayan ${MAYAN_INSTALL_DIR} ${MAYAN_STATIC_ROOT} ${MAYAN_MEDIA_ROOT}
fi fi
} }
@@ -67,11 +66,9 @@ else
fi fi
export MAYAN_WORKER_SLOW_CONCURRENCY export MAYAN_WORKER_SLOW_CONCURRENCY
export CELERY_ALWAYS_EAGER=False # Allow importing of user setting modules
export PYTHONPATH=$PYTHONPATH:$MAYAN_MEDIA_ROOT export PYTHONPATH=$PYTHONPATH:$MAYAN_MEDIA_ROOT
chown mayan:mayan /var/lib/mayan -R
apt_get_install() { apt_get_install() {
apt-get -q update apt-get -q update
apt-get install -y --force-yes --no-install-recommends --auto-remove "$@" apt-get install -y --force-yes --no-install-recommends --auto-remove "$@"
@@ -79,9 +76,9 @@ apt_get_install() {
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
} }
initialize() { initialsetup() {
echo "mayan: initialize()" echo "mayan: initialsetup()"
su mayan -c "${MAYAN_BIN} initialsetup --force --no-javascript" su mayan -c "${MAYAN_BIN} initialsetup --force --no-dependencies"
} }
os_package_installs() { os_package_installs() {
@@ -98,43 +95,71 @@ pip_installs() {
fi fi
} }
start() { run_all() {
echo "mayan: start()" echo "mayan: start()"
rm -rf /var/run/supervisor.sock rm -rf /var/run/supervisor.sock
exec /usr/bin/supervisord -nc /etc/supervisor/supervisord.conf exec /usr/bin/supervisord -nc /etc/supervisor/supervisord.conf
} }
upgrade() { performupgrade() {
echo "mayan: upgrade()" echo "mayan: performupgrade()"
su mayan -c "${MAYAN_BIN} performupgrade --no-javascript" su mayan -c "${MAYAN_BIN} performupgrade --no-dependencies"
}
make_ready() {
# Check if this is a new install, otherwise try to upgrade the existing
# installation on subsequent starts
if [ ! -f $INSTALL_FLAG ]; then
initialsetup
else
performupgrade
fi
}
set_uid_guid() {
echo "mayan: changing uid/guid"
usermod mayan -u ${MAYAN_USER_UID:-${DEFAULT_USER_UID}}
groupmod mayan -g ${MAYAN_USER_GID:-${DEFAULT_USER_GID}}
} }
os_package_installs || true os_package_installs || true
pip_installs || true pip_installs || true
chown mayan:mayan /var/lib/mayan -R
case "$1" in case "$1" in
mayan) # Check if this is a new install, otherwise try to upgrade the existing run_initialsetup)
# installation on subsequent starts initialsetup
if [ ! -f $INSTALL_FLAG ]; then ;;
initialize
else
upgrade
fi
start
;;
run-tests) # Check if this is a new install, otherwise try to upgrade the existing run_performupgrade)
# installation on subsequent starts performupgrade
if [ ! -f $INSTALL_FLAG ]; then ;;
initialize
else
upgrade
fi
run-tests.sh
;;
*) su mayan -c "$@"; run_all)
;; make_ready
run_all
;;
run_celery)
run_celery.sh "${@:2}"
;;
run_frontend)
run_frontend.sh
;;
run_tests)
make_ready
run_tests.sh
;;
run_worker)
run_worker.sh "${@:2}"
;;
*)
su mayan -c "$@"
;;
esac esac

View File

@@ -0,0 +1,5 @@
#!/bin/bash
# Use -A and not --app. Both are the same but behave differently
# -A can be located before the command while --app cannot.
su mayan -c "${MAYAN_PYTHON_BIN_DIR}celery -A mayan $@"

View File

@@ -0,0 +1,7 @@
#!/bin/bash
MAYAN_GUNICORN_MAX_REQUESTS=${MAYAN_GUNICORN_MAX_REQUESTS:-500}
MAYAN_GUNICORN_MAX_REQUESTS_JITTERS=${MAYAN_GUNICORN_MAX_REQUESTS_JITTERS:-50}
MAYAN_GUNICORN_WORKER_CLASS=${MAYAN_GUNICORN_WORKER_CLASS:-sync}
su mayan -c "${MAYAN_PYTHON_BIN_DIR}gunicorn -w ${MAYAN_GUNICORN_WORKERS} mayan.wsgi --max-requests ${MAYAN_GUNICORN_MAX_REQUESTS} --max-requests-jitter ${MAYAN_GUNICORN_MAX_REQUESTS_JITTERS} --worker-class ${MAYAN_GUNICORN_WORKER_CLASS} --bind 0.0.0.0:8000 --timeout ${MAYAN_GUNICORN_TIMEOUT}"

View File

@@ -0,0 +1,8 @@
#!/bin/bash
QUEUE_LIST=`MAYAN_WORKER_NAME=$1 su mayan -c "${MAYAN_PYTHON_BIN_DIR}mayan-edms.py platformtemplate worker_queues"`
# Use -A and not --app. Both are the same but behave differently
# -A can be located before the command while --app cannot.
# Pass ${@:2} to allow overriding the defaults arguments
su mayan -c "${MAYAN_PYTHON_BIN_DIR}celery -A mayan worker -Ofair -l ERROR -Q $QUEUE_LIST ${@:2}"

View File

@@ -1 +1 @@
3.2.8 3.2.7

View File

@@ -9,24 +9,32 @@ volumes:
services: services:
db: db:
image: postgres
environment: environment:
POSTGRES_DB: mayan POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayan-password POSTGRES_PASSWORD: mayandbpass
POSTGRES_USER: mayan POSTGRES_USER: mayan
image: postgres
volumes: volumes:
- db:/var/lib/postgresql/data - db:/var/lib/postgresql/data
app: app:
environment:
MAYAN_CELERY_BROKER_URL: redis://redis:6379/1
MAYAN_CELERY_RESULT_BACKEND: redis://redis:6379/0
MAYAN_DATABASES: "{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayandbpass','USER':'mayan','HOST':'db'}}"
image: mayanedms/mayanedms:latest image: mayanedms/mayanedms:latest
ports: ports:
- 80:8000 - 80:8000
environment:
MAYAN_DATABASE_ENGINE: django.db.backends.postgresql
MAYAN_DATABASE_HOST: db
MAYAN_DATABASE_NAME: mayan
MAYAN_DATABASE_PASSWORD: mayan-password
MAYAN_DATABASE_USER: mayan
MAYAN_DATABASE_CONN_MAX_AGE: 0
volumes: volumes:
- app:/var/lib/mayan - app:/var/lib/mayan
redis:
command:
- redis-server
- --databases
- "2"
- --maxmemory-policy
- allkeys-lru
- --save
- ""
image: redis:5.0

View File

@@ -127,9 +127,8 @@ For another setup that offers more performance and scalability refer to the
:: ::
sudo -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \ sudo -u mayan MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'127.0.0.1'}}" \
MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \ MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py initialsetup /opt/mayan-edms/bin/mayan-edms.py initialsetup
@@ -148,9 +147,8 @@ For another setup that offers more performance and scalability refer to the
------------------------------------------------------------------------ ------------------------------------------------------------------------
:: ::
sudo MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \ sudo mayan MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'127.0.0.1'}}" \
MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \ MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord > /etc/supervisor/conf.d/mayan.conf /opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord > /etc/supervisor/conf.d/mayan.conf
@@ -222,11 +220,11 @@ of a restart or power failure. The Gunicorn workers are increased to 3.
--------------------------------------------------------------------- ---------------------------------------------------------------------
Replace (paying attention to the comma at the end):: Replace (paying attention to the comma at the end)::
MAYAN_BROKER_URL="redis://127.0.0.1:6379/0", MAYAN_CELERY_BROKER_URL="redis://127.0.0.1:6379/0",
with:: with::
MAYAN_BROKER_URL="amqp://mayan:mayanrabbitmqpassword@localhost:5672/mayan", MAYAN_CELERY_BROKER_URL="amqp://mayan:mayanrabbitmqpassword@localhost:5672/mayan",
increase the number of Gunicorn workers to 3 in the line (``-w 2`` section):: increase the number of Gunicorn workers to 3 in the line (``-w 2`` section)::

View File

@@ -226,46 +226,32 @@ Git branch structure
Mayan EDMS follows a simplified model layout based on Vincent Driessen's Mayan EDMS follows a simplified model layout based on Vincent Driessen's
`Successful Git Branching Model`_ blog post. `Successful Git Branching Model`_ blog post.
``/versions/micro`` ``development``
Working branch for the next bugfix release. Micro increment (third digit). The "next release" branch, likely unstable, don't use in production.
Only bug fixes, minor features, back-ported urgent features. This
branch is stable and safe for production.
``/versions/minor``
Working branch for the next minor release (second digit). New features,
occasional breakage. Not for production but should run in test
environment most of the time. This is the branch you will want to
try out if you want to check out new features.
``/versions/major``
Working branch for the next major release (first digit). New features,
incompatible changes to the user facing interfaces. Broken most of the
time, not for production and should only be cloned by developers
with experience with Mayan's development.
``master`` ``master``
Current production release (|version|). Points to the latest version of Current production release (|version|). Points to the latest version of
the latest series. Production quality code. the latest series. Production quality code.
``features/`` ``feature/``
Working branches for unfinished and unmerged feature. Likely unstable, Unfinished/unmerged feature. Likely unstable, don't use in production.
don't use in production. Once the feature is complete, it is merged
into one of the versions branches and deleted.
Special branches: Special branches:
``releases/all`` ``releases/all``
Pushing code to this branch will trigger the build and release Used by the continuous delivery system to trigger the build and release
a new Docker image, Documentation and Python package. a new Docker image, Documentation and Python package.
``releases/docker`` ``releases/docker``
Pushing code to this branch will trigger the build and release Used by the continuous delivery system to trigger the build and release
of a new Docker image to Docker Hub. of a new Docker image to Docker Hub.
``releases/documentation`` ``releases/documentation``
Pushing code to this branch will trigger the build and release Used by the continuous delivery system to trigger the build and release
of new documentation. of new documentation.
``releases/python`` ``releases/python``
Pushing code to this branch will trigger the build and release Used by the continuous delivery system to trigger the build and release
of a new Python package to PyPI. of a new Python package to PyPI.
``nightly`` ``nightly``
Pushing code to this branch will trigger the build and release Used by the continuous delivery system to trigger the build and release
of a new Docker image based on development code to the GitLab image of a new Docker image based on development code to the GitLab image
repository only. The image will not be published to Docker Hub. repository.
Each release is tagged separately using annotated Git tags. Each release is tagged separately using annotated Git tags.
@@ -533,7 +519,7 @@ Release using GitLab CI
:: ::
git checkout releases/all git checkout releases/all
git merge <corresponding branch> git merge versions/next
#. Push code to trigger builds: #. Push code to trigger builds:
:: ::

View File

@@ -49,12 +49,7 @@ Finally create and run a Mayan EDMS container::
--name mayan-edms \ --name mayan-edms \
--restart=always \ --restart=always \
-p 80:8000 \ -p 80:8000 \
-e MAYAN_DATABASE_ENGINE=django.db.backends.postgresql \ -e MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'172.17.0.1'}}" \
-e MAYAN_DATABASE_HOST=172.17.0.1 \
-e MAYAN_DATABASE_NAME=mayan \
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
-e MAYAN_DATABASE_USER=mayan \
-e MAYAN_DATABASE_CONN_MAX_AGE=0 \
-v /docker-volumes/mayan-edms/media:/var/lib/mayan \ -v /docker-volumes/mayan-edms/media:/var/lib/mayan \
mayanedms/mayanedms:<version> mayanedms/mayanedms:<version>
@@ -108,12 +103,7 @@ instead of the IP address of the Docker host (``172.17.0.1``)::
--network=mayan \ --network=mayan \
--restart=always \ --restart=always \
-p 80:8000 \ -p 80:8000 \
-e MAYAN_DATABASE_ENGINE=django.db.backends.postgresql \ -e MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'mayan-edms-postgres'}}" \
-e MAYAN_DATABASE_HOST=mayan-edms-postgres \
-e MAYAN_DATABASE_NAME=mayan \
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
-e MAYAN_DATABASE_USER=mayan \
-e MAYAN_DATABASE_CONN_MAX_AGE=0 \
-v /docker-volumes/mayan-edms/media:/var/lib/mayan \ -v /docker-volumes/mayan-edms/media:/var/lib/mayan \
mayanedms/mayanedms:<version> mayanedms/mayanedms:<version>
@@ -137,108 +127,14 @@ To start the container again::
Environment Variables Environment Variables
--------------------- ---------------------
The Mayan EDMS image can be configure via environment variables. The common set of settings can also be modified via environment variables when
using the Docker image. In addition to the common set of settings, some Docker
``MAYAN_DATABASE_ENGINE`` image specific environment variables are available.
Defaults to ``None``. This environment variable configures the database
backend to use. If left unset, SQLite will be used. The database backends
supported by this Docker image are:
- ``'django.db.backends.postgresql'``
- ``'django.db.backends.mysql'``
- ``'django.db.backends.sqlite3'``
When using the SQLite backend, the database file will be saved in the Docker
volume. The SQLite database as used by Mayan EDMS is meant only for development
or testing, never use it in production.
``MAYAN_DATABASE_NAME``
Defaults to 'mayan'. This optional environment variable can be used to define
the database name that Mayan EDMS will connect to. For more information read
the pertinent Django documentation page:
:django-docs:`Connecting to the database <ref/databases/#connecting-to-the-database>`
``MAYAN_DATABASE_USER``
Defaults to 'mayan'. This optional environment variable is used to set the
username that will be used to connect to the database. For more information
read the pertinent Django documentation page:
:django-docs:`Settings, USER <ref/settings/#user>`
``MAYAN_DATABASE_PASSWORD``
Defaults to ''. This optional environment variable is used to set the
password that will be used to connect to the database. For more information
read the pertinent Django documentation page:
:django-docs:`Settings, PASSWORD <ref/settings/#password>`
``MAYAN_DATABASE_HOST``
Defaults to `None`. This optional environment variable is used to set the
hostname that will be used to connect to the database. This can be the
hostname of another container or an IP address. For more information read
the pertinent Django documentation page:
:django-docs:`Settings, HOST <ref/settings/#host>`
``MAYAN_DATABASE_PORT``
Defaults to `None`. This optional environment variable is used to set the
port number to use when connecting to the database. An empty string means
the default port. Not used with SQLite. For more information read the
pertinent Django documentation page:
:django-docs:`Settings, PORT <ref/settings/#port>`
``MAYAN_BROKER_URL``
This optional environment variable determines the broker that Celery will use
to relay task messages between the frontend code and the background workers.
For more information read the pertinent Celery Kombu documentation page: `Broker URL`_
.. _Broker URL: http://kombu.readthedocs.io/en/latest/userguide/connections.html#connection-urls
This Docker image supports using Redis and RabbitMQ as brokers.
Caveat: If the `MAYAN_BROKER_URL` and `MAYAN_CELERY_RESULT_BACKEND` environment
variables are specified, the built-in Redis server inside the container will
be disabled.
``MAYAN_CELERY_RESULT_BACKEND``
This optional environment variable determines the results backend that Celery
will use to relay result messages from the background workers to the frontend
code. For more information read the pertinent Celery Kombu documentation page:
`Task result backend settings`_
.. _Task result backend settings: http://docs.celeryproject.org/en/3.1/configuration.html#celery-result-backend
This Docker image supports using Redis and RabbitMQ as result backends.
Caveat: If the `MAYAN_BROKER_URL` and `MAYAN_CELERY_RESULT_BACKEND` environment
variables are specified, the built-in Redis server inside the container will
be disabled.
``MAYAN_SETTINGS_MODULE`` ``MAYAN_SETTINGS_MODULE``
Optional. Allows loading an alternate settings file. Optional. Allows loading an alternate settings file.
``MAYAN_DATABASE_CONN_MAX_AGE``
Amount in seconds to keep a database connection alive. Allow reuse of database
connections. For more information read the pertinent Django documentation
page: :django-docs:`Settings, CONN_MAX_AGE <ref/settings/#conn-max-age>`
According to new information Gunicorn's microthreads don't share connections
and will exhaust the available Postgres connections available if a number
other than 0 is used. Reference: https://serverfault.com/questions/635100/django-conn-max-age-persists-connections-but-doesnt-reuse-them-with-postgresq
and https://github.com/benoitc/gunicorn/issues/996
``MAYAN_GUNICORN_TIMEOUT``
Optional. Changes the amount of time the frontend worker will wait for a
request to finish before raising a timeout error. The default is 120
seconds.
``MAYAN_GUNICORN_WORKERS`` ``MAYAN_GUNICORN_WORKERS``
Optional. This environment variable controls the number of frontend workers Optional. This environment variable controls the number of frontend workers
@@ -281,6 +177,15 @@ Optional. Changes the GID of the ``mayan`` user internal to the Docker
container. Defaults to 1000. container. Defaults to 1000.
Included drivers
----------------
The Docker image supports using Redis and RabbitMQ as result backends. For
databases, the image includes support for PostgreSQL and MySQL/MariaDB.
Support for additional brokers or databases may be added using the
``MAYAN_APT_INSTALL`` environment variable.
.. _docker-accessing-outside-data: .. _docker-accessing-outside-data:
Accessing outside data Accessing outside data
@@ -448,6 +353,7 @@ These are:
Nightly images Nightly images
============== ==============
The continuous integration pipeline used for testing development builds also The continuous integration pipeline used for testing development builds also
produces a resulting Docker image. These are build automatically and their produces a resulting Docker image. These are build automatically and their
stability is not guaranteed. They should never be used in production. stability is not guaranteed. They should never be used in production.

View File

@@ -94,11 +94,11 @@ For the Docker image, launch a separate RabbitMQ container
docker run -d --name mayan-edms-rabbitmq -e RABBITMQ_DEFAULT_USER=mayan -e RABBITMQ_DEFAULT_PASS=mayanrabbitmqpassword -e RABBITMQ_DEFAULT_VHOST=mayan rabbitmq:3 docker run -d --name mayan-edms-rabbitmq -e RABBITMQ_DEFAULT_USER=mayan -e RABBITMQ_DEFAULT_PASS=mayanrabbitmqpassword -e RABBITMQ_DEFAULT_VHOST=mayan rabbitmq:3
Pass the MAYAN_BROKER_URL environment variable (https://kombu.readthedocs.io/en/latest/userguide/connections.html#connection-urls) Pass the MAYAN_CELERY_BROKER_URL environment variable (https://kombu.readthedocs.io/en/latest/userguide/connections.html#connection-urls)
to the Mayan EDMS container so that it uses the RabbitMQ container the to the Mayan EDMS container so that it uses the RabbitMQ container the
message broker:: message broker::
-e MAYAN_BROKER_URL="amqp://mayan:mayanrabbitmqpassword@localhost:5672/mayan", -e MAYAN_CELERY_BROKER_URL="amqp://mayan:mayanrabbitmqpassword@localhost:5672/mayan",
When tasks finish, they leave behind a return status or the result of a When tasks finish, they leave behind a return status or the result of a
calculation, these are stored for a while so that whoever requested the calculation, these are stored for a while so that whoever requested the

View File

@@ -22,9 +22,7 @@ import mayan
# If extensions (or modules to document with autodoc) are in another directory, # If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the # add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here. # documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.append( sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "_ext")))
os.path.abspath(os.path.join(os.path.dirname(__file__), '_ext'))
)
# -- General configuration ----------------------------------------------------- # -- General configuration -----------------------------------------------------
@@ -36,13 +34,12 @@ sys.path.append(
#extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode'] #extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode']
#extensions = ["djangodocs", "sphinx.ext.intersphinx"] #extensions = ["djangodocs", "sphinx.ext.intersphinx"]
extensions = [ extensions = [
'sphinx.ext.extlinks', 'sphinxcontrib.blockdiag', 'sphinx.ext.extlinks', 'sphinxcontrib.blockdiag', 'sphinxcontrib.spelling'
'sphinxcontrib.spelling'
] ]
blockdiag_antialias = True blockdiag_antialias = True
blockdiag_html_image_format = 'SVG' blockdiag_html_image_format = "SVG"
blockdiag_latex_image_format = 'PDF' blockdiag_latex_image_format = "PDF"
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ['_templates']
@@ -109,14 +106,12 @@ pygments_style = 'sphinx'
# The theme to use for HTML and HTML Help pages. See the documentation for # The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes. # a list of builtin themes.
html_theme = 'sphinx_rtd_theme' html_theme = 'classic'
# Theme options are theme-specific and customize the look and feel of a theme # Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the # further. For a list of options available for each theme, see the
# documentation. # documentation.
html_theme_options = { #html_theme_options = {}
'analytics_id': 'UA-52965619-6',
}
# Add any paths that contain custom themes here, relative to this directory. # Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = [] #html_theme_path = []
@@ -144,7 +139,7 @@ html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format. # using the given strftime format.
html_last_updated_fmt = '%b %d, %Y' #html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to # If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities. # typographically correct entities.
@@ -167,7 +162,7 @@ html_last_updated_fmt = '%b %d, %Y'
#html_split_index = False #html_split_index = False
# If true, links to the reST sources are added to the pages. # If true, links to the reST sources are added to the pages.
html_show_sourcelink = False #html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True #html_show_sphinx = True
@@ -186,6 +181,8 @@ html_show_sourcelink = False
# Output file base name for HTML help builder. # Output file base name for HTML help builder.
htmlhelp_basename = 'MayanEDMSdoc' htmlhelp_basename = 'MayanEDMSdoc'
html_show_sourcelink = False
html_show_sphinx = False html_show_sphinx = False
# -- Options for LaTeX output -------------------------------------------------- # -- Options for LaTeX output --------------------------------------------------
@@ -236,6 +233,8 @@ man_pages = [
[mayan.__author__], 1) [mayan.__author__], 1)
] ]
html_theme = 'sphinx_rtd_theme'
# -- External links -- # -- External links --
extlinks = { extlinks = {
'django-docs': ( 'django-docs': (
@@ -254,6 +253,5 @@ extlinks = {
) )
} }
def setup(app): def setup(app):
app.add_stylesheet('css/custom.css') app.add_stylesheet('css/custom.css')

View File

@@ -1,161 +0,0 @@
Version 3.2.8
=============
Released: October 1, 2019
Changes
-------
API
^^^
Fix an error when accessing some API entry points without
being authenticated. Accessing API endpoints without being authenticated
will now always return empty results.
Cabinets
^^^^^^^^
Tweaked the jstree component's appearance to cope with long labels.
Added a scrollbar, reduced the font size, switched to a sans serif font,
and reduced padding. Thanks for forum user @briboe for the report.
Workflow actions to add and remove documents from cabinets was added.
Dependencies
^^^^^^^^^^^^
The Django version used was updated to version 1.11.24. The jQuery version
used was updated to version 3.4.1. Both as fully backwards compatible with
their previous versions.
OCR
^^^
Support was added to delete the content of document's OCR or parsed content.
Events for both situations was added allowing content deletion to be used
as workflow transition triggers.
Docker
^^^^^^
A missing recursive option was added to the Docker entrypoint
command "chown" to change the ownership of files when specifying a custom
UID or GID. Closes GitLab issue #668. Thanks to John Wice (@brilthor)
for the report.
Two fonts were added to the Docker image to support rendering Chinese office
documents. Closes GitLab issue #666. Thanks to javawcy (@javawcy) and forum
user @leoliu for the report and help closing this issue.
Usability
^^^^^^^^^
Descriptions for screenreaders was added via image alt tag. The user interface
will also now allow scaling.
Removals
--------
- None
Upgrading from a previous version
---------------------------------
If installed via Python's PIP
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Remove deprecated requirements::
sudo -u mayan curl https://gitlab.com/mayan-edms/mayan-edms/raw/master/removals.txt -o /tmp/removals.txt && sudo -u mayan /opt/mayan-edms/bin/pip uninstall -y -r /tmp/removals.txt
Type in the console::
sudo -u mayan /opt/mayan-edms/bin/pip install mayan-edms==3.2.8
the requirements will also be updated automatically.
Using Git
^^^^^^^^^
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Remove deprecated requirements::
$ pip uninstall -y -r removals.txt
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
^^^^^^^^^^^^
Perform these steps after updating the code from either step above.
Make a backup of your supervisord file::
sudo cp /etc/supervisor/conf.d/mayan.conf /etc/supervisor/conf.d/mayan.conf.bck
Update the supervisord configuration file. Replace the environment
variables values show here with your respective settings. This step will refresh
the supervisord configuration file with the new queues and the latest
recommended layout::
sudo MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \
MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \
MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord > /etc/supervisor/conf.d/mayan.conf
Edit the supervisord configuration file and update any setting the template
generator missed::
sudo vi /etc/supervisor/conf.d/mayan.conf
Migrate existing database schema with::
sudo -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \
MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \
MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py performupgrade
Add new static media::
sudo -u mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py preparestatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
-----------------------------
- None
Bugs fixed or issues closed
---------------------------
- :gitlab-issue:`666` Chinese document such as .doc can't display well.
- :gitlab-issue:`668` Permission denied errors with custom uid persist (650 needs re-open)
- :forum-topic:`1120` Cabinet Presentation
- :forum-topic:`2202` Cannot display Chinese character and cannot identify Excel files
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

213
docs/releases/3.3.rst Normal file
View File

@@ -0,0 +1,213 @@
Version 3.3
===========
Released: XX XX, 2019
Changes
-------
- Add support for icon shadows.
- Add icons and no-result template to the object error log view and
links.
- Use Select2 widget for the document type selection form.
- Backport the vertical main menu update. This update splits the previous
main menu into a new menu in the same location as the previous one
now called the top bar, and a new vertical main menu on the left side.
The vertical menu remain open even when clicking on items and upon
a browser refresh will also restore its state to match the selected
view.
- Backport workflow preview refactor. GitLab issue #532.
- Add support for source column inheritance.
- Add support for source column exclusion.
- Backport workflow context support.
- Backport workflow transitions field support.
- Backport workflow email action.
- Backport individual index rebuild support.
- Rename the installjavascript command to installdependencies.
- Remove database conversion command.
- Remove support for quoted configuration entries. Support unquoted,
nested dictionaries in the configuration. Requires manual
update of existing config.yml files.
- Support user specified locations for the configuration file with the
CONFIGURATION_FILEPATH (MAYAN_CONFIGURATION_FILEPATH environment variable), and
CONFIGURATION_LAST_GOOD_FILEPATH
(MAYAN_CONFIGURATION_LAST_GOOD_FILEPATH environment variable) settings.
- Move bootstrapped settings code to their own module in the smart_settings apps.
- Remove individual database configuration options. All database configuration
is now done using MAYAN_DATABASES to mirror Django way of doing database setup.
- Added support for YAML encoded environment variables to the platform
templates apps.
- Move YAML code to its own module. Code now resides in common.serialization
in the form of two new functions: yaml_load and yaml_dump.
- Move Django and Celery settings. Django settings now reside in the smart
settings app. Celery settings now reside in the task manager app.
- Backport FakeStorageSubclass from versions/next. Placeholder class to allow
serializing the real storage subclass to support migrations.
Used by all configurable storages.
- Support checking in and out multiple documents.
- Remove encapsulate helper.
- Add support for menu inheritance.
- Emphasize source column labels.
- Backport file cache manager app.
- Convert document image cache to use file cache manager app.
Add setting DOCUMENTS_CACHE_MAXIMUM_SIZE defaults to 500 MB.
- Update Celery to version 4.3.0. Settings changed:
MAYAN_BROKER_URL to MAYAN_CELERY_BROKER_URL,
MAYAN_CELERY_ALWAYS_EAGER to MAYAN_CELERY_TASK_ALWAYS_EAGER.
- Replace djcelery and replace it with django-celery-beat.
- Update Celery to version 4.3.0 with 55e9b2263cbdb9b449361412fd18d8ee0a442dd3
from versions/next, code from GitLab issue #594 and GitLab merge request !55.
Thanks to Jakob Haufe (@sur5r) and Jesaja Everling (@jeverling)
for much of the research and code updates.
- Support wildcard MIME type associations for the file metadata drivers.
- Rename MAYAN_GUID to MAYAN_GID
- Update Gunicorn to use sync workers.
- Include devpi-server as a development dependency.
- Update default Docker stack file.
- Remove Redis from the Docker image.
- Add Celery flower to the Docker image.
- Allow PIP proxying to the Docker image during build.
- Default Celery worker concurrency to 0 (auto).
- Set DJANGO_SETTINGS_MODULE environment variable to make it
available to sub processes.
- Add entrypoint commands to run single workers, single gunicorn
or single celery commands like "flower".
- Add platform template to return queues for a worker.
- Remove task inspection from task manager app.
- Move pagination navigation inside the toolbar.
- Remove document image clear link and view.
This is now handled by the file caching app.
- Add web links app.
- Add support to display column help text
as a tooltip.
- Update numeric dashboard widget to display
thousand commas.
- Add support for disabling document pages.
- Add support for converter layers.
- Add redactions app.
- Unify all line endings to be Linux style.
- Add support for changing the system messages position.
GitLab issue #640. Thanks to Matthias Urhahn (@d4rken).
Removals
--------
- Database conversion. Reason for removal. The database conversions support
provided by this feature (SQLite to PostgreSQL) was being confused with
database migrations and upgrades.
Database upgrades are the responsibility of the app and the framework.
Database conversions however are not the responsibility of the app (Mayan),
they are the responsibility of the framework.
Database conversion is outside the scope of what Mayan does but we added
the code, management command, instructions and testing setup to provide
this to our users until the framework (Django) decided to add this
themselves (like they did with migrations).
Continued confusion about the purpose of the feature and confusion about
how errors with this feature were a reflexion of the code quality of
Mayannecessitated the removal of the database conversion feature.
- Django environ
Upgrading from a previous version
---------------------------------
If installed via Python's PIP
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Remove deprecated requirements::
sudo -u mayan curl https://gitlab.com/mayan-edms/mayan-edms/raw/master/removals.txt -o /tmp/removals.txt && sudo -u mayan /opt/mayan-edms/bin/pip uninstall -y -r /tmp/removals.txt
Type in the console::
/opt/mayan-edms/bin/pip install mayan-edms==3.3
the requirements will also be updated automatically.
Using Git
^^^^^^^^^
If you installed Mayan EDMS by cloning the Git repository issue the commands::
git reset --hard HEAD
git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Remove deprecated requirements::
pip uninstall -y -r removals.txt
Next upgrade/add the new requirements::
pip install --upgrade -r requirements.txt
Common steps
^^^^^^^^^^^^
Perform these steps after updating the code from either step above.
Make a backup of your supervisord file::
sudo cp /etc/supervisor/conf.d/mayan.conf /etc/supervisor/conf.d/mayan.conf.bck
Update the supervisord configuration file. Replace the environment
variables values show here with your respective settings. This step will refresh
the supervisord configuration file with the new queues and the latest
recommended layout::
sudo MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'127.0.0.1'}}" \
MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord > /etc/supervisor/conf.d/mayan.conf
Edit the supervisord configuration file and update any setting the template
generator missed::
sudo vi /etc/supervisor/conf.d/mayan.conf
Migrate existing database schema with::
sudo -u mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media /opt/mayan-edms/bin/mayan-edms.py performupgrade
Add new static media::
sudo -u mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media /opt/mayan-edms/bin/mayan-edms.py preparestatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
-----------------------------
- Update quoted settings to be unquoted:
- COMMON_SHARED_STORAGE_ARGUMENTS
- CONVERTER_GRAPHICS_BACKEND_ARGUMENTS
- DOCUMENTS_CACHE_STORAGE_BACKEND_ARGUMENTS
- DOCUMENTS_STORAGE_BACKEND_ARGUMENTS
- FILE_METADATA_DRIVERS_ARGUMENTS
- SIGNATURES_STORAGE_BACKEND_ARGUMENTS
Bugs fixed or issues closed
---------------------------
- :gitlab-issue:`526` RuntimeWarning: Never call result.get() within a task!
- :gitlab-issue:`532` Workflow preview isn't updated right after transitions are modified
- :gitlab-issue:`540` hint-outdated/update documentation
- :gitlab-issue:`594` 3.2b1: Unable to install/run under Python 3.5/3.6/3.7
- :gitlab-issue:`634` Failing docker entrypoint when using secret config
- :gitlab-issue:`635` Build a docker image for Python3
- :gitlab-issue:`640` UX: "Toast" Popup position prevents access to actions
- :gitlab-issue:`644` Update sane-utils package in docker image.
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -20,7 +20,7 @@ versions of the documentation contain the release notes for any later releases.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
3.2.8 3.3
3.2.7 3.2.7
3.2.6 3.2.6
3.2.5 3.2.5

View File

@@ -1,9 +1,9 @@
from __future__ import unicode_literals from __future__ import unicode_literals
__title__ = 'Mayan EDMS' __title__ = 'Mayan EDMS'
__version__ = '3.2.8' __version__ = '3.2.7'
__build__ = 0x030208 __build__ = 0x030207
__build_string__ = 'v3.2.8_Tue Oct 1 13:31:40 2019 -0400' __build_string__ = 'v3.2.7_Wed Aug 28 17:31:08 2019 -0400'
__django_version__ = '1.11' __django_version__ = '1.11'
__author__ = 'Roberto Rosario' __author__ = 'Roberto Rosario'
__author_email__ = 'roberto.rosario@mayan-edms.com' __author_email__ = 'roberto.rosario@mayan-edms.com'

View File

@@ -12,6 +12,7 @@ logger = logging.getLogger(__name__)
class ModelPermission(object): class ModelPermission(object):
_functions = {} _functions = {}
_inheritances = {} _inheritances = {}
_manager_names = {}
_registry = {} _registry = {}
@classmethod @classmethod
@@ -20,22 +21,6 @@ class ModelPermission(object):
# TODO: Find method to revert the add_to_class('acls'...) # TODO: Find method to revert the add_to_class('acls'...)
# delattr doesn't work. # delattr doesn't work.
@classmethod
def register(cls, model, permissions):
from django.contrib.contenttypes.fields import GenericRelation
cls._registry.setdefault(model, [])
for permission in permissions:
cls._registry[model].append(permission)
AccessControlList = apps.get_model(
app_label='acls', model_name='AccessControlList'
)
model.add_to_class(
name='acls', value=GenericRelation(AccessControlList)
)
@classmethod @classmethod
def get_classes(cls, as_content_type=False): def get_classes(cls, as_content_type=False):
ContentType = apps.get_model( ContentType = apps.get_model(
@@ -97,6 +82,40 @@ class ModelPermission(object):
def get_inheritance(cls, model): def get_inheritance(cls, model):
return cls._inheritances[model] return cls._inheritances[model]
@classmethod
def get_manager(cls, model):
try:
manager_name = cls.get_manager_name(model=model)
except KeyError:
manager_name = None
if manager_name:
manager = getattr(model, manager_name)
else:
manager = model._meta.default_manager
return manager
@classmethod
def get_manager_name(cls, model):
return cls._manager_names[model]
@classmethod
def register(cls, model, permissions):
from django.contrib.contenttypes.fields import GenericRelation
cls._registry.setdefault(model, [])
for permission in permissions:
cls._registry[model].append(permission)
AccessControlList = apps.get_model(
app_label='acls', model_name='AccessControlList'
)
model.add_to_class(
name='acls', value=GenericRelation(AccessControlList)
)
@classmethod @classmethod
def register_function(cls, model, function): def register_function(cls, model, function):
cls._functions[model] = function cls._functions[model] = function
@@ -104,3 +123,7 @@ class ModelPermission(object):
@classmethod @classmethod
def register_inheritance(cls, model, related): def register_inheritance(cls, model, related):
cls._inheritances[model] = related cls._inheritances[model] = related
@classmethod
def register_manager(cls, model, manager_name):
cls._manager_names[model] = manager_name

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" "Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" "Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" "Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Czech (http://www.transifex.com/rosarior/mayan-edms/language/cs/)\n" "Language-Team: Czech (http://www.transifex.com/rosarior/mayan-edms/language/cs/)\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Danish (Denmark) (http://www.transifex.com/rosarior/mayan-edms/language/da_DK/)\n" "Language-Team: Danish (Denmark) (http://www.transifex.com/rosarior/mayan-edms/language/da_DK/)\n"

View File

@@ -11,7 +11,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" "Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Greek (http://www.transifex.com/rosarior/mayan-edms/language/el/)\n" "Language-Team: Greek (http://www.transifex.com/rosarior/mayan-edms/language/el/)\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:51+0000\n" "PO-Revision-Date: 2019-06-15 07:51+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" "Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n"

View File

@@ -11,7 +11,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" "Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" "Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" "Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n"

View File

@@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-08-28 11:33+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Daniele Bortoluzzi <daniele@elkos.it>\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" "Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -198,8 +198,8 @@ msgstr "Revoca accesso"
#: workflow_actions.py:175 #: workflow_actions.py:175
msgid "Grant document access" msgid "Grant document access"
msgstr "Concedi accesso al documento" msgstr ""
#: workflow_actions.py:214 #: workflow_actions.py:214
msgid "Revoke document access" msgid "Revoke document access"
msgstr "Revoca accesso al documento" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-28 11:16+0000\n" "PO-Revision-Date: 2019-06-28 11:16+0000\n"
"Last-Translator: Māris Teivāns <maris.teivans@gmail.com>\n" "Last-Translator: Māris Teivāns <maris.teivans@gmail.com>\n"
"Language-Team: Latvian (http://www.transifex.com/rosarior/mayan-edms/language/lv/)\n" "Language-Team: Latvian (http://www.transifex.com/rosarior/mayan-edms/language/lv/)\n"

View File

@@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n"

View File

@@ -4,17 +4,15 @@
# #
# Translators: # Translators:
# Daniel Winiarski <daniel.winiarski.dw@gmail.com>, 2017 # Daniel Winiarski <daniel.winiarski.dw@gmail.com>, 2017
# Marcin Lozynski <mlozynski@wp.pl>, 2019
# Tomasz Szymanowicz <alakdae@gmail.com>, 2019
# Wojciech Warczakowski <w.warczakowski@gmail.com>, 2016 # Wojciech Warczakowski <w.warczakowski@gmail.com>, 2016
# Wojciech Warczakowski <w.warczakowski@gmail.com>, 2017-2018 # Wojciech Warczakowski <w.warczakowski@gmail.com>, 2017-2018
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-23 09:33+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Tomasz Szymanowicz <alakdae@gmail.com>\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" "Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -28,15 +26,15 @@ msgstr "Listy ACL"
#: events.py:8 permissions.py:7 #: events.py:8 permissions.py:7
msgid "Access control lists" msgid "Access control lists"
msgstr "Listy kontroli dostępu" msgstr "Listy ACL"
#: events.py:12 #: events.py:12
msgid "ACL created" msgid "ACL created"
msgstr "Utworzono listę ACL" msgstr ""
#: events.py:15 #: events.py:15
msgid "ACL edited" msgid "ACL edited"
msgstr "Wyedytowano listę ACL" msgstr ""
#: forms.py:15 models.py:49 #: forms.py:15 models.py:49
msgid "Role" msgid "Role"
@@ -57,7 +55,7 @@ msgstr "Uprawnienia"
#: managers.py:216 #: managers.py:216
#, python-format #, python-format
msgid "Object \"%s\" is not a model and cannot be checked for access." msgid "Object \"%s\" is not a model and cannot be checked for access."
msgstr "Obiekt \"%s\" nie jest modelem i nie może być sprawdzony pod kątem dostępu." msgstr ""
#: managers.py:236 #: managers.py:236
#, python-format #, python-format
@@ -127,13 +125,13 @@ msgstr "Usuń listę ACL: %s"
#: views.py:147 #: views.py:147
msgid "There are no ACLs for this object" msgid "There are no ACLs for this object"
msgstr "Brak listy ACL dla tego objektu" msgstr ""
#: views.py:150 #: views.py:150
msgid "" msgid ""
"ACL stands for Access Control List and is a precise method to control user " "ACL stands for Access Control List and is a precise method to control user "
"access to objects in the system." "access to objects in the system."
msgstr "Lista ACL stanowi metodę kontroli dostępu użytkownika do obiektów znajdujących się w systemie." msgstr ""
#: views.py:154 #: views.py:154
#, python-format #, python-format
@@ -151,7 +149,7 @@ msgstr "Dostępne uprawnienia"
#: views.py:215 #: views.py:215
#, python-format #, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\"." msgid "Role \"%(role)s\" permission's for \"%(object)s\"."
msgstr "Rola \"%(role)s\" uprawnienia dla \"%(object)s\"." msgstr ""
#: views.py:224 #: views.py:224
msgid "" msgid ""
@@ -159,7 +157,7 @@ msgid ""
"to the role and can't be removed from this view. Inherited permissions need " "to the role and can't be removed from this view. Inherited permissions need "
"to be removed from the parent object's ACL or from them role via the Setup " "to be removed from the parent object's ACL or from them role via the Setup "
"menu." "menu."
msgstr "Wyłączone prawa są dziedziczone z obiektu rodzica lub bezpośrednio nadane dla roli i nie mogą być usunięte w tym widoku. Dziedziczone prawa muszą być usunięte z listy ACL obiektu rodzica lub z roli w menu Ustawień." msgstr ""
#: workflow_actions.py:26 #: workflow_actions.py:26
msgid "Object type" msgid "Object type"
@@ -193,16 +191,16 @@ msgstr "Uprawnienia do nadawania/odwoływania do/z roli dla obiektu."
#: workflow_actions.py:60 #: workflow_actions.py:60
msgid "Grant access" msgid "Grant access"
msgstr "Przydziel dostęp" msgstr "Przyznaj dostęp"
#: workflow_actions.py:143 #: workflow_actions.py:143
msgid "Revoke access" msgid "Revoke access"
msgstr "Zabierz dostęp" msgstr "Odwołaj dostęp"
#: workflow_actions.py:175 #: workflow_actions.py:175
msgid "Grant document access" msgid "Grant document access"
msgstr "Przydziel dostęp dla dokumentu" msgstr ""
#: workflow_actions.py:214 #: workflow_actions.py:214
msgid "Revoke document access" msgid "Revoke document access"
msgstr "Zabierz dostęp do dokumentu" msgstr ""

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" "Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n"

View File

@@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-18 15:35+0000\n" "PO-Revision-Date: 2019-06-18 15:35+0000\n"
"Last-Translator: Harald Ersch\n" "Last-Translator: Harald Ersch\n"
"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" "Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" "Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Turkish (Turkey) (http://www.transifex.com/rosarior/mayan-edms/language/tr_TR/)\n" "Language-Team: Turkish (Turkey) (http://www.transifex.com/rosarior/mayan-edms/language/tr_TR/)\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" "Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-06-15 07:48+0000\n" "PO-Revision-Date: 2019-06-15 07:48+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Chinese (http://www.transifex.com/rosarior/mayan-edms/language/zh/)\n" "Language-Team: Chinese (http://www.transifex.com/rosarior/mayan-edms/language/zh/)\n"

View File

@@ -45,8 +45,8 @@ class AccessControlListManager(models.Manager):
# 4: No related field, but has an inherited related field, solved by # 4: No related field, but has an inherited related field, solved by
# recursion, branches to #2 or #3. # recursion, branches to #2 or #3.
# 5: Inherited field of a related field # 5: Inherited field of a related field
# -- Not addressed yet --
# 6: Inherited field of a related field that is Generic Foreign Key # 6: Inherited field of a related field that is Generic Foreign Key
# -- Not addressed yet --
# 7: Has a related function # 7: Has a related function
result = [] result = []
@@ -58,10 +58,28 @@ class AccessControlListManager(models.Manager):
if isinstance(related_field, GenericForeignKey): if isinstance(related_field, GenericForeignKey):
# Case 3: Generic Foreign Key, multiple ContentTypes + object # Case 3: Generic Foreign Key, multiple ContentTypes + object
# id combinations # id combinations
# Also handles case #6 using the parent related field
# reference template.
# Craft a double underscore reference to a previous related
# field in the case where multiple related fields are
# associated.
# Example: object_layer__content_type
recuisive_related_reference = '__'.join(related_field_name.split('__')[0:-1])
# If there is at least one parent related field we add a
# double underscore to make it a valid filter template.
if recuisive_related_reference:
recuisive_related_reference = '{}__'.format(recuisive_related_reference)
content_type_object_id_queryset = queryset.annotate( content_type_object_id_queryset = queryset.annotate(
ct_fk_combination=Concat( ct_fk_combination=Concat(
related_field.ct_field, Value('-'), '{}{}'.format(
related_field.fk_field, output_field=CharField() recuisive_related_reference, related_field.ct_field
), Value('-'),
'{}{}'.format(
recuisive_related_reference, related_field.fk_field
), output_field=CharField()
) )
).values('ct_fk_combination') ).values('ct_fk_combination')
@@ -75,8 +93,7 @@ class AccessControlListManager(models.Manager):
ct_fk_combination__in=content_type_object_id_queryset ct_fk_combination__in=content_type_object_id_queryset
).values('object_id') ).values('object_id')
field_lookup = 'object_id__in' field_lookup = '{}object_id__in'.format(recuisive_related_reference)
result.append(Q(**{field_lookup: acl_filter})) result.append(Q(**{field_lookup: acl_filter}))
else: else:
# Case 2: Related field of a single type, single ContentType, # Case 2: Related field of a single type, single ContentType,
@@ -97,6 +114,7 @@ class AccessControlListManager(models.Manager):
# Case 5: Related field, has an inherited related field itself # Case 5: Related field, has an inherited related field itself
# Bubble up permssion check # Bubble up permssion check
# Recurse and reduce
# TODO: Add relationship support: OR or AND # TODO: Add relationship support: OR or AND
# TODO: OR for document pages, version, doc, and types # TODO: OR for document pages, version, doc, and types
# TODO: AND for new cabinet levels ACLs # TODO: AND for new cabinet levels ACLs
@@ -200,28 +218,26 @@ class AccessControlListManager(models.Manager):
return result return result
def check_access(self, obj, permissions, user, manager=None): def check_access(self, obj, permissions, user):
# Allow specific managers for models that have more than one # Allow specific managers for models that have more than one
# for example the Document model when checking for access for a trashed # for example the Document model when checking for access for a trashed
# document. # document.
if manager: meta = getattr(obj, '_meta', None)
source_queryset = manager.all()
if not meta:
logger.debug(
ugettext(
'Object "%s" is not a model and cannot be checked for '
'access.'
) % force_text(obj)
)
return True
else: else:
meta = getattr(obj, '_meta', None) manager = ModelPermission.get_manager(model=obj._meta.model)
source_queryset = manager.all()
if not meta: restricted_queryset = manager.none()
logger.debug(
ugettext(
'Object "%s" is not a model and cannot be checked for '
'access.'
) % force_text(obj)
)
return True
else:
source_queryset = obj._meta.default_manager.all()
restricted_queryset = obj._meta.default_manager.none()
for permission in permissions: for permission in permissions:
# Default relationship betweens permissions is OR # Default relationship betweens permissions is OR
# TODO: Add support for AND relationship # TODO: Add support for AND relationship
@@ -239,9 +255,6 @@ class AccessControlListManager(models.Manager):
) )
def restrict_queryset(self, permission, queryset, user): def restrict_queryset(self, permission, queryset, user):
if not user.is_authenticated():
return queryset.none()
# Check directly granted permission via a role # Check directly granted permission via a role
try: try:
Permission.check_user_permissions( Permission.check_user_permissions(

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from mayan.apps.document_states.tests.test_workflow_actions import ActionTestCase from mayan.apps.document_states.tests.test_actions import ActionTestCase
from mayan.apps.documents.permissions import permission_document_view from mayan.apps.documents.permissions import permission_document_view
from ..workflow_actions import ( from ..workflow_actions import (

View File

@@ -3,7 +3,7 @@ from __future__ import absolute_import, unicode_literals
from rest_framework import status from rest_framework import status
from mayan.apps.permissions.tests.literals import TEST_ROLE_LABEL from mayan.apps.permissions.tests.literals import TEST_ROLE_LABEL
from mayan.apps.rest_api.tests import BaseAPITestCase from mayan.apps.rest_api.tests.base import BaseAPITestCase
from ..models import AccessControlList from ..models import AccessControlList
from ..permissions import permission_acl_edit, permission_acl_view from ..permissions import permission_acl_edit, permission_acl_view

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals from __future__ import absolute_import, unicode_literals
from mayan.apps.common.tests import BaseTestCase from mayan.apps.common.tests.base import BaseTestCase
from ..classes import ModelPermission from ..classes import ModelPermission

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from django.urls import reverse from django.urls import reverse
from mayan.apps.common.tests import GenericViewTestCase from mayan.apps.common.tests.base import GenericViewTestCase
from ..links import ( from ..links import (
link_acl_delete, link_acl_list, link_acl_create, link_acl_permissions link_acl_delete, link_acl_list, link_acl_create, link_acl_permissions

View File

@@ -3,7 +3,7 @@ from __future__ import absolute_import, unicode_literals
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.db import models from django.db import models
from mayan.apps.common.tests import BaseTestCase from mayan.apps.common.tests.base import BaseTestCase
from ..classes import ModelPermission from ..classes import ModelPermission
from ..models import AccessControlList from ..models import AccessControlList

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals from __future__ import absolute_import, unicode_literals
from mayan.apps.common.tests import GenericViewTestCase from mayan.apps.common.tests.base import GenericViewTestCase
from ..models import AccessControlList from ..models import AccessControlList
from ..permissions import permission_acl_edit, permission_acl_view from ..permissions import permission_acl_edit, permission_acl_view

View File

@@ -16,7 +16,6 @@ from mayan.apps.permissions.models import Role
from .classes import ModelPermission from .classes import ModelPermission
from .permissions import permission_acl_edit from .permissions import permission_acl_edit
__all__ = ('GrantAccessAction', 'RevokeAccessAction')
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -57,7 +56,7 @@ class GrantAccessAction(WorkflowAction):
} }
} }
field_order = ('content_type', 'object_id', 'roles', 'permissions') field_order = ('content_type', 'object_id', 'roles', 'permissions')
label = _('Grant access') label = _('Grant object access')
widgets = { widgets = {
'content_type': { 'content_type': {
'class': 'django.forms.widgets.Select', 'kwargs': { 'class': 'django.forms.widgets.Select', 'kwargs': {
@@ -140,7 +139,7 @@ class GrantAccessAction(WorkflowAction):
class RevokeAccessAction(GrantAccessAction): class RevokeAccessAction(GrantAccessAction):
label = _('Revoke access') label = _('Revoke object access')
def execute(self, context): def execute(self, context):
self.get_execute_data() self.get_execute_data()

View File

@@ -4,6 +4,7 @@ from django.template.loader import get_template
class IconDriver(object): class IconDriver(object):
context = {}
_registry = {} _registry = {}
@classmethod @classmethod
@@ -14,6 +15,17 @@ class IconDriver(object):
def register(cls, driver_class): def register(cls, driver_class):
cls._registry[driver_class.name] = driver_class cls._registry[driver_class.name] = driver_class
def get_context(self):
return self.context
def render(self, extra_context=None):
context = self.get_context()
if extra_context:
context.update(extra_context)
return get_template(template_name=self.template_name).render(
context=context
)
class FontAwesomeDriver(IconDriver): class FontAwesomeDriver(IconDriver):
name = 'fontawesome' name = 'fontawesome'
@@ -22,10 +34,8 @@ class FontAwesomeDriver(IconDriver):
def __init__(self, symbol): def __init__(self, symbol):
self.symbol = symbol self.symbol = symbol
def render(self): def get_context(self):
return get_template(template_name=self.template_name).render( return {'symbol': self.symbol}
context={'symbol': self.symbol}
)
class FontAwesomeDualDriver(IconDriver): class FontAwesomeDualDriver(IconDriver):
@@ -36,23 +46,21 @@ class FontAwesomeDualDriver(IconDriver):
self.primary_symbol = primary_symbol self.primary_symbol = primary_symbol
self.secondary_symbol = secondary_symbol self.secondary_symbol = secondary_symbol
def render(self): def get_context(self):
return get_template(template_name=self.template_name).render( return {
context={ 'data': (
'data': ( {
{ 'class': 'fas fa-circle',
'class': 'fas fa-circle', 'transform': 'down-3 right-10',
'transform': 'down-3 right-10', 'mask': 'fas fa-{}'.format(self.primary_symbol)
'mask': 'fas fa-{}'.format(self.primary_symbol) },
}, {'class': 'far fa-circle', 'transform': 'down-3 right-10'},
{'class': 'far fa-circle', 'transform': 'down-3 right-10'}, {
{ 'class': 'fas fa-{}'.format(self.secondary_symbol),
'class': 'fas fa-{}'.format(self.secondary_symbol), 'transform': 'shrink-4 down-3 right-10'
'transform': 'shrink-4 down-3 right-10' },
}, )
) }
}
)
class FontAwesomeCSSDriver(IconDriver): class FontAwesomeCSSDriver(IconDriver):
@@ -62,10 +70,8 @@ class FontAwesomeCSSDriver(IconDriver):
def __init__(self, css_classes): def __init__(self, css_classes):
self.css_classes = css_classes self.css_classes = css_classes
def render(self): def get_context(self):
return get_template(template_name=self.template_name).render( return {'css_classes': self.css_classes}
context={'css_classes': self.css_classes}
)
class FontAwesomeMasksDriver(IconDriver): class FontAwesomeMasksDriver(IconDriver):
@@ -75,23 +81,23 @@ class FontAwesomeMasksDriver(IconDriver):
def __init__(self, data): def __init__(self, data):
self.data = data self.data = data
def render(self): def get_context(self):
return get_template(template_name=self.template_name).render( return {'data': self.data}
context={'data': self.data}
)
class FontAwesomeLayersDriver(IconDriver): class FontAwesomeLayersDriver(IconDriver):
name = 'fontawesome-layers' name = 'fontawesome-layers'
template_name = 'appearance/icons/font_awesome_layers.html' template_name = 'appearance/icons/font_awesome_layers.html'
def __init__(self, data): def __init__(self, data, shadow_class=None):
self.data = data self.data = data
self.shadow_class = shadow_class
def render(self): def get_context(self):
return get_template(template_name=self.template_name).render( return {
context={'data': self.data} 'data': self.data,
) 'shadow_class': self.shadow_class,
}
class Icon(object): class Icon(object):

View File

@@ -37,7 +37,7 @@ JavaScriptDependency(
name='@fortawesome/fontawesome-free', version_string='=5.6.3' name='@fortawesome/fontawesome-free', version_string='=5.6.3'
) )
JavaScriptDependency( JavaScriptDependency(
label=_('jQuery'), module=__name__, name='jquery', version_string='=3.4.1' label=_('jQuery'), module=__name__, name='jquery', version_string='=3.3.1'
) )
JavaScriptDependency( JavaScriptDependency(
label=_('JQuery Form'), module=__name__, name='jquery-form', label=_('JQuery Form'), module=__name__, name='jquery-form',

View File

@@ -1 +1,2 @@
DEFAULT_MAXIMUM_TITLE_LENGTH = 120 DEFAULT_MAXIMUM_TITLE_LENGTH = 120
DEFAULT_MESSAGE_POSITION = 'top-right'

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" "Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -152,26 +152,11 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -179,7 +164,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -187,7 +172,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -196,22 +181,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "الإجراءات" msgstr "الإجراءات"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "" msgstr ""

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" "Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -152,26 +152,11 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -179,7 +164,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -187,7 +172,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -196,22 +181,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Действия" msgstr "Действия"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "" msgstr ""

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" "Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -153,26 +153,11 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -180,7 +165,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -188,7 +173,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -197,22 +182,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "Upozorenje" msgstr "Upozorenje"
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Akcije" msgstr "Akcije"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "Toggle Dropdown" msgstr "Toggle Dropdown"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Czech (http://www.transifex.com/rosarior/mayan-edms/language/cs/)\n" "Language-Team: Czech (http://www.transifex.com/rosarior/mayan-edms/language/cs/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -152,26 +152,11 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -179,7 +164,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -187,7 +172,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -196,22 +181,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "" msgstr ""

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Danish (Denmark) (http://www.transifex.com/rosarior/mayan-edms/language/da_DK/)\n" "Language-Team: Danish (Denmark) (http://www.transifex.com/rosarior/mayan-edms/language/da_DK/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -153,26 +153,11 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -180,7 +165,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -188,7 +173,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -197,22 +182,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "Advarelse" msgstr "Advarelse"
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "" msgstr ""

View File

@@ -11,8 +11,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" "Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -156,26 +156,11 @@ msgstr "\nWenn Sie %(project_title)s verwenden, erwägen Sie bitte <a class=\"ne
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "\nEine umfassende Liste der Neuerungen ist einsehbar in den <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release Notes %(icon_documentation)s oder als Kurzversion<a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">im Changelog %(icon_documentation)s</a>." msgstr "\nEine umfassende Liste der Neuerungen ist einsehbar in den <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release Notes %(icon_documentation)s oder als Kurzversion<a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">im Changelog %(icon_documentation)s</a>."
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -183,7 +168,7 @@ msgid ""
" " " "
msgstr "\nBei Fragen schauen Sie zunächst in die <a class=\"new_window\" href=\"https://docs.mayan-edms.com\"> Dokumentation %(icon_documentation)s</a> oder die <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\"> Wiki %(icon_wiki)s</a>." msgstr "\nBei Fragen schauen Sie zunächst in die <a class=\"new_window\" href=\"https://docs.mayan-edms.com\"> Dokumentation %(icon_documentation)s</a> oder die <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\"> Wiki %(icon_wiki)s</a>."
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -191,7 +176,7 @@ msgid ""
" " " "
msgstr "\nSollten Sie einen Bug gefunden oder eine Idee für eine neue Funktion haben, dann besuchen Sie entweder das<a class=\"new_window\" href=\"https://forum.mayan-edms.com\"> Forum %(icon_forum)s</a> oder erstellen Sie ein Ticket in der <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\"> Quellenverwaltung %(icon_source_code)s</a>. " msgstr "\nSollten Sie einen Bug gefunden oder eine Idee für eine neue Funktion haben, dann besuchen Sie entweder das<a class=\"new_window\" href=\"https://forum.mayan-edms.com\"> Forum %(icon_forum)s</a> oder erstellen Sie ein Ticket in der <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\"> Quellenverwaltung %(icon_source_code)s</a>. "
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -200,22 +185,22 @@ msgid ""
" " " "
msgstr "\nMachen Sie dieses Projekt bekannt. Berichten Sie Ihren Freunden und Kollegen, wie angenehm die Arbeit mit %(project_title)s ist!\n Folgen Sie uns auf <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitter %(icon_social_twitter)s</a>, <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebook %(icon_social_facebook)s</a>, oder <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagram %(icon_social_instagram)s</a>\n " msgstr "\nMachen Sie dieses Projekt bekannt. Berichten Sie Ihren Freunden und Kollegen, wie angenehm die Arbeit mit %(project_title)s ist!\n Folgen Sie uns auf <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitter %(icon_social_twitter)s</a>, <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebook %(icon_social_facebook)s</a>, oder <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagram %(icon_social_instagram)s</a>\n "
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "Warnung" msgstr "Warnung"
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Aktionen" msgstr "Aktionen"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "Ausklappmenü ein-/ausschalten" msgstr "Ausklappmenü ein-/ausschalten"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Greek (http://www.transifex.com/rosarior/mayan-edms/language/el/)\n" "Language-Team: Greek (http://www.transifex.com/rosarior/mayan-edms/language/el/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -152,26 +152,11 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -179,7 +164,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -187,7 +172,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -196,22 +181,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Ενέργειες" msgstr "Ενέργειες"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -158,26 +158,6 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www."
"paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and "
"lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a "
"class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy "
"of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is "
"available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=" " The complete list of changes is available via the <a class="
"\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html" "\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html"
"\">Release notes %(icon_documentation)s</a> or the short version <a class=" "\">Release notes %(icon_documentation)s</a> or the short version <a class="
@@ -186,7 +166,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -197,7 +177,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -209,7 +189,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -223,22 +203,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "" msgstr ""

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-24 21:04+0000\n" "PO-Revision-Date: 2019-07-05 06:49+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -153,26 +153,11 @@ msgstr "\n                Si usa %(project_title)s por favor <a
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr "\nTambién puede <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donar directamente al creador y desarrollador principal. %(icon_social_paypal)s</a>"
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr "\nAdemás de las donaciones, también puede apoyar el proyecto <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">comprando una copia del libro \"Exploring Mayan EDMS\" de Roberto Rosario</a> . <br> El libro está disponible en formato de prelanzamiento a un precio con descuento por tiempo limitado."
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "\n                La lista completa de cambios está disponible a través de <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\"> Notas de la versión %(icon_documentation)s </a> o la versión corta <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\"> Changelog %(icon_documentation)s </a>.\n            " msgstr "\n                La lista completa de cambios está disponible a través de <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\"> Notas de la versión %(icon_documentation)s </a> o la versión corta <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\"> Changelog %(icon_documentation)s </a>.\n            "
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -180,7 +165,7 @@ msgid ""
" " " "
msgstr "\n                Para preguntas, consulte la <a class=\"new_window\" href=\"https://docs.mayan-edms.com\"> Documentación %(icon_documentation)s </a> o <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\"> el Wiki %(icon_wiki)s </a>.\n            " msgstr "\n                Para preguntas, consulte la <a class=\"new_window\" href=\"https://docs.mayan-edms.com\"> Documentación %(icon_documentation)s </a> o <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\"> el Wiki %(icon_wiki)s </a>.\n            "
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -188,7 +173,7 @@ msgid ""
" " " "
msgstr "\n                Si encontró un error o tiene una idea característica, visite el <a class=\"new_window\" href=\"https://forum.mayan-edms.com\"> Forum %(icon_forum)s </a> o abra un ticket en el <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\"> Repositorio de código fuente %(icon_source_code)s </a>\n            " msgstr "\n                Si encontró un error o tiene una idea característica, visite el <a class=\"new_window\" href=\"https://forum.mayan-edms.com\"> Forum %(icon_forum)s </a> o abra un ticket en el <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\"> Repositorio de código fuente %(icon_source_code)s </a>\n            "
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -197,22 +182,22 @@ msgid ""
" " " "
msgstr "\n                Riega la voz. ¡Habla con tus amigos y colegas sobre lo increíble que es %(project_title)s!\n                Síguenos en <a class=\"new_window\" href=\"https://twitter.com/mayanedms\"> Twitter %(icon_social_twitter)s </a>, <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\"> Facebook %(icon_social_facebook)s </a> o <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\"> Instagram %(icon_social_instagram)s </a>\n            " msgstr "\n                Riega la voz. ¡Habla con tus amigos y colegas sobre lo increíble que es %(project_title)s!\n                Síguenos en <a class=\"new_window\" href=\"https://twitter.com/mayanedms\"> Twitter %(icon_social_twitter)s </a>, <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\"> Facebook %(icon_social_facebook)s </a> o <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\"> Instagram %(icon_social_instagram)s </a>\n            "
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "Advertencia" msgstr "Advertencia"
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "Configuraciones actualizadas, reinicie su instalación para que los cambios tengas efecto." msgstr "Configuraciones actualizadas, reinicie su instalación para que los cambios tengas efecto."
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Acciones" msgstr "Acciones"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "Alternar desplegable" msgstr "Alternar desplegable"

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" "Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -153,26 +153,11 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -180,7 +165,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -188,7 +173,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -197,22 +182,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "عملیات" msgstr "عملیات"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "تغییر وضعیت dropdown" msgstr "تغییر وضعیت dropdown"

View File

@@ -13,9 +13,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-08-22 14:03+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Frédéric Sheedy <sheedf@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" "Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -158,26 +158,11 @@ msgstr "\n Si vous utilisez %(project_title)s s'il vous plaît <a
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "\n La liste complète des changements est disponible dans les <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">notes de publication %(icon_documentation)s</a> ou en version courte dans le <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">journal des modifications %(icon_documentation)s</a>.\n " msgstr "\n La liste complète des changements est disponible dans les <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">notes de publication %(icon_documentation)s</a> ou en version courte dans le <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">journal des modifications %(icon_documentation)s</a>.\n "
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -185,7 +170,7 @@ msgid ""
" " " "
msgstr "\n Pour trouver des réponses à vos questions consultez la <a class=\"new_window\" href=\"https://docs.mayan-edms.com\">documentation %(icon_documentation)s</a> ou le <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\">wiki %(icon_wiki)s</a>.\n " msgstr "\n Pour trouver des réponses à vos questions consultez la <a class=\"new_window\" href=\"https://docs.mayan-edms.com\">documentation %(icon_documentation)s</a> ou le <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\">wiki %(icon_wiki)s</a>.\n "
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -193,7 +178,7 @@ msgid ""
" " " "
msgstr "\n Si vous avez trouvé un bogue ou une idée pour une nouvelle fonctionnalité, visitez le <a class=\"new_window\" href=\"https://forum.mayan-edms.com\">forum %(icon_forum)s</a> ou soumettez un nouveau billet dans le <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\">dépôt de code source %(icon_source_code)s</a>.\n " msgstr "\n Si vous avez trouvé un bogue ou une idée pour une nouvelle fonctionnalité, visitez le <a class=\"new_window\" href=\"https://forum.mayan-edms.com\">forum %(icon_forum)s</a> ou soumettez un nouveau billet dans le <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\">dépôt de code source %(icon_source_code)s</a>.\n "
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -202,22 +187,22 @@ msgid ""
" " " "
msgstr "\n Faites passer le mot. Parlez à vos amis et vos collègues de comment %(project_title)s est génial!\n Suivez-nous sur <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitter %(icon_social_twitter)s</a>, <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebook %(icon_social_facebook)s</a> ou <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagram %(icon_social_instagram)s</a>\n " msgstr "\n Faites passer le mot. Parlez à vos amis et vos collègues de comment %(project_title)s est génial!\n Suivez-nous sur <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitter %(icon_social_twitter)s</a>, <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebook %(icon_social_facebook)s</a> ou <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagram %(icon_social_instagram)s</a>\n "
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "Avertissement" msgstr "Avertissement"
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "Les paramètres ont été mis à jour, redémarrez votre installation pour que les modifications prennent effet." msgstr "Les paramètres ont été mis à jour, redémarrez votre installation pour que les modifications prennent effet."
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Actions" msgstr "Actions"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "Activer la liste déroulante" msgstr "Activer la liste déroulante"

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" "Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -153,26 +153,11 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -180,7 +165,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -188,7 +173,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -197,22 +182,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Műveletek" msgstr "Műveletek"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "" msgstr ""

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" "Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -152,26 +152,11 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -179,7 +164,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -187,7 +172,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -196,22 +181,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Aksi" msgstr "Aksi"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "" msgstr ""

View File

@@ -10,8 +10,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" "Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -155,26 +155,11 @@ msgstr "\nSe usi %(project_title)s puoi <a class=\"new_window\" href=\"https://w
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "\nLa lista completa dei cambiamenti è disponibile nelle <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Note di rilascio %(icon_documentation)s</a> o in versione più breve nel <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>." msgstr "\nLa lista completa dei cambiamenti è disponibile nelle <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Note di rilascio %(icon_documentation)s</a> o in versione più breve nel <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>."
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -182,7 +167,7 @@ msgid ""
" " " "
msgstr "\nPer dubbi o domande guarda la <a class=\"new_window\" href=\"https://docs.mayan-edms.com\">documentazione %(icon_documentation)s</a> o il <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\">Wiki %(icon_wiki)s</a>." msgstr "\nPer dubbi o domande guarda la <a class=\"new_window\" href=\"https://docs.mayan-edms.com\">documentazione %(icon_documentation)s</a> o il <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\">Wiki %(icon_wiki)s</a>."
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -190,7 +175,7 @@ msgid ""
" " " "
msgstr "\nSe trovi un bug o hai un'idea per una nuova funzionalità, visita il <a class=\"new_window\" href=\"https://forum.mayan-edms.com\">Forum %(icon_forum)s</a> o apri un ticket nel <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\">repository del codice %(icon_source_code)s</a>." msgstr "\nSe trovi un bug o hai un'idea per una nuova funzionalità, visita il <a class=\"new_window\" href=\"https://forum.mayan-edms.com\">Forum %(icon_forum)s</a> o apri un ticket nel <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\">repository del codice %(icon_source_code)s</a>."
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -199,22 +184,22 @@ msgid ""
" " " "
msgstr "\nDiffondi il verbo. Dillo ai tuoi amici e colleghi quanto è bello %(project_title)s!\nSeguici su <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitter %(icon_social_twitter)s</a>, <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebook %(icon_social_facebook)s</a> o <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagram %(icon_social_instagram)s</a>" msgstr "\nDiffondi il verbo. Dillo ai tuoi amici e colleghi quanto è bello %(project_title)s!\nSeguici su <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitter %(icon_social_twitter)s</a>, <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebook %(icon_social_facebook)s</a> o <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagram %(icon_social_instagram)s</a>"
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "Attenzione" msgstr "Attenzione"
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Azioni " msgstr "Azioni "
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "Apri dropdown" msgstr "Apri dropdown"

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Latvian (http://www.transifex.com/rosarior/mayan-edms/language/lv/)\n" "Language-Team: Latvian (http://www.transifex.com/rosarior/mayan-edms/language/lv/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -153,26 +153,11 @@ msgstr "\nJa izmantojat %(project_title)s, lūdzu, <a class=\"new_window\" href=
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "\nPilns izmaiņu saraksts ir pieejams, skatot <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> vai īso versiju <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a> ." msgstr "\nPilns izmaiņu saraksts ir pieejams, skatot <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> vai īso versiju <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a> ."
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -180,7 +165,7 @@ msgid ""
" " " "
msgstr "\nJautājumu gadījumā pārbaudiet <a class=\"new_window\" href=\"https://docs.mayan-edms.com\">dokumentāciju %(icon_documentation)s</a> vai <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\">Wiki %(icon_wiki)s</a> ." msgstr "\nJautājumu gadījumā pārbaudiet <a class=\"new_window\" href=\"https://docs.mayan-edms.com\">dokumentāciju %(icon_documentation)s</a> vai <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\">Wiki %(icon_wiki)s</a> ."
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -188,7 +173,7 @@ msgid ""
" " " "
msgstr "\nJa atradāt kļūdu vai ir kāda funkcionalitātes ideja, apmeklējiet <a class=\"new_window\" href=\"https://forum.mayan-edms.com\">forumu %(icon_forum)s</a> vai atveriet biļeti <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\">pirmkoda repozitorijā %(icon_source_code)s</a> ." msgstr "\nJa atradāt kļūdu vai ir kāda funkcionalitātes ideja, apmeklējiet <a class=\"new_window\" href=\"https://forum.mayan-edms.com\">forumu %(icon_forum)s</a> vai atveriet biļeti <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\">pirmkoda repozitorijā %(icon_source_code)s</a> ."
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -197,22 +182,22 @@ msgid ""
" " " "
msgstr "\nIzplatiet vārdu. Runājiet ar saviem draugiem un kolēģiem par to, cik lielisks %(project_title)s ir! Sekojiet mums <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitter %(icon_social_twitter)s</a> , <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebook %(icon_social_facebook)s</a> vai <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagram %(icon_social_instagram)s</a>" msgstr "\nIzplatiet vārdu. Runājiet ar saviem draugiem un kolēģiem par to, cik lielisks %(project_title)s ir! Sekojiet mums <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitter %(icon_social_twitter)s</a> , <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebook %(icon_social_facebook)s</a> vai <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagram %(icon_social_instagram)s</a>"
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "Brīdinājums" msgstr "Brīdinājums"
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Darbības" msgstr "Darbības"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "Toggle Dropdown" msgstr "Toggle Dropdown"

View File

@@ -10,8 +10,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-04 03:25+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Roberto Rosario\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -155,26 +155,11 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr ""
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr ""
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -182,7 +167,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -190,7 +175,7 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -199,22 +184,22 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "Waarschuwing" msgstr "Waarschuwing"
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "" msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Acties" msgstr "Acties"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "Toggle Dropdown" msgstr "Toggle Dropdown"

View File

@@ -3,8 +3,6 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# #
# Translators: # Translators:
# Marcin Lozynski <mlozynski@wp.pl>, 2019
# Tomasz Szymanowicz <alakdae@gmail.com>, 2019
# Wojciech Warczakowski <w.warczakowski@gmail.com>, 2016,2018 # Wojciech Warczakowski <w.warczakowski@gmail.com>, 2016,2018
# Wojciech Warczakowski <w.warczakowski@gmail.com>, 2017 # Wojciech Warczakowski <w.warczakowski@gmail.com>, 2017
# Wojciech Warczakowski <w.warczakowski@gmail.com>, 2016 # Wojciech Warczakowski <w.warczakowski@gmail.com>, 2016
@@ -12,9 +10,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Mayan EDMS\n" "Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-24 23:06-0400\n" "POT-Creation-Date: 2019-08-25 20:27-0400\n"
"PO-Revision-Date: 2019-09-23 09:49+0000\n" "PO-Revision-Date: 2019-07-05 05:33+0000\n"
"Last-Translator: Tomasz Szymanowicz <alakdae@gmail.com>\n" "Last-Translator: Roberto Rosario\n"
"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" "Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -28,55 +26,55 @@ msgstr "Wygląd"
#: dependencies.py:10 #: dependencies.py:10
msgid "Lato font" msgid "Lato font"
msgstr "Czcionka Lato" msgstr ""
#: dependencies.py:14 #: dependencies.py:14
msgid "Bootstrap" msgid "Bootstrap"
msgstr "Bootstrap" msgstr ""
#: dependencies.py:18 #: dependencies.py:18
msgid "Bootswatch" msgid "Bootswatch"
msgstr "Bootswatch" msgstr ""
#: dependencies.py:32 #: dependencies.py:32
msgid "Fancybox" msgid "Fancybox"
msgstr "Fancybox" msgstr ""
#: dependencies.py:36 #: dependencies.py:36
msgid "FontAwesome" msgid "FontAwesome"
msgstr "FontAwesome" msgstr ""
#: dependencies.py:40 #: dependencies.py:40
msgid "jQuery" msgid "jQuery"
msgstr "jQuery" msgstr ""
#: dependencies.py:43 #: dependencies.py:43
msgid "JQuery Form" msgid "JQuery Form"
msgstr "Formularz JQuery" msgstr ""
#: dependencies.py:47 #: dependencies.py:47
msgid "jQuery Lazy Load" msgid "jQuery Lazy Load"
msgstr "jQuery Opóźnione Ładowanie" msgstr ""
#: dependencies.py:51 #: dependencies.py:51
msgid "JQuery Match Height" msgid "JQuery Match Height"
msgstr "JQuery Wyrównaj Wysokość" msgstr ""
#: dependencies.py:55 #: dependencies.py:55
msgid "Select 2" msgid "Select 2"
msgstr "Wybierz 2" msgstr ""
#: dependencies.py:59 #: dependencies.py:59
msgid "Toastr" msgid "Toastr"
msgstr "Toastr" msgstr ""
#: dependencies.py:62 #: dependencies.py:62
msgid "URI.js" msgid "URI.js"
msgstr "URI.js" msgstr ""
#: settings.py:14 #: settings.py:14
msgid "Maximum number of characters that will be displayed as the view title." msgid "Maximum number of characters that will be displayed as the view title."
msgstr "Wyświetlono maksymalną liczbę znaków" msgstr ""
#: templates/403.html:5 templates/403.html:9 #: templates/403.html:5 templates/403.html:9
msgid "Insufficient permissions" msgid "Insufficient permissions"
@@ -114,7 +112,7 @@ msgid ""
"\n" "\n"
" %(setting_project_title)s is based on %(project_title)s\n" " %(setting_project_title)s is based on %(project_title)s\n"
" " " "
msgstr "\n%(setting_project_title)s opiera się na%(project_title)s" msgstr ""
#: templates/appearance/about.html:82 #: templates/appearance/about.html:82
msgid "Version" msgid "Version"
@@ -127,7 +125,7 @@ msgstr "Numer wersji: %(build_number)s"
#: templates/appearance/about.html:97 #: templates/appearance/about.html:97
msgid "Released under the license:" msgid "Released under the license:"
msgstr "Opublikowane na podstawie licencji:" msgstr ""
#: templates/appearance/about.html:103 #: templates/appearance/about.html:103
#, python-format #, python-format
@@ -135,7 +133,7 @@ msgid ""
"\n" "\n"
" %(project_title)s is a free and open-source software brought to you with <i class=\"fa fa-heart text-danger\" style=\"transform: rotate(10deg);\"></i> by Roberto Rosario and contributors.\n" " %(project_title)s is a free and open-source software brought to you with <i class=\"fa fa-heart text-danger\" style=\"transform: rotate(10deg);\"></i> by Roberto Rosario and contributors.\n"
" " " "
msgstr "\n%(project_title)s jest darmowym oprogramowaniem typu open source dostarczonym z <i class=\"fa fa-heart text-danger\" style=\"transform: rotate(10deg);\"></i> przez Roberto Rosario i współpracowników." msgstr ""
#: templates/appearance/about.html:109 #: templates/appearance/about.html:109
#, python-format #, python-format
@@ -143,7 +141,7 @@ msgid ""
"\n" "\n"
" It takes great effort to make %(project_title)s as feature-rich as it is. We need all the help we can get!\n" " It takes great effort to make %(project_title)s as feature-rich as it is. We need all the help we can get!\n"
" " " "
msgstr "\nAby %(project_title)s był tak bogaty w funkcje wymaga wiele pracy. Każda pomoc jest mile widziana!" msgstr ""
#: templates/appearance/about.html:115 #: templates/appearance/about.html:115
#, python-format #, python-format
@@ -151,79 +149,64 @@ msgid ""
"\n" "\n"
" If you use %(project_title)s please <a class=\"new_window\" href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3PXN336XFXQNN\">consider making a donation %(icon_social_paypal)s</a>\n" " If you use %(project_title)s please <a class=\"new_window\" href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3PXN336XFXQNN\">consider making a donation %(icon_social_paypal)s</a>\n"
" " " "
msgstr "\nJeśli używasz %(project_title)s, <a class=\"new_window\" href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3PXN336XFXQNN\">rozważ darowiznę %(icon_social_paypal)s</a>" msgstr ""
#: templates/appearance/about.html:121 #: templates/appearance/about.html:121
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" You can also <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">donate directly to the creator and lead developer. %(icon_social_paypal)s</a>\n"
" "
msgstr "\nMożesz także <a class=\"new_window\" href=\"https://www.paypal.com/paypalme2/RobertoRosario\">przekazać darowiznę bezpośrednio twórcy i głównemu deweloperowi. %(icon_social_paypal)s</a>"
#: templates/appearance/about.html:127
msgid ""
"\n"
" Besides donations you can also support the project by <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">purchasing a copy of the book \"Exploring Mayan EDMS\" by Roberto Rosario</a>. <br>The book is available on pre-release format at a discounted price for a limited time.\n"
" "
msgstr "\nOprócz darowizn możesz również wesprzeć projekt <a class=\"new_window\" href=\"https://sellfy.com/p/um2fkx/\">kupując książkę „Exploring Mayan EDMS” autorstwa Roberto Rosario</a> . <br> Książka jest dostępna w formacie przedpremierowym po obniżonej cenie przez ograniczony czas."
#: templates/appearance/about.html:133
#, python-format
msgid ""
"\n"
" The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n" " The complete list of changes is available via the <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">Release notes %(icon_documentation)s</a> or the short version <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Changelog %(icon_documentation)s</a>.\n"
" " " "
msgstr "\nPełna lista zmian jest dostępna w <a class=\"new_window\" href=\"https://docs.mayan-edms.com/releases/index.html\">informacjach o wersji %(icon_documentation)s</a> lub w krótkiej wersji <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms/blob/master/HISTORY.rst\">Dziennik zmian %(icon_documentation)s</a> ." msgstr ""
#: templates/appearance/about.html:139 #: templates/appearance/about.html:127
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" For questions check the <a class=\"new_window\" href=\"https://docs.mayan-edms.com\">Documentation %(icon_documentation)s</a> or the <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\">Wiki %(icon_wiki)s</a>.\n" " For questions check the <a class=\"new_window\" href=\"https://docs.mayan-edms.com\">Documentation %(icon_documentation)s</a> or the <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\">Wiki %(icon_wiki)s</a>.\n"
" " " "
msgstr "\nW razie pytań sprawdź <a class=\"new_window\" href=\"https://docs.mayan-edms.com\">dokumentację %(icon_documentation)s</a> lub <a class=\"new_window\" href=\"https://wiki.mayan-edms.com\">Wiki %(icon_wiki)s</a> ." msgstr ""
#: templates/appearance/about.html:145 #: templates/appearance/about.html:133
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" If you found a bug or have a feature idea, visit the <a class=\"new_window\" href=\"https://forum.mayan-edms.com\">Forum %(icon_forum)s</a> or open a ticket in the <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\">Source code repository %(icon_source_code)s</a>.\n" " If you found a bug or have a feature idea, visit the <a class=\"new_window\" href=\"https://forum.mayan-edms.com\">Forum %(icon_forum)s</a> or open a ticket in the <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\">Source code repository %(icon_source_code)s</a>.\n"
" " " "
msgstr "\nJeśli znalazłeś błąd lub masz pomysł na funkcję, odwiedź <a class=\"new_window\" href=\"https://forum.mayan-edms.com\">forum %(icon_forum)s</a> lub otwórz zgłoszenie w <a class=\"new_window\" href=\"https://gitlab.com/mayan-edms/mayan-edms\">repozytorium kodu źródłowego %(icon_source_code)s</a> ." msgstr ""
#: templates/appearance/about.html:150 #: templates/appearance/about.html:138
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
" Spread the word. Talk to your friends and colleagues about how awesome %(project_title)s is!\n" " Spread the word. Talk to your friends and colleagues about how awesome %(project_title)s is!\n"
" Follow us on <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitter %(icon_social_twitter)s</a>, <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebook %(icon_social_facebook)s</a>, or <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagram %(icon_social_instagram)s</a>\n" " Follow us on <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitter %(icon_social_twitter)s</a>, <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebook %(icon_social_facebook)s</a>, or <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagram %(icon_social_instagram)s</a>\n"
" " " "
msgstr "\nPrzekaż innym. Porozmawiaj ze znajomymi i kolegami o tym, jak niesamowity jest %(project_title)s! Śledź nas na <a class=\"new_window\" href=\"https://twitter.com/mayanedms\">Twitterze %(icon_social_twitter)s</a> , <a class=\"new_window\" href=\"https://www.facebook.com/MayanEDMS/\">Facebooku %(icon_social_facebook)s</a> lub <a class=\"new_window\" href=\"https://www.instagram.com/mayan_edms/\">Instagramie %(icon_social_instagram)s</a>" msgstr ""
#: templates/appearance/base.html:36 templates/appearance/base.html:46 #: templates/appearance/base.html:32 templates/appearance/base.html:42
msgid "Warning" msgid "Warning"
msgstr "Ostrzeżenie" msgstr "Ostrzeżenie"
#: templates/appearance/base.html:46 #: templates/appearance/base.html:42
msgid "" msgid ""
"Settings updated, restart your installation for changes to take proper " "Settings updated, restart your installation for changes to take proper "
"effect." "effect."
msgstr "Ustawienia zaktualizowane. Aby zmiany przyniosły efekt zrestartuj instalację." msgstr ""
#: templates/appearance/base.html:60 #: templates/appearance/base.html:59
#: templates/appearance/generic_list_items_subtemplate.html:104 #: templates/appearance/generic_list_items_subtemplate.html:104
msgid "Actions" msgid "Actions"
msgstr "Akcje" msgstr "Akcje"
#: templates/appearance/base.html:62 #: templates/appearance/base.html:61
#: templates/appearance/generic_list_items_subtemplate.html:106 #: templates/appearance/generic_list_items_subtemplate.html:106
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "Rozwiń listę" msgstr "Rozwiń listę"
#: templates/appearance/generic_confirm.html:14 #: templates/appearance/generic_confirm.html:14
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Jesteś pewny?" msgstr ""
#: templates/appearance/generic_confirm.html:34 #: templates/appearance/generic_confirm.html:34
msgid "Yes" msgid "Yes"

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