Compare commits

...
69 Commits
Author SHA1 Message Date
Angelo Dini 006367b678 Fixes test suite (#6688)
* add information for testing

* fix tests

* updated CHANGELOG

* update

* 1.8.5

* fix tests locally

* update text
2019-06-07 11:02:11 +02:00
Bartosz Płóciennik b810dd4417 Adding support for Django 2.2 LTS (#6655)
* New changes for cms 3.7

* Fix typo

* Fixed issue with force_color

* Removed unused import

* Added docs to index.rst

* Fixed travis jobs

* Fixed force_color command

* Changes after review

* Fixed django version in setup

* Update django-2.2.txt
2019-06-06 10:08:20 +02:00
Craig Anderson 15267a5ddf Add missing parenthesis in code (#6677) 2019-05-28 15:25:18 +02:00
Bartosz Płóciennik eeb1e4712b Restored Django flags in compat file (#6636) 2019-03-19 14:45:07 +01:00
Bartosz Płóciennik c973e9720e Fixed #6615 -- Removed depreciation warnings for imp package (#6637)
* Removed depreciation warnings for imp package

* Change try except
2019-03-19 14:44:44 +01:00
Baptiste Darthenay 91cd10c4a7 typo: added spaces on configuration docs (#6330) 2019-03-11 13:58:44 +01:00
Gourav Chawla(dotgourav) 4b25db2b42 Update copyright year in docs to be dynamic (#6618) 2019-03-11 13:58:11 +01:00
Paweł 4bdbf2b709 Page has no attribute site_id [Docs] (#6614)
* plugin_instance.position = new_plugin.position in CMSPlugin.copy_plugin
fix null position in copy_plugin method. CMSPlugin position not null +
default = 0

* CMSplugin.position not null

Django CMSPlugin.position null raises unorderable types: NoneType() <
int()

* fixed page has not attribute site_id
2019-03-11 13:57:52 +01:00
mobilepattern e9481b3e52 Update install documentation to use re_path (#6613)
* Update install documentation to use re_path 

The example with url(...) no longer works. The correct syntax is re_path(...).

* Changed documentation to based on feedback from Bartosz Płóciennik

The change to use re_path is only necessary when using Django 2.0. Reverted the change and added a note for Django 2.0 users.
2019-03-11 13:57:32 +01:00
Gourav Chawla(dotgourav) a613b53668 Fix typo in documentation (#6612)
- Fix typo in apphooks section of introduction docs
- Fix typo in index of introduction
2019-03-11 13:57:11 +01:00
Sascha Marcel Schmidt 54d1d7bbd4 Update install.rst (#6610)
change MIDDLEWARE_CLASSES to MIDDLEWARE as cms check expects
2019-03-11 13:56:38 +01:00
Robert Stein c5e105efda Fixed #6440 -- render_plugin_block template tag (#6472)
* - Fixes #6440 - `render_plugin_block` template tag
- removes unnecessary template
- updates changelog

* adapted changelog
2019-03-11 13:56:18 +01:00
schwobaseggl 63a0ac1891 Fix wrong field name (#6467)
`extended_page` is not a field of a `PageExtension`. This should be `extended_object`.
2019-03-11 13:55:46 +01:00
Vadim Sikora 7175ce9558 Fixed a bug with top-level object/embed/applet tags (#6497) 2019-03-11 13:55:17 +01:00
Bartosz Płóciennik f3fcf1c3ab Fixed travis matrix by moving menu test to allow_failures section (#6628)
* Moved test menu for python 2.7 to allow_failures section (#6625)

* Removed fast finish

* Add to include

* Restore fast_finish
2019-03-11 08:32:05 +01:00
Bartosz Płóciennik f7839c51d6 Fixed #6457 -- Fixed rendering of permission icons (#6624)
* use SVG icons

* add compatibility layer for Django-1.8
2019-03-07 08:46:24 +01:00
Bartosz Płóciennik 8007ce3d2f Release 3.6.0 (#6604) 2019-01-29 11:40:08 +01:00
Bartosz Płóciennik 2daeb7d63c Release 3.6.0rc3 (#6598)
* Release 3.6.0rc3

* Update translations
2019-01-24 11:47:37 +01:00
Bartosz Płóciennik 9e7c0517df Fixed #6595 -- missing clear cache for a menu after copied page (#6596)
* Add clear cache for copy page form

* Removed fixes for menu cache from changelog
2019-01-23 16:08:54 +01:00
Bartosz Płóciennik 9f71f86fd9 Release 3.6.0rc2 (#6591) 2019-01-14 14:41:01 +01:00
Bartosz Płóciennik 1191c9693e Fixed #6572 -- Added missing clear cache for menu when page moved (#6590) 2019-01-14 13:13:50 +01:00
Bartosz Płóciennik 41a8404032 Fixed #6585 -- Added missing clear cache for menu when page is created (#6584) 2019-01-14 08:02:04 +01:00
Jeroen a6b56a884e Issue #6342: docs of text_enabled
Issue #6342: Extended the docs of `text_enabled` param for plugins
2018-12-14 18:16:28 +00:00
Daniele Procida 9863ecd8ed Merge pull request #6582 from evildmp/evildmp/menu-system-logic
Improved menu logic description
2018-12-14 13:10:12 +00:00
Daniele Procida 5f03ce7acb Improved menu logic description
Flattened the deeply-nested list by breaking it apart into logical
sections. This will remedy issues in the PDF version of the documentation,
which failed to handle the list well.
2018-12-14 12:52:49 +00:00
Daniele Procida e6b5553d9e Updated release notes 2018-12-13 18:39:03 +00:00
Daniele Procida 6be77fd2e8 Fixed broken documentation references 2018-12-13 18:07:23 +00:00
Daniele Procida 68988aced4 Fixed spelling errors 2018-12-13 11:58:47 +00:00
Bartosz Płóciennik 577d8e1299 Release 3.6.0rc1 (#6576) 2018-12-12 15:08:55 +01:00
Bartosz Płóciennik e8e9d41ca8 Added documentation for cms 3.6.0 and 3.5.3 (#6575)
* Added 3.5.3 release notes
* Added documentation for cms 3.6.0
* Updated contributors
* Updated AUTHORS
2018-12-12 14:16:02 +01:00
Bartosz Płóciennik f7e0d19487 Bumped version to 3.6.0rc1 (#6559) 2018-11-15 13:26:28 +01:00
Bartosz Płóciennik 9830032180 Updated core team and version support details (#6555) (#6556) 2018-11-09 09:54:47 +00:00
Vadim Sikora 872d588236 Fixed a bug with deleting a model from changelist inside modal 2018-09-29 22:22:20 +02:00
Jacob Rief 6eaa3b6c1b Fixed #6340 -- Don't handle signals sent on fixture load (#6473) 2018-09-22 17:49:39 +03:00
Katie McLaughlin dc079e12b7 Upgraded test dependency Pillow (#6524) 2018-09-22 17:43:41 +03:00
Julz 66140bd9d8 Fixed #6083 -- Make on_delete configurable (#6487) 2018-09-10 09:58:34 +02:00
Paulo Alvarado 2923f0d919 Fixed #6383 -- Rewriting url of page corrupted after save basic settings of page (#6470) 2018-08-06 13:03:15 +01:00
Daniele Procida 93559da21f Improved how-to guides index page (#6464)
[ci only docs]
2018-07-30 15:23:03 +01:00
Daniele Procida 3ac77e20db Rewrote how-to guide and reference for the toolbar (#6427)
* Rewrote how-to guide and reference for the toolbar
* How-to guide makes best practice clearer.
* Numerous private APIs are no longer mentioned.
* Removed out-of-date comment re request-hook
2018-07-28 23:41:01 +01:00
Mateusz Kamycki 50dee524a1 Introduced Django 2.0 & 2.1 support (#6402) 2018-07-13 18:17:25 -04:00
Vadim Sikora 8964d77b87 Fixed a bug with expanding static placeholder by clicking on "Expand All" button 2018-06-21 14:05:48 +02:00
Daniele Procida 09a82422c0 Updated apphooks (how-to and introduction) (#6409)
* Updated apphooks how-to and introduction

[ci only docs]
2018-06-19 22:52:59 +01:00
Vadim Sikora a210eb71d4 Fixed a bug with not enabling plugins that are not rendered in content 2018-06-18 10:11:29 +02:00
Sergey Fedoseev deeccbc83b Added page_title parameter to create_page API function(#6122) 2018-06-15 13:59:49 -04:00
Chematronix 0507212300 Update apphooks.rst (#6255)
* Update apphooks.rst

You need to add *Application instance name* by hand to a page when you add an ``app_name`` #hopeitsavessomeoneelsethetrouble

* Changed as per czpython's suggestions

While still trying to convey that we're fixing the same problem than the previous paragraphs refers to (and that *Application instance name* only appears after setting ``app_name`` )
2018-06-14 08:07:11 -04:00
Paulo Alvarado 899a3d8cff Fixed #6335 -- Global permissions take precedence over cached page permissions (#6411) 2018-06-12 10:55:49 -04:00
Paulo Alvarado 675de13e6b Fixed #6346 -- Set xframe options exempt on cached response (#6403) 2018-06-10 18:32:01 -04:00
Daniele Procida 25a6e11d66 Docs tutorials small fixes (#6408)
* Made minor improvements to tutorial
2018-06-05 17:04:18 +01:00
Daniele Procida 33bf57dffa Update 03-integrating_applications.rst 2018-06-05 14:31:35 +01:00
Daniele Procida 9381429cd6 Docs tutorials small fixes (#6405)
* Fixed typo
* Improved URLs explanation
2018-06-05 12:44:35 +01:00
Daniele Procida 4205eca24f Improved toolbar tutorial (#6400)
* Improved toolbar tutorial
2018-06-01 17:26:32 +01:00
Daniele Procida d5e25f4992 Cleaned up apphooks documentation (#6397)
* fixes #6377

[ci only docs]
2018-05-31 20:00:58 +01:00
Daniele Procida 32d9b73a42 Fixes/improves introductory tutorial (#6390)
* introduces numbering of sections
* fixes #6359
2018-05-31 14:59:35 +01:00
Daniele Procida 591efd6b12 Fixed some spelling and build issues (#6391) 2018-05-31 14:46:59 +01:00
Vadim Sikora 61dfbdb586 Fixed a bug with incorrect move plugin handling 2018-05-28 17:21:30 +02:00
Vadim Sikora e9c1627941 Fixed a bug where structureboard tried to preload markup with legacy renderer 2018-05-28 14:22:35 +02:00
Aliaksei Urbanski 91b799e4ab Updated links in README to use https where possible (#6375)
Fixed outdated links to documentation pages
2018-05-16 21:33:04 -04:00
Frank 74ca478d49 Fixed #6002 -- Prevent users from moving homepage under another page (#6369) 2018-05-15 10:03:24 -04:00
Vadim Sikora 6d2d14b3ca Fixed #6353 -- Removed extra quotation mark from button sideframe template (#6364) 2018-05-09 10:22:09 -04:00
Krzysztof Socha dc1c19eca0 Refs #6185 -- Moved meta description length restriction from model to form (#6362)
Increased meta description length restriction to 320 characters
2018-05-07 13:18:31 -04:00
Paulo Alvarado fe29ed60d1 Fixed #6336 -- request.current_page should always respect draft/live state (#6350) 2018-05-01 18:05:20 -04:00
heppstux c5780a0df1 Fixed #6340 -- Reorder models to support dumpdata (#6341) 2018-04-25 07:46:41 -04:00
Paulo Alvarado 0b930e5547 Updated links to contributing docs 2018-04-24 14:44:03 -04:00
Paulo 9988097988 Removed signal handlers for Page, Title, Placeholder and CMSPlugin models 2018-04-16 10:34:48 -04:00
Paulo b1d1d50fac Removed the translatable content get / set methods from CMSPlugin model 2018-04-16 10:34:48 -04:00
Paulo 967b838d06 Dropped support for Django < 1.11 2018-04-16 10:34:48 -04:00
Paulo db8b1efcea Removed the cms moderator command 2018-04-16 10:34:48 -04:00
Paulo ed0c72250a Removed backwards compatible shims from 3.5 2018-04-16 10:34:48 -04:00
Paulo 163baaf69d Added 3.6 CHANGELOG 2018-04-16 10:34:48 -04:00
547 changed files with 5541 additions and 33372 deletions
+3 -3
View File
@@ -25,7 +25,7 @@ For *feature requests*, please use our `developers' email list
Contribution documentation
**************************
We maintain comprehensive `contribution documentation <http://docs.django-cms.org/en/stable/contributing/>`_ - please
We maintain comprehensive `contribution documentation <http://docs.django-cms.org/en/latest/contributing/>`_ - please
familiarise yourself with it.
@@ -51,7 +51,7 @@ Code of conduct
***************
django CMS is governed by a `Code of Conduct
<http://docs.django-cms.org/en/stable/contributing/code_of_conduct.html>`_. All participants in our community and its
<http://docs.django-cms.org/en/latest/contributing/code_of_conduct.html>`_. All participants in our community and its
various forums are expected to abide by it.
@@ -75,4 +75,4 @@ You can also follow:
* the `Travis Continuous Integration build reports <https://travis-ci.org/divio/django-cms>`_
* the `@djangocms`_ Twitter account for general announcements
.. _@djangocms : https://twitter.com/djangocms
.. _@djangocms : https://twitter.com/djangocms
+1
View File
@@ -23,6 +23,7 @@ dist
.project
.coverage
.pydevproject
.vscode
.settings
/*.egg-info/
/*.egg/
+81 -236
View File
@@ -4,7 +4,6 @@ python:
- 3.6
- 3.5
- 3.4
- 3.3
- 2.7
sudo: false
@@ -30,33 +29,87 @@ env:
- secure: CbPfysSncBB2Ue+VOtLDa8xJvwKl73nJO647zt/9UvZ/3PilnZN9aZv2jHxGvCiFXcez+2AddKptMCcx/5EW5UfRkrWUDHrfLCULU2TfOjmufEGM1eOIXhiAun8WQ85LBzTAYy1r9D514cbU3Yzn3xGZwJljPE8JE4cx3MNN/qQ=
# temporary solution until https://github.com/ariya/phantomjs/issues/13953 is resolved
- PHANTOMJS_CDNURL=https://s3.amazonaws.com/aldryn-local-assets
matrix:
- FRONTEND=1 UNIT=1
- FRONTEND=1 LINT=1
- FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=1 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=2 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=3 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- DJANGO=1.11 DATABASE_URL='sqlite://localhost/:memory:'
- DJANGO=1.11 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- TEST_DOCS=1 DJANGO=1.10 DATABASE_URL='sqlite://localhost/:memory:'
- DJANGO=1.10 DATABASE_URL='sqlite://localhost/:memory:'
- DJANGO=1.10 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- DJANGO=1.9 DATABASE_URL='sqlite://localhost/:memory:'
- DJANGO=1.9 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- DJANGO=1.8 DATABASE_URL='sqlite://localhost/:memory:'
- DJANGO=1.8 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
matrix:
include:
# FRONTEND
- python: 3.6
env: FRONTEND=1 UNIT=1
- python: 3.6
env: FRONTEND=1 LINT=1
- python: 3.6
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=1 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.6
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=2 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.6
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=3 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
# DJANGO 1.11
- python: 2.7
env: DJANGO=1.11 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.4
env: DJANGO=1.11 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.5
env: DJANGO=1.11 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.6
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
# DJANGO 2.0
- python: 3.4
env: DJANGO=2.0 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.5
env: DJANGO=2.0 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=2.0 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=2.0 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.6
env: DJANGO=2.0 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
# DJANGO 2.1
- python: 3.5
env: DJANGO=2.1 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.5
env: DJANGO=2.1 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=2.1 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=2.1 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.6
env: DJANGO=2.1 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.6
env: TEST_DOCS=1 DJANGO=2.1 DATABASE_URL='sqlite://localhost/:memory:'
# DJANGO 2.2
- python: 3.5
env: DJANGO=2.2 DATABASE_URL='sqlite://localhost/:memory:'
dist: xenial
sudo: true
- python: 3.5
env: DJANGO=2.2 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=2.2 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=2.2 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.6
env: DJANGO=2.2 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.6
env: TEST_DOCS=1 DJANGO=2.2 DATABASE_URL='sqlite://localhost/:memory:'
dist: xenial
sudo: true
allow_failures:
- python: 2.7
env: DJANGO=1.11 DATABASE_URL='sqlite://localhost/:memory:'
exclude:
- python: 2.7
- python: 3.4
- python: 3.5
- python: 3.6
fast_finish: true
before_script:
- pip freeze
@@ -93,211 +146,3 @@ notifications:
irc:
- irc.freenode.org#django-cms
- irc.freenode.org#django-cms-sprint
webhooks:
- http://addons.us-iad-rs.aldryn.io/en/travis-endpoint/
matrix:
exclude:
- python: 2.7
env: TEST_DOCS=1 DJANGO=1.10 DATABASE_URL='sqlite://localhost/:memory:'
- python: 2.7
env: DJANGO=1.11 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 2.7
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 2.7
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 2.7
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 2.7
env: DJANGO=1.10 DATABASE_URL='sqlite://localhost/:memory:'
- python: 2.7
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 2.7
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 2.7
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 2.7
env: DJANGO=1.9 DATABASE_URL='sqlite://localhost/:memory:'
- python: 2.7
env: DJANGO=1.9 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 2.7
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 2.7
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 2.7
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=1 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 2.7
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=2 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 2.7
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=3 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 2.7
env: FRONTEND=1 UNIT=1
- python: 2.7
env: FRONTEND=1 LINT=1
- python: 3.3
env: TEST_DOCS=1 DJANGO=1.10 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.3
env: DJANGO=1.11 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.3
env: DJANGO=1.11 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.3
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.3
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.3
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.3
env: DJANGO=1.10 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.3
env: DJANGO=1.10 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.3
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.3
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.3
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.3
env: DJANGO=1.9 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.3
env: DJANGO=1.9 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.3
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.3
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.3
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.3
env: DJANGO=1.8 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.3
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.3
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.3
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.3
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=1 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.3
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=2 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.3
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=3 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.3
env: FRONTEND=1 UNIT=1
- python: 3.3
env: FRONTEND=1 LINT=1
- python: 3.4
env: TEST_DOCS=1 DJANGO=1.10 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.4
env: DJANGO=1.11 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.4
env: DJANGO=1.11 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.4
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.4
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.4
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.4
env: DJANGO=1.10 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.4
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.4
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.4
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.4
env: DJANGO=1.9 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.4
env: DJANGO=1.9 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.4
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.4
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.4
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.4
env: DJANGO=1.8 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.4
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.4
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.4
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.4
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=1 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.4
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=2 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.4
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=3 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.4
env: FRONTEND=1 UNIT=1
- python: 3.4
env: FRONTEND=1 LINT=1
- python: 3.6
env: TEST_DOCS=1 DJANGO=1.10 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.6
env: DJANGO=1.11 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.6
env: DJANGO=1.11 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.6
env: DJANGO=1.10 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.6
env: DJANGO=1.10 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.6
env: DJANGO=1.10 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.6
env: DJANGO=1.9 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.6
env: DJANGO=1.9 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.6
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.6
env: DJANGO=1.8 DATABASE_URL='sqlite://localhost/:memory:'
- python: 3.6
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='customuserapp.User'
- python: 3.6
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.6
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=1 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.6
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=2 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.6
env: FRONTEND=1 INTEGRATION=1 INTEGRATION_TESTS_BUCKET=3 DJANGO=1.11 DATABASE_URL='sqlite://localhost/testdb.sqlite'
- python: 3.6
env: FRONTEND=1 UNIT=1
- python: 3.6
env: FRONTEND=1 LINT=1
allow_failures:
- python: 2.7
env: DJANGO=1.8 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.4
env: DJANGO=1.8 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.5
env: DJANGO=1.8 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
- python: 3.6
env: DJANGO=1.8 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test'
fast_finish: true
+37 -10
View File
@@ -21,8 +21,9 @@ Current and previous core designers:
* Matthias Nüesch
Contributors (based on gitlog, 497 unique authors):
Contributors (based on gitlog, 537 unique authors):
* Антон Евжаков
* A. Bram Neijt
* aaloy
* Aaron Fay
@@ -34,6 +35,7 @@ Contributors (based on gitlog, 497 unique authors):
* Admin Adminaras
* Adrien Brunet
* Adrián Ribao Martínez
* Aidas Bendoraitis
* Alberto Paro
* Ales Kocjancic
* Ales Zabala Alava (Shagi)
@@ -44,6 +46,7 @@ Contributors (based on gitlog, 497 unique authors):
* Alexander Paramonov
* Alexandre Leray
* Alexey Subbotin
* Aliaksei Urbanski
* alskgj
* Alvin Mites
* Anatoly Ivanov
@@ -51,11 +54,14 @@ Contributors (based on gitlog, 497 unique authors):
* Andras Gyömrey
* Andre Bossard
* Andrea Stagi
* Andreas Elvers
* Andrei Avram
* Andrei Fokau
* Andrew Schoen
* André Cruz
* Angelo Dini
* angular_circle
* Anthony Steinhauser
* Antoine Catton
* Anton Parkhomenko
* AQNOUCH Mohammed
@@ -66,6 +72,7 @@ Contributors (based on gitlog, 497 unique authors):
* Arthur Debert
* Artis Avotins
* Aymeric Augustin
* Bartosz Płóciennik
* Basile LEGAL
* behrooz
* Behrooz Nobakht
@@ -94,9 +101,12 @@ Contributors (based on gitlog, 497 unique authors):
* Carlos de Paula
* casio
* centralniak
* Cezar Pendarovski
* cezar77
* Chanita Siridechkun
* Charlie Denton
* Charpentier Johan
* Chematronix
* Cheng-Chia Tseng
* Chris Adams
* Chris Franklin
@@ -177,11 +187,13 @@ Contributors (based on gitlog, 497 unique authors):
* fcurella
* febsn
* Filip Kazimierczak
* Filipe Waitman
* FinalAngel
* fivethreeo
* fj
* floppya
* Florian Verdet
* Frank
* Frank Bieniek
* FrankBie
* frost-nzcr4
@@ -209,6 +221,7 @@ Contributors (based on gitlog, 497 unique authors):
* hedberg
* henning
* Henning Sprang
* heppstux
* Herbert Poul
* hjkelly
* Horst Gutmann
@@ -224,11 +237,13 @@ Contributors (based on gitlog, 497 unique authors):
* J. Cliff Dyer
* Jacob Rief
* Jakob Hedman
* Jakub Randák
* jalaziz
* Jameel Al-Aziz
* James Richards
* James Rutherford
* Jana Deutschlaender
* Jannik V
* Jannis Leidel
* Janusz Harkot
* Jared Proffitt
@@ -238,6 +253,8 @@ Contributors (based on gitlog, 497 unique authors):
* Jason Robinson
* Jeffrey Goettsch
* Jens Diemer
* JensDiemer
* Jeroen
* Jeroen Noten
* Jessica Tallon
* Jimmy Lam
@@ -252,14 +269,17 @@ Contributors (based on gitlog, 497 unique authors):
* Jorge Vargas
* Jos van Velzen
* Joseph Bergantine
* Joseph Lin
* Joseph Melettukunnel
* Josh Kalderimis
* Josh Schneier
* João Luiz Lorencetti
* Julien Poissonnier
* Julz
* Júlio R. Lucchese
* Kalle Bronsen
* kater169
* Katie McLaughlin
* kblomqvist
* Kegan Holtzhausen
* Keryn Knight
@@ -269,12 +289,14 @@ Contributors (based on gitlog, 497 unique authors):
* Kim Thoenen
* kochin
* Kristian Øllegaard
* Krzysztof Socha
* kunitoki
* L-A Iscla
* Lars Smit
* Lars van de Kerkhof
* Leonardo
* Laurens Bosscher
* Leon Smith
* Leonardo
* Lio Mendonca
* Lionardo Mendonça
* littlepea
@@ -295,7 +317,7 @@ Contributors (based on gitlog, 497 unique authors):
* Marc-Olivier Titeux
* Marco Badan
* Marco Bonetti
* marco federighi
* Marco Federighi
* Marco Paolini
* Marco Rimoldi
* marcor
@@ -304,7 +326,7 @@ Contributors (based on gitlog, 497 unique authors):
* Mark Rogers
* Mark Walker
* Markus Holtermann
* Markus Zapke-Gründemann
* Markus Zapke-Grndemann
* Marti Raudsepp
* Martin
* Martin Bambas
@@ -316,6 +338,7 @@ Contributors (based on gitlog, 497 unique authors):
* martinkosir
* Matas Dailyda
* Mateusz Dereniowski
* Mateusz Kamycki
* Mateusz Marzantowicz
* mathijs
* Matt Chisholm
@@ -328,12 +351,12 @@ Contributors (based on gitlog, 497 unique authors):
* mbouchar
* mcosta
* meers
* meomap
* Mel Collins
* meomap
* MerLex
* Michal Danilak
* Michael P. Jung
* Michael Thornhill
* Michal Danilak
* Mike Dory
* Mike Johnson
* mikek
@@ -351,6 +374,7 @@ Contributors (based on gitlog, 497 unique authors):
* Nelson Brochado
* neoprolog
* Nick Jones
* Nicolas
* Nicolas PASCAL
* nikolas
* Nina Zakharenko
@@ -372,6 +396,7 @@ Contributors (based on gitlog, 497 unique authors):
* Patrick Arminio
* Patrick Lauber
* Patrick Toal
* patricklauber
* Patryk Zawadzki
* paul
* Paul van der Linden
@@ -407,6 +432,7 @@ Contributors (based on gitlog, 497 unique authors):
* Rajesh P.
* Rebecca Breu
* Remco Wendt
* René Fleschenberg
* requires.io
* Restless Being
* Richard Barran
@@ -439,8 +465,8 @@ Contributors (based on gitlog, 497 unique authors):
* sealibora
* Sean Bleier
* Sebastian Braun
* Seth Buntin
* Sergey Fedoseev
* Seth Buntin
* Seyhun Akyurek
* Shahar Or
* Shatalov Vadim
@@ -463,6 +489,7 @@ Contributors (based on gitlog, 497 unique authors):
* Stefano Brentegani
* Stefano Crosta
* Stefano Morandi
* Stefano Probst
* Steffen Jasper
* Stephan
* Stephan Hepper
@@ -483,6 +510,7 @@ Contributors (based on gitlog, 497 unique authors):
* Thomas Parslow
* Thomas Remmert
* Thomas Woolford
* thomas-d
* Tim Anderegg
* Tim Davies
* Tim Graham
@@ -496,9 +524,9 @@ Contributors (based on gitlog, 497 unique authors):
* Tom S
* Tom V
* Tom Wardill
* thomas-d
* Ulrich Petri
* unknown
* uno
* User
* Vadim Lopatyuk
* Vadim Sikora
@@ -529,7 +557,6 @@ Contributors (based on gitlog, 497 unique authors):
* Yuri van der Meer
* zandeez
* zundoya
* Žan Anderle
* Óscar M. Lage
* Øyvind Saltvik
* Žan Anderle
* Антон Евжаков
+44
View File
@@ -1,3 +1,47 @@
=== 3.7.0 (unreleased) ===
* Introduced Django 2.2 support.
* Fixed test suite.
=== 3.6.0 (2019-01-29) ===
* Removed the ``cms moderator`` command.
* Dropped Django < 1.11 support.
* Removed the translatable content get / set methods from ``CMSPlugin`` model.
* Removed signal handlers for ``Page``, ``Title``, ``Placeholder`` and ``CMSPlugin`` models.
* Moved ``Title.meta_description`` length restriction from model to form
and increased its max length to 320 characters.
* Added ``page_title`` parameter for ``cms.api.create_page()`` and ``cms.api.create_title()``.
* Introduced Django 2.0 support.
* Introduced Django 2.1 support.
=== 3.5.3 (2018-11-20) ===
* Fixed ``TreeNode.DoesNotExist`` exception raised when exporting
and loading database contents via ``dumpdata`` and ``loaddata``.
* Fixed a bug where ``request.current_page`` would always be the public page,
regardless of the toolbar status (draft / live). This only affected custom
urls from an apphook.
* Removed extra quotation mark from the sideframe button template
* Fixed a bug where structureboard tried to preload markup when using legacy
renderer
* Fixed a bug where updates on other tab are not correctly propagated if the
operation was to move a plugin in the top level of same placeholder
* Fixed a bug where xframe options were processed by clickjacking middleware
when page was served from cache, rather then get this value from cache
* Fixed a bug where cached page permissions overrides global permissions
* Fixed a bug where plugins that are not rendered in content wouldn't be
editable in structure board
* Fixed a bug with expanding static placeholder by clicking on "Expand All" button
* Fixed a bug where descendant pages with a custom url would lose the overwritten
url on save.
* Fixed a bug where setting the ``on_delete`` option on ``PlaceholderField``
and ``PageField`` fields would be ignored.
* Fixed a bug when deleting a modal from changelist inside a modal
=== 3.5.2 (2018-04-11) ===
* Fixed a bug where shortcuts menu entry would stop working after toolbar reload
+6 -6
View File
@@ -2,7 +2,7 @@
django CMS
##########
.. image:: https://travis-ci.org/divio/django-cms.svg?branch=develop
:target: http://travis-ci.org/divio/django-cms
:target: https://travis-ci.org/divio/django-cms
.. image:: https://img.shields.io/pypi/v/django-cms.svg
:target: https://pypi.python.org/pypi/django-cms/
.. image:: https://img.shields.io/badge/wheel-yes-green.svg
@@ -48,17 +48,17 @@ Features
Developing applications that integrate with and take advantage of django CMS features is easy and well-documented.
More information on `our website <http://www.django-cms.org>`_.
More information on `our website <https://www.django-cms.org>`_.
************
Requirements
************
See the `Python/Django requirements for the current release version
<http://docs.django-cms.org/en/stable/#software-version-requirements-and-release-notes>`_ in our documentation.
<http://docs.django-cms.org/en/latest/#software-version-requirements-and-release-notes>`_ in our documentation.
See the `installation how-to guide for an overview of some other requirements and dependencies of the current release
<http://docs.django-cms.org/en/stable/how-to/install.html>`_
<http://docs.django-cms.org/en/latest/how_to/install.html>`_
*************
Documentation
@@ -71,7 +71,7 @@ We maintain documentation for several versions of the project. Key versions are:
* `develop <http://docs.django-cms.org/en/develop/>`_, representing the latest build of the **develop branch**
For more information about our branch policy, see `Branches
<http://docs.django-cms.org/en/stable/contributing/development-policies.html>`_.
<http://docs.django-cms.org/en/latest/contributing/development-policies.html>`_.
Our documentation is hosted courtesy of `Read the Docs <https://readthedocs.org>`_.
@@ -122,7 +122,7 @@ Credits
* Includes icons from `FamFamFam <http://www.famfamfam.com>`_.
* Python tree engine powered by
`django-treebeard <https://tabo.pe/projects/django-treebeard/>`_.
* JavaScript tree in admin uses `jsTree <http://www.jstree.com>`_.
* JavaScript tree in admin uses `jsTree <https://www.jstree.com>`_.
* Many thanks to the
`over 515 contributors <https://github.com/divio/django-cms/blob/develop/AUTHORS>`_
to the django CMS!
+1 -1
View File
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
__version__ = '3.5.2'
__version__ = '3.6.0'
default_app_config = 'cms.apps.CMSConfig'
+37 -6
View File
@@ -14,6 +14,7 @@ from django.utils.translation import ugettext, ugettext_lazy as _
from cms import api
from cms.apphook_pool import apphook_pool
from cms.cache.permissions import clear_permission_cache
from cms.exceptions import PluginLimitReached
from cms.extensions import extension_pool
from cms.constants import PAGE_TYPES_ID, PUBLISHER_STATE_DIRTY, ROOT_USER_LEVEL
@@ -126,9 +127,9 @@ class BasePageForm(forms.ModelForm):
help_text=_('Overwrites what is displayed at the top of your browser or in bookmarks'),
required=False)
meta_description = forms.CharField(label=_('Description meta tag'), required=False,
widget=forms.Textarea(attrs={'maxlength': '155', 'rows': '4'}),
widget=forms.Textarea(attrs={'maxlength': '320', 'rows': '4'}),
help_text=_('A description of the page used by search engines.'),
max_length=155)
max_length=320)
class Meta:
model = Page
@@ -293,6 +294,8 @@ class AddPageForm(BasePageForm):
# its the first page. publish it right away
new_page.publish(translation.language)
new_page.set_as_homepage(self._user)
new_page.clear_cache(menu=True)
return new_page
@@ -390,7 +393,7 @@ class ChangePageForm(BasePageForm):
def __init__(self, *args, **kwargs):
super(ChangePageForm, self).__init__(*args, **kwargs)
title_obj = self.instance.get_title_obj(
self.title_obj = self.instance.get_title_obj(
language=self._language,
fallback=False,
force_reload=True,
@@ -398,7 +401,7 @@ class ChangePageForm(BasePageForm):
for field in self.translation_fields:
if field in self.fields:
self.fields[field].initial = getattr(title_obj, field)
self.fields[field].initial = getattr(self.title_obj, field)
def clean(self):
data = super(ChangePageForm, self).clean()
@@ -414,6 +417,10 @@ class ChangePageForm(BasePageForm):
data['path'] = ''
return data
if self.title_obj.has_url_overwrite:
data['path'] = self.title_obj.path
return data
if 'slug' not in self.fields:
# the {% edit_title_fields %} template tag
# allows users to edit specific fields for a translation.
@@ -449,7 +456,10 @@ class ChangePageForm(BasePageForm):
for field in self.translation_fields if field in data}
if 'path' in data:
# this field is managed manually
# The path key is set if
# the slug field is present in the form,
# or if the page being edited is the home page,
# or if the translation has a url override.
translation_data['path'] = data['path']
update_count = cms_page.update_translations(
@@ -465,6 +475,7 @@ class ChangePageForm(BasePageForm):
api.create_title(language=self._language, page=cms_page, **translation_data)
else:
cms_page._update_title_path_recursive(self._language)
cms_page.clear_cache(menu=True)
return cms_page
@@ -474,6 +485,11 @@ class PublicationDatesForm(forms.ModelForm):
model = Page
fields = ['publication_date', 'publication_end_date']
def save(self, *args, **kwargs):
page = super(PublicationDatesForm, self).save(*args, **kwargs)
page.clear_cache(menu=True)
return page
class AdvancedSettingsForm(forms.ModelForm):
from cms.forms.fields import PageSmartLinkField
@@ -499,7 +515,7 @@ class AdvancedSettingsForm(forms.ModelForm):
redirect = PageSmartLinkField(label=_('Redirect'), required=False,
help_text=_('Redirects to this URL.'),
placeholder_text=_('Start typing...'),
ajax_view='admin:cms_page_get_published_pagelist'
ajax_view='admin:cms_page_get_published_pagelist',
)
# This is really a 'fake' field which does not correspond to any Page attribute
@@ -758,6 +774,7 @@ class AdvancedSettingsForm(forms.ModelForm):
if is_draft_and_has_public and self.has_changed_apphooks():
self.update_apphooks()
page.clear_cache(menu=True)
return page
@@ -767,6 +784,12 @@ class PagePermissionForm(forms.ModelForm):
model = Page
fields = ['login_required', 'limit_visibility_in_menu']
def save(self, *args, **kwargs):
page = super(PagePermissionForm, self).save(*args, **kwargs)
page.clear_cache(menu=True)
clear_permission_cache()
return page
class PageTreeForm(forms.Form):
@@ -825,6 +848,13 @@ class PageTreeForm(forms.Form):
class MovePageForm(PageTreeForm):
def clean(self):
cleaned_data = super(MovePageForm, self).clean()
if self.page.is_home and cleaned_data.get('target'):
self.add_error('target', force_text(_('You can\'t move the home page inside another page')))
return cleaned_data
def get_tree_options(self):
options = super(MovePageForm, self).get_tree_options()
target_node, target_node_position = options
@@ -868,6 +898,7 @@ class CopyPageForm(PageTreeForm):
copy_permissions=copy_permissions,
target_site=self._site,
)
new_page.clear_cache(menu=True)
return new_page
def _get_tree_options_for_root(self, position):
+45 -9
View File
@@ -53,6 +53,7 @@ from cms.admin.forms import (
)
from cms.admin.permissionadmin import PERMISSION_ADMIN_INLINES
from cms.admin.placeholderadmin import PlaceholderAdminMixin
from cms.cache.permissions import clear_permission_cache
from cms.constants import PUBLISHER_STATE_PENDING
from cms.models import (
EmptyTitle, Page, PageType,
@@ -72,6 +73,7 @@ from cms.utils.i18n import (
get_site_language_from_request,
)
from cms.utils.admin import jsonify_request
from cms.utils.compat import DJANGO_2_0
from cms.utils.conf import get_cms_setting
from cms.utils.urlutils import admin_reverse
@@ -441,8 +443,19 @@ class BasePageAdmin(PlaceholderAdminMixin, admin.ModelAdmin):
# Populate deleted_objects, a data structure of all related objects that
# will also be deleted.
objs = [obj] + list(obj.get_descendant_pages())
if DJANGO_2_0:
get_deleted_objects_additional_kwargs = {
'opts': opts,
'using': using,
'user': request.user,
}
else:
get_deleted_objects_additional_kwargs = {'request': request}
(deleted_objects, model_count, perms_needed, protected) = get_deleted_objects(
objs, opts, request.user, self.admin_site, using)
objs, admin_site=self.admin_site,
**get_deleted_objects_additional_kwargs
)
if request.POST and not protected: # The user has confirmed the deletion.
if perms_needed:
@@ -486,6 +499,19 @@ class BasePageAdmin(PlaceholderAdminMixin, admin.ModelAdmin):
obj=obj,
)
cms_pages = [obj]
if obj.publisher_public:
cms_pages.append(obj.publisher_public)
if obj.node.is_branch:
nodes = obj.node.get_descendants()
cms_pages.extend(self.model.objects.filter(node__in=nodes))
for page in cms_pages:
page._clear_placeholders()
page.get_placeholders().delete()
super(BasePageAdmin, self).delete_model(request, obj)
self._send_post_page_operation(
@@ -495,6 +521,11 @@ class BasePageAdmin(PlaceholderAdminMixin, admin.ModelAdmin):
obj=obj,
)
clear_permission_cache()
if obj.application_urls:
set_restart_trigger()
def get_copy_dialog(self, request, page_id):
if not get_cms_setting('PERMISSION'):
return HttpResponse('')
@@ -644,6 +675,9 @@ class BasePageAdmin(PlaceholderAdminMixin, admin.ModelAdmin):
)
return can_change_page
def has_view_permission(self, request, obj=None):
return self.has_change_permission(request, obj)
def has_change_advanced_settings_permission(self, request, obj=None):
if not obj:
return False
@@ -1251,22 +1285,24 @@ class BasePageAdmin(PlaceholderAdminMixin, admin.ModelAdmin):
pluginopts = CMSPlugin._meta
saved_plugins = CMSPlugin.objects.filter(placeholder__page__id=object_id, language=language)
using = router.db_for_read(self.model)
kwargs = {
'admin_site': self.admin_site,
'user': request.user,
'using': using
}
kwargs = {'admin_site': self.admin_site}
if DJANGO_2_0:
kwargs.update({'using': using, 'opts': titleopts, 'user': request.user})
else:
kwargs.update({'request': request})
deleted_objects, __, perms_needed = get_deleted_objects(
[translation],
titleopts,
**kwargs
)[:3]
if DJANGO_2_0:
kwargs.update({'using': using, 'opts': pluginopts, 'user': request.user})
else:
kwargs.update({'request': request})
to_delete_plugins, __, perms_needed_plugins = get_deleted_objects(
saved_plugins,
pluginopts,
**kwargs
)[:3]
+13 -1
View File
@@ -12,7 +12,7 @@ from django.utils.translation import gettext_lazy as _
from cms.admin.forms import GlobalPagePermissionAdminForm, PagePermissionInlineAdminForm, ViewRestrictionInlineAdminForm
from cms.exceptions import NoPermissionsException
from cms.models import PagePermission, GlobalPagePermission
from cms.utils import permissions
from cms.utils import permissions, page_permissions
from cms.utils.conf import get_cms_setting
from cms.utils.helpers import classproperty
@@ -38,6 +38,18 @@ class PagePermissionInlineAdmin(TabularInline):
extra = 0 # edit page load time boost
show_with_view_permissions = False
def has_change_permission(self, request, obj=None):
if not obj:
return False
return page_permissions.user_can_change_page_permissions(
request.user,
page=obj,
site=obj.node.site,
)
def has_add_permission(self, request, obj=None):
return self.has_change_permission(request, obj)
@classproperty
def raw_id_fields(cls):
# Dynamically set raw_id_fields based on settings
+47 -4
View File
@@ -36,8 +36,9 @@ from cms.plugin_pool import plugin_pool
from cms.signals import pre_placeholder_operation, post_placeholder_operation
from cms.toolbar.utils import get_plugin_tree_as_json
from cms.utils import copy_plugins, get_current_site
from cms.utils.compat import DJANGO_2_0
from cms.utils.conf import get_cms_setting
from cms.utils.i18n import get_language_list, get_language_code
from cms.utils.i18n import get_language_code, get_language_list
from cms.utils.plugins import has_reached_plugin_limit, reorder_plugins
from cms.utils.urlutils import admin_reverse
@@ -342,6 +343,9 @@ class PlaceholderAdminMixin(object):
plugin = getattr(plugin_instance, 'saved_object', None)
if plugin:
plugin.placeholder.mark_as_dirty(plugin.language, clear_cache=False)
if plugin_instance._operation_token:
tree_order = placeholder.get_plugin_tree_order(plugin.parent_id)
self._send_post_placeholder_operation(
@@ -528,6 +532,7 @@ class PlaceholderAdminMixin(object):
language=target_language,
order=target_tree_order,
)
target_placeholder.mark_as_dirty(target_language, clear_cache=False)
new_plugins = CMSPlugin.objects.filter(pk__in=new_plugin_ids).order_by('path')
new_plugins = list(new_plugins)
@@ -564,6 +569,9 @@ class PlaceholderAdminMixin(object):
plugin = getattr(plugin_instance, 'saved_object', None)
if plugin:
plugin.placeholder.mark_as_dirty(plugin.language, clear_cache=False)
if plugin_instance._operation_token:
self._send_post_placeholder_operation(
request,
@@ -770,6 +778,7 @@ class PlaceholderAdminMixin(object):
language=target_language,
order=target_tree_order,
)
target_placeholder.mark_as_dirty(target_language, clear_cache=False)
# Fetch from db to update position and other tree values
root_plugin.refresh_from_db()
@@ -828,6 +837,7 @@ class PlaceholderAdminMixin(object):
language=target_language,
order=target_tree_order,
)
target_placeholder.mark_as_dirty(target_language, clear_cache=False)
new_plugins = (
CMSPlugin
@@ -925,6 +935,10 @@ class PlaceholderAdminMixin(object):
language=target_language,
order=new_target_order,
)
target_placeholder.mark_as_dirty(target_language, clear_cache=False)
if source_placeholder != target_placeholder:
source_placeholder.mark_as_dirty(source_language, clear_cache=False)
# Refresh plugin to get new tree and position values
updated_plugin.refresh_from_db()
@@ -990,6 +1004,8 @@ class PlaceholderAdminMixin(object):
new_source_order = list(source_tree_order)
new_source_order.remove(updated_plugin.pk)
source_placeholder.mark_as_dirty(target_language, clear_cache=False)
self._send_post_placeholder_operation(
request,
operation=operations.CUT_PLUGIN,
@@ -1014,8 +1030,18 @@ class PlaceholderAdminMixin(object):
opts = plugin._meta
using = router.db_for_write(opts.model)
if DJANGO_2_0:
get_deleted_objects_additional_kwargs = {
'opts': opts,
'using': using,
'user': request.user,
}
else:
get_deleted_objects_additional_kwargs = {'request': request}
deleted_objects, __, perms_needed, protected = get_deleted_objects(
[plugin], opts, request.user, self.admin_site, using)
[plugin], admin_site=self.admin_site,
**get_deleted_objects_additional_kwargs
)
if request.POST: # The user has already confirmed the deletion.
if perms_needed:
@@ -1036,6 +1062,12 @@ class PlaceholderAdminMixin(object):
)
plugin.delete()
placeholder.mark_as_dirty(plugin.language, clear_cache=False)
reorder_plugins(
placeholder=placeholder,
parent_id=plugin.parent_id,
language=plugin.language,
)
self.log_deletion(request, plugin, obj_display)
self.message_user(request, _('The %(name)s plugin "%(obj)s" was deleted successfully.') % {
@@ -1096,8 +1128,19 @@ class PlaceholderAdminMixin(object):
opts = Placeholder._meta
using = router.db_for_write(Placeholder)
plugins = placeholder.get_plugins_list(language)
if DJANGO_2_0:
get_deleted_objects_additional_kwargs = {
'opts': opts,
'using': using,
'user': request.user,
}
else:
get_deleted_objects_additional_kwargs = {'request': request}
deleted_objects, __, perms_needed, protected = get_deleted_objects(
plugins, opts, request.user, self.admin_site, using)
plugins, admin_site=self.admin_site,
**get_deleted_objects_additional_kwargs
)
obj_display = force_text(placeholder)
@@ -1114,7 +1157,7 @@ class PlaceholderAdminMixin(object):
)
placeholder.clear(language)
placeholder.mark_as_dirty(language, clear_cache=True)
placeholder.mark_as_dirty(language, clear_cache=False)
self.log_deletion(request, placeholder, obj_display)
self.message_user(request, _('The placeholder "%(obj)s" was cleared successfully.') % {
+6
View File
@@ -77,6 +77,12 @@ class GenericCmsPermissionAdmin(object):
return False
return self._has_change_permissions_permission(request)
def has_view_permission(self, request, obj=None):
# For django 2.1
# Default is to return True if user got `change` perm, but we have to
# get in consideration also cms permission system
return self.has_change_permission(request, obj)
class PageUserAdmin(GenericCmsPermissionAdmin, admin_class):
form = PageUserChangeForm
+7 -1
View File
@@ -107,7 +107,7 @@ def create_page(title, template, language, menu_title=None, slug=None,
navigation_extenders=None, published=False, site=None,
login_required=False, limit_visibility_in_menu=constants.VISIBILITY_ALL,
position="last-child", overwrite_url=None,
xframe_options=Page.X_FRAME_OPTIONS_INHERIT):
xframe_options=Page.X_FRAME_OPTIONS_INHERIT, page_title=None):
"""
Create a CMS Page and it's title for the given language
@@ -193,6 +193,7 @@ def create_page(title, template, language, menu_title=None, slug=None,
create_title(
language=language,
title=title,
page_title=page_title,
menu_title=menu_title,
slug=slug,
redirect=redirect,
@@ -250,6 +251,11 @@ def create_title(language, title, page, menu_title=None, slug=None,
page=page,
has_url_overwrite=bool(overwrite_url),
)
page_languages = page.get_languages()
if language not in page_languages:
page.update_languages(page_languages + [language])
return title
+35 -29
View File
@@ -4,17 +4,19 @@ from importlib import import_module
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import (RegexURLResolver, Resolver404, reverse,
RegexURLPattern)
from django.db import OperationalError, ProgrammingError
from django.utils import six
from django.utils.translation import get_language, override
from django.urls import Resolver404, reverse
from cms.apphook_pool import apphook_pool
from cms.models.pagemodel import Page
from cms.utils import get_current_site
from cms.utils.compat import DJANGO_1_8, DJANGO_1_9
from cms.utils.compat import DJANGO_1_11
from cms.utils.compat.dj import RegexPattern, URLPattern, URLResolver
from cms.utils.i18n import get_language_list
from cms.utils.moderator import use_draft
APP_RESOLVERS = []
@@ -38,6 +40,9 @@ def applications_page_check(request, current_page=None, path=None):
for lang in get_language_list():
if path.startswith(lang + "/"):
path = path[len(lang + "/"):]
use_public = not use_draft(request)
for resolver in APP_RESOLVERS:
try:
page_id = resolver.resolve_page_id(path)
@@ -46,7 +51,7 @@ def applications_page_check(request, current_page=None, path=None):
# If current page was matched, then we have some override for
# content from cms, but keep current page. Otherwise return page
# to which was application assigned.
return page
return page if use_public else page.publisher_public
except Resolver404:
# Raised if the page is not managed by an apphook
pass
@@ -55,7 +60,7 @@ def applications_page_check(request, current_page=None, path=None):
return None
class AppRegexURLResolver(RegexURLResolver):
class AppRegexURLResolver(URLResolver):
def __init__(self, *args, **kwargs):
self.page_id = None
self.url_patterns_dict = {}
@@ -75,7 +80,8 @@ class AppRegexURLResolver(RegexURLResolver):
assigned.
"""
tried = []
match = self.regex.search(path)
pattern = getattr(self, 'pattern', self)
match = pattern.regex.search(path)
if match:
new_path = path[match.end():]
for pattern in self.url_patterns:
@@ -96,6 +102,7 @@ class AppRegexURLResolver(RegexURLResolver):
else:
if sub_match:
return getattr(pattern, 'page_id', None)
pattern = getattr(pattern, 'pattern', pattern)
tried.append(pattern.regex.pattern)
raise Resolver404({'tried': tried, 'path': new_path})
@@ -107,35 +114,36 @@ def recurse_patterns(path, pattern_list, page_id, default_args=None,
"""
newpatterns = []
for pattern in pattern_list:
app_pat = pattern.regex.pattern
app_pat = getattr(pattern, 'pattern', pattern).regex.pattern
# make sure we don't get patterns that start with more than one '^'!
app_pat = app_pat.lstrip('^')
path = path.lstrip('^')
regex = r'^%s%s' % (path, app_pat) if not nested else r'^%s' % (app_pat)
if isinstance(pattern, RegexURLResolver):
if isinstance(pattern, URLResolver):
# include default_args
args = pattern.default_kwargs
if default_args:
args.update(default_args)
if DJANGO_1_8:
# this is an 'include', recurse!
resolver = RegexURLResolver(regex, 'cms_appresolver',
pattern.default_kwargs, pattern.app_name, pattern.namespace)
# see lines 243 and 236 of urlresolvers.py to understand the next line
resolver._urlconf_module = recurse_patterns(regex, pattern.url_patterns, page_id, args, nested=True)
else:
# see lines 243 and 236 of urlresolvers.py to understand the next line
urlconf_module = recurse_patterns(regex, pattern.url_patterns, page_id, args, nested=True)
# this is an 'include', recurse!
resolver = RegexURLResolver(regex, urlconf_module,
pattern.default_kwargs, pattern.app_name, pattern.namespace)
# see lines 243 and 236 of urlresolvers.py to understand the next line
urlconf_module = recurse_patterns(regex, pattern.url_patterns, page_id, args, nested=True)
# this is an 'include', recurse!
regex_pattern = regex
if not DJANGO_1_11:
regex_pattern = RegexPattern(regex)
resolver = URLResolver(regex_pattern, urlconf_module,
pattern.default_kwargs, pattern.app_name,
pattern.namespace)
else:
# Re-do the RegexURLPattern with the new regular expression
# Re-do the URLPattern with the new regular expression
args = pattern.default_args
if default_args:
args.update(default_args)
resolver = RegexURLPattern(regex, pattern.callback,
args, pattern.name)
regex_pattern = regex
if not DJANGO_1_11:
regex_pattern = RegexPattern(regex, name=pattern.name)
resolver = URLPattern(regex_pattern, pattern.callback, args,
pattern.name)
resolver.page_id = page_id
newpatterns.append(resolver)
return newpatterns
@@ -143,16 +151,13 @@ def recurse_patterns(path, pattern_list, page_id, default_args=None,
def _set_permissions(patterns, exclude_permissions):
for pattern in patterns:
if isinstance(pattern, RegexURLResolver):
if isinstance(pattern, URLResolver):
if pattern.namespace in exclude_permissions:
continue
_set_permissions(pattern.url_patterns, exclude_permissions)
else:
from cms.utils.decorators import cms_perms
if DJANGO_1_9:
pattern._callback = cms_perms(pattern.callback)
else:
pattern.callback = cms_perms(pattern.callback)
pattern.callback = cms_perms(pattern.callback)
def get_app_urls(urls):
@@ -255,8 +260,9 @@ def _get_app_patterns(site):
for lang in hooked_applications[page_id].keys():
(app_ns, inst_ns), current_patterns, app = hooked_applications[page_id][lang] # nopyflakes
if not resolver:
regex_pattern = RegexPattern(r'') if not DJANGO_1_11 else r''
resolver = AppRegexURLResolver(
r'', 'app_resolver', app_name=app_ns, namespace=inst_ns)
regex_pattern, 'app_resolver', app_name=app_ns, namespace=inst_ns)
resolver.page_id = page_id
if app.permissions:
_set_permissions(current_patterns, app.exclude_permissions)
+1 -1
View File
@@ -33,7 +33,7 @@ def set_page_cache(response):
request = response._request
toolbar = get_toolbar_from_request(request)
is_authenticated = request.user.is_authenticated()
is_authenticated = request.user.is_authenticated
if is_authenticated or toolbar._cache_disabled or not get_cms_setting("PAGE_CACHE"):
add_never_cache_headers(response)
+4 -12
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from django.core.urlresolvers import reverse
from django.db.models.query import Prefetch, prefetch_related_objects
from django.urls import reverse
from django.utils.functional import SimpleLazyObject
from django.utils.translation import override as force_language
@@ -8,7 +8,6 @@ from cms import constants
from cms.api import get_page_draft
from cms.apphook_pool import apphook_pool
from cms.models import EmptyTitle
from cms.utils.compat import DJANGO_1_9
from cms.utils.conf import get_cms_setting
from cms.utils.i18n import (
get_fallback_languages,
@@ -35,7 +34,7 @@ def get_visible_nodes(request, pages, site):
public_for = get_cms_setting('PUBLIC_FOR')
can_see_unrestricted = public_for == 'all' or (public_for == 'staff' and user.is_staff)
if not user.is_authenticated() and not can_see_unrestricted:
if not user.is_authenticated and not can_see_unrestricted:
# User is not authenticated and can't see unrestricted pages,
# no need to check for page restrictions because if there's some,
# user is anon and if there is not any, user can't see unrestricted.
@@ -55,7 +54,7 @@ def get_visible_nodes(request, pages, site):
user_id = user.pk
user_groups = SimpleLazyObject(lambda: frozenset(user.groups.values_list('pk', flat=True)))
is_auth_user = user.is_authenticated()
is_auth_user = user.is_authenticated
def user_can_see_page(page):
page_id = page.pk if page.publisher_is_draft else page.publisher_public_id
@@ -249,14 +248,7 @@ class CMSMenu(Menu):
to_attr='filtered_translations',
queryset=titles,
)
if DJANGO_1_9:
# This function was made public in django 1.10
# and as a result its signature changed
prefetch_related_objects(pages, [lookup])
else:
prefetch_related_objects(pages, lookup)
prefetch_related_objects(pages, lookup)
# Build the blank title instances only once
blank_title_cache = {language: EmptyTitle(language=language) for language in languages}
+9 -9
View File
@@ -4,8 +4,8 @@ from django.contrib import admin
from django.contrib.auth import get_permission_codename, get_user_model
from django.contrib.auth.models import AnonymousUser
from django.contrib.sites.models import Site
from django.core.urlresolvers import reverse, NoReverseMatch, resolve, Resolver404
from django.db.models import Q
from django.urls import NoReverseMatch, Resolver404, resolve, reverse
from django.utils.translation import override as force_language, ugettext_lazy as _
from cms.api import get_page_draft, can_change_page
@@ -308,7 +308,7 @@ class PageToolbar(CMSToolbar):
page.publisher_public.get_publisher_state(language) == PUBLISHER_STATE_PENDING)
def in_apphook(self):
with force_language(self.toolbar.language):
with force_language(self.toolbar.request_language):
try:
resolver = resolve(self.toolbar.request_path)
except Resolver404:
@@ -447,7 +447,7 @@ class PageToolbar(CMSToolbar):
self.toolbar.add_item(TemplateItem(template, extra_context=context, side=self.toolbar.RIGHT), position=pos)
def add_page_settings_button(self, extra_classes=('cms-btn-action',)):
url = '%s?language=%s' % (admin_reverse('cms_page_change', args=[self.page.pk]), self.toolbar.language)
url = '%s?language=%s' % (admin_reverse('cms_page_change', args=[self.page.pk]), self.toolbar.request_language)
self.toolbar.add_modal_button(_('Page settings'), url, side=self.toolbar.RIGHT, extra_classes=extra_classes)
# Menus
@@ -529,7 +529,7 @@ class PageToolbar(CMSToolbar):
if not self._changed_admin_menu and can_change_page:
admin_menu = self.toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER)
url = admin_reverse('cms_page_changelist') # cms page admin
params = {'language': self.toolbar.language}
params = {'language': self.toolbar.request_language}
if self.page:
params['page_id'] = self.page.pk
url = add_url_parameters(url, params)
@@ -600,7 +600,7 @@ class PageToolbar(CMSToolbar):
)
for title, params, has_perm in add_page_menu_modal_items:
params.update(language=self.toolbar.language)
params.update(language=self.toolbar.request_language)
add_page_menu.add_modal_item(
title,
url=add_url_parameters(add_page_url, params),
@@ -609,7 +609,7 @@ class PageToolbar(CMSToolbar):
add_page_menu.add_modal_item(
_('Duplicate this Page'),
url=add_url_parameters(duplicate_page_url, {'language': self.toolbar.language}),
url=add_url_parameters(duplicate_page_url, {'language': self.toolbar.request_language}),
disabled=not can_add_sibling_page,
)
@@ -621,13 +621,13 @@ class PageToolbar(CMSToolbar):
current_page_menu.add_link_item(_('Edit this Page'), disabled=edit_mode, url=page_edit_url)
# page settings
page_settings_url = add_url_parameters(page_settings_url, language=self.toolbar.language)
page_settings_url = add_url_parameters(page_settings_url, language=self.toolbar.request_language)
settings_disabled = not edit_mode or not can_change
current_page_menu.add_modal_item(_('Page settings'), url=page_settings_url, disabled=settings_disabled,
on_close=refresh)
# advanced settings
advanced_url = add_url_parameters(advanced_url, language=self.toolbar.language)
advanced_url = add_url_parameters(advanced_url, language=self.toolbar.request_language)
can_change_advanced = self.page.has_advanced_settings_permission(self.request.user)
advanced_disabled = not edit_mode or not can_change_advanced
current_page_menu.add_modal_item(_('Advanced settings'), url=advanced_url, disabled=advanced_disabled)
@@ -656,7 +656,7 @@ class PageToolbar(CMSToolbar):
# page type
if not self.page.is_page_type:
page_type_url = admin_reverse('cms_pagetype_add')
page_type_url = add_url_parameters(page_type_url, source=self.page.pk, language=self.toolbar.language)
page_type_url = add_url_parameters(page_type_url, source=self.page.pk, language=self.toolbar.request_language)
page_type_disabled = not edit_mode or not can_add_root_page
current_page_menu.add_modal_item(_('Save as Page Type'), page_type_url, disabled=page_type_disabled)
+1 -1
View File
@@ -4,8 +4,8 @@ from cms.utils.page_permissions import user_can_change_page
from django.contrib import admin
from django.contrib.admin.options import csrf_protect_m
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.urls import reverse
class ExtensionAdmin(admin.ModelAdmin):
+1 -1
View File
@@ -5,7 +5,7 @@ from cms.toolbar_base import CMSToolbar
from cms.utils import get_language_list
from cms.utils.page_permissions import user_can_change_page
from django.core.urlresolvers import NoReverseMatch
from django.urls import NoReverseMatch
class ExtensionToolbar(CMSToolbar):
+1 -1
View File
@@ -85,7 +85,7 @@ class PageSmartLinkField(forms.CharField):
ajax_view=None, *args, **kwargs):
self.placeholder_text = placeholder_text
widget = self.widget(ajax_view=ajax_view)
super(PageSmartLinkField, self).__init__(max_length, min_length,
super(PageSmartLinkField, self).__init__(max_length=max_length, min_length=min_length,
widget=widget, *args, **kwargs)
def widget_attrs(self, widget):
+4 -55
View File
@@ -1,13 +1,11 @@
# -*- coding: utf-8 -*-
from cms.utils.compat import DJANGO_1_10
from django.contrib.auth import get_permission_codename
from django.contrib.sites.models import Site
from django.core.urlresolvers import NoReverseMatch, reverse_lazy
from django.forms.widgets import Select, MultiWidget, TextInput
from django.forms.widgets import MultiWidget, Select, TextInput
from django.urls import NoReverseMatch, reverse_lazy
from django.utils.encoding import force_text
from django.utils.html import escape, escapejs
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext as _
from cms.utils.urlutils import admin_reverse, static_with_version
from cms.forms.utils import get_site_choices, get_page_choices
@@ -95,33 +93,6 @@ class PageSelectWidget(MultiWidget):
context['widget']['script_init'] = self._build_script(name, value, context['widget']['attrs'])
return context
def render(self, name, value, attrs=None, renderer=None):
if DJANGO_1_10:
# THIS IS A COPY OF django.forms.widgets.MultiWidget.render()
# (except for the last line)
# value is a list of values, each corresponding to a widget
# in self.widgets.
self._build_widgets()
if not isinstance(value, list):
value = self.decompress(value)
output = []
final_attrs = self.build_attrs(attrs)
id_ = final_attrs.get('id', None)
for i, widget in enumerate(self.widgets):
try:
widget_value = value[i]
except IndexError:
widget_value = None
if id_:
final_attrs = dict(final_attrs, id='%s_%s' % (id_, i))
output.append(widget.render(name + '_%s' % i, widget_value, final_attrs))
output.append(self._build_script(name, value, final_attrs))
return mark_safe(self.format_output(output))
else:
return super(PageSelectWidget, self).render(name, value, attrs, renderer)
def format_output(self, rendered_widgets):
return u' '.join(rendered_widgets)
@@ -176,15 +147,6 @@ class PageSmartLinkWidget(TextInput):
context['widget']['script_init'] = self._build_script(name, value, context['widget']['attrs'])
return context
def render(self, name, value, attrs=None, renderer=None):
if DJANGO_1_10:
final_attrs = self.build_attrs(attrs)
output = list(self._build_script(name, value, final_attrs))
output.append(super(PageSmartLinkWidget, self).render(name, value, attrs))
return mark_safe(u''.join(output))
else:
return super(PageSmartLinkWidget, self).render(name, value, attrs, renderer)
class UserSelectAdminWidget(Select):
"""Special widget used in page permission inlines, because we have to render
@@ -194,8 +156,8 @@ class UserSelectAdminWidget(Select):
Current user should be assigned to widget in form constructor as an user
attribute.
"""
def render(self, name, value, attrs=None, choices=()):
output = [super(UserSelectAdminWidget, self).render(name, value, attrs)]
def render(self, name, value, attrs=None, choices=(), renderer=None):
output = [super(UserSelectAdminWidget, self).render(name, value, attrs, renderer=renderer)]
if hasattr(self, 'user') and (self.user.is_superuser or \
self.user.has_perm(PageUser._meta.app_label + '.' + get_permission_codename('add', PageUser._meta))):
# append + icon
@@ -298,16 +260,3 @@ class ApplicationConfigSelect(Select):
context = super(ApplicationConfigSelect, self).get_context(name, value, attrs)
context['widget']['script_init'] = self._build_script(name, value, context['widget']['attrs'])
return context
def render(self, name, value, attrs=None, renderer=None):
if DJANGO_1_10:
output = list(super(ApplicationConfigSelect, self).render(name, value, attrs))
output.append(self._build_script(name, value, attrs))
related_url = ''
output.append('<a href="%s" class="add-another" id="add_%s" title="%s" onclick="return showAddAnotherPopup(this);">'
% (related_url, name, _('Add Another')))
output.append('</a>')
return mark_safe(''.join(output))
else:
return super(ApplicationConfigSelect, self).render(name, value, attrs, renderer)
Binary file not shown.
Binary file not shown.
-22
View File
@@ -1,22 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Afrikaans (http://www.transifex.com/divio/django-cms/language/af/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: af\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
+17 -6
View File
@@ -17,9 +17,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2019-01-22 15:34+0000\n"
"Last-Translator: Bashar Al-Abdulhadi\n"
"Language-Team: Arabic (http://www.transifex.com/divio/django-cms/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -113,12 +113,19 @@ msgstr "يرجى اختيار اسم لفرع الرابط باللغة %(langua
msgid "A page with this reverse URL id exists already."
msgstr "توجد صفحة سابقة بنفس عنوان المعرّف العكسي لـ هذا URL"
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr "كيان تطبيق بهذا الإعداد موجود سلفا."
msgid "An application instance with this name already exists."
msgstr "كيان تطبيق بهذا الإسم موجود سلفا."
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr "نعم"
@@ -556,9 +563,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr "إضافة آخر"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr "اختياري. وفي حال زُوّد سيضاف تلقائياً داخل ملحق نصي جديد."
@@ -1440,6 +1444,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr "أهلاً بك في نظام إدارة محتوى جانقو"
msgid "Add Another"
msgstr "إضافة آخر"
msgid "Back"
msgstr "رجوع"
@@ -1540,6 +1547,10 @@ msgstr "مقالات"
msgid "Sample App"
msgstr "عينة تطبيق"
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr "عينة تطبيق بصلاحيات محجوبة"
Binary file not shown.
+1 -1
View File
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Arabic (http://www.transifex.com/divio/django-cms/language/ar/)\n"
Binary file not shown.
Binary file not shown.
-22
View File
@@ -1,22 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Belarusian (http://www.transifex.com/divio/django-cms/language/be/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: be\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
+17 -6
View File
@@ -13,9 +13,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Bulgarian (http://www.transifex.com/divio/django-cms/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -109,12 +109,19 @@ msgstr ""
msgid "A page with this reverse URL id exists already."
msgstr "Страница с този обратен URL адрес вече съществува."
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr "Инстанция на приложението използваща тази конфигурация вече съществува"
msgid "An application instance with this name already exists."
msgstr "Друга инстанция на това приложение с това има вече съществува."
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr ""
@@ -552,9 +559,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr "Добави друг"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr ""
@@ -1432,6 +1436,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr ""
msgid "Add Another"
msgstr "Добави друг"
msgid "Back"
msgstr ""
@@ -1532,6 +1539,10 @@ msgstr "статии"
msgid "Sample App"
msgstr ""
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr ""
Binary file not shown.
+1 -1
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Bulgarian (http://www.transifex.com/divio/django-cms/language/bg/)\n"
Binary file not shown.
+17 -6
View File
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Bengali (http://www.transifex.com/divio/django-cms/language/bn/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -105,12 +105,19 @@ msgstr ""
msgid "A page with this reverse URL id exists already."
msgstr ""
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr ""
msgid "An application instance with this name already exists."
msgstr ""
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr ""
@@ -548,9 +555,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr ""
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr ""
@@ -1428,6 +1432,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr ""
msgid "Add Another"
msgstr ""
msgid "Back"
msgstr ""
@@ -1528,6 +1535,10 @@ msgstr ""
msgid "Sample App"
msgstr ""
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr ""
Binary file not shown.
+1 -1
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Bengali (http://www.transifex.com/divio/django-cms/language/bn/)\n"
Binary file not shown.
+17 -6
View File
@@ -12,9 +12,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Catalan (http://www.transifex.com/divio/django-cms/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -108,12 +108,19 @@ msgstr "Informeu l'slug en %(language)s abans d'editar la seva configuració ava
msgid "A page with this reverse URL id exists already."
msgstr "Una pàgina amb una URL que correspon amb aquest id ja existeix."
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr "Ja existeix una instància d'aplicació amb aquesta configuració."
msgid "An application instance with this name already exists."
msgstr "Ja existeix una instància d'aplicació amb aquest nom."
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr "Sí"
@@ -551,9 +558,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr "Afegir un altre"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr "Opcional. Si s'informa, s'afegirà automàticament dins d'un nou plugin de text."
@@ -1431,6 +1435,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr "Benvingut a django CMS"
msgid "Add Another"
msgstr "Afegir un altre"
msgid "Back"
msgstr "Tornar"
@@ -1531,6 +1538,10 @@ msgstr "Articles"
msgid "Sample App"
msgstr "App de prova"
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr "App d'exemple amb permisos exclosos"
Binary file not shown.
+1 -1
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Catalan (http://www.transifex.com/divio/django-cms/language/ca/)\n"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
+41 -27
View File
@@ -5,6 +5,7 @@
# Translators:
# Translators:
# Jiří Vírava <appukonrad@gmail.com>, 2012-2013
# grexx xxerg <marhac@seznam.cz>, 2018
# koren <honza@kekorenum.com>, 2015
# Jakub Dorňák <jakub.dornak@misli.cz>, 2013
# Jiří Vírava <appukonrad@gmail.com>, 2014-2015
@@ -20,15 +21,15 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Czech (http://www.transifex.com/divio/django-cms/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
msgid "All"
msgstr "Vše"
@@ -40,13 +41,13 @@ msgid "Title"
msgstr "Název"
msgid "The default title"
msgstr "Předvolený název"
msgstr "Výchozí název"
msgid "Slug"
msgstr "Identifikátor"
msgid "The part of the title that is used in the URL"
msgstr "Část názvu, která je použita v URL"
msgstr "Část názvu, který je použit v URL"
msgid "Menu Title"
msgstr "Název menu"
@@ -116,12 +117,19 @@ msgstr "Prosím přiřaďte slug pro následující jazykovou mutaci před změn
msgid "A page with this reverse URL id exists already."
msgstr "Stránka s takovu hodnotou reverse URL id již existuje."
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr "Instance aplikace používající tuto konfiguraci již existuje."
msgid "An application instance with this name already exists."
msgstr "Instance aplikace s tímto jménem již existuje."
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr "Ano"
@@ -151,7 +159,7 @@ msgstr "Uživatelé nemohou vytvořit stránku bez oprávnění k editaci strán
msgid ""
"Users can't delete a page without permissions to change the page. Edit "
"permissions required."
msgstr "Uživatelé nemohou smazat stránku bez oprávnění k editaci stránek. Nutno provést změnu oprávnění uživatele."
msgstr "Uživatelé nemohou odstranit stránku bez oprávnění k editaci stránek. Nutno provést změnu oprávnění uživatele."
msgid ""
"Users can't set page permissions without permissions to change a page. Edit "
@@ -161,7 +169,7 @@ msgstr "Uživatelé nemohou měnit vlastnosti stránky bez oprávnění k editac
msgid ""
"Users can't delete page permissions without permissions to change a page. "
"Edit permissions required."
msgstr "Uživatelé nemohou mazat vlastnosti stránky bez oprávnění k editaci stránek. Nutno provést změnu oprávnění uživatele."
msgstr "Uživatelé nemohou odstranit vlastnosti stránky bez oprávnění k editaci stránek. Nutno provést změnu oprávnění uživatele."
msgid ""
"Users can't create page permissions without permissions to change the "
@@ -171,7 +179,7 @@ msgstr "Uživatelé nemohou vytvářet vlastnosti stránky bez oprávnění ke z
msgid ""
"Users can't delete page permissions without permissions to change "
"permissions. Edit permissions required."
msgstr "Uživatelé nemohou mazat vlastnosti stránky bez oprávnění k úpravě stránek. Nutno provést změnu oprávnění uživatele."
msgstr "Uživatelé nemohou odstranit vlastnosti stránky bez oprávnění k úpravě stránek. Nutno provést změnu oprávnění uživatele."
#, python-format
msgid "Invalid plugin type '%s'"
@@ -204,7 +212,7 @@ msgstr "Změnit oprávnění"
#, python-format
msgid "Cannot delete %(name)s"
msgstr "Není možné smazat položku %(name)s"
msgstr "Není možné odstranit položku %(name)s"
msgid "Are you sure?"
msgstr "Jste si jist?"
@@ -224,19 +232,19 @@ msgstr "Stránka byla úspěšně schválena."
msgid ""
"Error! You don't have permissions to move this page. Please reload the page"
msgstr "Chyba! Nemáte oprávnění k přesunu na tuto stránku. Načtěte si prosím stránku znovu"
msgstr "Chyba! Nemáte oprávnění k přesunu na tuto stránku. Načtěte si prosím stránku znovu."
msgid "You do not have permission to copy these plugins."
msgstr "Nemáte oprávnění kopírovat tyto položky obsahu."
#| msgid "You do not have permission to clear this placeholder"
msgid "Error! You don't have permissions to copy this page."
msgstr ""
msgstr "Chyba! Nemáte oprávnění ke kopírování této stránky."
msgid ""
"Error! The page you're pasting is not translated in any of the languages "
"configured by the target site."
msgstr ""
msgstr "Chyba! Stránka, kterou kopírujete, není přeložena v žádném z jazyků nakonfigurovaných cílovou stránkou."
#| msgid "You do not have permission to edit this page"
msgid "You do not have permission to revert this page."
@@ -270,11 +278,11 @@ msgstr "Stránka \"%(page)s\" v jazyce %(language)s byla úspěšně depublikov
#| msgid "You do not have permission to delete this plugin"
msgid "You do not have permission to delete this page"
msgstr ""
msgstr "Nemáte oprávnění k odstranění této stránky."
#, python-format
msgid "Title and plugins with language %(language)s was deleted"
msgstr "Název a položky obsahu pro jazyk %(language)s byli vymazané"
msgstr "Název a položky obsahu pro jazyk %(language)s byli odstraněny."
#, python-format
#| msgid "You do not have permission to change pages."
@@ -350,11 +358,11 @@ msgid "You have no permission to cut this plugin"
msgstr "Nemáte oprávnění k vyjmutí tohoto pluginu"
msgid "You do not have permission to delete this plugin"
msgstr "Nemáte oprávnění smazat tuto položku obsahu"
msgstr "Nemáte oprávnění odstranit tuto položku obsahu"
#, python-format
msgid "The %(name)s plugin \"%(obj)s\" was deleted successfully."
msgstr "Položka obsahu \"%(obj)s\" typu %(name)s byla úspěšně smazána."
msgstr "Položka obsahu \"%(obj)s\" typu %(name)s byla úspěšně odstraněna."
msgid "You do not have permission to clear this placeholder"
msgstr "Nemáte oprávnění k vyprázdnění tohoto bloku"
@@ -459,7 +467,7 @@ msgstr "Přidat překlad"
#| msgid "Delete %(language)s Translation"
msgid "Delete Translation"
msgstr "Smazat překlad"
msgstr "Odstranit překlad"
#| msgid "Copy all plugins from %s"
msgid "Copy all plugins"
@@ -527,7 +535,7 @@ msgid "Revert to live"
msgstr "Zahodit rozpracované změny"
msgid "Delete page"
msgstr "Smazat stránku"
msgstr "Odstranit stránku"
msgid "Create a new page next to the current page."
msgstr "Vytvořit novou stránku vedle současné stránky."
@@ -559,9 +567,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr "Přidat další"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr "Volitelné. Pokud uvedete, text bude automaticky přidán do nového textového modulu."
@@ -598,7 +603,7 @@ msgid "can add"
msgstr "smí přidávat"
msgid "can delete"
msgstr "smí mazat"
msgstr "smí odstranit"
msgid "can change advanced settings"
msgstr "smí měnit Rozšířené možnosti"
@@ -767,7 +772,7 @@ msgid ""
msgstr "Uživatel nemůže přesunout stránku bez oprávnění k její změně. Nuto změnit oprávnění uživatele."
msgid "can recover any deleted page"
msgstr "obnova smazané stránky"
msgstr "může obnovit jakoukoliv odstraněnou stránku"
msgid "If none selected, user haves granted permissions to all sites."
msgstr "Pokud není vyplněno, uživatel má práva ke všem stránkám."
@@ -930,6 +935,7 @@ msgid_plural "Please correct the errors below."
msgstr[0] "Opravte prosím následující chybu."
msgstr[1] "Opravte prosím následující chyby."
msgstr[2] "Opravte prosím následující chyby."
msgstr[3] "Opravte prosím následující chyby."
msgid "All permissions"
msgstr "Všechna oprávnění"
@@ -953,7 +959,7 @@ msgid "Can add"
msgstr "Smí přidávat"
msgid "Can delete"
msgstr "Smí mazat"
msgstr "Smí odstranit"
msgid "Can publish"
msgstr "Smí publikovat"
@@ -1028,7 +1034,7 @@ msgid ""
"\n"
" Restore deleted %(name)s\n"
" "
msgstr ""
msgstr "\nObnovit odstraněnou %(name)s"
#, python-format
msgid ""
@@ -1251,7 +1257,7 @@ msgid "Action successful."
msgstr ""
msgid "Are you sure you want to delete this plugin?"
msgstr "Určitě chcete smazat tento typ obsahu"
msgstr "Určitě chcete odstranit tento plugin?"
msgid "Are you sure you want to publish this page?"
msgstr "Jste si jisti, že chcete publikovat tuto stránku?"
@@ -1440,6 +1446,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr "Vítejte v django CMS"
msgid "Add Another"
msgstr "Přidat další"
msgid "Back"
msgstr "Zpět"
@@ -1540,6 +1549,10 @@ msgstr "Články"
msgid "Sample App"
msgstr "Ukázková aplikace"
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr "Vzorová aplikace s vyňatými právy"
@@ -1831,6 +1844,7 @@ msgstr "Průvodce již byl přiřazen modelu: %s "
#~ msgstr[0] "a848884d0af974a125106fa2043a5716_pl_0"
#~ msgstr[1] "a848884d0af974a125106fa2043a5716_pl_1"
#~ msgstr[2] "a848884d0af974a125106fa2043a5716_pl_2"
#~ msgstr[3] "a848884d0af974a125106fa2043a5716_pl_3"
#~ msgid "%(full_result_count)s total"
#~ msgstr "%(full_result_count)s total"
Binary file not shown.
+2 -2
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Czech (http://www.transifex.com/divio/django-cms/language/cs/)\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr "Určitě chcete změnit záložku bez uložení změn?"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
-22
View File
@@ -1,22 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Welsh (http://www.transifex.com/divio/django-cms/language/cy/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cy\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
+74 -62
View File
@@ -4,6 +4,7 @@
#
# Translators:
# Translators:
# Jonas Hyatt <jonas@hyatt.space>, 2018
# Kristian Øllegaard <kristian@oellegaard.com>, 2011
# Kristian Øllegaard <kristian@oellegaard.com>, 2011
# Kristian Øllegaard <kristian@oellegaard.com>, 2011
@@ -16,9 +17,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Danish (http://www.transifex.com/divio/django-cms/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -100,10 +101,10 @@ msgid "Start typing..."
msgstr "Begynd at taste"
msgid "Application configurations"
msgstr ""
msgstr "Applikations konfigurationer"
msgid "Language independent options"
msgstr ""
msgstr "Sprog uafhængige indstillinger"
#, python-format
msgid "Please set the %(language)s slug before editing its advanced settings."
@@ -112,17 +113,24 @@ msgstr ""
msgid "A page with this reverse URL id exists already."
msgstr "En side med denne reverse adresse id eksisterer allerede"
msgid "An application instance using this configuration already exists."
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr "En applikationsinstans med denne konfiguration eksisterer allerede."
msgid "An application instance with this name already exists."
msgstr "En applikationsinstans med dette navn eksisterer allerede."
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr ""
msgstr "Ja"
msgid "No"
msgstr ""
msgstr "Nej"
msgid "user"
msgstr "bruger"
@@ -142,22 +150,22 @@ msgstr "Slet"
msgid ""
"Users can't create a page without permissions to change the created page. "
"Edit permissions required."
msgstr ""
msgstr "Brugere kan ikke oprette en side uden rettigheder til at ændre den oprettede side. Ret de relevante brugerrettigheder."
msgid ""
"Users can't delete a page without permissions to change the page. Edit "
"permissions required."
msgstr ""
msgstr "Brugere kan ikke slette en side uden rettigheder til at ændre siden. Ret de relevante brugerrettigheder."
msgid ""
"Users can't set page permissions without permissions to change a page. Edit "
"permissions required."
msgstr ""
msgstr "Brugere kan ikke sætte side tilladelser uden rettigheder til at ændre den siden. Ret de relevante brugerrettigheder."
msgid ""
"Users can't delete page permissions without permissions to change a page. "
"Edit permissions required."
msgstr ""
msgstr "Brugere kan ikke slette siden uden rettigheder til at ændre siden. Ret de relevante brugerrettigheder."
msgid ""
"Users can't create page permissions without permissions to change the "
@@ -171,7 +179,7 @@ msgstr ""
#, python-format
msgid "Invalid plugin type '%s'"
msgstr ""
msgstr "Ugyldig plugin type '%s'"
msgid "Language must be set to a supported language!"
msgstr "Sprog skal sættes til et understøttet sprog!"
@@ -227,12 +235,12 @@ msgstr "Du har ikke rettigheder til at kopiere disse plugins."
#| msgid "You do not have permission to clear this placeholder"
msgid "Error! You don't have permissions to copy this page."
msgstr ""
msgstr "Fejl! Du har ikke rettigheder til at kopiere denne side."
msgid ""
"Error! The page you're pasting is not translated in any of the languages "
"configured by the target site."
msgstr ""
msgstr "Fejl! Den side du indsætter er ikke oversat til nogen af de sprog der er konfigureret af siden."
#| msgid "You do not have permission to edit this page"
msgid "You do not have permission to revert this page."
@@ -266,7 +274,7 @@ msgstr "Den %(language)s side \"%(page)s\" blev afpubliceret"
#| msgid "You do not have permission to delete this plugin"
msgid "You do not have permission to delete this page"
msgstr ""
msgstr "Du har ikke rettigheder til at slette denne side"
#, python-format
msgid "Title and plugins with language %(language)s was deleted"
@@ -275,7 +283,7 @@ msgstr "Titel og plugins med sproget %(language)s blev slettet"
#, python-format
#| msgid "You do not have permission to change pages."
msgid "You don't have permissions to see page \"%(title)s\""
msgstr ""
msgstr "Du har ikke rettigheder til at se siden \"%(title)s\""
msgid "You do not have permission to change this page's in_navigation status"
msgstr "Du har ikke rettigheder til at ændre i denne sides i_navigation status"
@@ -287,10 +295,10 @@ msgid "Add Page Copy"
msgstr "Tilføj Side Kopi"
msgid "New sub page"
msgstr ""
msgstr "Ny underside"
msgid "New page"
msgstr ""
msgstr "Ny side"
msgid "The page is not eligible to be home."
msgstr ""
@@ -316,7 +324,7 @@ msgid "You do not have permission to copy this placeholder."
msgstr ""
msgid "Plugin not found"
msgstr ""
msgstr "Plugin blev ikke fundet"
msgid "You do not have permission to edit this plugin"
msgstr "Du har ikke rettigheder til at redigere dette plugin"
@@ -332,7 +340,7 @@ msgstr ""
#| msgid "You have no permission to move this plugin"
msgid "You have no permission to paste this plugin"
msgstr ""
msgstr "Du har ikke rettigheder til at indsætte dette plugin"
#| msgid "You have no permission to move this plugin"
msgid "You have no permission to paste this placeholder"
@@ -382,10 +390,10 @@ msgid "Placeholder"
msgstr "Pladsholder"
msgid "Alias"
msgstr ""
msgstr "Alias"
msgid "Create Alias"
msgstr ""
msgstr "Opret Alias"
#, python-format
msgid ""
@@ -394,7 +402,7 @@ msgid ""
msgstr ""
msgid "Create"
msgstr ""
msgstr "Opret"
msgid "Sites"
msgstr "Sider"
@@ -409,23 +417,23 @@ msgid "User settings"
msgstr "Bruger indstillinger"
msgid "Clipboard..."
msgstr ""
msgstr "Udklipsholder..."
msgid "Clear clipboard"
msgstr ""
msgstr "Ryd udklipsholder"
msgid "Disable toolbar"
msgstr ""
msgstr "Deaktiver værktøjslinje"
msgid "Shortcuts..."
msgstr ""
msgstr "Genveje..."
msgid "Users"
msgstr "Brugere"
#, python-format
msgid "Logout %s"
msgstr ""
msgstr "Log ud %s"
msgid "Logout"
msgstr "Log ud"
@@ -441,7 +449,7 @@ msgstr "Indhold"
#| msgid "Publish changes"
msgid "Publish page changes"
msgstr ""
msgstr "Publicér sidens ændringer"
msgid "Publish page now"
msgstr "Publicér side nu"
@@ -451,24 +459,24 @@ msgstr "Sideindstillinger"
#| msgid "Add %(language)s Translation"
msgid "Add Translation"
msgstr ""
msgstr "Tilføj oversættelse"
#| msgid "Delete %(language)s Translation"
msgid "Delete Translation"
msgstr ""
msgstr "Slet oversættelse"
#| msgid "Copy all plugins from %s"
msgid "Copy all plugins"
msgstr ""
msgstr "Kopiér alle plugins"
#, python-format
msgid "from %s"
msgstr ""
msgstr "fra %s"
#, python-format
#| msgid "Are you sure you want copy all plugins from %s?"
msgid "Are you sure you want to copy all plugins from %s?"
msgstr ""
msgstr "Er du sikker på at du vil kopiere alle plugins fra %s?"
msgid "Pages"
msgstr "Sider"
@@ -478,7 +486,7 @@ msgstr "Side"
#| msgid "Create"
msgid "Create Page"
msgstr ""
msgstr "Opret side"
msgid "New Page"
msgstr "Ny Side"
@@ -526,10 +534,10 @@ msgid "Delete page"
msgstr "Slet side"
msgid "Create a new page next to the current page."
msgstr ""
msgstr "Opret ny side ved siden af den nuværende side."
msgid "Create a page below the current page."
msgstr ""
msgstr "Opret ny side under den nuværende side."
msgid "Select a valid site"
msgstr "Vælg et gyldigt website"
@@ -555,9 +563,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr "Tilføj endnu en"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr ""
@@ -573,7 +578,7 @@ msgid "You don't have the permissions required to add a page."
msgstr ""
msgid "ID"
msgstr ""
msgstr "ID"
msgid "position"
msgstr "position"
@@ -910,7 +915,7 @@ msgstr "Kodeord:"
#| msgid "Add Page"
msgid "Add a page"
msgstr ""
msgstr "Tilføj en side"
msgid "Change a page"
msgstr "Ret en side"
@@ -990,11 +995,11 @@ msgid "Cut"
msgstr "Klip"
msgid "Paste"
msgstr ""
msgstr "Indsæt"
#| msgid "Save as new"
msgid "Set as home"
msgstr ""
msgstr "Markér som hjem"
msgid "is restricted"
msgstr "er begrænset"
@@ -1003,7 +1008,7 @@ msgid "last change by"
msgstr "sidst ændring af"
msgid "meta"
msgstr ""
msgstr "meta"
msgid "List of pages"
msgstr "Sideliste"
@@ -1013,7 +1018,7 @@ msgstr "Søg"
#| msgid "Page Title"
msgid "Page Tree"
msgstr ""
msgstr "Sidetræ"
msgid "Reset filter"
msgstr ""
@@ -1058,17 +1063,17 @@ msgid "Are you sure you want to § this page?"
msgstr ""
msgid "Reload"
msgstr ""
msgstr "Genindlæs"
#| msgid "New Page"
msgid "New node"
msgstr ""
msgstr "Ny node"
msgid "nodes"
msgstr ""
msgstr "noder"
msgid "View"
msgstr ""
msgstr "Vis"
msgid "Menu"
msgstr "Menu"
@@ -1096,19 +1101,19 @@ msgid "Close"
msgstr "Luk"
msgid "Legend"
msgstr ""
msgstr "Legende"
#| msgid "published"
msgid "Published"
msgstr ""
msgstr "Publiceret"
#| msgid "Change"
msgid "Changed"
msgstr ""
msgstr "Ændret"
#| msgid "unpublished"
msgid "Unpublished"
msgstr ""
msgstr "Upubliceret"
#| msgid "in menu"
msgid "In menu"
@@ -1120,7 +1125,7 @@ msgstr ""
#| msgid "New page"
msgid "View page"
msgstr ""
msgstr "Vis side"
#| msgid "softroot"
msgid "Softroot"
@@ -1148,7 +1153,7 @@ msgid "Unpublish"
msgstr "Afpublicér"
msgid "Configure"
msgstr ""
msgstr "Konfigurér"
msgid "in menu"
msgstr "i menu"
@@ -1161,10 +1166,10 @@ msgid "Page settings (SHIFT click for advanced settings)"
msgstr ""
msgid "Clipboard"
msgstr ""
msgstr "Udklipsholder"
msgid "Add plugin"
msgstr ""
msgstr "Tilføj plugin"
msgid "Copy all"
msgstr "Kopiér alle"
@@ -1182,7 +1187,7 @@ msgid "This is a static placeholder"
msgstr ""
msgid "Expand all"
msgstr ""
msgstr "Udvid alle"
msgid "Collapse all"
msgstr ""
@@ -1197,7 +1202,7 @@ msgid "This plugin cannot be moved or edited outside of its parent"
msgstr ""
msgid "Clipboard is empty."
msgstr ""
msgstr "Udklipsholderen er tom."
msgid "This plugin does not allow plugins of this type as nested plugins."
msgstr ""
@@ -1226,7 +1231,7 @@ msgid "Add plugin to"
msgstr ""
msgid "More"
msgstr ""
msgstr "Mere"
#, python-format
#| msgid "Development version using django CMS %(cms_version)s"
@@ -1435,6 +1440,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr ""
msgid "Add Another"
msgstr "Tilføj endnu en"
msgid "Back"
msgstr ""
@@ -1535,6 +1543,10 @@ msgstr "Artikler"
msgid "Sample App"
msgstr "Eksempel app"
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr ""
Binary file not shown.
+1 -1
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Danish (http://www.transifex.com/divio/django-cms/language/da/)\n"
Binary file not shown.
+20 -9
View File
@@ -6,17 +6,17 @@
# Translators:
# death_ashaman <admiral_proton@yahoo.de>, 2014
# Alexander Elvers <alexanderelvers@online.de>, 2017
# Angelo Dini <finalangeljp@hotmail.com>, 2015-2017
# Angelo Dini <angelo.dini@divio.ch>, 2015-2017
# Arne Schauf <transifex@asmaps.de>, 2014
# Michael P. Jung <michael.jung@terreon.de>, 2013
# Chive <kim@smuzey.ch>, 2015
# Kim Thoenen <kim@smuzey.ch>, 2015
# death_ashaman <admiral_proton@yahoo.de>, 2014
# Diana Dünki <diana.duenki@divio.ch>, 2015
# giammi <gian-maria.daffre@giammi.org>, 2017
# Hendrik Richter <hendrikr@gnome.org>, 2014
# Jannik V. <me@exploide.net>, 2016
# Jannik Vieten <me@exploide.net>, 2016
# Jonas Obrist <me@ojii.ch>, 2011
# Chive <kim@smuzey.ch>, 2015
# Kim Thoenen <kim@smuzey.ch>, 2015
# Martin Koistinen <mkoistinen@gmail.com>, 2015
# Michael P. Jung <michael.jung@terreon.de>, 2013
# o.zander <oliver.zander@gmail.com>, 2014
@@ -35,8 +35,8 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-12 07:32+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-12 06:05+0000\n"
"Last-Translator: Peter Wischer <peter.wischer@lwl.org>\n"
"Language-Team: German (http://www.transifex.com/divio/django-cms/language/de/)\n"
"MIME-Version: 1.0\n"
@@ -131,12 +131,19 @@ msgstr "Bitte erstellen Sie zuerst den %(language)s \"Slug\" bevor Sie die erwei
msgid "A page with this reverse URL id exists already."
msgstr "Eine andere Seite mit dieser Reverse-URL-ID ist bereits vorhanden."
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr "Ungültiger Anwendungskonfigurationswert"
msgid "An application instance using this configuration already exists."
msgstr "Eine Applikation-Instanz mit dieser Konfiguration existiert bereits."
msgid "An application instance with this name already exists."
msgstr "Eine Applikation-Instanz mit diesem Namen existiert bereits."
msgid "You can't move the home page inside another page"
msgstr "Die Startseite kann nicht in ein andere Seite verschoben werden"
msgid "Yes"
msgstr "Ja"
@@ -574,9 +581,6 @@ msgstr "Die Seite %(conflict_page)s hat die selbe URL '%(url)s' wie die aktuelle
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr "Die Seite %(conflict_page)s hat die selbe URL '%(url)s' wie die aktuelle Seite."
msgid "Add Another"
msgstr "Weitere hinzufügen"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr "Optional. Falls ausgefüllt, fügt automatisch ein neues Text Plugin ein."
@@ -1454,6 +1458,9 @@ msgstr "\n<p class=\"cms-welcome-notes\">Sie sehen diese Meldung weil Sie <code>
msgid "Welcome to django CMS"
msgstr "Willkommen im django CMS"
msgid "Add Another"
msgstr "Weitere hinzufügen"
msgid "Back"
msgstr "Zurück"
@@ -1554,6 +1561,10 @@ msgstr "Artikel"
msgid "Sample App"
msgstr "Beispiel-App"
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr "Beispiel Anwendung mit Konfiguration"
msgid "Sample App with excluded permissions"
msgstr "Beispiel-App mit \"excluded permissions\""
Binary file not shown.
+1 -1
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: German (http://www.transifex.com/divio/django-cms/language/de/)\n"
Binary file not shown.
+17 -6
View File
@@ -16,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Greek (http://www.transifex.com/divio/django-cms/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -112,12 +112,19 @@ msgstr ""
msgid "A page with this reverse URL id exists already."
msgstr "Υπάρχει ήδη σελίδα με το συγκεκριμένο αντίστροφο URL id."
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr ""
msgid "An application instance with this name already exists."
msgstr ""
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr ""
@@ -555,9 +562,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr "Προσθήκη και άλλου"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr ""
@@ -1435,6 +1439,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr ""
msgid "Add Another"
msgstr "Προσθήκη και άλλου"
msgid "Back"
msgstr ""
@@ -1535,6 +1542,10 @@ msgstr "Άρθρα"
msgid "Sample App"
msgstr "Δείγμα Εφαρμογής"
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr ""
Binary file not shown.
+1 -1
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Greek (http://www.transifex.com/divio/django-cms/language/el/)\n"
Binary file not shown.
+17 -4
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2015-11-11 17:31+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\n"
"Language-Team: English (http://www.transifex.com/divio/django-cms/language/"
@@ -105,12 +105,20 @@ msgstr ""
msgid "A page with this reverse URL id exists already."
msgstr "A page with this reverse URL id exists already."
#, fuzzy
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr "Application configurations"
msgid "An application instance using this configuration already exists."
msgstr "An application instance using this configuration already exists."
msgid "An application instance with this name already exists."
msgstr "An application instance with this name already exists."
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr ""
@@ -568,9 +576,6 @@ msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
"Page %(pages)s has the same url '%(url)s' as current page \"%(instance)s\"."
msgid "Add Another"
msgstr "Add Another"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr ""
@@ -1548,6 +1553,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr "Welcome to django CMS"
msgid "Add Another"
msgstr "Add Another"
msgid "Back"
msgstr "Back"
@@ -1655,6 +1663,11 @@ msgstr "Articles"
msgid "Sample App"
msgstr "Sample App"
#, fuzzy
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr "Sample App with excluded permissions"
msgid "Sample App with excluded permissions"
msgstr "Sample App with excluded permissions"
Binary file not shown.
+1 -1
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\n"
"Language-Team: English (http://www.transifex.com/divio/django-cms/language/"
Binary file not shown.
+17 -6
View File
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/divio/django-cms/language/en_GB/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -105,12 +105,19 @@ msgstr ""
msgid "A page with this reverse URL id exists already."
msgstr "A page with this reverse URL Id exists already."
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr ""
msgid "An application instance with this name already exists."
msgstr ""
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr ""
@@ -548,9 +555,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr ""
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr ""
@@ -1428,6 +1432,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr ""
msgid "Add Another"
msgstr ""
msgid "Back"
msgstr ""
@@ -1528,6 +1535,10 @@ msgstr ""
msgid "Sample App"
msgstr ""
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr ""
Binary file not shown.
+1 -1
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/divio/django-cms/language/en_GB/)\n"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
-22
View File
@@ -1,22 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: English (United States) (http://www.transifex.com/divio/django-cms/language/en_US/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_US\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
+17 -6
View File
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Esperanto (http://www.transifex.com/divio/django-cms/language/eo/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -105,12 +105,19 @@ msgstr ""
msgid "A page with this reverse URL id exists already."
msgstr ""
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr ""
msgid "An application instance with this name already exists."
msgstr ""
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr ""
@@ -548,9 +555,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr "Aldoni alian"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr ""
@@ -1428,6 +1432,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr ""
msgid "Add Another"
msgstr "Aldoni alian"
msgid "Back"
msgstr ""
@@ -1528,6 +1535,10 @@ msgstr ""
msgid "Sample App"
msgstr ""
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr ""
Binary file not shown.
+1 -1
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Esperanto (http://www.transifex.com/divio/django-cms/language/eo/)\n"
Binary file not shown.
+20 -8
View File
@@ -14,6 +14,7 @@
# Diego Romero Pozo <romero.pozo2012@gmail.com>, 2015
# Adolfo Gómez <dkmaster@dkmon.com>, 2014
# Eduardo Ludi <eduludi@gmail.com>, 2013
# Erick Del Castillo Deza <mrff88@gmail.com>, 2018
# Ernesto Avilés Vázquez <whippiii@gmail.com>, 2015
# jorlugaqui <jorlugaqui@gmail.com>, 2017
# Luis Montiel <luis@aztlansoft.com>, 2016
@@ -35,9 +36,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Spanish (http://www.transifex.com/divio/django-cms/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -131,12 +132,19 @@ msgstr "Por favor configura el nombre único para %(language)s antes de editar s
msgid "A page with this reverse URL id exists already."
msgstr "Ya existe una página con este id de URL inversa."
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr "Ya existe una instancia de la aplicación usando esta configuración."
msgid "An application instance with this name already exists."
msgstr "Ya existe una instancia de la aplicación con este nombre."
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr "Si"
@@ -574,9 +582,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr "Añadir otro"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr "Opcional. Si se suministra, se añadirá automáticamente dentro de un nuevo plugin de texto ."
@@ -1236,7 +1241,7 @@ msgstr ""
#| msgid "View published"
msgid "View published"
msgstr ""
msgstr "Vista publicada"
msgid "Login"
msgstr "Iniciar Sesión"
@@ -1279,7 +1284,7 @@ msgstr "Tienes cambios sin guardar."
#| msgid "Loading..."
msgid "Loading"
msgstr ""
msgstr "Cargando"
#| msgid "Are you sure you want to § this page?"
msgid "Are you sure you want to abandon these changes?"
@@ -1454,6 +1459,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr "Bienvenido a django CMS"
msgid "Add Another"
msgstr "Añadir otro"
msgid "Back"
msgstr "Regresar"
@@ -1554,6 +1562,10 @@ msgstr "Artículos"
msgid "Sample App"
msgstr "Aplicación de Ejemplo"
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr "Aplicación de muestra con permisos excluidos"
Binary file not shown.
+1 -1
View File
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Spanish (http://www.transifex.com/divio/django-cms/language/es/)\n"
Binary file not shown.
+17 -6
View File
@@ -24,9 +24,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/divio/django-cms/language/es_AR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -120,12 +120,19 @@ msgstr ""
msgid "A page with this reverse URL id exists already."
msgstr "Página con este id de URL inversa si ya existe."
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr ""
msgid "An application instance with this name already exists."
msgstr ""
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr ""
@@ -563,9 +570,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr "Añadir otro"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr ""
@@ -1443,6 +1447,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr ""
msgid "Add Another"
msgstr "Añadir otro"
msgid "Back"
msgstr ""
@@ -1543,6 +1550,10 @@ msgstr "Artículos"
msgid "Sample App"
msgstr "Aplicación de Ejemplo"
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr "Misma aplicación con permisos excluidos"
Binary file not shown.
+1 -1
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/divio/django-cms/language/es_AR/)\n"
Binary file not shown.
+17 -6
View File
@@ -15,9 +15,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Spanish (Bolivia) (http://www.transifex.com/divio/django-cms/language/es_BO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -111,12 +111,19 @@ msgstr ""
msgid "A page with this reverse URL id exists already."
msgstr "Página con este 'id' de URL inversa si ya existe."
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr ""
msgid "An application instance with this name already exists."
msgstr ""
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr ""
@@ -554,9 +561,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr "Añadir otro"
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr ""
@@ -1434,6 +1438,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr ""
msgid "Add Another"
msgstr "Añadir otro"
msgid "Back"
msgstr ""
@@ -1534,6 +1541,10 @@ msgstr ""
msgid "Sample App"
msgstr ""
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr ""
Binary file not shown.
+1 -1
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Spanish (Bolivia) (http://www.transifex.com/divio/django-cms/language/es_BO/)\n"
Binary file not shown.
+17 -6
View File
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:30+0000\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-11-09 12:08+0000\n"
"Last-Translator: Bartosz Płóciennik <thaian@outlook.com>\n"
"Language-Team: Spanish (Dominican Republic) (http://www.transifex.com/divio/django-cms/language/es_DO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -105,12 +105,19 @@ msgstr ""
msgid "A page with this reverse URL id exists already."
msgstr ""
#| msgid "Application configurations"
msgid "Invalid application config value"
msgstr ""
msgid "An application instance using this configuration already exists."
msgstr ""
msgid "An application instance with this name already exists."
msgstr ""
msgid "You can't move the home page inside another page"
msgstr ""
msgid "Yes"
msgstr ""
@@ -548,9 +555,6 @@ msgstr ""
msgid "Page %(conflict_page)s has the same url '%(url)s' as current page."
msgstr ""
msgid "Add Another"
msgstr ""
msgid ""
"Optional. If supplied, will be automatically added within a new text plugin."
msgstr ""
@@ -1428,6 +1432,9 @@ msgstr ""
msgid "Welcome to django CMS"
msgstr ""
msgid "Add Another"
msgstr ""
msgid "Back"
msgstr ""
@@ -1528,6 +1535,10 @@ msgstr ""
msgid "Sample App"
msgstr ""
#| msgid "Sample App with excluded permissions"
msgid "Sample App with config"
msgstr ""
msgid "Sample App with excluded permissions"
msgstr ""
Binary file not shown.
+1 -1
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django CMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-11 16:31+0000\n"
"POT-Creation-Date: 2019-01-29 08:34+0100\n"
"PO-Revision-Date: 2018-01-11 16:38+0000\n"
"Last-Translator: Paulo Alvarado <paulo.alvarado@divio.ch>\n"
"Language-Team: Spanish (Dominican Republic) (http://www.transifex.com/divio/django-cms/language/es_DO/)\n"

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