Compare commits

...
294 Commits
Author SHA1 Message Date
Martin Koistinen b1a1492b89 Bump to 3.1.6 2016-04-26 12:38:07 -04:00
Martin Koistinen 382a092010 Update CHANGLOG, release notes, AUTHORS 2016-04-26 12:37:28 -04:00
Martin Koistinen 7ea5098754 Update translations 2016-04-26 12:37:07 -04:00
Martin Koistinen 941b57af02 Merge pull request #5211 from mkoistinen/feature/sanitize_appconfig_widget_31
Sanitize AppConfig Widget (forward port from 3.0)
2016-04-26 10:24:45 -04:00
Martin Koistinen d64edceb58 Further escaping for JS 2016-04-26 09:23:59 -04:00
Angelo Dini c642a9b0c1 Merge pull request #5207 from mkoistinen/feature/sanitize_pagefield_output_31
Sanitize Pagefield Output (forward port from 3.0)
2016-04-26 10:26:07 +02:00
Martin Koistinen dff4eb2241 Adds test for widget escaping 2016-04-25 20:21:06 -04:00
Martin Koistinen 8f4ecc311b Forward-port from 3.0 2016-04-25 18:32:31 -04:00
Martin Koistinen 34bbd12920 Merge pull request #5188 from yakky/feature/fix_5138
Correct the fix in #5133
2016-04-20 21:21:46 -04:00
Iacopo Spalletti 9259845f93 Correct the fix in #5133 2016-04-20 20:46:45 +02:00
Martin Koistinen dccb411d7f Merge pull request #5187 from mkoistinen/issue/fix_bad_merge_in_test_requirements
Fix bad git merge
2016-04-20 14:39:17 -04:00
Martin Koistinen 3164ea2040 Fix bad git merge 2016-04-20 14:37:53 -04:00
Martin Koistinen c455d3c614 Merge pull request #5168 from mkoistinen/issue/removes_mark_safe
Address security concerns in render_model* tags
2016-04-20 13:03:55 -04:00
Martin Koistinen e149e0bdd9 Changelog entry 2016-04-20 09:41:02 -04:00
Martin Koistinen 5bedd2b6da Update docs to make it clearer what will happen with setting is removed 2016-04-20 09:40:55 -04:00
Martin Koistinen 8a4e152f8e Merge pull request #3 from vxsx/issue/removes_mark_safe
use `html` instead of `text` method in the message open
2016-04-20 09:03:11 -04:00
Vadim Sikora 2f26ac67ce use html instead of text method in the message open
modern browsers will use escaped version of the text, meaning
`>script<alert(1);>/script<` would actually render script
tag with an alert in the message
2016-04-19 10:52:22 +02:00
Martin Koistinen b68175970a Remove unneeded code-paths 2016-04-18 13:11:42 -04:00
Martin Koistinen 6b9e112448 Better organise imports 2016-04-18 12:07:20 -04:00
Martin Koistinen ac76517411 Updates per comments 2016-04-18 12:05:58 -04:00
Martin Koistinen 370d322e32 Address security concerns in render_model* tags 2016-04-17 00:54:08 -04:00
Iacopo Spalletti 3bfbea6e43 Merge pull request #5138 from yakky/merge/5133
Merge #5133
2016-04-07 09:15:37 +02:00
Iacopo Spalletti 628072b6e2 Skip failing test due to incompatible plugins 2016-04-07 07:54:12 +02:00
Iacopo Spalletti 962305a955 Fix requirements 2016-04-06 16:48:09 +02:00
Iacopo Spalletti 6425a0759c Add south migration 2016-04-06 14:35:27 +02:00
Piotr Jakimiak 85cd73b479 Add missing permission name 2016-04-06 14:19:23 +02:00
Iacopo Spalletti 0eb535fafc Merge pull request #5005 from yakky/feature/fix_uninstall_app
Fix #5004
2016-02-20 21:31:04 +01:00
Iacopo Spalletti bcd5926fa2 Fix #5004 2016-02-14 16:54:15 +01:00
Iacopo Spalletti 33b374a7fe Merge pull request #4990 from yakky/merge/3.0.17.pre1
Merge from 3.0.x branch
2016-02-10 22:45:44 +01:00
Iacopo Spalletti e26853c4b6 Merge remote-tracking branch 'upstream/support/3.0.x' into support/3.1.x 2016-02-10 21:22:01 +01:00
Iacopo Spalletti 4414c66423 Merge pull request #4986 from yakky/feature/fix_cache_settings
Fix cache settings
2016-02-10 18:27:26 +01:00
Iacopo Spalletti 447175af18 Merge pull request #4989 from yakky/merge/4975
Add missing block into page change_form template.
2016-02-09 14:27:23 +01:00
Iacopo Spalletti 706e52ed21 Pick right xvfwrapper 2016-02-09 13:39:33 +01:00
Martin Bambas 7b2d513a8e Add missing block into page change_form template. 2016-02-09 08:28:59 +01:00
Iacopo Spalletti 40902a74fd Pin django-classy-tags 2016-02-07 19:29:11 +01:00
Iacopo Spalletti fef05cabdf Update changelog 2016-02-07 18:05:47 +01:00
Iacopo Spalletti 8fbd4fd0a6 Fix cache settings 2016-02-07 17:56:45 +01:00
Iacopo Spalletti ac64b76654 Bump to 3.1.6.dev1 2016-01-29 16:19:49 +01:00
Iacopo Spalletti 7651c0127e Bump version to 3.1.5 2016-01-29 16:00:34 +01:00
Iacopo Spalletti 9c5f99f9eb Update changelog 2016-01-29 16:00:15 +01:00
Iacopo Spalletti 20f95807a4 Merge pull request #4960 from yakky/feature/prepare_315
Update changelog and other updates for 3.1.5
2016-01-29 09:44:38 +01:00
Iacopo Spalletti 9f16969ee7 Update changelog and other updates for 3.1.5 2016-01-27 19:56:25 +01:00
Iacopo Spalletti 53518b91fc Merge pull request #4946 from yakky/feature/fix_plugin_validation
Move templates validation in app.ready
2016-01-26 14:54:43 +01:00
Martin Koistinen 70142436ae Merge pull request #4955 from yakky/feature/render_super
Improve CMSPluginBase.render documentation
2016-01-26 14:37:32 +01:00
Iacopo Spalletti 01cbda0183 Merge pull request #4950 from yakky/merge/4771
Merge #4772
2016-01-26 07:35:04 +01:00
Iacopo Spalletti 159b597896 Improve CMSPluginBase.render documentation 2016-01-26 07:27:39 +01:00
Iacopo Spalletti 82acedefee Merge remote-tracking branch 'upstream/support/3.1.x' into merge/4771 2016-01-25 16:46:43 +01:00
Iacopo Spalletti 6ede6f59c6 Merge remote-tracking branch 'upstream/support/3.1.x' into feature/fix_plugin_validation 2016-01-25 16:46:25 +01:00
Martin Koistinen 8ebae458c6 Merge pull request #4949 from yakky/feature/fix_context
Fix CMSEditableObject context generation
2016-01-25 08:40:54 -05:00
Iacopo Spalletti 19abf1c4c4 Add test for #4771 2016-01-24 16:32:33 +01:00
Marijn Goedegebure e5f7d0ec38 #4771 Adjusted get_object_public_url and get_object_draft_url to use language attribute. 2016-01-24 16:31:37 +01:00
Iacopo Spalletti f9a8b38b60 Fix CMSEditableObject context generation 2016-01-23 13:51:00 +01:00
Iacopo Spalletti ea2ce14b75 Move templates validation in app.ready 2016-01-23 10:41:54 +01:00
Iacopo Spalletti b4eee45e9b Merge remote-tracking branch 'upstream/support/3.0.x' into HEAD 2016-01-16 13:21:00 +01:00
Iacopo Spalletti dee09dfe09 Merge pull request #4925 from yakky/feature/fix_file_test
fix test
2016-01-16 09:36:12 +01:00
Iacopo Spalletti 17a6868a04 fix test 2016-01-16 08:07:39 +01:00
Iacopo Spalletti 42bd941c46 Merge remote-tracking branch 'upstream/support/3.0.x' into HEAD 2016-01-14 20:12:51 +01:00
Iacopo Spalletti 84575c4497 Merge pull request #4896 from yakky/feature/fix_toolbar_ext
Fix ExtensionToolbar when language is removed but titles still exists…
2016-01-14 20:12:26 +01:00
Paulo 2df20b1a40 Merge pull request #4910 from czpython/fixes/pages-menu-missing-on-fresh-install-3.1
Fixes/pages menu missing on fresh install 3.1
2016-01-13 09:09:41 -05:00
Paulo 3941e426e4 on 3.1 there's only 10 2016-01-12 21:32:50 -05:00
Paulo c59b8fcfe7 fixes invalid translation on startup 2016-01-12 18:12:29 -05:00
Paulo d99f1cfc3e fixes failing tests 2016-01-12 17:42:39 -05:00
Paulo 55ce5c0dd2 cosmetics 2016-01-12 17:41:15 -05:00
Paulo 758da5b987 fixes issue with page menu missing 2016-01-12 17:41:03 -05:00
Iacopo Spalletti 1a5179cc17 Fix ExtensionToolbar when language is removed but titles still exists. See nephila/djangocms-page-meta#34 2016-01-09 07:30:32 +01:00
Paulo 2865f19afd fixes incorrect language on placeholder text for redirect field 2016-01-08 16:10:17 -05:00
Iacopo Spalletti ae74399b0b Merge pull request #4892 from czpython/docs/upgrade-docs-for-3.1.5
Adds 3.1.5 upgrade docs.
2016-01-07 13:54:24 +01:00
Paulo d0d119cd85 Adds 3.1.5 upgrade docs. 2016-01-06 10:32:00 -05:00
Iacopo Spalletti 27cf2ab9c7 Merge pull request #4888 from yakky/merge/3.0.16.pre2
Sync 3.1 and 3.0 branch
2016-01-05 13:40:52 +01:00
Iacopo Spalletti 583afaa85a Merge remote-tracking branch 'upstream/support/3.0.x' into HEAD 2016-01-05 11:46:29 +01:00
Iacopo Spalletti 95f9944ade Merge pull request #4887 from yakky/merge/4858
Merge #4546 in 3.0.x
2016-01-05 11:41:36 +01:00
Steffen Jasper 48a1b845a2 Fix PageSelectWidget JS synax
Original JS raise exception: `Syntax error, unrecognized expression
#id_page_2 option[value]`
2016-01-05 10:26:57 +01:00
Paulo bfe7002961 Merge pull request #4881 from czpython/fixes/3.1-issue-4856
Fixes 3.1 issue #4856
2015-12-31 09:14:52 -05:00
Paulo 21d34a3b9f small note on why update_fields 2015-12-30 15:24:31 -05:00
Paulo 2d79296b28 adds fix for #4856 2015-12-30 15:23:30 -05:00
Paulo 164d74bdad rewrites/fixes test for issue #4856 2015-12-30 15:21:29 -05:00
Paulo 23419bab0c adjust ckeditor tests 2015-12-30 15:17:27 -05:00
Martin Koistinen ba4ef1478d Merge pull request #4854 from divio/dont_assume_toolbar_is_present
Don't assume toolbar is present
2015-12-16 08:58:45 -05:00
Martin Koistinen f4f0ee7da9 Fix literal in doc 2015-12-15 15:33:51 -05:00
Martin Koistinen d1aba902f8 Clean up description a bit in the docs 2015-12-15 15:01:16 -05:00
Martin Koistinen a86dce368a Don't assume the toolbar property will exist 2015-12-15 15:01:06 -05:00
Iacopo Spalletti d19a54a14d Merge pull request #4851 from yakky/feature/fix_redirect_toolbar_disable
Fix redirect when disabling toolbar
2015-12-14 15:12:38 +01:00
Iacopo Spalletti eaf7959b6c Fix redirect when disabling toolbar 2015-12-13 22:06:02 +01:00
Iacopo Spalletti 75fb886c9a Bump development version 2015-11-24 14:54:34 +01:00
Iacopo Spalletti ebde18f595 Bump development version 2015-11-24 14:53:38 +01:00
Martin Koistinen 31fe02c988 Bump to 3.0.16 2015-11-24 01:02:18 -05:00
Martin Koistinen 608932e277 Update authors 2015-11-24 01:02:05 -05:00
Martin Koistinen 8dc6e6f0cf Update changelog 2015-11-24 01:02:01 -05:00
Martin Koistinen 99dc645adb Update translations 2015-11-24 01:01:51 -05:00
Martin Koistinen 4dc7320a8f Bump to 3.1.4 2015-11-24 00:56:00 -05:00
Martin Koistinen d0c3b3fb6d Update changelog 2015-11-24 00:55:52 -05:00
Martin Koistinen 1c30252764 Update authors 2015-11-24 00:55:46 -05:00
Martin Koistinen 2caeb3cd10 Update translations 2015-11-24 00:55:39 -05:00
Martin Koistinen c8c2113e3c Merge pull request #4751 from divio/revert-4748-pin_djangocms_admin_style_31
Revert "CMS 3.1.x cannot use admin-style 2.8+"
2015-11-19 12:38:51 -05:00
Martin Koistinen ded7fd0886 Merge pull request #4750 from divio/revert-4749-pin_djangocms_admin_style_30
Revert "CMS 3.0 cannot use admin-style >= 2.8.0"
2015-11-19 12:38:42 -05:00
Martin Koistinen f625d421dd Revert "CMS 3.1.x cannot use admin-style 2.8+" 2015-11-19 12:37:23 -05:00
Martin Koistinen 966592f1bc Revert "CMS 3.0 cannot use admin-style >= 2.8.0" 2015-11-19 12:37:14 -05:00
Martin Koistinen aaac7fa4ce Merge pull request #4749 from divio/pin_djangocms_admin_style_30
CMS 3.0 cannot use admin-style >= 2.8.0
2015-11-19 11:51:16 -05:00
Martin Koistinen 6620bdf26b Merge pull request #4748 from divio/pin_djangocms_admin_style_31
CMS 3.1.x cannot use admin-style 2.8+
2015-11-19 11:51:02 -05:00
Martin Koistinen e4d461cd41 CMS 3.0 cannot use admin-style >= 2.8.0 2015-11-19 11:27:08 -05:00
Martin Koistinen 980c9219d4 CMS 3.1.x cannot use admin-style 2.8+ 2015-11-19 11:26:21 -05:00
Iacopo Spalletti d5ad2286f3 Merge pull request #4738 from yakky/merge/3.0.16.pre
Merge from 3.0.x
2015-11-19 13:22:25 +01:00
Iacopo Spalletti 02cb24901d Merge remote-tracking branch 'upstream/support/3.0.x' into merge/3.0.16.pre 2015-11-19 10:12:32 +01:00
Iacopo Spalletti dca9fee375 Hotfix for googlemap change 2015-11-19 10:10:53 +01:00
Iacopo Spalletti 00dcc99a84 Merge remote-tracking branch 'upstream/support/3.0.x' into HEAD 2015-11-19 09:15:23 +01:00
Iacopo Spalletti 83acd7e57c Merge pull request #4727 from divio/fix_revert_to_live_30
Fix revert to live 30
2015-11-18 23:39:08 +01:00
Iacopo Spalletti ef60fe921d Remove exception 2015-11-18 21:42:01 +01:00
Iacopo Spalletti be96744dd5 Merge pull request #4732 from divio/revert-4725-feature/change_migration
Revert "Change migration dependency"
2015-11-18 18:32:53 +01:00
Iacopo Spalletti 6eb3e9ecee Ping djangocms-admin-style 2015-11-18 10:14:20 +01:00
Iacopo Spalletti 7a25cb843f Fix dependency versions 2015-11-18 08:03:15 +01:00
Iacopo Spalletti fa07552860 Revert "Change migration dependency" 2015-11-18 07:59:19 +01:00
Martin Koistinen 4172a4e5f1 Merge pull request #4725 from yakky/feature/change_migration
Change migration dependency
2015-11-17 22:43:25 -05:00
Martin Koistinen 3c3dbed015 Don't show 'Revert to live' if there isn't one! 2015-11-17 01:13:44 -05:00
Martin Koistinen 863dc524e4 Use live page's url if available 2015-11-17 01:07:40 -05:00
Iacopo Spalletti cad66b335d Merge pull request #4723 from yakky/merge/4716
Fixing run migrations when = True
2015-11-17 05:54:24 +01:00
Martin Koistinen 400a5e8a1e Merge pull request #4717 from yakky/feature/treebeard
Fix treebeard issues
2015-11-16 21:55:18 -05:00
Christian Strappazzon ad736afd73 Fixing run migrations in a fresh install django-cms when CMS_PERMISSION = CMS_RAW_ID_USERS = True 2015-11-16 22:45:22 +01:00
Iacopo Spalletti edf6d6f310 Update changelogs 2015-11-16 22:21:00 +01:00
Iacopo Spalletti 6d037d1e0a Merge pull request #4702 from yakky/feature/staticfiles
use staticfiles instead of static
2015-11-13 19:04:42 +01:00
Iacopo Spalletti 70261b5d6d use staticfiles instead of static 2015-11-13 08:10:45 +01:00
Iacopo Spalletti 24224bbe16 Change migration dependency 2015-11-11 23:03:13 +01:00
Iacopo Spalletti c29bb785ae Improve tests 2015-11-11 21:48:29 +01:00
Iacopo Spalletti a1082d4460 Fix delete 2015-11-11 21:32:53 +01:00
Iacopo Spalletti 63d518cfc2 Merge pull request #4643 from yakky/merge/4641
Merge 4641 in 3.1.x
2015-11-01 17:04:55 +01:00
Iacopo Spalletti b04c13800d Merge remote-tracking branch 'upstream/support/3.0.x' into HEAD 2015-11-01 15:39:36 +01:00
Iacopo Spalletti ab0c0d20b7 Merge pull request #4641 from yakky/feature/fix_dates_test
Fix dates test
2015-11-01 15:21:48 +01:00
Iacopo Spalletti ac38a667ab Use only dates for Django 1.4 2015-11-01 13:18:20 +01:00
Iacopo Spalletti c74b507aef Set explicit TZ for test 2015-11-01 10:09:23 +01:00
Iacopo Spalletti 49f52642b0 Remove prints 2015-11-01 10:09:10 +01:00
Iacopo Spalletti 051b659f43 Merge pull request #4638 from yakky/merge/4637
Update toolbar.rst
2015-11-01 09:12:28 +01:00
xie wei 221ebecccb Update toolbar.rst
Fixed spelling
2015-10-31 11:53:48 +01:00
Iacopo Spalletti 209cb7867a Merge pull request #4590 from yakky/merge/3.0.x_16
Merge/3.0.x 16
2015-10-15 05:32:31 +02:00
Iacopo Spalletti f97342a8de Merge remote-tracking branch 'upstream/support/3.0.x' into HEAD 2015-10-14 08:46:35 +02:00
Iacopo Spalletti c47ec74fde Merge pull request #4583 from yakky/merge/4452
Merge #4452
2015-10-13 22:47:06 +02:00
Iacopo Spalletti 89a84ec573 Fix django debug toolbar test dependency 2015-10-13 19:52:25 +02:00
Venelin Stoykov fef0afab61 Raise 404 instead of returing it
Fixes #4451
2015-10-13 18:19:22 +02:00
Iacopo Spalletti 6658dfdb4f Merge pull request #4529 from yakky/feature/test_django19
Add python 3.5 to support matrix
2015-10-03 17:49:55 +02:00
Iacopo Spalletti ac8f28fcb1 Add Django 1.9 to support matrix 2015-09-26 09:40:33 +02:00
Iacopo Spalletti 9b00f57d4e Merge pull request #4493 from yakky/merge/3.0.16-pre
Forwardport from 3.0.x
2015-09-24 20:41:06 +01:00
Iacopo Spalletti 68c4059b3b Merge remote-tracking branch 'upstream/support/3.0.x' into merge/3.0.16-pre 2015-09-24 17:49:41 +02:00
Iacopo Spalletti 2ebee013bb Merge pull request #4498 from yakky/feature/reldocs_3016
Prepare draft release notes for 3.0.16
2015-09-24 16:47:14 +01:00
Iacopo Spalletti 0eac11c9e5 Add release draft release notes 3.1.4 2015-09-24 13:22:53 +02:00
Iacopo Spalletti c860332416 Merge branch 'feature/reldocs_3016' into merge/3.0.16-pre
Conflicts:
	CHANGELOG.txt
	docs/upgrade/index.rst
2015-09-24 13:19:08 +02:00
Iacopo Spalletti 7fa8c6eddf Prepare draft release notes for 3.0.16 2015-09-24 13:15:40 +02:00
Iacopo Spalletti ac65fcdf82 Merge remote-tracking branch 'upstream/support/3.0.x' into HEAD
Conflicts:
	cms/tests/frontend.py
2015-09-24 09:44:10 +02:00
Iacopo Spalletti 088a3e3947 Merge pull request #4472 from yakky/feature/fix_structure_migration
Fix use structure migration
2015-09-24 08:30:05 +01:00
Iacopo Spalletti 8ab83d455f Merge pull request #4489 from yakky/feature/disable_fe_test
Skip FE test on Django 1.7
2015-09-24 08:29:53 +01:00
Iacopo Spalletti 8b1e41ca57 Skip FE test on Django 1.7 2015-09-23 19:25:08 +02:00
Iacopo Spalletti 052a3dc2e7 Remove unicode_literals 2015-09-23 17:43:22 +02:00
Iacopo Spalletti 6b1096cffa Use warnings instead of print [ci skip] 2015-09-23 15:57:57 +02:00
Iacopo Spalletti be884f93fa Merge pull request #4486 from yakky/merge/4334
Merge #4485 in support 3.0.x
2015-09-23 14:53:30 +01:00
Iacopo Spalletti 19fc0e7d87 Merge pull request #4483 from yakky/merge/4458
Merge #4458
2015-09-23 08:14:42 +01:00
Angelo Dini de65142029 fixes issue #4334 2015-09-23 08:50:58 +02:00
Iacopo Spalletti ecaf740fe0 Catch any exception in 0010_migrate_use_structure 2015-09-23 08:26:15 +02:00
Iacopo Spalletti 6d2c9a5f93 Merge remote-tracking branch 'upstream/support/3.0.x' into merge/4458
Conflicts:
	cms/templates/cms/toolbar/plugin.html
2015-09-22 14:22:21 +02:00
Iacopo Spalletti 5c7f0bd0b8 Fix migration glitches 2015-09-21 16:39:01 +02:00
Iacopo Spalletti 3ba27f1196 Fix stupid blunders 2015-09-21 16:38:56 +02:00
Iacopo Spalletti ac20f11f71 Fix migration 2015-09-21 16:38:48 +02:00
Iacopo Spalletti f54050b492 Merge pull request #4467 from vxsx/bugfix/spaceless-support-3.0.x
bugfix spaceless  3.0.x
2015-09-21 15:19:29 +01:00
Vadim Sikora 025ea301e1 fix tests
Conflicts:
	cms/tests/toolbar.py
2015-09-21 10:01:18 +02:00
Vadim Sikora 80e3332a5c remove spaceless from user content
Conflicts:
	cms/templates/cms/toolbar/plugin.html
2015-09-21 09:59:57 +02:00
Martin Koistinen 5ab35027a7 Merge pull request #4457 from mkoistinen/mkoistinen/fix_fix_tree
Fix fix tree
2015-09-17 08:43:37 -04:00
Martin Koistinen 97841b9820 Remove unused code 2015-09-16 16:49:38 -04:00
Martin Koistinen a07432c3d7 Fixes #4456 2015-09-16 16:44:24 -04:00
Martin Koistinen d531308db7 Updated test 2015-09-16 16:33:08 -04:00
Martin Koistinen d259a3f2c9 PEP8/whitespace/linelength only 2015-09-16 16:06:20 -04:00
Martin Koistinen 0bec2e4dfb Test asserting the problem. 2015-09-16 16:06:06 -04:00
Iacopo Spalletti 9283515050 Merge pull request #4446 from yakky/feature/django19_compat2
Suppress django 1.9 warning
2015-09-12 19:20:53 +02:00
Iacopo Spalletti c431e76d4d Remove url from future 2015-09-12 15:42:51 +02:00
Venelin Stoykov a438614571 Fix RemovedInDjango19Warning: django.utils.importlib
Import `django.utils.importlib` only where it is needed (for Django 1.6 only). This will remove the warning:

    RemovedInDjango19Warning: django.utils.importlib will be removed in Django 1.9.
2015-09-12 15:42:51 +02:00
Iacopo Spalletti ad59e92a45 Remove request.REQUEST 2015-09-12 15:42:51 +02:00
Jared Proffitt 13c112c904 Fixing more RemovedInDjango19Warnings 2015-09-12 15:42:51 +02:00
Iacopo Spalletti aa76055ad4 Merge pull request #4445 from yakky/merge/migrations_detect
Forwardport migrations detect
2015-09-12 15:41:42 +02:00
Iacopo Spalletti f3e1d7815e Merge remote-tracking branch 'upstream/support/3.0.x' into HEAD
Conflicts:
	cms/__init__.py
	cms/test_utils/cli.py
2015-09-12 14:36:31 +02:00
Iacopo Spalletti 11a3a08120 Merge pull request #4431 from yakky/feature/detect_migrations
detect plugin migrations layout in tests
2015-09-11 22:29:38 +02:00
Iacopo Spalletti b38bfd7315 detect plugin migrations layout in tests 2015-09-09 08:40:13 +02:00
Iacopo Spalletti 6fec11c8a7 Merge pull request #4415 from JayDeeDee/bugfix-4407
bugfix for issue #4407
2015-09-08 12:42:43 +02:00
Jana Deutschlaender f6210664c6 remove / add white spaces as requested, use .on instead of .bind, eliminate > 0 check 2015-09-07 13:15:52 +02:00
Jana Deutschlaender 7c8ab4b974 bugfix for branch support/3.1.x Issue #4407 (Using scroll bar of plugin menu in Firefox & IE moves plugins) 2015-09-03 16:40:22 +02:00
Iacopo Spalletti deb219fc05 Bump development version 2015-09-01 15:38:33 +02:00
Iacopo Spalletti 26d3af5ccc Bump version 2015-09-01 15:36:48 +02:00
Iacopo Spalletti de4a27144c Bump development version 2015-09-01 14:44:48 +02:00
Iacopo Spalletti 032e5e201e Bump version 2015-09-01 09:32:28 +02:00
Iacopo Spalletti 16320c0063 Merge pull request #4405 from yakky/changelog_313
Changelog 3.1.3
2015-08-31 13:12:51 +02:00
Iacopo Spalletti 2de88b7ebd Merge remote-tracking branch 'upstream/support/3.0.x' into changelog_313
Conflicts:
	docs/upgrade/index.rst
2015-08-31 09:26:00 +02:00
Iacopo Spalletti 1a015c834c Merge pull request #4403 from yakky/changelog_3015
Add 3.0.15 changelog
2015-08-31 09:25:16 +02:00
Iacopo Spalletti 1281fdd074 Add 3.0.15 changelog 2015-08-30 22:24:32 +02:00
Iacopo Spalletti 384dd26fff Add 3.1.3 changelog 2015-08-30 22:24:11 +02:00
Iacopo Spalletti f758a46292 Merge pull request #4399 from yakky/merge/4398
Merge #4398
2015-08-30 00:25:02 +02:00
Iacopo Spalletti 641b1f5b4d Forward port #4398 2015-08-29 18:22:42 +02:00
Iacopo Spalletti e4b728f952 Merge pull request #4398 from yakky/feature/cache_version
Cast to int cache version
2015-08-29 18:20:35 +02:00
Iacopo Spalletti ffeeaf8497 Cast to int cache version 2015-08-29 16:21:09 +02:00
Iacopo Spalletti 33db2e0e07 Merge pull request #4396 from yakky/merge/3.0.15-2
Merge support 3.0.x
2015-08-29 16:14:40 +02:00
Iacopo Spalletti c105dab42e Merge remote-tracking branch 'upstream/support/3.0.x' into HEAD 2015-08-29 13:23:01 +02:00
Iacopo Spalletti fc65ab06e9 Merge pull request #4393 from yakky/fix/template_inheritance
Fix template inheritance
2015-08-29 13:19:33 +02:00
Iacopo Spalletti b962fee6eb Merge pull request #4395 from yakky/fix/4368
Fix language chooser template
2015-08-29 13:18:20 +02:00
Iacopo Spalletti 2f7864eab4 Fix language chooser template 2015-08-29 10:52:14 +02:00
Iacopo Spalletti e63911cd07 Add test for template inheritance 2015-08-29 10:20:08 +02:00
Iacopo Spalletti f1f2bf8d1e Fix xframe options inheritance 2015-08-29 10:07:41 +02:00
Iacopo Spalletti a97d0e6fc5 Add tests for xframe option inheritance 2015-08-29 10:07:12 +02:00
Iacopo Spalletti a9080bf4c6 Fix template inheritance order 2015-08-29 08:52:56 +02:00
Iacopo Spalletti ab24d1b4f4 Merge pull request #4386 from yakky/feature/fix_18_requests
Fix getting request in _show_placeholder_for_page on Django 1.8
2015-08-27 09:42:36 +02:00
Iacopo Spalletti a379f700b4 Fix getting request in _show_placeholder_for_page on Django 1.8 2015-08-27 08:36:03 +02:00
Jonas Obrist 51df78a7d0 Merge pull request #4363 from yakky/feature/fix_page_ancestors_order
Fix Page.get_cached_ancestors order
2015-08-18 15:21:50 +02:00
Iacopo Spalletti 42c19ccc14 Merge pull request #4366 from yakky/merge/4273
Merge #4273
2015-08-18 15:16:44 +02:00
Iacopo Spalletti 819923978e Merge pull request #4364 from yakky/feature/plugin_datamigrations_doc
Add documentation for plugins datamigration
2015-08-18 08:31:05 +02:00
Iacopo Spalletti 9337096004 Remove uselesss test 2015-08-17 18:25:06 +02:00
Iacopo Spalletti 0fd4ea3e4e Partially revert previous commit. Fix applied to the consumer of the method, to let the get_cached_ancestors behave like get_ancestors 2015-08-17 18:24:56 +02:00
Iacopo Spalletti d40d58f744 Add documentation for plugins datamigration 2015-08-16 08:14:30 +02:00
Iacopo Spalletti f0928cf71b Merge pull request #4362 from yakky/feature/update_test_requirements
Update test requirements
2015-08-15 14:36:30 +02:00
Iacopo Spalletti db80429033 Merge pull request #4361 from yakky/feature/fix_4038
Really fix #4038
2015-08-15 13:13:50 +02:00
Iacopo Spalletti 641c9984ad Update test requirements 2015-08-15 12:39:20 +02:00
Iacopo Spalletti 95c8b8cd11 Fix Page.get_cached_ancestors order: treebeard has the opposite default ordering of mptt 2015-08-15 12:30:08 +02:00
Iacopo Spalletti 1ad9f7f98c Really fix #4038 2015-08-15 11:28:23 +02:00
Martin Koistinen 5eed528c76 Merge pull request #4353 from divio/mkoistinen/issue_4352
Updates documentation section
2015-08-12 13:01:17 -04:00
Martin Koistinen 3cfd30b14a Double backticks 2015-08-12 12:29:09 -04:00
Martin Koistinen 22cb25f03d Remove dodgy line =) 2015-08-12 12:23:12 -04:00
Martin Koistinen 3a0684c87c Further corrections 2015-08-12 11:26:46 -04:00
Martin Koistinen 493dc087c0 Remove commas from lists 2015-08-12 11:22:49 -04:00
Martin Koistinen 1c6535c30b Updates documentation section 2015-08-12 11:20:00 -04:00
Iacopo Spalletti 07fbdc6385 Fix #4273 migration. Fix 1.6 migration 2015-08-10 22:23:35 +02:00
ikudryavtsev 6c6ec2787c fix get User model in 0010 migration 2015-08-10 22:23:28 +02:00
Iacopo Spalletti a95f0fc33e Merge pull request #4346 from yakky/merge/3.0.15
Merge back support 3.0
2015-08-10 19:12:01 +02:00
Iacopo Spalletti 92bb6c846a Merge remote-tracking branch 'upstream/support/3.0.x' into HEAD
Conflicts:
	cms/admin/placeholderadmin.py
	cms/utils/page_resolver.py
	setup.py
	test_requirements/django-1.4.txt
	test_requirements/django-1.5.txt
2015-08-09 22:08:03 +02:00
Iacopo Spalletti 151e78b28b Merge pull request #4308 from yakky/merge/4301
Only attempt to delete cache keys if there are some to be deleted
2015-07-29 23:40:49 +02:00
Iacopo Spalletti 5c0e561ad8 Merge pull request #4325 from gigaroby/fix/migrationdependency
Fix issue preventing migrations to run on a new database (django 1.8)
2015-07-29 23:39:52 +02:00
Roberto Bampi 2299c6ba4d fix issue with migrations on a new database 2015-07-29 11:37:20 +02:00
Tom Wardill c0becc9749 Only attempt to delete cache keys if there are some to be deleted 2015-07-24 01:09:42 +02:00
Iacopo Spalletti 24656251cb Merge pull request #4299 from divio/mkoistinen/fix_4282
Don't try to modify an immutable QueryDict object.
2015-07-22 07:38:20 +02:00
Martin Koistinen b25a5f210d Consolidated some imports 2015-07-21 22:13:23 -04:00
Martin Koistinen b047429ce0 Don't try to modify an immutable QueryDict 2015-07-21 22:09:12 -04:00
Martin Koistinen 1ba08f0f39 Merge pull request #4284 from yakky/feature/fix_expired_ancestors
Fix reachability of pages with expired ancestors
2015-07-21 13:19:52 -04:00
Martin Koistinen 9461b8af65 Merge pull request #4283 from yakky/feature/fix_page_extension_copy
Fix extensions copy when using duplicate page/create page type
2015-07-21 13:18:33 -04:00
Iacopo Spalletti db4866b822 Merge pull request #4295 from josjevv/hotfix/cache-bytes-int-error
make sure version returned is an int
2015-07-21 08:23:10 +02:00
Iacopo Spalletti ee4a5ef3b5 Merge pull request #4296 from yakky/feature/setup_fix_4263
Declare Django 1.6.9 dependency in setup.py
2015-07-21 08:22:44 +02:00
Iacopo Spalletti 2591925556 django CMS 3.1 and up requires at least Django 1.6.9 due to the use of six.with_metaclass 2015-07-21 07:01:38 +02:00
Jos van Velzen e8166aa806 make sure version returned is an int 2015-07-20 22:46:29 +02:00
Iacopo Spalletti fee6304d76 Merge pull request #4288 from yakky/feature/fix_pagefield
Fix error in PageField for Django 1.8
2015-07-19 10:06:36 +02:00
Iacopo Spalletti 8397ac6e38 Merge pull request #4264 from yakky/feature/treebeard_fix
Page Treebeard fixes
2015-07-19 09:43:09 +02:00
Iacopo Spalletti 40607f6d09 Fix error in PageField for Django 1.8 2015-07-19 08:11:06 +02:00
Iacopo Spalletti 2f58a588a5 Merge pull request #4287 from yakky/feature/pin_text_plugin
Pin djangocms-text-ckeditor version for older djangos
2015-07-18 23:07:56 +02:00
Iacopo Spalletti 420a0b3d8d Ping djangocms-text-ckeditor version for older djangos 2015-07-18 18:46:44 +02:00
Iacopo Spalletti 415b9e9a65 Merge pull request #4286 from yakky/feature/setupy
Add Django versions to classifiers
2015-07-18 16:54:52 +02:00
Iacopo Spalletti 61b805e5fe Add Django versions to classifiers 2015-07-18 16:40:00 +02:00
Iacopo Spalletti b1a758b650 Fix reachability of pages with expired ancestors 2015-07-18 10:45:45 +02:00
Iacopo Spalletti 01f0698861 Fix extensions copy when using duplicate page/create page type 2015-07-17 23:52:20 +02:00
Iacopo Spalletti b98b1d8317 Merge pull request #4279 from yakky/merge/3.0.x
Merge 3.0.x branch
2015-07-17 11:27:05 +02:00
Iacopo Spalletti f2c046306a Add migrations 2015-07-17 08:17:44 +02:00
Iacopo Spalletti d9ea5f6a74 Merge remote-tracking branch 'upstream/support/3.0.x' into merge/3.0.x
Conflicts:
	cms/__init__.py
	cms/menu.py
	cms/models/pagemodel.py
	cms/static/cms/js/modules/cms.modal.js
	cms/tests/frontend.py
	cms/tests/multilingual.py
	setup.py
2015-07-16 20:03:08 +02:00
Iacopo Spalletti 1cb8f0d5a1 Merge pull request #4277 from yakky/feature/remove_page
Remove page from menu items for performance reason.
2015-07-16 19:43:16 +02:00
Iacopo Spalletti 977111b064 Remove page from menu items for performance reason. Fix #4276 2015-07-16 10:25:44 +02:00
Iacopo Spalletti c0ad45f3f4 Merge pull request #4261 from yakky/feature/fix_4214
[WiP] Fix support for unpublished language pages
2015-07-15 00:23:38 +02:00
Iacopo Spalletti 0bf0fbd043 Merge pull request #4255 from yakky/feature/19_deprecations
Remove deprecations
2015-07-14 23:17:22 +02:00
Iacopo Spalletti a06f6f937a Do not use MP_NodeQuerysSet Titles 2015-07-13 23:40:02 +02:00
Iacopo Spalletti dfe70328bc Add test for #4102 2015-07-13 23:24:25 +02:00
Iacopo Spalletti 164b6c2d9c Fix queryset 2015-07-13 22:59:30 +02:00
Iacopo Spalletti 9e10378c99 Remove unpublished pages from menu 2015-07-13 08:36:34 +02:00
Iacopo Spalletti 5313d52a52 Fix support for unpublished language pages 2015-07-12 23:37:34 +02:00
Iacopo Spalletti b86a461c57 Merge pull request #4257 from yakky/feature/merge_4248
Merge 4248
2015-07-12 22:18:28 +02:00
Iacopo Spalletti c5b11d6f50 Merge pull request #4258 from yakky/feature/remove_scssc
Exclude scssc from manifest
2015-07-12 22:17:59 +02:00
Iacopo Spalletti d045d66f3a Exclude scssc from manifest 2015-07-12 10:13:39 +02:00
Iacopo Spalletti 27045ad2ab Merge branch 'feature/merge_4190' into HEAD 2015-07-12 09:28:51 +02:00
Basile LEGAL a66fe0de69 Corrects Iframe doesn't hide 2015-07-12 09:24:57 +02:00
Basile LEGAL 3ac57c8588 Corrects South migration error 2015-07-12 09:24:56 +02:00
Basile LEGAL cbcd9bdba7 corrects syntax + adds migrations 2015-07-12 09:24:56 +02:00
Basile LEGAL 5f0a43688d Fix #4029 - first point of the issue + test 2015-07-12 09:24:31 +02:00
Iacopo Spalletti b7866d7b0c Merge branch 'feature/merge_4229' into HEAD 2015-07-12 09:03:02 +02:00
Iacopo Spalletti 43caae661b Code cleanup 2015-07-12 09:02:02 +02:00
Iacopo Spalletti e4c1837540 Fix redirect when deleting a page 2015-07-12 09:02:02 +02:00
Hans Andersen 2251a9553b Removed unnecessary escape 2015-07-12 08:59:46 +02:00
Hans Andersen f6a3e260c1 Added parentheses for multi-line condition 2015-07-12 08:59:46 +02:00
Hans Andersen 746e24afdb Fixed check for template instance in Django 1.8.x 2015-07-12 08:59:46 +02:00
Iacopo Spalletti 1ed5688d99 Merge pull request #4256 from yakky/feature/relax_html5lib
Relax html5lib versions
2015-07-12 08:57:37 +02:00
Iacopo Spalletti b868f2beeb Relax html5lib versions 2015-07-12 00:34:53 +02:00
Iacopo Spalletti d55d649f15 Tentative fix for #4102 2015-07-12 00:15:44 +02:00
Iacopo Spalletti bacd85ddec Remove some Django 1.9 deprecations 2015-07-11 23:18:19 +02:00
Iacopo Spalletti fb8caabb9a Merge pull request #4232 from yakky/feature/1.8_migration
Fix PageUser migration in Django 1.8
2015-07-04 14:45:39 +02:00
Iacopo Spalletti 2c5aa37e08 Exclude PageUser manager from migrations 2015-07-04 10:16:15 +02:00
Iacopo Spalletti 8814936910 Merge pull request #4233 from yakky/feature/fix_coveralls
Fix coveralls
2015-07-03 20:55:34 +02:00
Iacopo Spalletti d98baa8728 Fix coveralls 2015-07-03 12:07:46 +02:00
Iacopo Spalletti 0fb44504fa Add missing migration 2015-07-03 09:30:45 +02:00
Iacopo Spalletti 4fc4a53bc4 Bump version 2015-07-03 09:04:03 +02:00
Iacopo Spalletti 6260e46b97 Update changelog 2015-07-03 09:04:03 +02:00
Iacopo Spalletti 86b0fa2497 Update translations 2015-07-02 21:11:53 +02:00
Iacopo Spalletti cc09ab7093 Merge pull request #4227 from yakky/fix/docs
Fix supported django version
2015-07-01 23:03:23 +02:00
Iacopo Spalletti 144c5ccd02 Fix supported django version 2015-07-01 20:13:09 +02:00
Iacopo Spalletti 0f820a6371 Merge pull request #4224 from yakky/fix/311-regressions
Fix 3.1.1 regressions
2015-07-01 16:42:01 +02:00
Iacopo Spalletti 11eb1d50c0 Correctly clear placeholder cache. Fix #4223 2015-07-01 06:10:00 +02:00
Iacopo Spalletti 17aa538084 Add test for placeholder cache regression (#4223) 2015-07-01 06:10:00 +02:00
Iacopo Spalletti bee5d2e7b5 Move back get_site_choices, get_page_choices, update_site_and_page_choices to cms.forms 2015-07-01 05:11:24 +02:00
Iacopo Spalletti 7faad47330 Fix readme formatting 2015-06-28 11:34:39 +02:00
Iacopo Spalletti dae85be57a Bump development version 2015-06-27 23:52:58 +02:00
Iacopo Spalletti f81b6b8fd1 Bump development version 2015-06-27 23:52:11 +02:00
Iacopo Spalletti d197f6cd36 Bump version 2015-06-27 23:30:14 +02:00
463 changed files with 73917 additions and 33631 deletions
+89 -4
View File
@@ -1,6 +1,7 @@
language: python
python:
- 3.5
- 3.4
- 3.3
- 2.7
@@ -26,6 +27,7 @@ env:
- DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=0
- DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='emailuserapp.EmailUser'
- DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='customuserapp.User'
- DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='customuserapp.User'
before_script:
- sh -c "if [ '$DATABASE_URL' = 'postgres://postgres@127.0.0.1/djangocms_test' ];
@@ -41,15 +43,16 @@ before_install:
- "sh -e /etc/init.d/xvfb start"
install:
- pip install -q -r "test_requirements/django-$DJANGO.txt" xvfbwrapper
- if [ $DATABASE_URL == 'postgres://postgres@127.0.0.1/djangocms_test' ]; then pip
- pip install -q -r "test_requirements/django-$DJANGO.txt"
- if [[ $TRAVIS_PYTHON_VERSION == '2.6' ]]; then pip install 'xvfbwrapper<0.2.7'; else pip install xvfbwrapper; fi
- if [[ $DATABASE_URL == 'postgres://postgres@127.0.0.1/djangocms_test' ]]; then pip
install -q psycopg2 ; fi
- if [ $DATABASE_URL == 'mysql://root@127.0.0.1/djangocms_test' ]; then pip install
- if [[ $DATABASE_URL == 'mysql://root@127.0.0.1/djangocms_test' ]]; then pip install
-q mysqlclient ; fi
script: coverage run --rcfile=.coverage.rc develop.py test --migrate --xvfb
after_success: coverallscustomuserapp.User --config_file=.coverage.rc
after_success: coveralls --config_file=.coverage.rc
notifications:
irc:
@@ -61,6 +64,15 @@ notifications:
matrix:
exclude:
- python: 2.6
env: DJANGO=1.6 DATABASE_URL='sqlite://localhost/:memory:' SELENIUM=0
- python: 2.6
env: DJANGO=1.6 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test' SELENIUM=0
- python: 2.6
env: DJANGO=1.6 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=0
- python: 2.6
env: DJANGO=1.6 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 2.6
env: DJANGO=1.7 DATABASE_URL='sqlite://localhost/:memory:' SELENIUM=0
- python: 2.6
@@ -81,6 +93,72 @@ matrix:
- python: 2.6
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='customuserapp.User'
- python: 2.7
env: DJANGO=1.6 DATABASE_URL='sqlite://localhost/:memory:' SELENIUM=0
- python: 2.7
env: DJANGO=1.6 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=0
- python: 2.7
env: DJANGO=1.6 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 2.7
env: DJANGO=1.7 DATABASE_URL='sqlite://localhost/:memory:' SELENIUM=0
- python: 2.7
env: DJANGO=1.7 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.3
env: DJANGO=1.6 DATABASE_URL='sqlite://localhost/:memory:' SELENIUM=0
- python: 3.3
env: DJANGO=1.6 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.3
env: DJANGO=1.6 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.3
env: DJANGO=1.6 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.3
env: DJANGO=1.7 DATABASE_URL='sqlite://localhost/:memory:' SELENIUM=0
- python: 3.3
env: DJANGO=1.7 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.3
env: DJANGO=1.7 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.3
env: DJANGO=1.8 DATABASE_URL='sqlite://localhost/:memory:' SELENIUM=0
- python: 3.3
env: DJANGO=1.8 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.3
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.3
env: DJANGO=1.8 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.5
env: DJANGO=1.6 DATABASE_URL='sqlite://localhost/:memory:' SELENIUM=0
- python: 3.5
env: DJANGO=1.6 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.5
env: DJANGO=1.6 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.5
env: DJANGO=1.6 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 3.5
env: DJANGO=1.6 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='customuserapp.User'
- python: 3.5
env: DJANGO=1.7 DATABASE_URL='sqlite://localhost/:memory:' SELENIUM=0
- python: 3.5
env: DJANGO=1.7 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.5
env: DJANGO=1.7 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.5
env: DJANGO=1.7 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='emailuserapp.EmailUser'
- python: 2.6
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='customuserapp.User'
- python: 2.7
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='customuserapp.User'
- python: 3.3
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='customuserapp.User'
- python: 3.5
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='customuserapp.User'
allow_failures:
- python: 2.7
env: DJANGO=1.7 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test' SELENIUM=0
@@ -101,4 +179,11 @@ matrix:
- python: 3.4
env: DJANGO=1.8 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.5
env: DJANGO=1.8 DATABASE_URL='mysql://root@127.0.0.1/djangocms_test' SELENIUM=0
- python: 3.4
env: DJANGO=1.9 DATABASE_URL='postgres://postgres@127.0.0.1/djangocms_test' SELENIUM=1 AUTH_USER_MODEL='customuserapp.User'
fast_finish: true
+16 -42
View File
@@ -20,7 +20,7 @@ Current and previous core designers:
* Christian Bertschy
Contributors (based on gitlog) (482):
Contributors (based on gitlog) (456 authors):
* A. Bram Neijt
* aaloy
@@ -30,7 +30,6 @@ Contributors (based on gitlog) (482):
* aball
* Adi Sieker
* Admin Adminaras
* Adrián Ribao
* Adrián Ribao Martínez
* Alberto Paro
* Ales Kocjancic
@@ -41,7 +40,6 @@ Contributors (based on gitlog) (482):
* Alex Marandon
* Alexandre Leray
* Alexey Subbotin
* Aleš Kocjančič
* Alvin Mites
* Anatoly Ivanov
* Andi Albrecht
@@ -49,13 +47,11 @@ Contributors (based on gitlog) (482):
* Andrea Stagi
* Andrei Avram
* Andrei Fokau
* Andrew Cassidy
* Andrew Schoen
* Angelo Dini
* angular_circle
* Antoine Catton
* Anton Parkhomenko
* Antoni Aloy López
* AQNOUCH Mohammed
* Arcady Usov
* Arne Gellhaus
@@ -64,14 +60,12 @@ Contributors (based on gitlog) (482):
* Arthur Debert
* Artis Avotins
* Aymeric Augustin
* Bashar Al-Abdulhadi
* Batiste Bieler
* Basile LEGAL
* behrooz
* Behrooz Nobakht
* Belegnar
* Ben Northway
* Ben Stähli
* Beni Wohlwend
* Benjamin
* Benjamin Liles
* Benjamin Wohlwend
@@ -93,7 +87,6 @@ Contributors (based on gitlog) (482):
* Carlo Ascani
* Carlos de Paula
* casio
* Catalin Dragomirescu
* centralniak
* Chanita Siridechkun
* Charlie Denton
@@ -106,7 +99,7 @@ Contributors (based on gitlog) (482):
* Chris Jones
* Chris Wesseling
* Chris Wilson
* Christian Bertschy
* Christian Strappazzon
* Christof Hagedorn
* Christopher Grebs
* Christos Kopanos
@@ -114,7 +107,6 @@ Contributors (based on gitlog) (482):
* Claudio Bartolini
* Colin Wirz
* Conrado Buhrer
* Conrado Bührer
* Corey Farwell
* Craig de Stigter
* Craig Ricciuto
@@ -155,7 +147,7 @@ Contributors (based on gitlog) (482):
* DZ
* eged
* Egor V. Nazarkin
* Ekrem Seren
* Ekrem SEREN
* Elias Probst
* Eric Amador
* Eric Eldredge
@@ -163,10 +155,8 @@ Contributors (based on gitlog) (482):
* ericr
* Erik Allik
* Erlend Dalen
* Eugen MechanisM
* Eugene MechanisM
* Evandro Miquelito
* Evgeny Demchenko
* evildmp
* F. Gabriel Gosselin
* f4nt
@@ -187,28 +177,25 @@ Contributors (based on gitlog) (482):
* gentleShark
* Geoffrey Hing
* George Marshall
* Gerard Świdersk
* Gerard Świderski
* Germano Gabbianelli
* Germano Gabbianellii
* Gilles Lenfant
* Gleb Chipiga
* Gregory Klupar
* guandalino
* Hamish Downer
* Hans Andersen
* hedberg
* henning
* Henning Spran
* Henning Sprang
* Herbert Poul
* hjkelly
* homebrew79
* Horst Gutmann
* hysia
* Iacopo Spalletti
* Ian Lewis
* ikudryavtsev
* indexofire
* Ionel Cristian Maries
* Ionel Maries Cristian
* Ivan Vershigora
* Iván Raskovsky
@@ -220,14 +207,14 @@ Contributors (based on gitlog) (482):
* Jameel Al-Aziz
* James Richards
* James Rutherford
* Jana Deutschlaender
* Jannis Leidel
* Janusz Harkot
* Jared Proffitt
* Jason Brown
* Jason Davies
* Jason Jenkins
* Jason Robinson
* Jason Zylks
* Javi Nievas
* Jeffrey Goettsch
* JensDiemer
* Jeroen Noten
@@ -242,7 +229,6 @@ Contributors (based on gitlog) (482):
* Jonathan Stoppani
* jordanjambazov
* Jorge Vargas
* Jorge Vargas (elpargo)
* Jos van Velzen
* Joseph Bergantine
* Joseph Melettukunnel
@@ -251,22 +237,17 @@ Contributors (based on gitlog) (482):
* João Luiz Lorencetti
* Julien Poissonnier
* Kalle Bronsen
* kar1m
* kater169
* kblomqvis
* kblomqvist
* Kegan Holtzhausen
* Keryn Knight
* Kevin Richardson
* Kim Blomqvist
* Kim Thoenen
* kochin
* Kristian Øllegaard
* Krzysztof Bandurski
* kunitoki
* Lars Smit
* Lars van de Kerkhof
* limpbrains :P
* Lio Mendonca
* Lionardo Mendonça
* littlepea
@@ -288,13 +269,13 @@ Contributors (based on gitlog) (482):
* Marco Paolini
* Marco Rimoldi
* marcor
* Marijn Goedegebure
* Mark Rogers
* Markus Holtermann
* Markus Zapke-Gründemann
* Markus Zapke-Gründemann
* Marti Raudsepp
* Martin
* Martin Bommeli
* Martin Bambas
* Martin Brochhaus
* Martin Koistinen
* Martin Kosír
@@ -334,7 +315,6 @@ Contributors (based on gitlog) (482):
* Nelson Brochado
* neoprolog
* Nick Jones
* Nickolay V. Shmyrev
* nikolas
* nsh
* o-zander
@@ -346,7 +326,6 @@ Contributors (based on gitlog) (482):
* Oyvind Saltvik
* padelt
* Pankrat
* Paolo
* Paolo Leggio
* Pascal Mouret
* pascal.beyeler
@@ -364,7 +343,6 @@ Contributors (based on gitlog) (482):
* pcicman
* Pedro Gracia
* Pete Loggie
* Peter Ciciman
* Peter Farrell
* Peter J. Farrell
* Peter Landry
@@ -376,10 +354,9 @@ Contributors (based on gitlog) (482):
* philomat
* phuihock
* Pigletto
* Piotr Jakimiak
* Piotr Kilczuk
* piquadrat
* poweredbypenguins
* Pratik Vyas
* pumalo
* Rafal Radulski
* raidsan
@@ -399,7 +376,7 @@ Contributors (based on gitlog) (482):
* Robert Feldbinder
* Robert Pogorzelski
* Roberto
* Roberto Lopez
* Roberto Bampi
* Robin Lewis
* robint
* Rodolfo Carvalho
@@ -413,7 +390,6 @@ Contributors (based on gitlog) (482):
* Samuel Lüscher
* sbussetti
* Schoen
* Scott Barnham
* scottbarnham
* sealibora
* Sean Bleier
@@ -435,19 +411,18 @@ Contributors (based on gitlog) (482):
* ssteinerX
* Stavros Korokithakis
* Stefan Foulis
* Stefan T. Oertel
* Stefan Wehrmeyer
* stefanfoulis
* Stefano Brentegani
* Stefano Crosta
* Stefano Morandi
* Steffen Jasper
* Stephan
* Stephan Hepper
* Stephan Herzog
* Stephan Jaekel
* Stephen Muss
* Stephen Watkin
* Steve R. Jones
* Steve Steiner
* Steven Laroche
* Sylvain Fankhauser
@@ -457,7 +432,6 @@ Contributors (based on gitlog) (482):
* Thomas Parslow
* Thomas Remmert
* Thomas Woolford
* Tibor Balogh
* Tim Anderegg
* Tim Davies
* Tim Graham
@@ -470,17 +444,16 @@ Contributors (based on gitlog) (482):
* Tom de Simone
* Tom S
* Tom V
* Tom Wardill
* Ulrich Petri
* unknown
* User
* Vadim Sikora
* Vasil Vangelovski
* Venelin Stoykov
* Viktor Nagy
* Viliam Segeda
* Vinit (Vermicelli on IRC)
* vinit kumar
* Vitor Figueiro
* Vladimir Bolshakov
* Vladyslav
* vvangelovski
@@ -490,6 +463,7 @@ Contributors (based on gitlog) (482):
* wildermesser
* Xavier Fernandez
* Xavier Ordoquy
* xie wei
* xray7224
* Yann Malet
* yann.malet@gmail.com
@@ -503,4 +477,4 @@ Contributors (based on gitlog) (482):
* Óscar M. Lage
* Øyvind Saltvik
* Žan Anderle
* Антон Евжаков
* Антон Евжаков
+104
View File
@@ -382,6 +382,35 @@ Please see Install/2.4 release notes *before* attempting to upgrade to version 2
- Pin Html5lib version to 0.999 until a current bug is fixed
- Fix language chooser template
=== 3.0.15 (2015-09-01) ===
- Relax html5lib versions
- Fix redirect when deleting a page
- Correct South migration error
- Correct validation on numeric fields in modal popups
- Exclude scssc from manifest
- Remove unpublished pages from menu
- Remove page from menu items for performance reason
- Fix reachability of pages with expired ancestors
- Don't try to modify an immutable QueryDict
- Only attempt to delete cache keys if there are some to be deleted
- Update documentation section
- Fix language chooser template
- Cast to int cache version
- Fix extensions copy when using duplicate page/create page type
=== 3.0.16 (2015-11-24) ===
- Fix JS error when using PageSelectWidget
- Fix whitespace markup issues in draft mode
- Detect plugin migrations layout in tests
=== 3.0.17 (unreleased) ===
- Fix ExtensionToolbar when language is removed but titles still exists…
- Fix PageSelectWidget JS syntax
- Fix cache settings
=== 3.1 (2015-04-20) ===
- Remove django-mptt in favor of django-treebeard
@@ -432,3 +461,78 @@ Please see Install/2.4 release notes *before* attempting to upgrade to version 2
- Fix get_language_from_request if POST and GET exists
- Fix an error in placeholder cache
- Fix language chooser template
=== 3.1.2 (2015-07-02) ===
- Fix placeholder cache invalidation under some circumstances
- Update translations
=== 3.1.3 (2015-09-01) ===
- Add missing migration
- Exclude PageUser manager from migrations
- Fix check for template instance in Django 1.8.x
- Fix error in PageField for Django 1.8
- Fix some Page tree bugs
- Declare Django 1.6.9 dependency in setup.py
- Make sure cache version returned is an int
- Fix issue preventing migrations to run on a new database (django 1.8)
- Fix get User model in 0010 migration
- Fix support for unpublished language pages
- Add documentation for plugins datamigration
- Fix getting request in _show_placeholder_for_page on Django 1.8
- Fix template inheritance order
- Fix xframe options inheritance order
- Fix placeholder inheritance order
- Fix language chooser template
- Relax html5lib versions
- Fix redirect when deleting a page
- Correct South migration error
- Correct validation on numeric fields in modal popups
- Exclude scssc from manifest
- Remove unpublished pages from menu
- Remove page from menu items for performance reason
- Fix reachability of pages with expired ancestors
- Don't try to modify an immutable QueryDict
- Only attempt to delete cache keys if there are some to be deleted
- Update documentation section
- Fix language chooser template
- Cast to int cache version
- Fix extensions copy when using duplicate page/create page type
=== 3.1.4 (2015-11-24) ===
- Fix use structure migration
- Fix fix_tree command
- Remove some warning for Django 1.9
- Fix using scroll bar of plugin menu in Firefox & IE moves plugins
- Fix JS error when using PageSelectWidget
- Fix whitespace markup issues in draft mode
- Detect plugin migrations layout in tests
- Fix some treebeard corruption issues
=== 3.1.5 (2016-01-29) ===
- Fixed a tree corruption when pasting a nested plugin under another plugin.
- Improve CMSPluginBase.render documentation
- Fix CMSEditableObject context generation which generates to errors with django-classy-tags 0.7.1
- Fix error in toolbar when LocaleMiddleware is not used
- Move templates validation in app.ready
- Fix ExtensionToolbar when language is removed but titles still exists
- Fix pages menu missing on fresh install 3.1
- Fix incorrect language on placeholder text for redirect field
- Fix PageSelectWidget JS syntax
- Fix redirect when disabling toolbar
- Fix CMS_TOOLBAR_HIDE causes 'WSGIRequest' object has no attribute 'toolbar'
=== 3.1.6 (unreleased) ===
- Fix cache settings
- Fix user lookup for view restrictions/page permissions when using raw id field
- Fixes an issue relating to uninstalling a namespaced application
- Adds "Can change page" permission
- Addresses security vulnerabilities in the `render_model` template tag that
could lead to escalation of privileges or other security issues.
- Addresses a security vulnerability in the cms' usage of the messages framework
- Fixes security vulnerabilities in custom FormFields that could lead to
escalation of privileges or other security issues.
+2 -1
View File
@@ -9,4 +9,5 @@ recursive-include cms/plugins *
recursive-include menus/templates *
recursive-include stacks/templates *
recursive-include docs *
recursive-exclude * *.pyc
recursive-exclude * *.pyc
recursive-exclude * *.scssc
+2 -2
View File
@@ -90,9 +90,9 @@ Getting Help
Please head over to our IRC channel, #django-cms, on irc.freenode.net or write
to our `mailing list <https://groups.google.com/forum/#!forum/django-cms>`_.
************
******************
Commercial support
************
******************
This project is backed by `Divio <https://divio.ch>`_. If you need help
implementing or hosting django CMS, please contact us: sales@divio.ch.
+2 -1
View File
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
__version__ = '3.1.1'
__version__ = '3.1.6'
default_app_config = 'cms.apps.CMSConfig'
+5 -4
View File
@@ -14,17 +14,18 @@ def get_copy_dialog(request, page_id):
if not get_cms_setting('PERMISSION'):
return HttpResponse('')
target_id = request.GET.get('target', False) or request.POST.get('target', False)
callback = request.GET.get('callback', False) or request.POST.get('callback', False)
page = get_object_or_404(Page, pk=page_id)
target = get_object_or_404(Page, pk=request.REQUEST['target'])
target = get_object_or_404(Page, pk=target_id)
if not page.has_change_permission(request) or \
not target.has_add_permission(request):
if not page.has_change_permission(request) or not target.has_add_permission(request):
raise Http404
context = {
'dialog_id': 'dialog-copy',
'form': PermissionForm(), # class needs to be instantiated
'callback': request.REQUEST['callback'],
'callback': callback,
}
return render(request, "admin/cms/page/tree/copy_premissions.html", context)
+30 -17
View File
@@ -12,9 +12,16 @@ from django.conf.urls import url
from django.contrib import admin, messages
from django.contrib.admin.models import LogEntry, CHANGE
from django.contrib.admin.options import IncorrectLookupParameters
from django.contrib.admin.util import get_deleted_objects
try:
from django.contrib.admin.utils import get_deleted_objects
except ImportError:
from django.contrib.admin.util import get_deleted_objects
from django.contrib.contenttypes.models import ContentType
from django.contrib.sites.models import Site, get_current_site
from django.contrib.sites.models import Site
try:
from django.contrib.sites.shortcuts import get_current_site
except ImportError:
from django.contrib.sites.models import get_current_site
from django.core.exceptions import PermissionDenied, ObjectDoesNotExist, ValidationError
from django.db import router, transaction
from django.db.models import Q
@@ -165,6 +172,8 @@ class PageAdmin(PlaceholderAdminMixin, ModelAdmin):
Move the page in the tree if necessary and save every placeholder
Content object.
"""
from cms.extensions import extension_pool
target = request.GET.get('target', None)
position = request.GET.get('position', None)
@@ -218,18 +227,19 @@ class PageAdmin(PlaceholderAdminMixin, ModelAdmin):
obj = obj.move(target, pos=position)
page_type_id = form.cleaned_data.get('page_type')
copy_target_id = request.GET.get('copy_target')
copy_target = None
if copy_target_id or page_type_id:
if page_type_id:
copy_target_id = page_type_id
copy_target = Page.objects.get(pk=copy_target_id)
if not copy_target.has_view_permission(request):
raise PermissionDenied()
obj = Page.objects.get(pk=obj.pk) #mptt reload
obj = obj.reload()
copy_target._copy_attributes(obj, clean=True)
obj.save()
for lang in copy_target.languages.split(','):
for lang in copy_target.get_languages():
copy_target._copy_contents(obj, lang)
if not 'permission' in request.path_info:
if 'permission' not in request.path_info:
language = form.cleaned_data['language']
Title.objects.set_or_create(
request,
@@ -237,6 +247,8 @@ class PageAdmin(PlaceholderAdminMixin, ModelAdmin):
form,
language,
)
if copy_target:
extension_pool.copy_extensions(copy_target, obj)
# is it home? publish it right away
if new and Page.objects.filter(site_id=obj.site_id).count() == 1:
obj.publish(language)
@@ -929,11 +941,13 @@ class PageAdmin(PlaceholderAdminMixin, ModelAdmin):
site = Site.objects.get(pk=site)
except (ObjectDoesNotExist, AssertionError):
return HttpResponse("error")
#context.update({'error': _('Page could not been moved.')})
else:
try:
permissions = request.GET.get('copy_permissions', False)
if not permissions:
permissions = request.POST.get('copy_permissions', False)
kwargs = {
'copy_permissions': request.REQUEST.get('copy_permissions', False),
'copy_permissions': permissions,
}
page.copy_page(target, site, position, **kwargs)
return jsonify_request(HttpResponse("ok"))
@@ -961,7 +975,7 @@ class PageAdmin(PlaceholderAdminMixin, ModelAdmin):
all_published = False
statics = request.GET.get('statics', '')
if not statics and not page:
return Http404("No page or stack found for publishing.")
raise Http404("No page or stack found for publishing.")
if statics:
static_ids = statics .split(',')
for pk in static_ids:
@@ -991,7 +1005,7 @@ class PageAdmin(PlaceholderAdminMixin, ModelAdmin):
self.cleanup_history(page, publish=True)
helpers.make_revision_with_plugins(page, request.user, PUBLISH_COMMENT)
# create a new publish reversion
if 'node' in request.REQUEST:
if 'node' in request.GET or 'node' in request.POST:
# if request comes from tree..
return admin_utils.render_admin_menu_item(request, page)
@@ -1092,14 +1106,13 @@ class PageAdmin(PlaceholderAdminMixin, ModelAdmin):
messages.info(request, _('The page "%s" was successfully reverted.') % page)
if 'node' in request.REQUEST:
if 'node' in request.GET or 'node' in request.POST:
# if request comes from tree..
return admin_utils.render_admin_menu_item(request, page)
referer = request.META.get('HTTP_REFERER', '')
path = '../../'
if admin_reverse('index') not in referer:
path = '%s?%s' % (referer.split('?')[0], get_cms_setting('CMS_TOOLBAR_URL__EDIT_OFF'))
# TODO: This should never fail, but it may be a POF
path = page.get_absolute_url(language=language)
path = '%s?%s' % (path, get_cms_setting('CMS_TOOLBAR_URL__EDIT_OFF'))
return HttpResponseRedirect(path)
@create_revision()
@@ -1290,8 +1303,8 @@ class PageAdmin(PlaceholderAdminMixin, ModelAdmin):
else:
obj = None
if not obj:
pk = request.REQUEST.get('pk')
full_model = request.REQUEST.get('model')
pk = request.GET.get('pk', False) or request.POST.get('pk', False)
full_model = request.GET.get('model') or request.POST.get('model', False)
if pk and full_model:
app_label, model = full_model.split('.')
if pk and app_label:
@@ -1305,7 +1318,7 @@ class PageAdmin(PlaceholderAdminMixin, ModelAdmin):
except:
obj = None
if obj:
if not request.toolbar or not request.toolbar.edit_mode:
if not getattr(request, 'toolbar', False) or not getattr(request.toolbar, 'edit_mode', False):
if isinstance(obj, Page):
if obj.get_public_object():
url = obj.get_public_object().get_absolute_url()
+17 -7
View File
@@ -4,7 +4,8 @@ from django.contrib import admin
from django.contrib.admin import site
from django.contrib.auth import get_user_model, get_permission_codename
from django.contrib.auth.admin import UserAdmin
from django.utils.translation import ugettext as _
from django.db import OperationalError
from django.utils.translation import ugettext, ugettext_lazy as _
from cms.admin.forms import GlobalPagePermissionAdminForm, PagePermissionInlineAdminForm, ViewRestrictionInlineAdminForm
from cms.exceptions import NoPermissionsException
@@ -37,9 +38,18 @@ class PagePermissionInlineAdmin(TabularInline):
def raw_id_fields(cls):
# Dynamically set raw_id_fields based on settings
threshold = get_cms_setting('RAW_ID_USERS')
if threshold and get_user_model().objects.count() > threshold:
return ['user']
return []
# Given a fresh django-cms install and a django settings with the
# CMS_RAW_ID_USERS = CMS_PERMISSION = True
# django throws an OperationalError when running
# ./manage migrate
# because auth_user doesn't exists yet
try:
threshold = threshold and get_user_model().objects.count() > threshold
except OperationalError:
threshold = False
return ['user'] if threshold else []
def get_queryset(self, request):
"""
@@ -145,9 +155,9 @@ class GenericCmsPermissionAdmin(object):
"""
fieldsets = deepcopy(self.fieldsets)
perm_models = (
(Page, _('Page permissions')),
(PageUser, _('User & Group permissions')),
(PagePermission, _('Page permissions management')),
(Page, ugettext('Page permissions')),
(PageUser, ugettext('User & Group permissions')),
(PagePermission, ugettext('Page permissions management')),
)
for i, perm_model in enumerate(perm_models):
model, title = perm_model
+30 -11
View File
@@ -1,16 +1,23 @@
# -*- coding: utf-8 -*-
import json
from cms.utils.compat import DJANGO_1_7
from django.conf import settings
from django.conf.urls import url
from django.contrib.admin.helpers import AdminForm
from django.contrib.admin.util import get_deleted_objects
try:
from django.contrib.admin.utils import get_deleted_objects
except ImportError:
from django.contrib.admin.util import get_deleted_objects
from django.core.exceptions import PermissionDenied
from django.db import router, transaction
from django.http import (HttpResponse, HttpResponseBadRequest, HttpResponseNotFound,
HttpResponseForbidden, HttpResponseRedirect)
from django.shortcuts import render, get_object_or_404
from django.http import (
HttpResponse,
HttpResponseBadRequest,
HttpResponseForbidden,
HttpResponseNotFound,
HttpResponseRedirect,
)
from django.shortcuts import get_object_or_404, render
from django.template.defaultfilters import force_escape, escapejs
from django.template.response import TemplateResponse
from django.utils.decorators import method_decorator
@@ -25,9 +32,19 @@ from cms.models.placeholdermodel import Placeholder
from cms.models.placeholderpluginmodel import PlaceholderReference
from cms.models.pluginmodel import CMSPlugin
from cms.plugin_pool import plugin_pool
from cms.utils import copy_plugins, permissions, get_language_from_request, get_cms_setting
from cms.utils import (
copy_plugins,
get_cms_setting,
get_language_from_request,
permissions,
)
from cms.utils.compat import DJANGO_1_7
from cms.utils.i18n import get_language_list
from cms.utils.plugins import requires_reload, has_reached_plugin_limit, reorder_plugins
from cms.utils.plugins import (
requires_reload,
has_reached_plugin_limit,
reorder_plugins
)
from cms.utils.urlutils import admin_reverse
@@ -344,9 +361,11 @@ class PlaceholderAdminMixin(object):
except Placeholder.DoesNotExist:
pass
if request.method == "POST":
# set the continue flag, otherwise will plugin_admin make redirect to list
# view, which actually doesn't exists
request.POST['_continue'] = True
# set the continue flag, otherwise plugin_admin will make redirect
# to list view, which actually doesn't exists
mutable_post = request.POST.copy()
mutable_post['_continue'] = True
request.POST = mutable_post
if request.POST.get("_cancel", False):
# cancel button was clicked
context = {
@@ -470,7 +489,7 @@ class PlaceholderAdminMixin(object):
else:
deleted_objects, __, perms_needed, protected = get_deleted_objects(
[plugin], opts, request.user, self.admin_site, using)
if request.POST: # The user has already confirmed the deletion.
if perms_needed:
raise PermissionDenied(_("You do not have permission to delete this plugin"))
+6 -2
View File
@@ -6,14 +6,18 @@ try:
except ImportError:
# Python < 2.7
from django.utils.datastructures import SortedDict as OrderedDict
try:
from importlib import import_module
except ImportError:
# Python < 2.7
from django.utils.importlib import import_module
from django.conf import settings
from django.contrib.sites.models import Site
from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import (RegexURLResolver, Resolver404, reverse,
RegexURLPattern)
RegexURLPattern)
from django.utils import six
from django.utils.importlib import import_module
from django.utils.translation import get_language
from cms.apphook_pool import apphook_pool
-2
View File
@@ -10,5 +10,3 @@ class CMSConfig(AppConfig):
def ready(self):
setup()
from cms.plugin_pool import plugin_pool
plugin_pool.set_plugin_meta()
+1 -72
View File
@@ -1,78 +1,7 @@
# -*- coding: utf-8 -*-
from collections import defaultdict
from django.conf import settings
from django.utils.datastructures import SortedDict
from django.utils.safestring import mark_safe
from cms.exceptions import LanguageError
from cms.models import Title
from cms.utils import i18n, get_cms_setting
def update_site_and_page_choices(lang=None):
lang = lang or i18n.get_current_language()
SITE_CHOICES_KEY = _site_cache_key(lang)
PAGE_CHOICES_KEY = _page_cache_key(lang)
title_queryset = (Title.objects.drafts()
.select_related('page', 'page__site')
.order_by('page__path'))
pages = defaultdict(SortedDict)
sites = {}
for title in title_queryset:
page = pages[title.page.site.pk].get(title.page.pk, {})
page[title.language] = title
pages[title.page.site.pk][title.page.pk] = page
sites[title.page.site.pk] = title.page.site.name
site_choices = []
page_choices = [('', '----')]
try:
fallbacks = i18n.get_fallback_languages(lang)
except LanguageError:
fallbacks = []
language_order = [lang] + fallbacks
for sitepk, sitename in sites.items():
site_choices.append((sitepk, sitename))
site_page_choices = []
for titles in pages[sitepk].values():
title = None
for language in language_order:
title = titles.get(language)
if title:
break
if not title:
continue
indent = u"&nbsp;&nbsp;" * (title.page.depth - 1)
page_title = mark_safe(u"%s%s" % (indent, title.title))
site_page_choices.append((title.page.pk, page_title))
page_choices.append((sitename, site_page_choices))
from django.core.cache import cache
# We set it to 1 day here because we actively invalidate this cache.
cache.set(SITE_CHOICES_KEY, site_choices, 86400)
cache.set(PAGE_CHOICES_KEY, page_choices, 86400)
return site_choices, page_choices
def get_site_choices(lang=None):
from django.core.cache import cache
lang = lang or i18n.get_current_language()
site_choices = cache.get(_site_cache_key(lang))
if site_choices is None:
site_choices, page_choices = update_site_and_page_choices(lang)
return site_choices
def get_page_choices(lang=None):
from django.core.cache import cache
lang = lang or i18n.get_current_language()
page_choices = cache.get(_page_cache_key(lang))
if page_choices is None:
site_choices, page_choices = update_site_and_page_choices(lang)
return page_choices
from cms.utils import get_cms_setting
def _site_cache_key(lang):
+4 -3
View File
@@ -23,10 +23,11 @@ def get_cache_permission_version_key():
def get_cache_permission_version():
from django.core.cache import cache
version = cache.get(get_cache_permission_version_key())
if version is None:
try:
version = int(cache.get(get_cache_permission_version_key()))
except Exception:
version = 1
return version
return int(version)
def get_permission_cache(user, key):
+1 -1
View File
@@ -39,7 +39,7 @@ def get_placeholder_cache(placeholder, lang):
def clear_placeholder_cache(placeholder, lang):
from django.core.cache import cache
cache.delete(_placeholder_cache_key(placeholder, lang))
cache.delete(_placeholder_cache_key(placeholder, lang), version=_get_cache_version())
def _placeholder_page_cache_key(page_lookup, lang, site_id, placeholder_name):
+21 -6
View File
@@ -19,7 +19,10 @@ from cms.toolbar_pool import toolbar_pool
from cms.utils.i18n import get_language_tuple, force_language, get_language_dict
from cms.utils.compat.dj import is_installed
from cms.utils import get_cms_setting
from cms.utils.permissions import get_user_sites_queryset
from cms.utils.permissions import (
get_user_sites_queryset,
has_auth_page_permission,
)
from cms.utils.urlutils import add_url_parameters, admin_reverse
from menus.utils import DefaultLanguageChanger
@@ -216,6 +219,7 @@ class BasicToolbar(CMSToolbar):
@toolbar_pool.register
class PageToolbar(CMSToolbar):
_changed_admin_menu = None
watch_models = [Page]
# Helpers
@@ -252,8 +256,16 @@ class PageToolbar(CMSToolbar):
def has_page_change_permission(self):
if not hasattr(self, 'page_change_permission'):
self.page_change_permission = can_change_page(self.request)
if not self.page and not get_cms_setting('PERMISSION'):
# We can't check permissions for an individual page
# and can't check global cms permissions because
# user opted out of them.
# So just check django auth permissions.
user = self.request.user
can_change = has_auth_page_permission(user, action='change')
else:
can_change = can_change_page(self.request)
self.page_change_permission = can_change
return self.page_change_permission
def page_is_pending(self, page, language):
@@ -401,7 +413,7 @@ class PageToolbar(CMSToolbar):
question=question % name, on_success=self.toolbar.REFRESH_PAGE)
def change_admin_menu(self):
if self.has_page_change_permission():
if not self._changed_admin_menu and self.has_page_change_permission():
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}
@@ -409,6 +421,8 @@ class PageToolbar(CMSToolbar):
params['page_id'] = self.page.pk
url = add_url_parameters(url, params)
admin_menu.add_sideframe_item(_('Pages'), url=url, position=0)
# Used to prevent duplicates
self._changed_admin_menu = True
def add_page_menu(self):
if self.page and self.has_page_change_permission():
@@ -538,7 +552,8 @@ class PageToolbar(CMSToolbar):
revert_action = admin_reverse('cms_page_revert_page', args=(self.page.pk, self.current_lang))
revert_question = _('Are you sure you want to revert to live?')
is_enabled = self.page.is_dirty(self.current_lang) and self.page.publisher_public
history_menu.add_ajax_item(_('Revert to live'), action=revert_action, question=revert_question,
disabled=not self.page.is_dirty(self.current_lang),
on_success=refresh, extra_classes=('cms_toolbar-revert',))
disabled=not is_enabled,
on_success=refresh, extra_classes=('cms-toolbar-revert',))
history_menu.add_modal_item(_('View history'), url=admin_reverse('cms_page_history', args=(self.page.pk,)))
+1 -1
View File
@@ -89,7 +89,7 @@ class ExtensionPool(object):
def copy_extensions(self, source_page, target_page, languages=None):
if not languages:
languages = source_page.get_languages()
languages = target_page.get_languages()
if self.page_extensions:
self._copy_page_extensions(source_page, target_page, None, clone=True)
self._remove_orphaned_page_extensions()
+2 -2
View File
@@ -2,7 +2,7 @@
from cms.utils.urlutils import admin_reverse
from cms.api import get_page_draft
from cms.toolbar_base import CMSToolbar
from cms.utils import get_cms_setting
from cms.utils import get_cms_setting, get_language_list
from cms.utils.permissions import has_page_change_permission
from django.core.urlresolvers import NoReverseMatch
@@ -126,7 +126,7 @@ class ExtensionToolbar(CMSToolbar):
if language:
titles = page.get_title_obj(language),
else:
titles = page.title_set.all()
titles = page.title_set.filter(language__in=get_language_list(page.site_id))
# Titles
for title in titles:
try:
+4 -6
View File
@@ -1,14 +1,12 @@
# -*- coding: utf-8 -*-
import six
from django.utils.translation import ugettext_lazy as _
from django import forms
from django.contrib.admin.widgets import RelatedFieldWidgetWrapper
from django.forms.fields import EMPTY_VALUES
from django.utils.translation import ugettext_lazy as _
from cms.cache.choices import get_site_choices, get_page_choices
from cms.models.pagemodel import Page
from cms.forms.utils import get_site_choices, get_page_choices
from cms.forms.widgets import PageSelectWidget, PageSmartLinkWidget
from cms.models.pagemodel import Page
class SuperLazyIterator(object):
@@ -86,5 +84,5 @@ class PageSmartLinkField(forms.CharField):
def widget_attrs(self, widget):
attrs = super(PageSmartLinkField, self).widget_attrs(widget)
attrs.update({'placeholder_text': six.text_type(self.placeholder_text)})
attrs.update({'placeholder_text': self.placeholder_text})
return attrs
+80 -2
View File
@@ -1,11 +1,89 @@
# -*- coding: utf-8 -*-
from collections import defaultdict
try:
from collections import OrderedDict
except ImportError:
from django.utils.datastructures import SortedDict as OrderedDict
from django.contrib.sites.models import Site
from django.db.models.signals import post_save, post_delete
from django.utils.html import escape
from django.utils.safestring import mark_safe
from cms.cache.choices import clean_site_choices_cache, clean_page_choices_cache
from cms.cache.choices import (
clean_site_choices_cache, clean_page_choices_cache,
_site_cache_key, _page_cache_key)
from cms.exceptions import LanguageError
from cms.models import Page, Title
from cms.utils import i18n
def update_site_and_page_choices(lang=None):
lang = lang or i18n.get_current_language()
SITE_CHOICES_KEY = _site_cache_key(lang)
PAGE_CHOICES_KEY = _page_cache_key(lang)
title_queryset = (Title.objects.drafts()
.select_related('page', 'page__site')
.order_by('page__path'))
pages = defaultdict(OrderedDict)
sites = {}
for title in title_queryset:
page = pages[title.page.site.pk].get(title.page.pk, {})
page[title.language] = title
pages[title.page.site.pk][title.page.pk] = page
sites[title.page.site.pk] = title.page.site.name
site_choices = []
page_choices = [('', '----')]
try:
fallbacks = i18n.get_fallback_languages(lang)
except LanguageError:
fallbacks = []
language_order = [lang] + fallbacks
for sitepk, sitename in sites.items():
site_choices.append((sitepk, sitename))
site_page_choices = []
for titles in pages[sitepk].values():
title = None
for language in language_order:
title = titles.get(language)
if title:
break
if not title:
continue
indent = u"&nbsp;&nbsp;" * (title.page.depth - 1)
page_title = mark_safe(u"%s%s" % (indent, escape(title.title)))
site_page_choices.append((title.page.pk, page_title))
page_choices.append((sitename, site_page_choices))
from django.core.cache import cache
# We set it to 1 day here because we actively invalidate this cache.
cache.set(SITE_CHOICES_KEY, site_choices, 86400)
cache.set(PAGE_CHOICES_KEY, page_choices, 86400)
return site_choices, page_choices
def get_site_choices(lang=None):
from django.core.cache import cache
lang = lang or i18n.get_current_language()
site_choices = cache.get(_site_cache_key(lang))
if site_choices is None:
site_choices, page_choices = update_site_and_page_choices(lang)
return site_choices
def get_page_choices(lang=None):
from django.core.cache import cache
lang = lang or i18n.get_current_language()
page_choices = cache.get(_page_cache_key(lang))
if page_choices is None:
site_choices, page_choices = update_site_and_page_choices(lang)
return page_choices
from cms.models import Page
post_save.connect(clean_page_choices_cache, sender=Page)
post_save.connect(clean_site_choices_cache, sender=Site)
+9 -6
View File
@@ -8,10 +8,11 @@ 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.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.cache.choices import get_site_choices, get_page_choices
from cms.forms.utils import get_site_choices, get_page_choices
from cms.models import Page, PageUser
from cms.templatetags.cms_admin import CMS_ADMIN_ICON_BASE
@@ -102,9 +103,11 @@ class PageSelectWidget(MultiWidget):
var handlePageChange = function(page_id) {
if (page_id) {
$("#id_%(name)s_2 option").attr('selected', false);
$("#id_%(name)s_2 option[value=" + page_id + "]").attr('selected', true);
$("#id_%(name)s_2 option[value='" + page_id + "']").attr('selected', true);
} else {
$("#id_%(name)s_2 option[value=]").attr('selected', true);
if ($("#id_%(name)s_2").length) {
$("#id_%(name)s_2 option[value='']").attr('selected', true);
}
};
};
$("#id_%(name)s_0").change(function(){
@@ -250,7 +253,7 @@ class AppHookSelect(Select):
selected_html = ''
if option_value in self.app_namespaces:
data_html = mark_safe(' data-namespace="%s"' % self.app_namespaces[option_value])
data_html = mark_safe(' data-namespace="%s"' % escape(self.app_namespaces[option_value]))
else:
data_html = ''
@@ -289,11 +292,11 @@ class ApplicationConfigSelect(Select):
super(ApplicationConfigSelect, self).__init__(attrs, choices)
def render(self, name, value, attrs=None, choices=()):
output = [super(ApplicationConfigSelect, self).render(name, value, attrs, choices)]
output = list(super(ApplicationConfigSelect, self).render(name, value, attrs, choices))
output.append('<script>\n')
output.append('var apphooks_configuration = {\n')
for application, cms_app in self.app_configs.items():
output.append("'%s': [%s]," % (application, ",".join(["['%s', '%s']" % (config.pk, force_text(config)) for config in cms_app.get_configs()])))
output.append("'%s': [%s]," % (application, ",".join(["['%s', '%s']" % (config.pk, escapejs(escape(config))) for config in cms_app.get_configs()]))) # noqa
output.append('\n};\n')
output.append('var apphooks_configuration_url = {\n')
for application, cms_app in self.app_configs.items():
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+6 -5
View File
@@ -7,16 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Afrikaans (http://www.transifex.com/projects/p/django-cms/language/af/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+8 -6
View File
@@ -3,21 +3,23 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Abdelkader Maarouf <dep2g2@gmail.com>, 2015
# Ahmed H <info@draco-003.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/django-cms/language/ar/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr "هل أنت متأكد من الإنتقال الى مكان آخر دون حفظ الصفحة أولاً؟"
msgstr "هل أنت متأكد من الإنتقال الى jfويب أخر دون حفظ الصفحة أولاً؟"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+7 -6
View File
@@ -7,16 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Belarusian (http://www.transifex.com/projects/p/django-cms/language/be/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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<10 || n%100>=20) ? 1 : 2);\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"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+6 -5
View File
@@ -10,16 +10,17 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/django-cms/language/bg/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr "Наистина ли искате да промените раздели без първо да запазите страницата?"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+6 -5
View File
@@ -8,16 +8,17 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Bengali (http://www.transifex.com/projects/p/django-cms/language/bn/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
"Content-Transfer-Encoding: 8bit\n"
"Language: bn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr "আপনি কি নিশ্চিত যে, আপনি পৃষ্ঠাটি সংরক্ষণ না করেই ট্যাব পরিবর্তন করতে চান?"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+8 -7
View File
@@ -3,21 +3,22 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Roger Pons <rogerpons@gmail.com>, 2012
# Roger Pons <rogerpons@gmail.com>, 2012,2015
msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Catalan (http://www.transifex.com/projects/p/django-cms/language/ca/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr "Estàs segur que voleu canviar de secció sense guardar la primera pàgina?"
msgstr "Esteu segur que voleu canviar de secció sense guardar la primera pàgina?"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+6 -5
View File
@@ -7,16 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Chinese (Mandarin) (http://www.transifex.com/projects/p/django-cms/language/cmn/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2016-01-19 20:20+0000\n"
"Last-Translator: Martin Koistinen <mkoistinen@gmail.com>\n"
"Language-Team: Chinese (Mandarin) (http://www.transifex.com/divio/django-cms/language/cmn/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cmn\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+26
View File
@@ -0,0 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Jakub Dorňák <jdornak@redhat.com>, 2013
# xlu <xlu@seznam.cz>, 2013
# xlu <xlu@seznam.cz>, 2013
msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
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?"
File diff suppressed because it is too large Load Diff
+23
View File
@@ -0,0 +1,23 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2010-11-30 06:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/divio/django-cms/language/cs_CZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs_CZ\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+6 -5
View File
@@ -7,16 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Welsh (http://www.transifex.com/projects/p/django-cms/language/cy/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+7 -5
View File
@@ -5,20 +5,22 @@
# Translators:
# Kristian Øllegaard <kristian@oellegaard.com>, 2011
# Kristian Øllegaard <kristian@oellegaard.com>, 2011
# Kristian Øllegaard <kristian@oellegaard.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/django-cms/language/da/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
"Content-Transfer-Encoding: 8bit\n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr "Er du sikker på du vil ændre tabs uden at gemme siden først?"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+7 -5
View File
@@ -5,20 +5,22 @@
# Translators:
# Jonas Obrist <me@ojii.ch>, 2011
# Michael P. Jung <michael.jung@terreon.de>, 2013
# Stefan T. Oertel <me@schneck.cc>, 2015
msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: German (http://www.transifex.com/projects/p/django-cms/language/de/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\n"
"Language-Team: German (http://www.transifex.com/divio/django-cms/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr "Sind Sie sicher Sie wollen die Sprache ändern ohne vorher zu speichern?"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+6 -5
View File
@@ -8,16 +8,17 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/django-cms/language/el/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr "Είσαι σίγουρος πως θες να αλλάξεις καρτέλες χωρίς να έχεις αποθηκεύσει πρώτα τη σελίδα?"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+11 -9
View File
@@ -1,22 +1,24 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
# Translators:
# Jonas Obrist <ojiidotch@gmail.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-04-15 19:20+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"POT-Creation-Date: 2016-04-26 12:22-0400\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/digi604/django-cms/language/"
"en/)\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/modules/cms.changeform.js:60
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
msgstr "Are you sure you want to change tabs without saving the page first?"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2010-11-30 06:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_GB\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2010-11-30 06:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Hong Kong) (http://www.transifex.com/divio/django-cms/language/en_HK/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_HK\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2010-11-30 06:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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"
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+6 -5
View File
@@ -7,16 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2010-11-30 06:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Esperanto (http://www.transifex.com/projects/p/django-cms/language/eo/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
"Content-Transfer-Encoding: 8bit\n"
"Language: eo\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr ""
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+7 -5
View File
@@ -4,20 +4,22 @@
#
# Translators:
# Edwin Caldon <edycop@gmail.com>, 2011
# Ernesto Avilés Vázquez <whippiii@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/django-cms/language/es/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr "¿Estás seguro de que desea cambiar de pestañas sin guardar antes la página?"
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+6 -5
View File
@@ -8,16 +8,17 @@ msgid ""
msgstr ""
"Project-Id-Version: django-cms\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-12 21:31+0100\n"
"PO-Revision-Date: 2013-12-12 08:53+0000\n"
"Last-Translator: Patrick Lauber <patrick.lauber@divio.ch>\n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/django-cms/language/es_AR/)\n"
"POT-Creation-Date: 2015-11-05 10:16-0500\n"
"PO-Revision-Date: 2015-10-31 12:28+0000\n"
"Last-Translator: yakky <i.spalletti@nephila.it>\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"
"Content-Transfer-Encoding: 8bit\n"
"Language: es_AR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/cms/js/modules/cms.changeform.js:60
#: static/cms/js/dist/bundle.admin.changeform.min.js:1
#: static/cms/js/modules/cms.changeform.js:75
msgid "Are you sure you want to change tabs without saving the page first?"
msgstr "¿Estás seguro de que desea cambiar de pestañas sin guardar antes la página?"
Binary file not shown.

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