Compare commits
168 Commits
versions/m
...
features/c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0e35cca704 | ||
|
|
661301f057 | ||
|
|
9448b148e9 | ||
|
|
a13f033104 | ||
|
|
968abe2cdb | ||
|
|
cca08d8103 | ||
|
|
3872db8c9f | ||
|
|
1315a74e27 | ||
|
|
8c6812203c | ||
|
|
4ed36e0114 | ||
|
|
c48fc203e3 | ||
|
|
af71ba927f | ||
|
|
894e009c2a | ||
|
|
f9ba08ee59 | ||
|
|
2819f9445b | ||
|
|
1b2ed08c7c | ||
|
|
c6c605e320 | ||
|
|
4b3ab82ee2 | ||
|
|
f8eda67bd5 | ||
|
|
58bcf20a46 | ||
|
|
49979dede5 | ||
| 09f481f5f0 | |||
|
|
a250919acc | ||
|
|
38980e5f75 | ||
|
|
6503d9474d | ||
|
|
e7734def58 | ||
|
|
f50d22b382 | ||
|
|
ad37228466 | ||
|
|
0917bd57b3 | ||
|
|
4dd270e75b | ||
|
|
3428c6aa20 | ||
|
|
eb1fb8511b | ||
|
|
bdbc7ef086 | ||
|
|
abea863184 | ||
|
|
d394583729 | ||
|
|
4db59c0808 | ||
|
|
12f24316a1 | ||
|
|
ef0843276b | ||
|
|
e20102333e | ||
|
|
4ecf075fd4 | ||
|
|
cc81a6905a | ||
|
|
3c9454160f | ||
|
|
2e1600c334 | ||
|
|
3e9f30cb91 | ||
|
|
a3a78f755d | ||
|
|
3988dedebf | ||
|
|
ff34c7d00a | ||
|
|
fe2de33e98 | ||
|
|
3efd1bd89d | ||
|
|
ea516cbc23 | ||
|
|
52ad3e7418 | ||
|
|
a001b4bbb3 | ||
|
|
31ed0e1ac8 | ||
|
|
9ad82695d9 | ||
|
|
69af4dd6b3 | ||
|
|
1c7ceca432 | ||
|
|
c05dcf5b05 | ||
|
|
85b05dd6ec | ||
|
|
9752584135 | ||
|
|
fd0d5728a1 | ||
|
|
88863fd6d0 | ||
|
|
3a7025d9c4 | ||
|
|
150c5d8cc2 | ||
|
|
93ba547350 | ||
|
|
f920dffc01 | ||
|
|
c2e99e6efb | ||
|
|
ff6674cc4a | ||
|
|
669dfeb30a | ||
|
|
6635bb4235 | ||
|
|
88bc29e4d7 | ||
|
|
9315776926 | ||
|
|
40a306996c | ||
|
|
033cecd946 | ||
|
|
ee63829e7f | ||
|
|
e4bc007bba | ||
|
|
84b329f661 | ||
|
|
4c73239dde | ||
|
|
2e12a6af41 | ||
|
|
3d7e6b6fbe | ||
|
|
6f907d156a | ||
|
|
fac77a2f73 | ||
|
|
0c3b6e5388 | ||
|
|
e652c7208c | ||
|
|
53928b2ab6 | ||
|
|
afc6b54520 | ||
|
|
070355033e | ||
|
|
0029d3074f | ||
|
|
4558894faf | ||
|
|
adeea6247f | ||
|
|
3563297d48 | ||
|
|
1e1b4dedf4 | ||
|
|
d65bbb718a | ||
|
|
5352c6ac6f | ||
|
|
cb7d5bf82a | ||
|
|
41a7d00e9e | ||
|
|
82d7339a64 | ||
|
|
e889021f43 | ||
|
|
d3a53fb53a | ||
|
|
b6565effb5 | ||
|
|
cf43ef2f73 | ||
|
|
6ca2845d19 | ||
|
|
ab601f9180 | ||
|
|
0b42567179 | ||
|
|
030ddd68e0 | ||
|
|
649571ebb1 | ||
|
|
b99bb88008 | ||
|
|
fd08a23339 | ||
|
|
917ec55ada | ||
|
|
ec4644b5c9 | ||
|
|
ff86c4c518 | ||
|
|
daebf2ddcc | ||
|
|
49a16acdf5 | ||
|
|
8c064c953a | ||
|
|
3c7a23a5a9 | ||
|
|
6bcf35bef5 | ||
|
|
7ef6102876 | ||
|
|
4363bba0fe | ||
|
|
e2f2181ebb | ||
|
|
d4f7e2cd16 | ||
|
|
058e36b4a9 | ||
|
|
1ddd5f26b1 | ||
|
|
44652d49fb | ||
|
|
119c1bde76 | ||
|
|
ed227b4111 | ||
|
|
c44090aca6 | ||
|
|
8a7da6a103 | ||
|
|
3e3b1f75a0 | ||
|
|
1ab7b7b9b1 | ||
|
|
3fab5c1427 | ||
|
|
516c3aeb2c | ||
|
|
3ac1000b46 | ||
|
|
4adeefc978 | ||
|
|
8bc4b6a95e | ||
|
|
37e85590e8 | ||
|
|
78a0189e1c | ||
|
|
91b0b2d9c3 | ||
|
|
8a54deba3d | ||
|
|
22da1e0a78 | ||
|
|
c9668d62e5 | ||
|
|
7a01a77c43 | ||
|
|
9564db398f | ||
|
|
7faa24eb7b | ||
|
|
51f278301b | ||
|
|
2cc35c3c61 | ||
|
|
8c73fda1ae | ||
|
|
8811c8269f | ||
|
|
f36f99c5fb | ||
|
|
0e972eff06 | ||
|
|
7913b5ddcc | ||
|
|
1c86ea5b5b | ||
|
|
ec6a3bd960 | ||
|
|
080553c797 | ||
|
|
08ee07e652 | ||
|
|
d7d77fcb55 | ||
|
|
bb5324ef50 | ||
|
|
4c212f6ea4 | ||
|
|
941356ed69 | ||
|
|
97804b255b | ||
|
|
06c3ef6583 | ||
|
|
6cd857e2bf | ||
|
|
fbb0f0b9bd | ||
|
|
9e068c3e83 | ||
|
|
72a3807354 | ||
|
|
109fcba795 | ||
|
|
01380e0572 | ||
|
|
5146c6d202 | ||
|
|
300bdbfc8a | ||
|
|
a0331e0236 |
13
.tx/config
13
.tx/config
@@ -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
|
||||||
|
|
||||||
|
|||||||
301
HISTORY.rst
301
HISTORY.rst
@@ -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.
|
||||||
|
|||||||
8
Makefile
8
Makefile
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
|
|
||||||
@@ -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 = (
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|
||||||
|
|
||||||
@@ -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 \
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
5
docker/rootfs/usr/local/bin/run_celery.sh
Executable file
5
docker/rootfs/usr/local/bin/run_celery.sh
Executable 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 $@"
|
||||||
7
docker/rootfs/usr/local/bin/run_frontend.sh
Executable file
7
docker/rootfs/usr/local/bin/run_frontend.sh
Executable 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}"
|
||||||
8
docker/rootfs/usr/local/bin/run_worker.sh
Executable file
8
docker/rootfs/usr/local/bin/run_worker.sh
Executable 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}"
|
||||||
@@ -1 +1 @@
|
|||||||
3.2.8
|
3.2.7
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)::
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
::
|
::
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
26
docs/conf.py
26
docs/conf.py
@@ -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')
|
||||||
|
|||||||
@@ -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
213
docs/releases/3.3.rst
Normal 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/
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Binary file not shown.
@@ -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 ""
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Binary file not shown.
@@ -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 ""
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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 (
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
DEFAULT_MAXIMUM_TITLE_LENGTH = 120
|
DEFAULT_MAXIMUM_TITLE_LENGTH = 120
|
||||||
|
DEFAULT_MESSAGE_POSITION = 'top-right'
|
||||||
|
|||||||
Binary file not shown.
@@ -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 ""
|
||||||
|
|||||||
Binary file not shown.
@@ -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 ""
|
||||||
|
|||||||
Binary file not shown.
@@ -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"
|
||||||
|
|||||||
Binary file not shown.
@@ -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 ""
|
||||||
|
|||||||
Binary file not shown.
@@ -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 ""
|
||||||
|
|||||||
Binary file not shown.
@@ -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"
|
||||||
|
|||||||
Binary file not shown.
@@ -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 ""
|
||||||
|
|||||||
@@ -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 ""
|
||||||
|
|||||||
Binary file not shown.
@@ -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"
|
||||||
|
|||||||
Binary file not shown.
@@ -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"
|
||||||
|
|||||||
Binary file not shown.
@@ -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"
|
||||||
|
|||||||
Binary file not shown.
@@ -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 ""
|
||||||
|
|||||||
Binary file not shown.
@@ -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 ""
|
||||||
|
|||||||
Binary file not shown.
@@ -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"
|
||||||
|
|||||||
Binary file not shown.
@@ -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"
|
||||||
|
|||||||
Binary file not shown.
@@ -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"
|
||||||
|
|||||||
Binary file not shown.
@@ -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
Reference in New Issue
Block a user