From e63b10b4d568ce9ea0677058fe2d3969595bdce1 Mon Sep 17 00:00:00 2001 From: gatwal Date: Fri, 3 Jul 2020 11:19:26 +0100 Subject: [PATCH 1/9] migrate to codecov --- .circleci/config.yml | 2 +- CHANGELOG.md | 3 + README.md | 6 +- requirements.txt | 86 ++++++++++++++--------------- requirements_test.in | 1 + requirements_test.txt | 125 +++++++++++++++++++++--------------------- 6 files changed, 114 insertions(+), 109 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8ce32884..a2a619d5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,7 +28,7 @@ jobs: mkdir test-reports TESTFILES=$(circleci tests glob "tests/**/*.py") ENV_FILES=test,dev pytest ${TESTFILES} --cov=. --cov-config=.coveragerc --cov-report html --cov-report term --junitxml=test-reports/junit.xml - COVERALLS_PARALLEL=true coveralls + codecov - run: mkdir -p workspace - run: echo "export TARGET_CIRCLE_BUILD_NUM=$CIRCLE_BUILD_NUM" >> workspace/new-env-vars - store_test_results: diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d9ad14b..4cc3c1bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,10 @@ # Changelog ## Pre-release + ### Implemented enhancements +- no-ticket - Migrate to codecov remove coveralls + ### Fixed bugs diff --git a/README.md b/README.md index b998ddf5..8a7fda48 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # directory-cms [![circle-ci-image]][circle-ci] -[![coverage-image]][coverage] +[![codecov-image]][codecov] [![gitflow-image]][gitflow] [![calver-image]][calver] @@ -124,8 +124,8 @@ https://github.com/uktrade?q=great [circle-ci-image]: https://circleci.com/gh/uktrade/directory-cms/tree/develop.svg?style=svg [circle-ci]: https://circleci.com/gh/uktrade/directory-cms/tree/develop -[coverage-image]: https://coveralls.io/repos/github/uktrade/directory-cms/badge.svg -[coverage]: https://coveralls.io/github/uktrade/directory-cms +[codecov-image]: https://codecov.io/gh/uktrade/directory-cms/branch/master/graph/badge.svg +[codecov]: https://codecov.io/gh/uktrade/directory-cms [gitflow-image]: https://img.shields.io/badge/Branching%20strategy-gitflow-5FBB1C.svg [gitflow]: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow diff --git a/requirements.txt b/requirements.txt index b0221ef9..df4466de 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,84 +8,84 @@ amqp==2.6.0 # via kombu attrs==19.3.0 # via jsonschema beautifulsoup4==4.6.0 # via directory-components, wagtail billiard==3.6.3.0 # via celery -bleach-whitelist==0.0.10 # via -r requirements.in -bleach==3.1.5 # via -r requirements.in -boto3==1.6.3 # via -r requirements.in +bleach-whitelist==0.0.10 +bleach==3.1.5 +boto3==1.6.3 botocore==1.9.23 # via boto3, s3transfer -celery[redis]==4.4.5 # via -r requirements.in, django-celery-beat -certifi==2020.4.5.2 # via elastic-apm, requests, sentry-sdk +celery[redis]==4.4.6 +certifi==2020.6.20 # via elastic-apm, requests, sentry-sdk chardet==3.0.4 # via requests -directory-components==20.3.1 # via -r requirements.in -directory-constants==18.7.0 # via -r requirements.in, directory-components -directory-healthcheck==1.1.2 # via -r requirements.in -dj-database-url==0.5.0 # via -r requirements.in -django-admin-ip-restrictor==2.1.0 # via -r requirements.in -django-celery-beat==2.0.0 # via -r requirements.in -django-environ==0.4.5 # via -r requirements.in -django-filter==2.2.0 # via -r requirements.in +directory-components==20.3.1 +directory-constants==18.7.0 +directory-healthcheck==1.1.2 +dj-database-url==0.5.0 +django-admin-ip-restrictor==2.1.0 +django-celery-beat==2.0.0 +django-environ==0.4.5 +django-filter==2.2.0 django-health-check==3.8.0 # via directory-healthcheck django-ipware==2.1.0 # via django-admin-ip-restrictor django-modelcluster==5.0.2 # via wagtail django-modeltranslation==0.15 # via wagtail-modeltranslation -django-pglocks==1.0.2 # via -r requirements.in -django-redis==4.10.0 # via -r requirements.in -django-staff-sso-client==1.0.1 # via -r requirements.in +django-pglocks==1.0.2 +django-redis==4.10.0 +django-staff-sso-client==1.0.1 django-taggit==1.3.0 # via wagtail django-timezone-field==4.0 # via django-celery-beat django-treebeard==4.3.1 # via wagtail -django==2.2.13 # via -r requirements.in, directory-components, directory-constants, directory-healthcheck, django-admin-ip-restrictor, django-celery-beat, django-filter, django-modeltranslation, django-redis, django-staff-sso-client, django-storages, django-taggit, django-timezone-field, django-treebeard, sigauth, wagtail -django_storages==1.7.1 # via -r requirements.in -djangorestframework==3.9.4 # via -r requirements.in, sigauth, wagtail +django==2.2.14 +django_storages==1.7.1 +djangorestframework==3.9.4 docopt==0.6.2 # via notifications-python-client, num2words docutils==0.16 # via botocore draftjs-exporter==2.1.7 # via wagtail -elastic-apm==5.7.0 # via -r requirements.in +elastic-apm==5.8.0 future==0.18.2 # via celery, notifications-python-client -gevent==20.6.1 # via -r requirements.in +gevent==20.6.2 greenlet==0.4.16 # via gevent -gunicorn==19.5.0 # via -r requirements.in -html2text==2018.1.9 # via -r requirements.in -html5lib==1.0.1 # via wagtail +gunicorn==19.5.0 +html2text==2018.1.9 +html5lib==1.1 # via wagtail idna==2.8 # via requests -importlib-metadata==1.6.1 # via kombu +importlib-metadata==1.7.0 # via kombu jmespath==0.10.0 # via boto3, botocore jsonschema==3.0.1 # via directory-components -kombu==4.6.10 # via -r requirements.in, celery -markdown==2.6 # via -r requirements.in +kombu==4.6.11 +markdown==2.6 mohawk==0.3.4 # via sigauth monotonic==1.5 # via notifications-python-client -notifications-python-client==5.3.0 # via -r requirements.in -num2words==0.5.10 # via -r requirements.in +notifications-python-client==5.3.0 +num2words==0.5.10 oauthlib==3.1.0 # via requests-oauthlib packaging==20.4 # via bleach -pillow==6.2.2 # via -r requirements.in, wagtail -psycogreen==1.0.2 # via -r requirements.in -psycopg2==2.7.3.2 # via -r requirements.in -pycountry==19.8.18 # via -r requirements.in +pillow==6.2.2 +psycogreen==1.0.2 +psycopg2==2.7.3.2 +pycountry==19.8.18 pyjwt==1.7.1 # via notifications-python-client pyparsing==2.4.7 # via packaging pyrsistent==0.16.0 # via jsonschema python-crontab==2.5.1 # via django-celery-beat python-dateutil==2.6.1 # via botocore, python-crontab -pytube==9.2.2 # via -r requirements.in +pytube==9.2.2 pytz==2020.1 # via celery, django, django-modelcluster, django-timezone-field, wagtail redis==3.5.3 # via celery, django-redis requests-oauthlib==1.3.0 # via django-staff-sso-client -requests==2.21.0 # via -r requirements.in, notifications-python-client, requests-oauthlib, wagtail +requests==2.21.0 s3transfer==0.1.13 # via boto3 -sentry-sdk==0.13.4 # via -r requirements.in -sigauth==4.1.0 # via -r requirements.in +sentry-sdk==0.13.4 +sigauth==4.1.0 six==1.15.0 # via bleach, django-modeltranslation, html5lib, jsonschema, mohawk, packaging, pyrsistent, python-dateutil, w3lib, wagtail sqlparse==0.3.1 # via django unidecode==1.1.1 # via wagtail -urllib3==1.24.3 # via -r requirements.in, elastic-apm, requests, sentry-sdk +urllib3==1.24.3 vine==1.3.0 # via amqp, celery -w3lib==1.22.0 # via -r requirements.in -wagtail-modeltranslation==0.10.13 # via -r requirements.in -wagtail==2.7.3 # via -r requirements.in, wagtail-modeltranslation, wagtailmedia -wagtailmedia==0.5.0 # via -r requirements.in +w3lib==1.22.0 +wagtail-modeltranslation==0.10.13 +wagtail==2.7.3 +wagtailmedia==0.5.0 webencodings==0.5.1 # via bleach, html5lib -whitenoise==4.1.2 # via -r requirements.in +whitenoise==4.1.2 willow==1.3 # via wagtail zipp==3.1.0 # via importlib-metadata zope.event==4.4 # via gevent diff --git a/requirements_test.in b/requirements_test.in index 1fb1263a..13645e9a 100644 --- a/requirements_test.in +++ b/requirements_test.in @@ -13,3 +13,4 @@ beautifulsoup4 wagtail-factories django-debug-toolbar pip-tools +codecov diff --git a/requirements_test.txt b/requirements_test.txt index 3b06e3a5..20c11dd1 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -6,110 +6,111 @@ # amqp==2.6.0 # via kombu attrs==19.3.0 # via jsonschema, pytest -beautifulsoup4==4.6.0 # via -r requirements_test.in, directory-components, wagtail +beautifulsoup4==4.6.0 billiard==3.6.3.0 # via celery -bleach-whitelist==0.0.10 # via -r requirements.in -bleach==3.1.5 # via -r requirements.in -boto3==1.6.3 # via -r requirements.in +bleach-whitelist==0.0.10 +bleach==3.1.5 +boto3==1.6.3 botocore==1.9.23 # via boto3, s3transfer -celery[redis]==4.4.5 # via -r requirements.in, django-celery-beat -certifi==2020.4.5.2 # via elastic-apm, requests, sentry-sdk +celery[redis]==4.4.6 +certifi==2020.6.20 # via elastic-apm, requests, sentry-sdk chardet==3.0.4 # via requests click==7.1.2 # via pip-tools -coverage==5.1 # via coveralls, pytest-cov -coveralls==2.0.0 # via -r requirements_test.in -directory-components==20.3.1 # via -r requirements.in -directory-constants==18.7.0 # via -r requirements.in, directory-components -directory-healthcheck==1.1.2 # via -r requirements.in -dj-database-url==0.5.0 # via -r requirements.in -django-admin-ip-restrictor==2.1.0 # via -r requirements.in -django-celery-beat==2.0.0 # via -r requirements.in -django-debug-toolbar==2.2 # via -r requirements_test.in -django-environ==0.4.5 # via -r requirements.in -django-filter==2.2.0 # via -r requirements.in +codecov==2.1.7 +coverage==5.1 # via codecov, coveralls, pytest-cov +coveralls==2.0.0 +directory-components==20.3.1 +directory-constants==18.7.0 +directory-healthcheck==1.1.2 +dj-database-url==0.5.0 +django-admin-ip-restrictor==2.1.0 +django-celery-beat==2.0.0 +django-debug-toolbar==2.2 +django-environ==0.4.5 +django-filter==2.2.0 django-health-check==3.8.0 # via directory-healthcheck django-ipware==2.1.0 # via django-admin-ip-restrictor django-modelcluster==5.0.2 # via wagtail django-modeltranslation==0.15 # via wagtail-modeltranslation -django-pglocks==1.0.2 # via -r requirements.in -django-redis==4.10.0 # via -r requirements.in -django-staff-sso-client==1.0.1 # via -r requirements.in +django-pglocks==1.0.2 +django-redis==4.10.0 +django-staff-sso-client==1.0.1 django-taggit==1.3.0 # via wagtail django-timezone-field==4.0 # via django-celery-beat django-treebeard==4.3.1 # via wagtail -django==2.2.13 # via -r requirements.in, directory-components, directory-constants, directory-healthcheck, django-admin-ip-restrictor, django-celery-beat, django-debug-toolbar, django-filter, django-modeltranslation, django-redis, django-staff-sso-client, django-storages, django-taggit, django-timezone-field, django-treebeard, sigauth, wagtail -django_storages==1.7.1 # via -r requirements.in -djangorestframework==3.9.4 # via -r requirements.in, sigauth, wagtail +django==2.2.14 +django_storages==1.7.1 +djangorestframework==3.9.4 docopt==0.6.2 # via coveralls, notifications-python-client, num2words docutils==0.16 # via botocore draftjs-exporter==2.1.7 # via wagtail -elastic-apm==5.7.0 # via -r requirements.in -factory-boy==2.12.0 # via -r requirements_test.in, wagtail-factories -faker==4.1.0 # via factory-boy -flake8==3.8.3 # via -r requirements_test.in -freezegun==0.3.14 # via -r requirements_test.in +elastic-apm==5.8.0 +factory-boy==2.12.0 +faker==4.1.1 # via factory-boy +flake8==3.8.3 +freezegun==0.3.14 future==0.18.2 # via celery, notifications-python-client -gevent==20.6.1 # via -r requirements.in +gevent==20.6.2 greenlet==0.4.16 # via gevent -gunicorn==19.5.0 # via -r requirements.in -html2text==2018.1.9 # via -r requirements.in -html5lib==1.0.1 # via wagtail +gunicorn==19.5.0 +html2text==2018.1.9 +html5lib==1.1 # via wagtail idna==2.8 # via requests -importlib-metadata==1.6.1 # via flake8, kombu, pluggy, pytest +importlib-metadata==1.7.0 # via flake8, kombu, pluggy, pytest jmespath==0.10.0 # via boto3, botocore jsonschema==3.0.1 # via directory-components -kombu==4.6.10 # via -r requirements.in, celery -markdown==2.6 # via -r requirements.in +kombu==4.6.11 +markdown==2.6 mccabe==0.6.1 # via flake8 mohawk==0.3.4 # via sigauth monotonic==1.5 # via notifications-python-client -more-itertools==8.3.0 # via pytest -notifications-python-client==5.3.0 # via -r requirements.in -num2words==0.5.10 # via -r requirements.in +more-itertools==8.4.0 # via pytest +notifications-python-client==5.3.0 +num2words==0.5.10 oauthlib==3.1.0 # via requests-oauthlib packaging==20.4 # via bleach, pytest, pytest-sugar -pillow==6.2.2 # via -r requirements.in, wagtail -pip-tools==5.2.1 # via -r requirements_test.in +pillow==6.2.2 +pip-tools==5.2.1 pluggy==0.13.1 # via pytest -psycogreen==1.0.2 # via -r requirements.in -psycopg2==2.7.3.2 # via -r requirements.in -py==1.8.1 # via pytest +psycogreen==1.0.2 +psycopg2==2.7.3.2 +py==1.9.0 # via pytest pycodestyle==2.6.0 # via flake8 -pycountry==19.8.18 # via -r requirements.in +pycountry==19.8.18 pyflakes==2.2.0 # via flake8 pyjwt==1.7.1 # via notifications-python-client pyparsing==2.4.7 # via packaging pyrsistent==0.16.0 # via jsonschema -pytest-cov==2.9.0 # via -r requirements_test.in -pytest-django==3.9.0 # via -r requirements_test.in -pytest-sugar==0.9.3 # via -r requirements_test.in -pytest==5.4.3 # via -r requirements_test.in, pytest-cov, pytest-django, pytest-sugar +pytest-cov==2.10.0 +pytest-django==3.9.0 +pytest-sugar==0.9.3 +pytest==5.4.3 python-crontab==2.5.1 # via django-celery-beat python-dateutil==2.6.1 # via botocore, faker, freezegun, python-crontab -pytube==9.2.2 # via -r requirements.in +pytube==9.2.2 pytz==2020.1 # via celery, django, django-modelcluster, django-timezone-field, wagtail redis==3.5.3 # via celery, django-redis -requests-mock==1.8.0 # via -r requirements_test.in +requests-mock==1.8.0 requests-oauthlib==1.3.0 # via django-staff-sso-client -requests==2.21.0 # via -r requirements.in, coveralls, notifications-python-client, requests-mock, requests-oauthlib, wagtail +requests==2.21.0 s3transfer==0.1.13 # via boto3 -sentry-sdk==0.13.4 # via -r requirements.in -sigauth==4.1.0 # via -r requirements.in -six==1.15.0 # via bleach, django-modeltranslation, freezegun, html5lib, jsonschema, mohawk, packaging, pip-tools, python-dateutil, requests-mock, w3lib, wagtail +sentry-sdk==0.13.4 +sigauth==4.1.0 +six==1.15.0 # via bleach, django-modeltranslation, freezegun, html5lib, jsonschema, mohawk, packaging, pip-tools, pyrsistent, python-dateutil, requests-mock, w3lib, wagtail sqlparse==0.3.1 # via django, django-debug-toolbar termcolor==1.1.0 # via pytest-sugar text-unidecode==1.3 # via faker unidecode==1.1.1 # via wagtail -urllib3==1.24.3 # via -r requirements.in, elastic-apm, requests, sentry-sdk +urllib3==1.24.3 vine==1.3.0 # via amqp, celery -w3lib==1.22.0 # via -r requirements.in -wagtail-factories==2.0.0 # via -r requirements_test.in -wagtail-modeltranslation==0.10.13 # via -r requirements.in -wagtail==2.7.3 # via -r requirements.in, wagtail-factories, wagtail-modeltranslation, wagtailmedia -wagtailmedia==0.5.0 # via -r requirements.in -wcwidth==0.2.4 # via pytest +w3lib==1.22.0 +wagtail-factories==2.0.0 +wagtail-modeltranslation==0.10.13 +wagtail==2.7.3 +wagtailmedia==0.5.0 +wcwidth==0.2.5 # via pytest webencodings==0.5.1 # via bleach, html5lib -whitenoise==4.1.2 # via -r requirements.in +whitenoise==4.1.2 willow==1.3 # via wagtail zipp==3.1.0 # via importlib-metadata zope.event==4.4 # via gevent From 8776ce09a91c04a06002b07fcb9b6c98496c216b Mon Sep 17 00:00:00 2001 From: gatwal Date: Fri, 3 Jul 2020 11:44:22 +0100 Subject: [PATCH 2/9] migrate to codecov --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4cc3c1bd..bd9734b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ## Pre-release ### Implemented enhancements -- no-ticket - Migrate to codecov remove coveralls +- no-ticket - migrate to codecov remove coveralls ### Fixed bugs From 7eea26044b54f8f980266ae933093c4f86eb4160 Mon Sep 17 00:00:00 2001 From: Bob Meredith Date: Fri, 7 Aug 2020 14:21:51 +0100 Subject: [PATCH 3/9] Hotfix_security_update_develop --- CHANGELOG.md | 2 + dependency-check-report.html | 578 +++++++++++++++++++++++++++++++++++ requirements.in | 2 +- requirements.txt | 86 +++--- requirements_test.txt | 121 ++++---- 5 files changed, 685 insertions(+), 104 deletions(-) create mode 100644 dependency-check-report.html diff --git a/CHANGELOG.md b/CHANGELOG.md index bd9734b3..31ad3d3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ ### Fixed bugs +### Hotfix +- No ticket - Update of dependencies to fix security vulnerability ## [2020.06.15](https://github.com/uktrade/directory-cms/releases/tag/2020.06.15) [Full Changelog](https://github.com/uktrade/directory-cms/compare/2020.06.12...2020.06.15) diff --git a/dependency-check-report.html b/dependency-check-report.html new file mode 100644 index 00000000..4df02d0a --- /dev/null +++ b/dependency-check-report.html @@ -0,0 +1,578 @@ + + + + + Dependency-Check Report + + + + + + + + + + +
+ +

Dependency-Check is an open source tool performing a best effort analysis of 3rd party dependencies; +false positives and false negatives may exist in the analysis performed by the tool. Use of the tool and +the reporting provided constitutes acceptance for use in an AS IS condition, and there are NO warranties, +implied or otherwise, with regard to the analysis or its use. Any use of the tool and the reporting provided +is at the user’s risk. In no event shall the copyright holder or OWASP be held liable for any damages whatsoever +arising out of or in connection with the use of this tool, the analysis performed, or the resulting report.

+

How to read the report | +Suppressing false positives | +Getting Help: github issues

+

Project: 

Scan Information (show all):
  • dependency-check version: 5.2.4
  • Report Generated On: Thu, 30 Jul 2020 10:04:11 +0100
  • Dependencies Scanned: 5 (5 unique)
  • Vulnerable Dependencies0
  • Vulnerabilities Found: 0
  • Vulnerabilities Suppressed: 0
  • ...

Summary

Display: Showing Vulnerable Dependencies (click to show all)

DependencyVulnerability IDsPackageHighest SeverityCVE CountConfidenceEvidence Count
request_access.js 00
refresh_codemirror.js 00
sum_required_localised_fields.js 00
select2.js 00
select2.min.js 00

Dependencies

request_access.js

File Path: /home/robert/dev/great/directory-cms/users/static/wagtailadmin/sso/js/request_access.js
MD5: c4b170ace2737198abb12ce4ec8f926e
SHA1: e2bba0a275cdcff7b0c5effa1aec164434de92e3
SHA256:4b5b0bef7e23d08ddfe6b6b0591ed9623a3d91be26666b9dca8e5fd7f31bc50b

Identifiers

  • None

refresh_codemirror.js

File Path: /home/robert/dev/great/directory-cms/core/static/core/js/refresh_codemirror.js
MD5: be3caf20250c34dc7fad8a830bfa3ee1
SHA1: 5553ea02a458db8b3652dbc149b50913e6755e3c
SHA256:b6eae444176c050d4c63d44d4775f82f23e6a55d671ec2bdef4cbf6475aeb591

Identifiers

  • None

sum_required_localised_fields.js

File Path: /home/robert/dev/great/directory-cms/core/static/core/js/sum_required_localised_fields.js
MD5: 59af8fac7150e20a7400594197ae12cd
SHA1: 6d69c45f8bf8437a66e95dbb5f2faa40e274ca3c
SHA256:90d0d13d588ace17d4d399cd142da547656b6241531478cd1f70a3f9495c4da4

Identifiers

  • None

select2.js

File Path: /home/robert/dev/great/directory-cms/core/static/core/js/select2/select2.js
MD5: e66208e306a3e3b571283e2838ad12a6
SHA1: b2a7dd8bb6576cde01860c5069aece07c2d512b9
SHA256:5122fa0060a73698bc07e530d3e93a092fedcda3bfaeec9a7feff841521fb9ff

Identifiers

  • None

select2.min.js

File Path: /home/robert/dev/great/directory-cms/core/static/core/js/select2/select2.min.js
MD5: 090dfbc88a4a0693b8de1dab9f9aacb2
SHA1: c01a5b17ba1f8ffb55d4f6c2776862c861812924
SHA256:1cd91b9dd3e258ce4421181a85cde15a2b860fa0adc0580c7c4534a37cde69ba

Identifiers

  • None


This report contains data retrieved from the National Vulnerability Database.
This report may contain data retrieved from the NPM Public Advisories.
This report may contain data retrieved from RetireJS.
This report may contain data retrieved from the Sonatype OSS Index.
\ No newline at end of file diff --git a/requirements.in b/requirements.in index 47436554..cbd36df5 100644 --- a/requirements.in +++ b/requirements.in @@ -32,7 +32,7 @@ urllib3>=1.24.2<2.0.0 w3lib>=1.19.0<2.0.0 django-admin-ip-restrictor==2.1.0 notifications-python-client==5.3.* -pillow>=6.* # for security fix. check compatibility on next wagtail upgrade +pillow>=7.1.0 num2words==0.5.10 pycountry==19.8.18 elastic-apm>=5.5.2,<6.0.0 diff --git a/requirements.txt b/requirements.txt index df4466de..eeffc88b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,88 +4,88 @@ # # pip-compile requirements.in # -amqp==2.6.0 # via kombu +amqp==2.6.1 # via kombu attrs==19.3.0 # via jsonschema beautifulsoup4==4.6.0 # via directory-components, wagtail billiard==3.6.3.0 # via celery -bleach-whitelist==0.0.10 -bleach==3.1.5 -boto3==1.6.3 +bleach-whitelist==0.0.11 # via -r requirements.in +bleach==3.1.5 # via -r requirements.in +boto3==1.6.3 # via -r requirements.in botocore==1.9.23 # via boto3, s3transfer -celery[redis]==4.4.6 +celery[redis]==4.4.7 # via -r requirements.in, django-celery-beat certifi==2020.6.20 # via elastic-apm, requests, sentry-sdk chardet==3.0.4 # via requests -directory-components==20.3.1 -directory-constants==18.7.0 -directory-healthcheck==1.1.2 -dj-database-url==0.5.0 -django-admin-ip-restrictor==2.1.0 -django-celery-beat==2.0.0 -django-environ==0.4.5 -django-filter==2.2.0 +directory-components==20.3.1 # via -r requirements.in +directory-constants==18.7.0 # via -r requirements.in, directory-components +directory-healthcheck==1.1.2 # via -r requirements.in +dj-database-url==0.5.0 # via -r requirements.in +django-admin-ip-restrictor==2.1.0 # via -r requirements.in +django-celery-beat==2.0.0 # via -r requirements.in +django-environ==0.4.5 # via -r requirements.in +django-filter==2.2.0 # via -r requirements.in django-health-check==3.8.0 # via directory-healthcheck django-ipware==2.1.0 # via django-admin-ip-restrictor django-modelcluster==5.0.2 # via wagtail -django-modeltranslation==0.15 # via wagtail-modeltranslation -django-pglocks==1.0.2 -django-redis==4.10.0 -django-staff-sso-client==1.0.1 +django-modeltranslation==0.15.1 # via wagtail-modeltranslation +django-pglocks==1.0.2 # via -r requirements.in +django-redis==4.10.0 # via -r requirements.in +django-staff-sso-client==1.0.1 # via -r requirements.in django-taggit==1.3.0 # via wagtail django-timezone-field==4.0 # via django-celery-beat django-treebeard==4.3.1 # via wagtail -django==2.2.14 -django_storages==1.7.1 -djangorestframework==3.9.4 +django==2.2.15 # via -r requirements.in, directory-components, directory-constants, directory-healthcheck, django-admin-ip-restrictor, django-celery-beat, django-filter, django-modeltranslation, django-redis, django-staff-sso-client, django-storages, django-taggit, django-timezone-field, django-treebeard, sigauth, wagtail +django_storages==1.7.1 # via -r requirements.in +djangorestframework==3.9.4 # via -r requirements.in, sigauth, wagtail docopt==0.6.2 # via notifications-python-client, num2words docutils==0.16 # via botocore draftjs-exporter==2.1.7 # via wagtail -elastic-apm==5.8.0 -future==0.18.2 # via celery, notifications-python-client -gevent==20.6.2 +elastic-apm==5.8.1 # via -r requirements.in +future==0.18.2 # via notifications-python-client +gevent==20.6.2 # via -r requirements.in greenlet==0.4.16 # via gevent -gunicorn==19.5.0 -html2text==2018.1.9 +gunicorn==19.5.0 # via -r requirements.in +html2text==2018.1.9 # via -r requirements.in html5lib==1.1 # via wagtail idna==2.8 # via requests importlib-metadata==1.7.0 # via kombu jmespath==0.10.0 # via boto3, botocore jsonschema==3.0.1 # via directory-components -kombu==4.6.11 -markdown==2.6 +kombu==4.6.11 # via -r requirements.in, celery +markdown==2.6 # via -r requirements.in mohawk==0.3.4 # via sigauth monotonic==1.5 # via notifications-python-client -notifications-python-client==5.3.0 -num2words==0.5.10 +notifications-python-client==5.3.0 # via -r requirements.in +num2words==0.5.10 # via -r requirements.in oauthlib==3.1.0 # via requests-oauthlib packaging==20.4 # via bleach -pillow==6.2.2 -psycogreen==1.0.2 -psycopg2==2.7.3.2 -pycountry==19.8.18 +pillow==7.2.0 # via -r requirements.in, wagtail +psycogreen==1.0.2 # via -r requirements.in +psycopg2==2.7.3.2 # via -r requirements.in +pycountry==19.8.18 # via -r requirements.in pyjwt==1.7.1 # via notifications-python-client pyparsing==2.4.7 # via packaging pyrsistent==0.16.0 # via jsonschema python-crontab==2.5.1 # via django-celery-beat python-dateutil==2.6.1 # via botocore, python-crontab -pytube==9.2.2 +pytube==9.2.2 # via -r requirements.in pytz==2020.1 # via celery, django, django-modelcluster, django-timezone-field, wagtail redis==3.5.3 # via celery, django-redis requests-oauthlib==1.3.0 # via django-staff-sso-client -requests==2.21.0 +requests==2.21.0 # via -r requirements.in, notifications-python-client, requests-oauthlib, wagtail s3transfer==0.1.13 # via boto3 -sentry-sdk==0.13.4 -sigauth==4.1.0 +sentry-sdk==0.13.4 # via -r requirements.in +sigauth==4.1.0 # via -r requirements.in six==1.15.0 # via bleach, django-modeltranslation, html5lib, jsonschema, mohawk, packaging, pyrsistent, python-dateutil, w3lib, wagtail sqlparse==0.3.1 # via django unidecode==1.1.1 # via wagtail -urllib3==1.24.3 +urllib3==1.24.3 # via -r requirements.in, elastic-apm, requests, sentry-sdk vine==1.3.0 # via amqp, celery -w3lib==1.22.0 -wagtail-modeltranslation==0.10.13 -wagtail==2.7.3 -wagtailmedia==0.5.0 +w3lib==1.22.0 # via -r requirements.in +wagtail-modeltranslation==0.10.13 # via -r requirements.in +wagtail==2.7.4 # via -r requirements.in, wagtail-modeltranslation, wagtailmedia +wagtailmedia==0.5.0 # via -r requirements.in webencodings==0.5.1 # via bleach, html5lib -whitenoise==4.1.2 +whitenoise==4.1.2 # via -r requirements.in willow==1.3 # via wagtail zipp==3.1.0 # via importlib-metadata zope.event==4.4 # via gevent diff --git a/requirements_test.txt b/requirements_test.txt index 20c11dd1..3aa843bb 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -4,113 +4,114 @@ # # pip-compile requirements_test.in # -amqp==2.6.0 # via kombu +amqp==2.6.1 # via kombu attrs==19.3.0 # via jsonschema, pytest -beautifulsoup4==4.6.0 +beautifulsoup4==4.6.0 # via -r requirements_test.in, directory-components, wagtail billiard==3.6.3.0 # via celery -bleach-whitelist==0.0.10 -bleach==3.1.5 -boto3==1.6.3 +bleach-whitelist==0.0.11 # via -r requirements.in +bleach==3.1.5 # via -r requirements.in +boto3==1.6.3 # via -r requirements.in botocore==1.9.23 # via boto3, s3transfer -celery[redis]==4.4.6 +celery[redis]==4.4.7 # via -r requirements.in, django-celery-beat certifi==2020.6.20 # via elastic-apm, requests, sentry-sdk chardet==3.0.4 # via requests click==7.1.2 # via pip-tools -codecov==2.1.7 -coverage==5.1 # via codecov, coveralls, pytest-cov -coveralls==2.0.0 -directory-components==20.3.1 -directory-constants==18.7.0 -directory-healthcheck==1.1.2 -dj-database-url==0.5.0 -django-admin-ip-restrictor==2.1.0 -django-celery-beat==2.0.0 -django-debug-toolbar==2.2 -django-environ==0.4.5 -django-filter==2.2.0 +codecov==2.1.8 # via -r requirements_test.in +coverage==5.2.1 # via codecov, coveralls, pytest-cov +coveralls==2.1.1 # via -r requirements_test.in +directory-components==20.3.1 # via -r requirements.in +directory-constants==18.7.0 # via -r requirements.in, directory-components +directory-healthcheck==1.1.2 # via -r requirements.in +dj-database-url==0.5.0 # via -r requirements.in +django-admin-ip-restrictor==2.1.0 # via -r requirements.in +django-celery-beat==2.0.0 # via -r requirements.in +django-debug-toolbar==2.2 # via -r requirements_test.in +django-environ==0.4.5 # via -r requirements.in +django-filter==2.2.0 # via -r requirements.in django-health-check==3.8.0 # via directory-healthcheck django-ipware==2.1.0 # via django-admin-ip-restrictor django-modelcluster==5.0.2 # via wagtail -django-modeltranslation==0.15 # via wagtail-modeltranslation -django-pglocks==1.0.2 -django-redis==4.10.0 -django-staff-sso-client==1.0.1 +django-modeltranslation==0.15.1 # via wagtail-modeltranslation +django-pglocks==1.0.2 # via -r requirements.in +django-redis==4.10.0 # via -r requirements.in +django-staff-sso-client==1.0.1 # via -r requirements.in django-taggit==1.3.0 # via wagtail django-timezone-field==4.0 # via django-celery-beat django-treebeard==4.3.1 # via wagtail -django==2.2.14 -django_storages==1.7.1 -djangorestframework==3.9.4 +django==2.2.15 # via -r requirements.in, directory-components, directory-constants, directory-healthcheck, django-admin-ip-restrictor, django-celery-beat, django-debug-toolbar, django-filter, django-modeltranslation, django-redis, django-staff-sso-client, django-storages, django-taggit, django-timezone-field, django-treebeard, sigauth, wagtail +django_storages==1.7.1 # via -r requirements.in +djangorestframework==3.9.4 # via -r requirements.in, sigauth, wagtail docopt==0.6.2 # via coveralls, notifications-python-client, num2words docutils==0.16 # via botocore draftjs-exporter==2.1.7 # via wagtail -elastic-apm==5.8.0 -factory-boy==2.12.0 +elastic-apm==5.8.1 # via -r requirements.in +factory-boy==2.12.0 # via -r requirements_test.in, wagtail-factories faker==4.1.1 # via factory-boy -flake8==3.8.3 -freezegun==0.3.14 -future==0.18.2 # via celery, notifications-python-client -gevent==20.6.2 +flake8==3.8.3 # via -r requirements_test.in +freezegun==0.3.14 # via -r requirements_test.in +future==0.18.2 # via notifications-python-client +gevent==20.6.2 # via -r requirements.in greenlet==0.4.16 # via gevent -gunicorn==19.5.0 -html2text==2018.1.9 +gunicorn==19.5.0 # via -r requirements.in +html2text==2018.1.9 # via -r requirements.in html5lib==1.1 # via wagtail idna==2.8 # via requests importlib-metadata==1.7.0 # via flake8, kombu, pluggy, pytest +iniconfig==1.0.1 # via pytest jmespath==0.10.0 # via boto3, botocore jsonschema==3.0.1 # via directory-components -kombu==4.6.11 -markdown==2.6 +kombu==4.6.11 # via -r requirements.in, celery +markdown==2.6 # via -r requirements.in mccabe==0.6.1 # via flake8 mohawk==0.3.4 # via sigauth monotonic==1.5 # via notifications-python-client more-itertools==8.4.0 # via pytest -notifications-python-client==5.3.0 -num2words==0.5.10 +notifications-python-client==5.3.0 # via -r requirements.in +num2words==0.5.10 # via -r requirements.in oauthlib==3.1.0 # via requests-oauthlib packaging==20.4 # via bleach, pytest, pytest-sugar -pillow==6.2.2 -pip-tools==5.2.1 +pillow==7.2.0 # via -r requirements.in, wagtail +pip-tools==5.3.1 # via -r requirements_test.in pluggy==0.13.1 # via pytest -psycogreen==1.0.2 -psycopg2==2.7.3.2 +psycogreen==1.0.2 # via -r requirements.in +psycopg2==2.7.3.2 # via -r requirements.in py==1.9.0 # via pytest pycodestyle==2.6.0 # via flake8 -pycountry==19.8.18 +pycountry==19.8.18 # via -r requirements.in pyflakes==2.2.0 # via flake8 pyjwt==1.7.1 # via notifications-python-client pyparsing==2.4.7 # via packaging pyrsistent==0.16.0 # via jsonschema -pytest-cov==2.10.0 -pytest-django==3.9.0 -pytest-sugar==0.9.3 -pytest==5.4.3 +pytest-cov==2.10.0 # via -r requirements_test.in +pytest-django==3.9.0 # via -r requirements_test.in +pytest-sugar==0.9.4 # via -r requirements_test.in +pytest==6.0.1 # via -r requirements_test.in, pytest-cov, pytest-django, pytest-sugar python-crontab==2.5.1 # via django-celery-beat python-dateutil==2.6.1 # via botocore, faker, freezegun, python-crontab -pytube==9.2.2 +pytube==9.2.2 # via -r requirements.in pytz==2020.1 # via celery, django, django-modelcluster, django-timezone-field, wagtail redis==3.5.3 # via celery, django-redis -requests-mock==1.8.0 +requests-mock==1.8.0 # via -r requirements_test.in requests-oauthlib==1.3.0 # via django-staff-sso-client -requests==2.21.0 +requests==2.21.0 # via -r requirements.in, codecov, coveralls, notifications-python-client, requests-mock, requests-oauthlib, wagtail s3transfer==0.1.13 # via boto3 -sentry-sdk==0.13.4 -sigauth==4.1.0 -six==1.15.0 # via bleach, django-modeltranslation, freezegun, html5lib, jsonschema, mohawk, packaging, pip-tools, pyrsistent, python-dateutil, requests-mock, w3lib, wagtail +sentry-sdk==0.13.4 # via -r requirements.in +sigauth==4.1.0 # via -r requirements.in +six==1.15.0 # via bleach, django-modeltranslation, freezegun, html5lib, jsonschema, mohawk, packaging, pip-tools, python-dateutil, requests-mock, w3lib, wagtail sqlparse==0.3.1 # via django, django-debug-toolbar termcolor==1.1.0 # via pytest-sugar text-unidecode==1.3 # via faker +toml==0.10.1 # via pytest unidecode==1.1.1 # via wagtail -urllib3==1.24.3 +urllib3==1.24.3 # via -r requirements.in, elastic-apm, requests, sentry-sdk vine==1.3.0 # via amqp, celery -w3lib==1.22.0 -wagtail-factories==2.0.0 -wagtail-modeltranslation==0.10.13 -wagtail==2.7.3 -wagtailmedia==0.5.0 -wcwidth==0.2.5 # via pytest +w3lib==1.22.0 # via -r requirements.in +wagtail-factories==2.0.0 # via -r requirements_test.in +wagtail-modeltranslation==0.10.13 # via -r requirements.in +wagtail==2.7.4 # via -r requirements.in, wagtail-factories, wagtail-modeltranslation, wagtailmedia +wagtailmedia==0.5.0 # via -r requirements.in webencodings==0.5.1 # via bleach, html5lib -whitenoise==4.1.2 +whitenoise==4.1.2 # via -r requirements.in willow==1.3 # via wagtail zipp==3.1.0 # via importlib-metadata zope.event==4.4 # via gevent From 1f8db874113ac7caaad099a7eb643f24150393bf Mon Sep 17 00:00:00 2001 From: alexandros giamas Date: Thu, 20 Aug 2020 15:27:21 +0300 Subject: [PATCH 4/9] upgrading wagtail --- .gitignore | 3 + core/views.py | 6 +- .../migrations/0034_auto_20190314_1250.py | 846 +++++++++--------- ...ryguidepage_help_market_guide_cta_title.py | 38 +- .../0036_topiclandingpage_teaser.py | 40 +- .../migrations/0005_auto_20190320_1750.py | 226 ++--- .../0012_internationalsectorpage.py | 168 ++-- .../migrations/0013_auto_20190301_1227.py | 330 +++---- .../migrations/0014_auto_20190304_1215.py | 176 ++-- .../migrations/0015_auto_20190306_1521.py | 40 +- ...tditservicesfields_aboutditservicespage.py | 442 ++++----- ...uklandingpage_aboutukwhychoosetheukpage.py | 698 +++++++-------- .../migrations/0052_auto_20190723_1147.py | 120 +-- .../migrations/0054_auto_20190724_1205.py | 574 ++++++------ requirements.in | 2 +- requirements.txt | 11 +- 16 files changed, 1863 insertions(+), 1857 deletions(-) diff --git a/.gitignore b/.gitignore index c1b0e1ba..afd3932a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,9 @@ staticfiles BrowserStackLocal node_modules/ +.env +ENV/ + # C extensions *.so diff --git a/core/views.py b/core/views.py index 9895a854..80b6f72c 100644 --- a/core/views.py +++ b/core/views.py @@ -5,7 +5,7 @@ from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from rest_framework.views import APIView -from wagtail.admin.api.endpoints import PagesAdminAPIEndpoint +from wagtail.api.v2.endpoints import PagesAPIEndpoint from wagtail.core.models import Orderable, Page, Site from django.conf import settings @@ -27,7 +27,7 @@ logger = getLogger(__name__) -class APIEndpointBase(PagesAdminAPIEndpoint): +class APIEndpointBase(PagesAPIEndpoint): """At the very deep core this is a DRF GenericViewSet, with a few wagtail layers on top. @@ -37,7 +37,7 @@ class APIEndpointBase(PagesAdminAPIEndpoint): queryset = Page.objects.all() meta_fields = [] known_query_parameters = ( - PagesAdminAPIEndpoint.known_query_parameters.union( + PagesAPIEndpoint.known_query_parameters.union( ['lang', 'draft_token', 'service_name'] ) ) diff --git a/export_readiness/migrations/0034_auto_20190314_1250.py b/export_readiness/migrations/0034_auto_20190314_1250.py index a6e65c2f..56a0d050 100644 --- a/export_readiness/migrations/0034_auto_20190314_1250.py +++ b/export_readiness/migrations/0034_auto_20190314_1250.py @@ -1,423 +1,423 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.18 on 2019-03-14 12:50 -from __future__ import unicode_literals - -import core.model_fields -import core.validators -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('wagtailimages', '0021_image_file_hash'), - ('export_readiness', '0033_auto_20190312_1557'), - ] - - operations = [ - migrations.RemoveField( - model_name='countryguidepage', - name='accordion_1_hero_image', - ), - migrations.RemoveField( - model_name='countryguidepage', - name='accordion_2_hero_image', - ), - migrations.RemoveField( - model_name='countryguidepage', - name='accordion_3_hero_image', - ), - migrations.RemoveField( - model_name='countryguidepage', - name='accordion_4_hero_image', - ), - migrations.RemoveField( - model_name='countryguidepage', - name='accordion_5_hero_image', - ), - migrations.RemoveField( - model_name='countryguidepage', - name='accordion_6_hero_image', - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_case_study_button_link', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_case_study_button_text', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_case_study_description', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_case_study_hero_image', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_case_study_title', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_cta_1_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_cta_1_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_cta_2_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_cta_2_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_cta_3_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_1_cta_3_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_case_study_button_link', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_case_study_button_text', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_case_study_description', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_case_study_hero_image', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_case_study_title', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_cta_1_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_cta_1_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_cta_2_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_cta_2_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_cta_3_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_2_cta_3_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_case_study_button_link', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_case_study_button_text', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_case_study_description', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_case_study_hero_image', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_case_study_title', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_cta_1_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_cta_1_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_cta_2_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_cta_2_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_cta_3_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_3_cta_3_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_case_study_button_link', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_case_study_button_text', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_case_study_description', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_case_study_hero_image', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_case_study_title', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_cta_1_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_cta_1_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_cta_2_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_cta_2_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_cta_3_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_4_cta_3_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_case_study_button_link', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_case_study_button_text', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_case_study_description', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_case_study_hero_image', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_case_study_title', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_cta_1_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_cta_1_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_cta_2_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_cta_2_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_cta_3_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_5_cta_3_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_case_study_button_link', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_case_study_button_text', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_case_study_description', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_case_study_hero_image', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_case_study_title', - field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_cta_1_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_cta_1_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_cta_2_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_cta_2_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_cta_3_link', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='accordion_6_cta_3_title', - field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), - ), - migrations.AddField( - model_name='countryguidepage', - name='fact_sheet_column_1_body', - field=core.model_fields.MarkdownField(blank=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='countryguidepage', - name='fact_sheet_column_1_teaser', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='countryguidepage', - name='fact_sheet_column_1_title', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='countryguidepage', - name='fact_sheet_column_2_body', - field=core.model_fields.MarkdownField(blank=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='countryguidepage', - name='fact_sheet_column_2_teaser', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='countryguidepage', - name='fact_sheet_column_2_title', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='countryguidepage', - name='fact_sheet_teaser', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='countryguidepage', - name='fact_sheet_title', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='countryguidepage', - name='help_market_guide_cta_link', - field=models.CharField(blank=True, max_length=255, verbose_name='Help CTA market guide link'), - ), - migrations.AddField( - model_name='countryguidepage', - name='help_market_guide_cta_title', - field=models.CharField(blank=True, max_length=255, verbose_name='Help CTA market guide title'), - ), - ] +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-03-14 12:50 +from __future__ import unicode_literals + +import core.model_fields +import core.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailimages', '0021_image_file_hash'), + ('export_readiness', '0033_auto_20190312_1557'), + ] + + operations = [ + migrations.RemoveField( + model_name='countryguidepage', + name='accordion_1_hero_image', + ), + migrations.RemoveField( + model_name='countryguidepage', + name='accordion_2_hero_image', + ), + migrations.RemoveField( + model_name='countryguidepage', + name='accordion_3_hero_image', + ), + migrations.RemoveField( + model_name='countryguidepage', + name='accordion_4_hero_image', + ), + migrations.RemoveField( + model_name='countryguidepage', + name='accordion_5_hero_image', + ), + migrations.RemoveField( + model_name='countryguidepage', + name='accordion_6_hero_image', + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_case_study_button_link', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_case_study_button_text', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_case_study_description', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_case_study_hero_image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_case_study_title', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_cta_1_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_cta_1_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_cta_2_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_cta_2_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_cta_3_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_1_cta_3_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_case_study_button_link', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_case_study_button_text', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_case_study_description', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_case_study_hero_image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_case_study_title', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_cta_1_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_cta_1_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_cta_2_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_cta_2_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_cta_3_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_2_cta_3_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_case_study_button_link', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_case_study_button_text', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_case_study_description', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_case_study_hero_image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_case_study_title', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_cta_1_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_cta_1_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_cta_2_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_cta_2_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_cta_3_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_3_cta_3_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_case_study_button_link', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_case_study_button_text', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_case_study_description', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_case_study_hero_image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_case_study_title', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_cta_1_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_cta_1_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_cta_2_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_cta_2_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_cta_3_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_4_cta_3_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_case_study_button_link', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_case_study_button_text', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_case_study_description', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_case_study_hero_image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_case_study_title', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_cta_1_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_cta_1_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_cta_2_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_cta_2_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_cta_3_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_5_cta_3_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_case_study_button_link', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button link'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_case_study_button_text', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study button text'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_case_study_description', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study description'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_case_study_hero_image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Case study hero'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_case_study_title', + field=models.CharField(blank=True, max_length=255, verbose_name='Case study title'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_cta_1_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_cta_1_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 1'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_cta_2_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_cta_2_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 2'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_cta_3_link', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA link 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='accordion_6_cta_3_title', + field=models.CharField(blank=True, max_length=255, verbose_name='CTA title 3'), + ), + migrations.AddField( + model_name='countryguidepage', + name='fact_sheet_column_1_body', + field=core.model_fields.MarkdownField(blank=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='countryguidepage', + name='fact_sheet_column_1_teaser', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='countryguidepage', + name='fact_sheet_column_1_title', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='countryguidepage', + name='fact_sheet_column_2_body', + field=core.model_fields.MarkdownField(blank=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='countryguidepage', + name='fact_sheet_column_2_teaser', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='countryguidepage', + name='fact_sheet_column_2_title', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='countryguidepage', + name='fact_sheet_teaser', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='countryguidepage', + name='fact_sheet_title', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='countryguidepage', + name='help_market_guide_cta_link', + field=models.CharField(blank=True, max_length=255, verbose_name='Help CTA market guide link'), + ), + migrations.AddField( + model_name='countryguidepage', + name='help_market_guide_cta_title', + field=models.CharField(blank=True, max_length=255, verbose_name='Help CTA market guide title'), + ), + ] diff --git a/export_readiness/migrations/0035_remove_countryguidepage_help_market_guide_cta_title.py b/export_readiness/migrations/0035_remove_countryguidepage_help_market_guide_cta_title.py index 3d88f374..b9d1dc21 100644 --- a/export_readiness/migrations/0035_remove_countryguidepage_help_market_guide_cta_title.py +++ b/export_readiness/migrations/0035_remove_countryguidepage_help_market_guide_cta_title.py @@ -1,19 +1,19 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.18 on 2019-03-14 16:43 -from __future__ import unicode_literals - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('export_readiness', '0034_auto_20190314_1250'), - ] - - operations = [ - migrations.RemoveField( - model_name='countryguidepage', - name='help_market_guide_cta_title', - ), - ] +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-03-14 16:43 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('export_readiness', '0034_auto_20190314_1250'), + ] + + operations = [ + migrations.RemoveField( + model_name='countryguidepage', + name='help_market_guide_cta_title', + ), + ] diff --git a/export_readiness/migrations/0036_topiclandingpage_teaser.py b/export_readiness/migrations/0036_topiclandingpage_teaser.py index fc65dc72..e94e9573 100644 --- a/export_readiness/migrations/0036_topiclandingpage_teaser.py +++ b/export_readiness/migrations/0036_topiclandingpage_teaser.py @@ -1,20 +1,20 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.18 on 2019-03-19 15:14 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('export_readiness', '0035_remove_countryguidepage_help_market_guide_cta_title'), - ] - - operations = [ - migrations.AddField( - model_name='topiclandingpage', - name='teaser', - field=models.TextField(blank=True), - ), - ] +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-03-19 15:14 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('export_readiness', '0035_remove_countryguidepage_help_market_guide_cta_title'), + ] + + operations = [ + migrations.AddField( + model_name='topiclandingpage', + name='teaser', + field=models.TextField(blank=True), + ), + ] diff --git a/great_international/migrations/0005_auto_20190320_1750.py b/great_international/migrations/0005_auto_20190320_1750.py index 3cf41a8f..8f1d7295 100644 --- a/great_international/migrations/0005_auto_20190320_1750.py +++ b/great_international/migrations/0005_auto_20190320_1750.py @@ -1,113 +1,113 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.18 on 2019-03-20 17:50 -from __future__ import unicode_literals - -import core.model_fields -import core.validators -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('great_international', '0004_internationalguidelandingpage'), - ] - - operations = [ - migrations.AlterField( - model_name='internationalsectorpage', - name='case_study_cta_page', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page', verbose_name='Case study link URL'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='case_study_cta_text', - field=models.TextField(blank=True, verbose_name='Case study link text'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='heading', - field=models.CharField(max_length=255, verbose_name='Sector name'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='heading_teaser', - field=models.TextField(blank=True, verbose_name='Introduction'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_one_body', - field=core.model_fields.MarkdownField(null=True, validators=[core.validators.slug_hyperlinks], verbose_name='3 unique selling points markdown'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_one_image', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Image for unique selling points'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_one_image_caption', - field=models.CharField(blank=True, max_length=255, verbose_name='Image caption'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_one_image_caption_company', - field=models.CharField(blank=True, max_length=255, verbose_name='Image caption attribution'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_heading', - field=models.CharField(max_length=255, verbose_name='Spotlight'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_one_body', - field=models.TextField(verbose_name='Spotlight 1 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_one_heading', - field=models.CharField(max_length=255, verbose_name='Spotlight 1 heading'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_one_icon', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Spotlight 1 icon'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_three_body', - field=models.TextField(verbose_name='Spotlight 3 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_three_heading', - field=models.CharField(max_length=255, verbose_name='Spotlight 3 heading'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_three_icon', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Spotlight 3 icon'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_two_body', - field=models.TextField(verbose_name='Spotlight 2 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_two_heading', - field=models.CharField(max_length=255, verbose_name='Spotlight 2 heading'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_two_icon', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Spotlight 2 icon'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_teaser', - field=models.TextField(verbose_name='Spotlight summary'), - ), - ] +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-03-20 17:50 +from __future__ import unicode_literals + +import core.model_fields +import core.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('great_international', '0004_internationalguidelandingpage'), + ] + + operations = [ + migrations.AlterField( + model_name='internationalsectorpage', + name='case_study_cta_page', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page', verbose_name='Case study link URL'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='case_study_cta_text', + field=models.TextField(blank=True, verbose_name='Case study link text'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='heading', + field=models.CharField(max_length=255, verbose_name='Sector name'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='heading_teaser', + field=models.TextField(blank=True, verbose_name='Introduction'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_one_body', + field=core.model_fields.MarkdownField(null=True, validators=[core.validators.slug_hyperlinks], verbose_name='3 unique selling points markdown'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_one_image', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Image for unique selling points'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_one_image_caption', + field=models.CharField(blank=True, max_length=255, verbose_name='Image caption'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_one_image_caption_company', + field=models.CharField(blank=True, max_length=255, verbose_name='Image caption attribution'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_heading', + field=models.CharField(max_length=255, verbose_name='Spotlight'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_one_body', + field=models.TextField(verbose_name='Spotlight 1 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_one_heading', + field=models.CharField(max_length=255, verbose_name='Spotlight 1 heading'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_one_icon', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Spotlight 1 icon'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_three_body', + field=models.TextField(verbose_name='Spotlight 3 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_three_heading', + field=models.CharField(max_length=255, verbose_name='Spotlight 3 heading'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_three_icon', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Spotlight 3 icon'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_two_body', + field=models.TextField(verbose_name='Spotlight 2 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_two_heading', + field=models.CharField(max_length=255, verbose_name='Spotlight 2 heading'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_two_icon', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Spotlight 2 icon'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_teaser', + field=models.TextField(verbose_name='Spotlight summary'), + ), + ] diff --git a/great_international/migrations/0012_internationalsectorpage.py b/great_international/migrations/0012_internationalsectorpage.py index 1e4fea49..d4858c75 100644 --- a/great_international/migrations/0012_internationalsectorpage.py +++ b/great_international/migrations/0012_internationalsectorpage.py @@ -1,84 +1,84 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.18 on 2019-02-28 12:34 -from __future__ import unicode_literals - -import core.model_fields -import core.validators -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('wagtailcore', '0040_page_draft_title'), - ('wagtailimages', '0021_image_file_hash'), - ('great_international', '0011_auto_20190228_1051'), - ] - - operations = [ - migrations.CreateModel( - name='InternationalSectorPage', - fields=[ - ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), - ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), - ('heading', models.CharField(max_length=255)), - ('sub_heading', models.CharField(max_length=255)), - ('heading_teaser', models.CharField(max_length=255)), - ('section_one_body', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('statistic_1_number', models.CharField(max_length=255)), - ('statistic_1_heading', models.CharField(max_length=255)), - ('statistic_1_smallprint', models.CharField(max_length=255)), - ('statistic_2_number', models.CharField(max_length=255)), - ('statistic_2_heading', models.CharField(max_length=255)), - ('statistic_2_smallprint', models.CharField(max_length=255)), - ('statistic_3_number', models.CharField(blank=True, max_length=255)), - ('statistic_3_heading', models.CharField(blank=True, max_length=255)), - ('statistic_3_smallprint', models.CharField(blank=True, max_length=255)), - ('statistic_4_number', models.CharField(blank=True, max_length=255)), - ('statistic_4_heading', models.CharField(blank=True, max_length=255)), - ('statistic_4_smallprint', models.CharField(blank=True, max_length=255)), - ('statistic_5_number', models.CharField(blank=True, max_length=255)), - ('statistic_5_heading', models.CharField(blank=True, max_length=255)), - ('statistic_5_smallprint', models.CharField(blank=True, max_length=255)), - ('statistic_6_number', models.CharField(blank=True, max_length=255)), - ('statistic_6_heading', models.CharField(blank=True, max_length=255)), - ('statistic_6_smallprint', models.CharField(blank=True, max_length=255)), - ('section_two_heading', models.CharField(max_length=255)), - ('section_two_teaser', models.CharField(max_length=255)), - ('section_two_subsection_one_heading', models.CharField(max_length=255)), - ('section_two_subsection_one_body', models.CharField(max_length=255)), - ('section_two_subsection_two_heading', models.CharField(max_length=255)), - ('section_two_subsection_two_body', models.CharField(max_length=255)), - ('section_two_subsection_three_heading', models.CharField(max_length=255)), - ('section_two_subsection_three_body', models.CharField(max_length=255)), - ('case_study_title', models.CharField(max_length=255)), - ('case_study_description', models.CharField(max_length=255)), - ('case_study_cta_text', models.CharField(max_length=255)), - ('case_study_cta_url', models.CharField(max_length=255)), - ('section_three_heading', models.CharField(max_length=255)), - ('section_three_teaser', models.CharField(max_length=255)), - ('section_three_subsection_one_heading', models.CharField(max_length=255)), - ('section_three_subsection_one_teaser', models.CharField(max_length=255)), - ('section_three_subsection_one_body', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('section_three_subsection_two_heading', models.CharField(max_length=255)), - ('section_three_subsection_two_teaser', models.CharField(max_length=255)), - ('section_three_subsection_two_body', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('next_steps_heading', models.CharField(max_length=255)), - ('next_steps_description', models.CharField(max_length=255)), - ('case_study_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('related_page_one', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), - ('related_page_three', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), - ('related_page_two', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), - ('section_one_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_two_subsection_one_icon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_two_subsection_three_icon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_two_subsection_two_icon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ], - options={ - 'abstract': False, - }, - bases=('wagtailcore.page',), - ), - ] +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-02-28 12:34 +from __future__ import unicode_literals + +import core.model_fields +import core.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailcore', '0040_page_draft_title'), + ('wagtailimages', '0021_image_file_hash'), + ('great_international', '0011_auto_20190228_1051'), + ] + + operations = [ + migrations.CreateModel( + name='InternationalSectorPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), + ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), + ('heading', models.CharField(max_length=255)), + ('sub_heading', models.CharField(max_length=255)), + ('heading_teaser', models.CharField(max_length=255)), + ('section_one_body', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('statistic_1_number', models.CharField(max_length=255)), + ('statistic_1_heading', models.CharField(max_length=255)), + ('statistic_1_smallprint', models.CharField(max_length=255)), + ('statistic_2_number', models.CharField(max_length=255)), + ('statistic_2_heading', models.CharField(max_length=255)), + ('statistic_2_smallprint', models.CharField(max_length=255)), + ('statistic_3_number', models.CharField(blank=True, max_length=255)), + ('statistic_3_heading', models.CharField(blank=True, max_length=255)), + ('statistic_3_smallprint', models.CharField(blank=True, max_length=255)), + ('statistic_4_number', models.CharField(blank=True, max_length=255)), + ('statistic_4_heading', models.CharField(blank=True, max_length=255)), + ('statistic_4_smallprint', models.CharField(blank=True, max_length=255)), + ('statistic_5_number', models.CharField(blank=True, max_length=255)), + ('statistic_5_heading', models.CharField(blank=True, max_length=255)), + ('statistic_5_smallprint', models.CharField(blank=True, max_length=255)), + ('statistic_6_number', models.CharField(blank=True, max_length=255)), + ('statistic_6_heading', models.CharField(blank=True, max_length=255)), + ('statistic_6_smallprint', models.CharField(blank=True, max_length=255)), + ('section_two_heading', models.CharField(max_length=255)), + ('section_two_teaser', models.CharField(max_length=255)), + ('section_two_subsection_one_heading', models.CharField(max_length=255)), + ('section_two_subsection_one_body', models.CharField(max_length=255)), + ('section_two_subsection_two_heading', models.CharField(max_length=255)), + ('section_two_subsection_two_body', models.CharField(max_length=255)), + ('section_two_subsection_three_heading', models.CharField(max_length=255)), + ('section_two_subsection_three_body', models.CharField(max_length=255)), + ('case_study_title', models.CharField(max_length=255)), + ('case_study_description', models.CharField(max_length=255)), + ('case_study_cta_text', models.CharField(max_length=255)), + ('case_study_cta_url', models.CharField(max_length=255)), + ('section_three_heading', models.CharField(max_length=255)), + ('section_three_teaser', models.CharField(max_length=255)), + ('section_three_subsection_one_heading', models.CharField(max_length=255)), + ('section_three_subsection_one_teaser', models.CharField(max_length=255)), + ('section_three_subsection_one_body', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('section_three_subsection_two_heading', models.CharField(max_length=255)), + ('section_three_subsection_two_teaser', models.CharField(max_length=255)), + ('section_three_subsection_two_body', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('next_steps_heading', models.CharField(max_length=255)), + ('next_steps_description', models.CharField(max_length=255)), + ('case_study_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('related_page_one', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), + ('related_page_three', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), + ('related_page_two', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), + ('section_one_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_two_subsection_one_icon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_two_subsection_three_icon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_two_subsection_two_icon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + ] diff --git a/great_international/migrations/0013_auto_20190301_1227.py b/great_international/migrations/0013_auto_20190301_1227.py index 1e5db83f..d9a33f3e 100644 --- a/great_international/migrations/0013_auto_20190301_1227.py +++ b/great_international/migrations/0013_auto_20190301_1227.py @@ -1,165 +1,165 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.18 on 2019-03-01 16:09 -from __future__ import unicode_literals - -import core.model_fields -import core.validators -from django.db import migrations, models -import django.db.models.deletion -import modelcluster.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('export_readiness', '0050_auto_20190219_1633'), - ('wagtailcore', '0040_page_draft_title'), - ('great_international', '0012_internationalsectorpage'), - ] - - operations = [ - migrations.RemoveField( - model_name='internationalsectorpage', - name='case_study_cta_url', - ), - migrations.AddField( - model_name='internationalsectorpage', - name='case_study_cta_page', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page'), - ), - migrations.AddField( - model_name='internationalsectorpage', - name='tags', - field=modelcluster.fields.ParentalManyToManyField(blank=True, to='export_readiness.Tag'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='case_study_cta_text', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='case_study_description', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='case_study_image', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='case_study_title', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='heading_teaser', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_one_body', - field=core.model_fields.MarkdownField(null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Bullets markdown'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_one_image', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Bullets image'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_heading', - field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheets heading'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_subsection_one_body', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Fact sheet 1 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_subsection_one_heading', - field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheet 1 heading'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_subsection_one_teaser', - field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheet 1 teaser'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_subsection_two_body', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Fact sheet 2 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_subsection_two_heading', - field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheet 2 heading'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_subsection_two_teaser', - field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheet 2 teaser'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_teaser', - field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheets teaser'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_heading', - field=models.CharField(max_length=255, verbose_name='Highlights heading'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_one_body', - field=models.CharField(max_length=255, verbose_name='Highlight 1 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_one_heading', - field=models.CharField(max_length=255, verbose_name='Highlight 1 heading'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_one_icon', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Highlight 1 icon'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_three_body', - field=models.CharField(max_length=255, verbose_name='Highlight 3 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_three_heading', - field=models.CharField(max_length=255, verbose_name='Highlight 3 heading'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_three_icon', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Highlight 3 icon'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_two_body', - field=models.CharField(max_length=255, verbose_name='Highlight 2 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_two_heading', - field=models.CharField(max_length=255, verbose_name='Highlight 2 heading'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_two_icon', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Highlight 2 icon'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_teaser', - field=models.CharField(max_length=255, verbose_name='Highlights teaser'), - ), - ] +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-03-01 16:09 +from __future__ import unicode_literals + +import core.model_fields +import core.validators +from django.db import migrations, models +import django.db.models.deletion +import modelcluster.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('export_readiness', '0050_auto_20190219_1633'), + ('wagtailcore', '0040_page_draft_title'), + ('great_international', '0012_internationalsectorpage'), + ] + + operations = [ + migrations.RemoveField( + model_name='internationalsectorpage', + name='case_study_cta_url', + ), + migrations.AddField( + model_name='internationalsectorpage', + name='case_study_cta_page', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page'), + ), + migrations.AddField( + model_name='internationalsectorpage', + name='tags', + field=modelcluster.fields.ParentalManyToManyField(blank=True, to='export_readiness.Tag'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='case_study_cta_text', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='case_study_description', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='case_study_image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='case_study_title', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='heading_teaser', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_one_body', + field=core.model_fields.MarkdownField(null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Bullets markdown'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_one_image', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Bullets image'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_heading', + field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheets heading'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_subsection_one_body', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Fact sheet 1 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_subsection_one_heading', + field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheet 1 heading'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_subsection_one_teaser', + field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheet 1 teaser'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_subsection_two_body', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Fact sheet 2 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_subsection_two_heading', + field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheet 2 heading'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_subsection_two_teaser', + field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheet 2 teaser'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_teaser', + field=models.CharField(blank=True, max_length=255, verbose_name='Fact sheets teaser'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_heading', + field=models.CharField(max_length=255, verbose_name='Highlights heading'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_one_body', + field=models.CharField(max_length=255, verbose_name='Highlight 1 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_one_heading', + field=models.CharField(max_length=255, verbose_name='Highlight 1 heading'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_one_icon', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Highlight 1 icon'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_three_body', + field=models.CharField(max_length=255, verbose_name='Highlight 3 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_three_heading', + field=models.CharField(max_length=255, verbose_name='Highlight 3 heading'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_three_icon', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Highlight 3 icon'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_two_body', + field=models.CharField(max_length=255, verbose_name='Highlight 2 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_two_heading', + field=models.CharField(max_length=255, verbose_name='Highlight 2 heading'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_two_icon', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Highlight 2 icon'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_teaser', + field=models.CharField(max_length=255, verbose_name='Highlights teaser'), + ), + ] diff --git a/great_international/migrations/0014_auto_20190304_1215.py b/great_international/migrations/0014_auto_20190304_1215.py index 036b9422..cbdf0465 100644 --- a/great_international/migrations/0014_auto_20190304_1215.py +++ b/great_international/migrations/0014_auto_20190304_1215.py @@ -1,88 +1,88 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.18 on 2019-03-04 12:15 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('great_international', '0013_auto_20190301_1227'), - ] - - operations = [ - migrations.RemoveField( - model_name='internationalsectorpage', - name='next_steps_description', - ), - migrations.RemoveField( - model_name='internationalsectorpage', - name='next_steps_heading', - ), - migrations.AddField( - model_name='internationalsectorpage', - name='section_one_image_caption', - field=models.CharField(blank=True, max_length=255, verbose_name='Bullets image caption'), - ), - migrations.AddField( - model_name='internationalsectorpage', - name='section_one_image_caption_company', - field=models.CharField(blank=True, max_length=255, verbose_name='Bullets image caption — company name'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='case_study_cta_text', - field=models.TextField(blank=True), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='heading_teaser', - field=models.TextField(blank=True), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_subsection_one_teaser', - field=models.TextField(blank=True, verbose_name='Fact sheet 1 teaser'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_subsection_two_teaser', - field=models.TextField(blank=True, verbose_name='Fact sheet 2 teaser'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_three_teaser', - field=models.TextField(blank=True, verbose_name='Fact sheets teaser'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_one_body', - field=models.TextField(verbose_name='Highlight 1 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_three_body', - field=models.TextField(verbose_name='Highlight 3 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_subsection_two_body', - field=models.TextField(verbose_name='Highlight 2 body'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='section_two_teaser', - field=models.TextField(verbose_name='Highlights teaser'), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='statistic_1_smallprint', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AlterField( - model_name='internationalsectorpage', - name='statistic_2_smallprint', - field=models.CharField(blank=True, max_length=255), - ), - ] +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-03-04 12:15 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('great_international', '0013_auto_20190301_1227'), + ] + + operations = [ + migrations.RemoveField( + model_name='internationalsectorpage', + name='next_steps_description', + ), + migrations.RemoveField( + model_name='internationalsectorpage', + name='next_steps_heading', + ), + migrations.AddField( + model_name='internationalsectorpage', + name='section_one_image_caption', + field=models.CharField(blank=True, max_length=255, verbose_name='Bullets image caption'), + ), + migrations.AddField( + model_name='internationalsectorpage', + name='section_one_image_caption_company', + field=models.CharField(blank=True, max_length=255, verbose_name='Bullets image caption — company name'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='case_study_cta_text', + field=models.TextField(blank=True), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='heading_teaser', + field=models.TextField(blank=True), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_subsection_one_teaser', + field=models.TextField(blank=True, verbose_name='Fact sheet 1 teaser'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_subsection_two_teaser', + field=models.TextField(blank=True, verbose_name='Fact sheet 2 teaser'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_three_teaser', + field=models.TextField(blank=True, verbose_name='Fact sheets teaser'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_one_body', + field=models.TextField(verbose_name='Highlight 1 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_three_body', + field=models.TextField(verbose_name='Highlight 3 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_subsection_two_body', + field=models.TextField(verbose_name='Highlight 2 body'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='section_two_teaser', + field=models.TextField(verbose_name='Highlights teaser'), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='statistic_1_smallprint', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AlterField( + model_name='internationalsectorpage', + name='statistic_2_smallprint', + field=models.CharField(blank=True, max_length=255), + ), + ] diff --git a/great_international/migrations/0015_auto_20190306_1521.py b/great_international/migrations/0015_auto_20190306_1521.py index 9b5e9f39..ad091638 100644 --- a/great_international/migrations/0015_auto_20190306_1521.py +++ b/great_international/migrations/0015_auto_20190306_1521.py @@ -1,20 +1,20 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.18 on 2019-03-06 15:21 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('great_international', '0014_auto_20190304_1215'), - ] - - operations = [ - migrations.AlterField( - model_name='internationalsectorpage', - name='sub_heading', - field=models.CharField(blank=True, max_length=255), - ), - ] +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-03-06 15:21 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('great_international', '0014_auto_20190304_1215'), + ] + + operations = [ + migrations.AlterField( + model_name='internationalsectorpage', + name='sub_heading', + field=models.CharField(blank=True, max_length=255), + ), + ] diff --git a/great_international/migrations/0049_aboutditlandingpage_aboutditservicesfields_aboutditservicespage.py b/great_international/migrations/0049_aboutditlandingpage_aboutditservicesfields_aboutditservicespage.py index aab67af6..40f253e3 100644 --- a/great_international/migrations/0049_aboutditlandingpage_aboutditservicesfields_aboutditservicespage.py +++ b/great_international/migrations/0049_aboutditlandingpage_aboutditservicesfields_aboutditservicespage.py @@ -1,221 +1,221 @@ -# Generated by Django 2.2.2 on 2019-07-12 12:48 - -import core.model_fields -import core.validators -from django.db import migrations, models -import django.db.models.deletion -import modelcluster.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('wagtailcore', '0041_group_collection_permissions_verbose_name_plural'), - ('wagtailimages', '0001_squashed_0021'), - ('great_international', '0048_capitalinvestrelatedsubsectors_internationalsubsectorpage'), - ] - - operations = [ - migrations.CreateModel( - name='AboutDitServicesPage', - fields=[ - ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), - ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), - ('uses_tree_based_routing', models.BooleanField(default=False, help_text="Allow this page's URL to be determined by its slug, and the slugs of its ancestors in the page tree.", verbose_name='tree-based routing enabled')), - ('breadcrumbs_label', models.CharField(max_length=255)), - ('breadcrumbs_label_en_gb', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_de', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_ja', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_zh_hans', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_fr', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_es', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_pt', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_ar', models.CharField(max_length=255, null=True)), - ('hero_title', models.CharField(max_length=255)), - ('hero_title_en_gb', models.CharField(max_length=255, null=True)), - ('hero_title_de', models.CharField(max_length=255, null=True)), - ('hero_title_ja', models.CharField(max_length=255, null=True)), - ('hero_title_zh_hans', models.CharField(max_length=255, null=True)), - ('hero_title_fr', models.CharField(max_length=255, null=True)), - ('hero_title_es', models.CharField(max_length=255, null=True)), - ('hero_title_pt', models.CharField(max_length=255, null=True)), - ('hero_title_ar', models.CharField(max_length=255, null=True)), - ('teaser', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_en_gb', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_de', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_ja', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_zh_hans', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_fr', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_es', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_pt', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_ar', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('case_study_title', models.CharField(blank=True, max_length=255)), - ('case_study_title_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_title_de', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_title_ja', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_title_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_title_fr', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_title_es', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_title_pt', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_title_ar', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_text', models.TextField(blank=True, max_length=255)), - ('case_study_text_en_gb', models.TextField(blank=True, max_length=255, null=True)), - ('case_study_text_de', models.TextField(blank=True, max_length=255, null=True)), - ('case_study_text_ja', models.TextField(blank=True, max_length=255, null=True)), - ('case_study_text_zh_hans', models.TextField(blank=True, max_length=255, null=True)), - ('case_study_text_fr', models.TextField(blank=True, max_length=255, null=True)), - ('case_study_text_es', models.TextField(blank=True, max_length=255, null=True)), - ('case_study_text_pt', models.TextField(blank=True, max_length=255, null=True)), - ('case_study_text_ar', models.TextField(blank=True, max_length=255, null=True)), - ('case_study_cta_text', models.CharField(blank=True, max_length=255)), - ('case_study_cta_text_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_text_de', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_text_ja', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_text_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_text_fr', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_text_es', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_text_pt', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_text_ar', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_link', models.CharField(blank=True, max_length=255)), - ('case_study_cta_link_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_link_de', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_link_ja', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_link_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_link_fr', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_link_es', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_link_pt', models.CharField(blank=True, max_length=255, null=True)), - ('case_study_cta_link_ar', models.CharField(blank=True, max_length=255, null=True)), - ('contact_us_section_title', models.CharField(blank=True, max_length=255, verbose_name='Title')), - ('contact_us_section_title_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_summary', models.TextField(blank=True, max_length=255, verbose_name='Summary')), - ('contact_us_section_summary_en_gb', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), - ('contact_us_section_summary_de', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), - ('contact_us_section_summary_ja', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), - ('contact_us_section_summary_zh_hans', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), - ('contact_us_section_summary_fr', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), - ('contact_us_section_summary_es', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), - ('contact_us_section_summary_pt', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), - ('contact_us_section_summary_ar', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), - ('contact_us_section_cta_text', models.CharField(blank=True, max_length=255, verbose_name='CTA text')), - ('contact_us_section_cta_text_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_link', models.CharField(blank=True, max_length=255, verbose_name='CTA URL')), - ('contact_us_section_cta_link_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('case_study_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('case_study_image_ar', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('case_study_image_de', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('case_study_image_en_gb', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('case_study_image_es', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('case_study_image_fr', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('case_study_image_ja', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('case_study_image_pt', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('case_study_image_zh_hans', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_ar', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_de', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_en_gb', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_es', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_fr', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_ja', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_pt', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_zh_hans', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('teaser_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('teaser_image_ar', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('teaser_image_de', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('teaser_image_en_gb', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('teaser_image_es', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('teaser_image_fr', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('teaser_image_ja', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('teaser_image_pt', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('teaser_image_zh_hans', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ], - options={ - 'abstract': False, - }, - bases=('wagtailcore.page',), - ), - migrations.CreateModel( - name='AboutDitServicesFields', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), - ('title', models.CharField(blank=True, max_length=255)), - ('summary', models.TextField(blank=True, max_length=255)), - ('link_text', models.CharField(blank=True, max_length=255, verbose_name='Link text')), - ('link_url', models.CharField(blank=True, max_length=255, verbose_name='Link URL')), - ('icon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('page', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), - ('page_ar', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), - ('page_de', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), - ('page_en_gb', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), - ('page_es', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), - ('page_fr', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), - ('page_ja', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), - ('page_pt', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), - ('page_zh_hans', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), - ], - options={ - 'ordering': ['sort_order'], - 'abstract': False, - }, - ), - migrations.CreateModel( - name='AboutDitLandingPage', - fields=[ - ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), - ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), - ('uses_tree_based_routing', models.BooleanField(default=False, help_text="Allow this page's URL to be determined by its slug, and the slugs of its ancestors in the page tree.", verbose_name='tree-based routing enabled')), - ('breadcrumbs_label', models.CharField(max_length=255)), - ('breadcrumbs_label_en_gb', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_de', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_ja', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_zh_hans', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_fr', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_es', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_pt', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_ar', models.CharField(max_length=255, null=True)), - ('hero_title', models.CharField(max_length=255)), - ('hero_title_en_gb', models.CharField(max_length=255, null=True)), - ('hero_title_de', models.CharField(max_length=255, null=True)), - ('hero_title_ja', models.CharField(max_length=255, null=True)), - ('hero_title_zh_hans', models.CharField(max_length=255, null=True)), - ('hero_title_fr', models.CharField(max_length=255, null=True)), - ('hero_title_es', models.CharField(max_length=255, null=True)), - ('hero_title_pt', models.CharField(max_length=255, null=True)), - ('hero_title_ar', models.CharField(max_length=255, null=True)), - ('hero_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_ar', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_de', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_en_gb', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_es', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_fr', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_ja', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_pt', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_zh_hans', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ], - options={ - 'abstract': False, - }, - bases=('wagtailcore.page',), - ), - ] +# Generated by Django 2.2.2 on 2019-07-12 12:48 + +import core.model_fields +import core.validators +from django.db import migrations, models +import django.db.models.deletion +import modelcluster.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailcore', '0041_group_collection_permissions_verbose_name_plural'), + ('wagtailimages', '0001_squashed_0021'), + ('great_international', '0048_capitalinvestrelatedsubsectors_internationalsubsectorpage'), + ] + + operations = [ + migrations.CreateModel( + name='AboutDitServicesPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), + ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), + ('uses_tree_based_routing', models.BooleanField(default=False, help_text="Allow this page's URL to be determined by its slug, and the slugs of its ancestors in the page tree.", verbose_name='tree-based routing enabled')), + ('breadcrumbs_label', models.CharField(max_length=255)), + ('breadcrumbs_label_en_gb', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_de', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_ja', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_zh_hans', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_fr', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_es', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_pt', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_ar', models.CharField(max_length=255, null=True)), + ('hero_title', models.CharField(max_length=255)), + ('hero_title_en_gb', models.CharField(max_length=255, null=True)), + ('hero_title_de', models.CharField(max_length=255, null=True)), + ('hero_title_ja', models.CharField(max_length=255, null=True)), + ('hero_title_zh_hans', models.CharField(max_length=255, null=True)), + ('hero_title_fr', models.CharField(max_length=255, null=True)), + ('hero_title_es', models.CharField(max_length=255, null=True)), + ('hero_title_pt', models.CharField(max_length=255, null=True)), + ('hero_title_ar', models.CharField(max_length=255, null=True)), + ('teaser', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_en_gb', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_de', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_ja', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_zh_hans', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_fr', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_es', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_pt', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_ar', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('case_study_title', models.CharField(blank=True, max_length=255)), + ('case_study_title_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_title_de', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_title_ja', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_title_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_title_fr', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_title_es', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_title_pt', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_title_ar', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_text', models.TextField(blank=True, max_length=255)), + ('case_study_text_en_gb', models.TextField(blank=True, max_length=255, null=True)), + ('case_study_text_de', models.TextField(blank=True, max_length=255, null=True)), + ('case_study_text_ja', models.TextField(blank=True, max_length=255, null=True)), + ('case_study_text_zh_hans', models.TextField(blank=True, max_length=255, null=True)), + ('case_study_text_fr', models.TextField(blank=True, max_length=255, null=True)), + ('case_study_text_es', models.TextField(blank=True, max_length=255, null=True)), + ('case_study_text_pt', models.TextField(blank=True, max_length=255, null=True)), + ('case_study_text_ar', models.TextField(blank=True, max_length=255, null=True)), + ('case_study_cta_text', models.CharField(blank=True, max_length=255)), + ('case_study_cta_text_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_text_de', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_text_ja', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_text_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_text_fr', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_text_es', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_text_pt', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_text_ar', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_link', models.CharField(blank=True, max_length=255)), + ('case_study_cta_link_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_link_de', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_link_ja', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_link_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_link_fr', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_link_es', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_link_pt', models.CharField(blank=True, max_length=255, null=True)), + ('case_study_cta_link_ar', models.CharField(blank=True, max_length=255, null=True)), + ('contact_us_section_title', models.CharField(blank=True, max_length=255, verbose_name='Title')), + ('contact_us_section_title_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_summary', models.TextField(blank=True, max_length=255, verbose_name='Summary')), + ('contact_us_section_summary_en_gb', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), + ('contact_us_section_summary_de', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), + ('contact_us_section_summary_ja', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), + ('contact_us_section_summary_zh_hans', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), + ('contact_us_section_summary_fr', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), + ('contact_us_section_summary_es', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), + ('contact_us_section_summary_pt', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), + ('contact_us_section_summary_ar', models.TextField(blank=True, max_length=255, null=True, verbose_name='Summary')), + ('contact_us_section_cta_text', models.CharField(blank=True, max_length=255, verbose_name='CTA text')), + ('contact_us_section_cta_text_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_link', models.CharField(blank=True, max_length=255, verbose_name='CTA URL')), + ('contact_us_section_cta_link_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('case_study_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('case_study_image_ar', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('case_study_image_de', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('case_study_image_en_gb', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('case_study_image_es', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('case_study_image_fr', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('case_study_image_ja', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('case_study_image_pt', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('case_study_image_zh_hans', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_ar', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_de', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_en_gb', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_es', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_fr', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_ja', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_pt', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_zh_hans', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('teaser_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('teaser_image_ar', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('teaser_image_de', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('teaser_image_en_gb', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('teaser_image_es', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('teaser_image_fr', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('teaser_image_ja', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('teaser_image_pt', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('teaser_image_zh_hans', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='AboutDitServicesFields', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), + ('title', models.CharField(blank=True, max_length=255)), + ('summary', models.TextField(blank=True, max_length=255)), + ('link_text', models.CharField(blank=True, max_length=255, verbose_name='Link text')), + ('link_url', models.CharField(blank=True, max_length=255, verbose_name='Link URL')), + ('icon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('page', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), + ('page_ar', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), + ('page_de', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), + ('page_en_gb', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), + ('page_es', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), + ('page_fr', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), + ('page_ja', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), + ('page_pt', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), + ('page_zh_hans', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_dit_services_fields', to='great_international.AboutDitServicesPage')), + ], + options={ + 'ordering': ['sort_order'], + 'abstract': False, + }, + ), + migrations.CreateModel( + name='AboutDitLandingPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), + ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), + ('uses_tree_based_routing', models.BooleanField(default=False, help_text="Allow this page's URL to be determined by its slug, and the slugs of its ancestors in the page tree.", verbose_name='tree-based routing enabled')), + ('breadcrumbs_label', models.CharField(max_length=255)), + ('breadcrumbs_label_en_gb', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_de', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_ja', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_zh_hans', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_fr', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_es', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_pt', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_ar', models.CharField(max_length=255, null=True)), + ('hero_title', models.CharField(max_length=255)), + ('hero_title_en_gb', models.CharField(max_length=255, null=True)), + ('hero_title_de', models.CharField(max_length=255, null=True)), + ('hero_title_ja', models.CharField(max_length=255, null=True)), + ('hero_title_zh_hans', models.CharField(max_length=255, null=True)), + ('hero_title_fr', models.CharField(max_length=255, null=True)), + ('hero_title_es', models.CharField(max_length=255, null=True)), + ('hero_title_pt', models.CharField(max_length=255, null=True)), + ('hero_title_ar', models.CharField(max_length=255, null=True)), + ('hero_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_ar', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_de', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_en_gb', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_es', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_fr', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_ja', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_pt', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_zh_hans', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + ] diff --git a/great_international/migrations/0051_aboutukarticlesfields_aboutuklandingpage_aboutukwhychoosetheukpage.py b/great_international/migrations/0051_aboutukarticlesfields_aboutuklandingpage_aboutukwhychoosetheukpage.py index 0b58214d..2532457f 100644 --- a/great_international/migrations/0051_aboutukarticlesfields_aboutuklandingpage_aboutukwhychoosetheukpage.py +++ b/great_international/migrations/0051_aboutukarticlesfields_aboutuklandingpage_aboutukwhychoosetheukpage.py @@ -1,349 +1,349 @@ -# Generated by Django 2.2.3 on 2019-07-22 11:45 - -import core.model_fields -import core.validators -from django.db import migrations, models -import django.db.models.deletion -import great_international.panels.great_international -import modelcluster.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('wagtailcore', '0041_group_collection_permissions_verbose_name_plural'), - ('wagtailimages', '0001_squashed_0021'), - ('great_international', '0050_investhighpotentialopportunitiespage'), - ] - - operations = [ - migrations.CreateModel( - name='AboutUkWhyChooseTheUkPage', - fields=[ - ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), - ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), - ('uses_tree_based_routing', models.BooleanField(default=False, help_text="Allow this page's URL to be determined by its slug, and the slugs of its ancestors in the page tree.", verbose_name='tree-based routing enabled')), - ('breadcrumbs_label', models.CharField(max_length=255)), - ('breadcrumbs_label_en_gb', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_de', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_ja', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_zh_hans', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_fr', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_es', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_pt', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_ar', models.CharField(max_length=255, null=True)), - ('hero_title', models.CharField(max_length=255)), - ('hero_title_en_gb', models.CharField(max_length=255, null=True)), - ('hero_title_de', models.CharField(max_length=255, null=True)), - ('hero_title_ja', models.CharField(max_length=255, null=True)), - ('hero_title_zh_hans', models.CharField(max_length=255, null=True)), - ('hero_title_fr', models.CharField(max_length=255, null=True)), - ('hero_title_es', models.CharField(max_length=255, null=True)), - ('hero_title_pt', models.CharField(max_length=255, null=True)), - ('hero_title_ar', models.CharField(max_length=255, null=True)), - ('teaser', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_en_gb', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_de', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_ja', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_zh_hans', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_fr', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_es', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_pt', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('teaser_ar', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), - ('section_one_body', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('section_one_body_en_gb', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('section_one_body_de', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('section_one_body_ja', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('section_one_body_zh_hans', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('section_one_body_fr', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('section_one_body_es', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('section_one_body_pt', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('section_one_body_ar', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), - ('statistic_1_number', models.CharField(blank=True, max_length=255)), - ('statistic_1_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_number_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_number_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_number_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_number_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_number_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_number_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_heading', models.CharField(blank=True, max_length=255)), - ('statistic_1_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_heading_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_heading_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_heading_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_heading_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_heading_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_heading_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_smallprint', models.CharField(blank=True, max_length=255)), - ('statistic_1_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_1_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_number', models.CharField(blank=True, max_length=255)), - ('statistic_2_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_number_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_number_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_number_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_number_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_number_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_number_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_heading', models.CharField(blank=True, max_length=255)), - ('statistic_2_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_heading_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_heading_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_heading_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_heading_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_heading_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_heading_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_smallprint', models.CharField(blank=True, max_length=255)), - ('statistic_2_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_2_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_number', models.CharField(blank=True, max_length=255)), - ('statistic_3_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_number_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_number_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_number_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_number_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_number_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_number_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_heading', models.CharField(blank=True, max_length=255)), - ('statistic_3_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_heading_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_heading_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_heading_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_heading_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_heading_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_heading_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_smallprint', models.CharField(blank=True, max_length=255)), - ('statistic_3_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_3_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_number', models.CharField(blank=True, max_length=255)), - ('statistic_4_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_number_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_number_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_number_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_number_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_number_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_number_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_heading', models.CharField(blank=True, max_length=255)), - ('statistic_4_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_heading_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_heading_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_heading_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_heading_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_heading_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_heading_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_smallprint', models.CharField(blank=True, max_length=255)), - ('statistic_4_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_4_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_number', models.CharField(blank=True, max_length=255)), - ('statistic_5_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_number_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_number_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_number_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_number_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_number_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_number_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_heading', models.CharField(blank=True, max_length=255)), - ('statistic_5_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_heading_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_heading_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_heading_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_heading_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_heading_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_heading_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_smallprint', models.CharField(blank=True, max_length=255)), - ('statistic_5_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_5_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_number', models.CharField(blank=True, max_length=255)), - ('statistic_6_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_number_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_number_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_number_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_number_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_number_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_number_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_heading', models.CharField(blank=True, max_length=255)), - ('statistic_6_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_heading_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_heading_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_heading_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_heading_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_heading_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_heading_ar', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_smallprint', models.CharField(blank=True, max_length=255)), - ('statistic_6_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), - ('statistic_6_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), - ('contact_us_section_title', models.CharField(blank=True, max_length=255, verbose_name='Title')), - ('contact_us_section_title_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_title_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), - ('contact_us_section_summary', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), - ('contact_us_section_summary_en_gb', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), - ('contact_us_section_summary_de', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), - ('contact_us_section_summary_ja', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), - ('contact_us_section_summary_zh_hans', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), - ('contact_us_section_summary_fr', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), - ('contact_us_section_summary_es', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), - ('contact_us_section_summary_pt', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), - ('contact_us_section_summary_ar', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), - ('contact_us_section_cta_text', models.CharField(blank=True, max_length=255, verbose_name='CTA text')), - ('contact_us_section_cta_text_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_text_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), - ('contact_us_section_cta_link', models.CharField(blank=True, max_length=255, verbose_name='CTA URL')), - ('contact_us_section_cta_link_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('contact_us_section_cta_link_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), - ('hero_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_ar', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_de', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_en_gb', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_es', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_fr', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_ja', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_pt', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_zh_hans', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_one_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_one_image_ar', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_one_image_de', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_one_image_en_gb', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_one_image_es', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_one_image_fr', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_one_image_ja', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_one_image_pt', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('section_one_image_zh_hans', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ], - options={ - 'abstract': False, - }, - bases=('wagtailcore.page', great_international.panels.great_international.AboutUkWhyChooseTheUkPagePanels), - ), - migrations.CreateModel( - name='AboutUkLandingPage', - fields=[ - ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), - ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), - ('uses_tree_based_routing', models.BooleanField(default=False, help_text="Allow this page's URL to be determined by its slug, and the slugs of its ancestors in the page tree.", verbose_name='tree-based routing enabled')), - ('breadcrumbs_label', models.CharField(max_length=255)), - ('breadcrumbs_label_en_gb', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_de', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_ja', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_zh_hans', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_fr', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_es', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_pt', models.CharField(max_length=255, null=True)), - ('breadcrumbs_label_ar', models.CharField(max_length=255, null=True)), - ('hero_title', models.CharField(max_length=255)), - ('hero_title_en_gb', models.CharField(max_length=255, null=True)), - ('hero_title_de', models.CharField(max_length=255, null=True)), - ('hero_title_ja', models.CharField(max_length=255, null=True)), - ('hero_title_zh_hans', models.CharField(max_length=255, null=True)), - ('hero_title_fr', models.CharField(max_length=255, null=True)), - ('hero_title_es', models.CharField(max_length=255, null=True)), - ('hero_title_pt', models.CharField(max_length=255, null=True)), - ('hero_title_ar', models.CharField(max_length=255, null=True)), - ('hero_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_ar', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_de', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_en_gb', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_es', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_fr', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_ja', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_pt', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('hero_image_zh_hans', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ], - options={ - 'abstract': False, - }, - bases=('wagtailcore.page', great_international.panels.great_international.AboutUkLandingPagePanels), - ), - migrations.CreateModel( - name='AboutUkArticlesFields', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), - ('title', models.CharField(blank=True, max_length=255)), - ('summary', models.TextField(blank=True)), - ('link_text', models.CharField(blank=True, max_length=255, verbose_name='Link text')), - ('link_url', models.CharField(blank=True, max_length=255, verbose_name='Link URL')), - ('image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), - ('page', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), - ('page_ar', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), - ('page_de', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), - ('page_en_gb', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), - ('page_es', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), - ('page_fr', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), - ('page_ja', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), - ('page_pt', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), - ('page_zh_hans', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), - ], - options={ - 'ordering': ['sort_order'], - 'abstract': False, - }, - bases=(models.Model, great_international.panels.great_international.AboutUkArticleFieldPanels), - ), - ] +# Generated by Django 2.2.3 on 2019-07-22 11:45 + +import core.model_fields +import core.validators +from django.db import migrations, models +import django.db.models.deletion +import great_international.panels.great_international +import modelcluster.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailcore', '0041_group_collection_permissions_verbose_name_plural'), + ('wagtailimages', '0001_squashed_0021'), + ('great_international', '0050_investhighpotentialopportunitiespage'), + ] + + operations = [ + migrations.CreateModel( + name='AboutUkWhyChooseTheUkPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), + ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), + ('uses_tree_based_routing', models.BooleanField(default=False, help_text="Allow this page's URL to be determined by its slug, and the slugs of its ancestors in the page tree.", verbose_name='tree-based routing enabled')), + ('breadcrumbs_label', models.CharField(max_length=255)), + ('breadcrumbs_label_en_gb', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_de', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_ja', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_zh_hans', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_fr', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_es', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_pt', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_ar', models.CharField(max_length=255, null=True)), + ('hero_title', models.CharField(max_length=255)), + ('hero_title_en_gb', models.CharField(max_length=255, null=True)), + ('hero_title_de', models.CharField(max_length=255, null=True)), + ('hero_title_ja', models.CharField(max_length=255, null=True)), + ('hero_title_zh_hans', models.CharField(max_length=255, null=True)), + ('hero_title_fr', models.CharField(max_length=255, null=True)), + ('hero_title_es', models.CharField(max_length=255, null=True)), + ('hero_title_pt', models.CharField(max_length=255, null=True)), + ('hero_title_ar', models.CharField(max_length=255, null=True)), + ('teaser', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_en_gb', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_de', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_ja', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_zh_hans', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_fr', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_es', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_pt', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('teaser_ar', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='')), + ('section_one_body', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('section_one_body_en_gb', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('section_one_body_de', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('section_one_body_ja', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('section_one_body_zh_hans', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('section_one_body_fr', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('section_one_body_es', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('section_one_body_pt', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('section_one_body_ar', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks])), + ('statistic_1_number', models.CharField(blank=True, max_length=255)), + ('statistic_1_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_number_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_number_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_number_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_number_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_number_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_number_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_heading', models.CharField(blank=True, max_length=255)), + ('statistic_1_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_heading_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_heading_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_heading_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_heading_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_heading_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_heading_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_smallprint', models.CharField(blank=True, max_length=255)), + ('statistic_1_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_1_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_number', models.CharField(blank=True, max_length=255)), + ('statistic_2_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_number_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_number_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_number_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_number_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_number_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_number_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_heading', models.CharField(blank=True, max_length=255)), + ('statistic_2_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_heading_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_heading_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_heading_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_heading_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_heading_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_heading_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_smallprint', models.CharField(blank=True, max_length=255)), + ('statistic_2_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_2_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_number', models.CharField(blank=True, max_length=255)), + ('statistic_3_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_number_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_number_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_number_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_number_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_number_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_number_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_heading', models.CharField(blank=True, max_length=255)), + ('statistic_3_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_heading_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_heading_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_heading_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_heading_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_heading_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_heading_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_smallprint', models.CharField(blank=True, max_length=255)), + ('statistic_3_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_3_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_number', models.CharField(blank=True, max_length=255)), + ('statistic_4_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_number_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_number_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_number_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_number_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_number_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_number_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_heading', models.CharField(blank=True, max_length=255)), + ('statistic_4_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_heading_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_heading_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_heading_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_heading_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_heading_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_heading_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_smallprint', models.CharField(blank=True, max_length=255)), + ('statistic_4_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_4_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_number', models.CharField(blank=True, max_length=255)), + ('statistic_5_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_number_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_number_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_number_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_number_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_number_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_number_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_heading', models.CharField(blank=True, max_length=255)), + ('statistic_5_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_heading_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_heading_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_heading_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_heading_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_heading_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_heading_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_smallprint', models.CharField(blank=True, max_length=255)), + ('statistic_5_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_5_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_number', models.CharField(blank=True, max_length=255)), + ('statistic_6_number_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_number_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_number_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_number_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_number_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_number_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_number_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_number_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_heading', models.CharField(blank=True, max_length=255)), + ('statistic_6_heading_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_heading_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_heading_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_heading_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_heading_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_heading_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_heading_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_heading_ar', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_smallprint', models.CharField(blank=True, max_length=255)), + ('statistic_6_smallprint_en_gb', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_smallprint_de', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_smallprint_ja', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_smallprint_zh_hans', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_smallprint_fr', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_smallprint_es', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_smallprint_pt', models.CharField(blank=True, max_length=255, null=True)), + ('statistic_6_smallprint_ar', models.CharField(blank=True, max_length=255, null=True)), + ('contact_us_section_title', models.CharField(blank=True, max_length=255, verbose_name='Title')), + ('contact_us_section_title_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_title_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='Title')), + ('contact_us_section_summary', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), + ('contact_us_section_summary_en_gb', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), + ('contact_us_section_summary_de', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), + ('contact_us_section_summary_ja', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), + ('contact_us_section_summary_zh_hans', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), + ('contact_us_section_summary_fr', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), + ('contact_us_section_summary_es', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), + ('contact_us_section_summary_pt', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), + ('contact_us_section_summary_ar', core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary')), + ('contact_us_section_cta_text', models.CharField(blank=True, max_length=255, verbose_name='CTA text')), + ('contact_us_section_cta_text_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_text_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA text')), + ('contact_us_section_cta_link', models.CharField(blank=True, max_length=255, verbose_name='CTA URL')), + ('contact_us_section_cta_link_en_gb', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_de', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_ja', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_zh_hans', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_fr', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_es', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_pt', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('contact_us_section_cta_link_ar', models.CharField(blank=True, max_length=255, null=True, verbose_name='CTA URL')), + ('hero_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_ar', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_de', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_en_gb', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_es', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_fr', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_ja', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_pt', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_zh_hans', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_one_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_one_image_ar', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_one_image_de', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_one_image_en_gb', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_one_image_es', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_one_image_fr', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_one_image_ja', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_one_image_pt', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('section_one_image_zh_hans', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page', great_international.panels.great_international.AboutUkWhyChooseTheUkPagePanels), + ), + migrations.CreateModel( + name='AboutUkLandingPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), + ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), + ('uses_tree_based_routing', models.BooleanField(default=False, help_text="Allow this page's URL to be determined by its slug, and the slugs of its ancestors in the page tree.", verbose_name='tree-based routing enabled')), + ('breadcrumbs_label', models.CharField(max_length=255)), + ('breadcrumbs_label_en_gb', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_de', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_ja', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_zh_hans', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_fr', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_es', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_pt', models.CharField(max_length=255, null=True)), + ('breadcrumbs_label_ar', models.CharField(max_length=255, null=True)), + ('hero_title', models.CharField(max_length=255)), + ('hero_title_en_gb', models.CharField(max_length=255, null=True)), + ('hero_title_de', models.CharField(max_length=255, null=True)), + ('hero_title_ja', models.CharField(max_length=255, null=True)), + ('hero_title_zh_hans', models.CharField(max_length=255, null=True)), + ('hero_title_fr', models.CharField(max_length=255, null=True)), + ('hero_title_es', models.CharField(max_length=255, null=True)), + ('hero_title_pt', models.CharField(max_length=255, null=True)), + ('hero_title_ar', models.CharField(max_length=255, null=True)), + ('hero_image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_ar', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_de', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_en_gb', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_es', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_fr', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_ja', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_pt', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('hero_image_zh_hans', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page', great_international.panels.great_international.AboutUkLandingPagePanels), + ), + migrations.CreateModel( + name='AboutUkArticlesFields', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), + ('title', models.CharField(blank=True, max_length=255)), + ('summary', models.TextField(blank=True)), + ('link_text', models.CharField(blank=True, max_length=255, verbose_name='Link text')), + ('link_url', models.CharField(blank=True, max_length=255, verbose_name='Link URL')), + ('image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), + ('page', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), + ('page_ar', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), + ('page_de', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), + ('page_en_gb', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), + ('page_es', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), + ('page_fr', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), + ('page_ja', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), + ('page_pt', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), + ('page_zh_hans', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='about_uk_articles_fields', to='great_international.AboutUkWhyChooseTheUkPage')), + ], + options={ + 'ordering': ['sort_order'], + 'abstract': False, + }, + bases=(models.Model, great_international.panels.great_international.AboutUkArticleFieldPanels), + ), + ] diff --git a/great_international/migrations/0052_auto_20190723_1147.py b/great_international/migrations/0052_auto_20190723_1147.py index 52aeb177..bb4c1f1b 100644 --- a/great_international/migrations/0052_auto_20190723_1147.py +++ b/great_international/migrations/0052_auto_20190723_1147.py @@ -1,60 +1,60 @@ -# Generated by Django 2.2.3 on 2019-07-23 10:47 - -import core.model_fields -import core.validators -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('great_international', '0051_aboutukarticlesfields_aboutuklandingpage_aboutukwhychoosetheukpage'), - ] - - operations = [ - migrations.AlterField( - model_name='aboutditservicespage', - name='contact_us_section_summary', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), - ), - migrations.AlterField( - model_name='aboutditservicespage', - name='contact_us_section_summary_ar', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), - ), - migrations.AlterField( - model_name='aboutditservicespage', - name='contact_us_section_summary_de', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), - ), - migrations.AlterField( - model_name='aboutditservicespage', - name='contact_us_section_summary_en_gb', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), - ), - migrations.AlterField( - model_name='aboutditservicespage', - name='contact_us_section_summary_es', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), - ), - migrations.AlterField( - model_name='aboutditservicespage', - name='contact_us_section_summary_fr', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), - ), - migrations.AlterField( - model_name='aboutditservicespage', - name='contact_us_section_summary_ja', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), - ), - migrations.AlterField( - model_name='aboutditservicespage', - name='contact_us_section_summary_pt', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), - ), - migrations.AlterField( - model_name='aboutditservicespage', - name='contact_us_section_summary_zh_hans', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), - ), - ] +# Generated by Django 2.2.3 on 2019-07-23 10:47 + +import core.model_fields +import core.validators +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('great_international', '0051_aboutukarticlesfields_aboutuklandingpage_aboutukwhychoosetheukpage'), + ] + + operations = [ + migrations.AlterField( + model_name='aboutditservicespage', + name='contact_us_section_summary', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), + ), + migrations.AlterField( + model_name='aboutditservicespage', + name='contact_us_section_summary_ar', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), + ), + migrations.AlterField( + model_name='aboutditservicespage', + name='contact_us_section_summary_de', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), + ), + migrations.AlterField( + model_name='aboutditservicespage', + name='contact_us_section_summary_en_gb', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), + ), + migrations.AlterField( + model_name='aboutditservicespage', + name='contact_us_section_summary_es', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), + ), + migrations.AlterField( + model_name='aboutditservicespage', + name='contact_us_section_summary_fr', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), + ), + migrations.AlterField( + model_name='aboutditservicespage', + name='contact_us_section_summary_ja', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), + ), + migrations.AlterField( + model_name='aboutditservicespage', + name='contact_us_section_summary_pt', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), + ), + migrations.AlterField( + model_name='aboutditservicespage', + name='contact_us_section_summary_zh_hans', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Summary'), + ), + ] diff --git a/great_international/migrations/0054_auto_20190724_1205.py b/great_international/migrations/0054_auto_20190724_1205.py index 3a350392..2bb94fba 100644 --- a/great_international/migrations/0054_auto_20190724_1205.py +++ b/great_international/migrations/0054_auto_20190724_1205.py @@ -1,287 +1,287 @@ -# Generated by Django 2.2.3 on 2019-07-24 11:05 - -import core.model_fields -import core.validators -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('wagtailimages', '0001_squashed_0021'), - ('great_international', '0053_auto_20190724_0950'), - ] - - operations = [ - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_body', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_body_ar', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_body_de', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_body_en_gb', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_body_es', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_body_fr', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_body_ja', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_body_pt', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_body_zh_hans', - field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_link', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_link_ar', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_link_de', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_link_en_gb', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_link_es', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_link_fr', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_link_ja', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_link_pt', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_link_zh_hans', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_text', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_text_ar', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_text_de', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_text_en_gb', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_text_es', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_text_fr', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_text_ja', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_text_pt', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_cta_text_zh_hans', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_alt_text', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_alt_text_ar', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_alt_text_de', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_alt_text_en_gb', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_alt_text_es', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_alt_text_fr', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_alt_text_ja', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_alt_text_pt', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_alt_text_zh_hans', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_ar', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_de', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_en_gb', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_es', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_fr', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_ja', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_pt', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_image_zh_hans', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_title', - field=models.CharField(blank=True, max_length=255), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_title_ar', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_title_de', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_title_en_gb', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_title_es', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_title_fr', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_title_ja', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_title_pt', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='aboutukwhychoosetheukpage', - name='ebook_section_title_zh_hans', - field=models.CharField(blank=True, max_length=255, null=True), - ), - ] +# Generated by Django 2.2.3 on 2019-07-24 11:05 + +import core.model_fields +import core.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailimages', '0001_squashed_0021'), + ('great_international', '0053_auto_20190724_0950'), + ] + + operations = [ + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_body', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_body_ar', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_body_de', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_body_en_gb', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_body_es', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_body_fr', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_body_ja', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_body_pt', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_body_zh_hans', + field=core.model_fields.MarkdownField(blank=True, null=True, validators=[core.validators.slug_hyperlinks]), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_link', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_link_ar', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_link_de', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_link_en_gb', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_link_es', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_link_fr', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_link_ja', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_link_pt', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_link_zh_hans', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_text', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_text_ar', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_text_de', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_text_en_gb', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_text_es', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_text_fr', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_text_ja', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_text_pt', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_cta_text_zh_hans', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_alt_text', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_alt_text_ar', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_alt_text_de', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_alt_text_en_gb', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_alt_text_es', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_alt_text_fr', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_alt_text_ja', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_alt_text_pt', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_alt_text_zh_hans', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_ar', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_de', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_en_gb', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_es', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_fr', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_ja', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_pt', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_image_zh_hans', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_title', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_title_ar', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_title_de', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_title_en_gb', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_title_es', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_title_fr', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_title_ja', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_title_pt', + field=models.CharField(blank=True, max_length=255, null=True), + ), + migrations.AddField( + model_name='aboutukwhychoosetheukpage', + name='ebook_section_title_zh_hans', + field=models.CharField(blank=True, max_length=255, null=True), + ), + ] diff --git a/requirements.in b/requirements.in index cbd36df5..7ca9b802 100644 --- a/requirements.in +++ b/requirements.in @@ -15,7 +15,7 @@ directory-components==20.* directory-constants==18.* django-staff-sso-client==1.* html2text==2018.1.9 -wagtail==2.7.* +wagtail==2.9.* wagtailmedia==0.* pytube==9.2.2 django-filter==2.2.0 diff --git a/requirements.txt b/requirements.txt index eeffc88b..e49551ca 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ # amqp==2.6.1 # via kombu attrs==19.3.0 # via jsonschema -beautifulsoup4==4.6.0 # via directory-components, wagtail +beautifulsoup4==4.8.2 # via directory-components, wagtail billiard==3.6.3.0 # via celery bleach-whitelist==0.0.11 # via -r requirements.in bleach==3.1.5 # via -r requirements.in @@ -51,6 +51,7 @@ importlib-metadata==1.7.0 # via kombu jmespath==0.10.0 # via boto3, botocore jsonschema==3.0.1 # via directory-components kombu==4.6.11 # via -r requirements.in, celery +l18n==2018.5 # via wagtail markdown==2.6 # via -r requirements.in mohawk==0.3.4 # via sigauth monotonic==1.5 # via notifications-python-client @@ -68,25 +69,27 @@ pyrsistent==0.16.0 # via jsonschema python-crontab==2.5.1 # via django-celery-beat python-dateutil==2.6.1 # via botocore, python-crontab pytube==9.2.2 # via -r requirements.in -pytz==2020.1 # via celery, django, django-modelcluster, django-timezone-field, wagtail +pytz==2020.1 # via celery, django, django-modelcluster, django-timezone-field, l18n redis==3.5.3 # via celery, django-redis requests-oauthlib==1.3.0 # via django-staff-sso-client requests==2.21.0 # via -r requirements.in, notifications-python-client, requests-oauthlib, wagtail s3transfer==0.1.13 # via boto3 sentry-sdk==0.13.4 # via -r requirements.in sigauth==4.1.0 # via -r requirements.in -six==1.15.0 # via bleach, django-modeltranslation, html5lib, jsonschema, mohawk, packaging, pyrsistent, python-dateutil, w3lib, wagtail +six==1.15.0 # via bleach, django-modeltranslation, html5lib, jsonschema, l18n, mohawk, packaging, pyrsistent, python-dateutil, w3lib +soupsieve==2.0.1 # via beautifulsoup4 sqlparse==0.3.1 # via django unidecode==1.1.1 # via wagtail urllib3==1.24.3 # via -r requirements.in, elastic-apm, requests, sentry-sdk vine==1.3.0 # via amqp, celery w3lib==1.22.0 # via -r requirements.in wagtail-modeltranslation==0.10.13 # via -r requirements.in -wagtail==2.7.4 # via -r requirements.in, wagtail-modeltranslation, wagtailmedia +wagtail==2.9.3 # via -r requirements.in, wagtail-modeltranslation, wagtailmedia wagtailmedia==0.5.0 # via -r requirements.in webencodings==0.5.1 # via bleach, html5lib whitenoise==4.1.2 # via -r requirements.in willow==1.3 # via wagtail +xlsxwriter==1.3.3 # via wagtail zipp==3.1.0 # via importlib-metadata zope.event==4.4 # via gevent zope.interface==5.1.0 # via gevent From 4db2cf8059fbc3622407358a043bf26a66f16436 Mon Sep 17 00:00:00 2001 From: alexandros giamas Date: Thu, 20 Aug 2020 15:34:23 +0300 Subject: [PATCH 5/9] updating changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31ad3d3e..408cea5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Implemented enhancements - no-ticket - migrate to codecov remove coveralls +- GAA-31 - Upgrading Wagtail to 2.9 ### Fixed bugs From eff2f6883a4d4cbab55355aed57bb5270b3e0a22 Mon Sep 17 00:00:00 2001 From: Rizwan Mansuri Date: Mon, 24 Aug 2020 10:36:26 +0100 Subject: [PATCH 6/9] Reverting adminendpoint to fix test --- core/views.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/views.py b/core/views.py index 80b6f72c..9895a854 100644 --- a/core/views.py +++ b/core/views.py @@ -5,7 +5,7 @@ from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from rest_framework.views import APIView -from wagtail.api.v2.endpoints import PagesAPIEndpoint +from wagtail.admin.api.endpoints import PagesAdminAPIEndpoint from wagtail.core.models import Orderable, Page, Site from django.conf import settings @@ -27,7 +27,7 @@ logger = getLogger(__name__) -class APIEndpointBase(PagesAPIEndpoint): +class APIEndpointBase(PagesAdminAPIEndpoint): """At the very deep core this is a DRF GenericViewSet, with a few wagtail layers on top. @@ -37,7 +37,7 @@ class APIEndpointBase(PagesAPIEndpoint): queryset = Page.objects.all() meta_fields = [] known_query_parameters = ( - PagesAPIEndpoint.known_query_parameters.union( + PagesAdminAPIEndpoint.known_query_parameters.union( ['lang', 'draft_token', 'service_name'] ) ) From 4244008fb20fe016e24d19e2b87ef2e7eebbd97e Mon Sep 17 00:00:00 2001 From: Rizwan Mansuri Date: Mon, 24 Aug 2020 13:09:05 +0100 Subject: [PATCH 7/9] Fix for admin endpoint for deployment --- core/views.py | 6 +++--- requirements.in | 2 +- requirements.txt | 4 ++-- requirements_test.txt | 25 ++++++++++++++----------- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/core/views.py b/core/views.py index 9895a854..2e4f414a 100644 --- a/core/views.py +++ b/core/views.py @@ -5,7 +5,7 @@ from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from rest_framework.views import APIView -from wagtail.admin.api.endpoints import PagesAdminAPIEndpoint +from wagtail.admin.api.views import PagesAdminAPIViewSet from wagtail.core.models import Orderable, Page, Site from django.conf import settings @@ -27,7 +27,7 @@ logger = getLogger(__name__) -class APIEndpointBase(PagesAdminAPIEndpoint): +class APIEndpointBase(PagesAdminAPIViewSet): """At the very deep core this is a DRF GenericViewSet, with a few wagtail layers on top. @@ -37,7 +37,7 @@ class APIEndpointBase(PagesAdminAPIEndpoint): queryset = Page.objects.all() meta_fields = [] known_query_parameters = ( - PagesAdminAPIEndpoint.known_query_parameters.union( + PagesAdminAPIViewSet.known_query_parameters.union( ['lang', 'draft_token', 'service_name'] ) ) diff --git a/requirements.in b/requirements.in index 7ca9b802..9fb334cf 100644 --- a/requirements.in +++ b/requirements.in @@ -27,7 +27,7 @@ requests==2.21.0 markdown==2.6 bleach==3.* bleach-whitelist==0.* -wagtail-modeltranslation==0.* +wagtail-modeltranslation==0.10.13 urllib3>=1.24.2<2.0.0 w3lib>=1.19.0<2.0.0 django-admin-ip-restrictor==2.1.0 diff --git a/requirements.txt b/requirements.txt index e49551ca..ec8d8b67 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,7 @@ # pip-compile requirements.in # amqp==2.6.1 # via kombu -attrs==19.3.0 # via jsonschema +attrs==20.1.0 # via jsonschema beautifulsoup4==4.8.2 # via directory-components, wagtail billiard==3.6.3.0 # via celery bleach-whitelist==0.0.11 # via -r requirements.in @@ -85,7 +85,7 @@ vine==1.3.0 # via amqp, celery w3lib==1.22.0 # via -r requirements.in wagtail-modeltranslation==0.10.13 # via -r requirements.in wagtail==2.9.3 # via -r requirements.in, wagtail-modeltranslation, wagtailmedia -wagtailmedia==0.5.0 # via -r requirements.in +wagtailmedia==0.6.0 # via -r requirements.in webencodings==0.5.1 # via bleach, html5lib whitenoise==4.1.2 # via -r requirements.in willow==1.3 # via wagtail diff --git a/requirements_test.txt b/requirements_test.txt index 3aa843bb..0736dfe6 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -5,8 +5,8 @@ # pip-compile requirements_test.in # amqp==2.6.1 # via kombu -attrs==19.3.0 # via jsonschema, pytest -beautifulsoup4==4.6.0 # via -r requirements_test.in, directory-components, wagtail +attrs==20.1.0 # via jsonschema, pytest +beautifulsoup4==4.8.2 # via -r requirements_test.in, directory-components, wagtail billiard==3.6.3.0 # via celery bleach-whitelist==0.0.11 # via -r requirements.in bleach==3.1.5 # via -r requirements.in @@ -16,9 +16,9 @@ celery[redis]==4.4.7 # via -r requirements.in, django-celery-beat certifi==2020.6.20 # via elastic-apm, requests, sentry-sdk chardet==3.0.4 # via requests click==7.1.2 # via pip-tools -codecov==2.1.8 # via -r requirements_test.in +codecov==2.1.9 # via -r requirements_test.in coverage==5.2.1 # via codecov, coveralls, pytest-cov -coveralls==2.1.1 # via -r requirements_test.in +coveralls==2.1.2 # via -r requirements_test.in directory-components==20.3.1 # via -r requirements.in directory-constants==18.7.0 # via -r requirements.in, directory-components directory-healthcheck==1.1.2 # via -r requirements.in @@ -45,8 +45,8 @@ docopt==0.6.2 # via coveralls, notifications-python-client, num2word docutils==0.16 # via botocore draftjs-exporter==2.1.7 # via wagtail elastic-apm==5.8.1 # via -r requirements.in -factory-boy==2.12.0 # via -r requirements_test.in, wagtail-factories -faker==4.1.1 # via factory-boy +factory-boy==3.0.1 # via -r requirements_test.in, wagtail-factories +faker==4.1.2 # via factory-boy flake8==3.8.3 # via -r requirements_test.in freezegun==0.3.14 # via -r requirements_test.in future==0.18.2 # via notifications-python-client @@ -61,6 +61,7 @@ iniconfig==1.0.1 # via pytest jmespath==0.10.0 # via boto3, botocore jsonschema==3.0.1 # via directory-components kombu==4.6.11 # via -r requirements.in, celery +l18n==2018.5 # via wagtail markdown==2.6 # via -r requirements.in mccabe==0.6.1 # via flake8 mohawk==0.3.4 # via sigauth @@ -82,14 +83,14 @@ pyflakes==2.2.0 # via flake8 pyjwt==1.7.1 # via notifications-python-client pyparsing==2.4.7 # via packaging pyrsistent==0.16.0 # via jsonschema -pytest-cov==2.10.0 # via -r requirements_test.in +pytest-cov==2.10.1 # via -r requirements_test.in pytest-django==3.9.0 # via -r requirements_test.in pytest-sugar==0.9.4 # via -r requirements_test.in pytest==6.0.1 # via -r requirements_test.in, pytest-cov, pytest-django, pytest-sugar python-crontab==2.5.1 # via django-celery-beat python-dateutil==2.6.1 # via botocore, faker, freezegun, python-crontab pytube==9.2.2 # via -r requirements.in -pytz==2020.1 # via celery, django, django-modelcluster, django-timezone-field, wagtail +pytz==2020.1 # via celery, django, django-modelcluster, django-timezone-field, l18n redis==3.5.3 # via celery, django-redis requests-mock==1.8.0 # via -r requirements_test.in requests-oauthlib==1.3.0 # via django-staff-sso-client @@ -97,7 +98,8 @@ requests==2.21.0 # via -r requirements.in, codecov, coveralls, notifica s3transfer==0.1.13 # via boto3 sentry-sdk==0.13.4 # via -r requirements.in sigauth==4.1.0 # via -r requirements.in -six==1.15.0 # via bleach, django-modeltranslation, freezegun, html5lib, jsonschema, mohawk, packaging, pip-tools, python-dateutil, requests-mock, w3lib, wagtail +six==1.15.0 # via bleach, django-modeltranslation, freezegun, html5lib, jsonschema, l18n, mohawk, packaging, pip-tools, python-dateutil, requests-mock, w3lib +soupsieve==2.0.1 # via beautifulsoup4 sqlparse==0.3.1 # via django, django-debug-toolbar termcolor==1.1.0 # via pytest-sugar text-unidecode==1.3 # via faker @@ -108,11 +110,12 @@ vine==1.3.0 # via amqp, celery w3lib==1.22.0 # via -r requirements.in wagtail-factories==2.0.0 # via -r requirements_test.in wagtail-modeltranslation==0.10.13 # via -r requirements.in -wagtail==2.7.4 # via -r requirements.in, wagtail-factories, wagtail-modeltranslation, wagtailmedia -wagtailmedia==0.5.0 # via -r requirements.in +wagtail==2.9.3 # via -r requirements.in, wagtail-factories, wagtail-modeltranslation, wagtailmedia +wagtailmedia==0.6.0 # via -r requirements.in webencodings==0.5.1 # via bleach, html5lib whitenoise==4.1.2 # via -r requirements.in willow==1.3 # via wagtail +xlsxwriter==1.3.3 # via wagtail zipp==3.1.0 # via importlib-metadata zope.event==4.4 # via gevent zope.interface==5.1.0 # via gevent From fa08c5df05c3d82f7ad8d749c8e74747a39d3b24 Mon Sep 17 00:00:00 2001 From: Rizwan Mansuri Date: Mon, 24 Aug 2020 13:50:15 +0100 Subject: [PATCH 8/9] Fix wagtail upgrade --- requirements_test.in | 2 +- requirements_test.txt | 2 +- tests/users/test_permissions.py | 26 ++++++++++++++------------ 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/requirements_test.in b/requirements_test.in index 13645e9a..03fab5f0 100644 --- a/requirements_test.in +++ b/requirements_test.in @@ -8,7 +8,7 @@ flake8 requests_mock freezegun==0.3.14 coveralls -factory-boy +factory-boy==2.* beautifulsoup4 wagtail-factories django-debug-toolbar diff --git a/requirements_test.txt b/requirements_test.txt index 0736dfe6..d9ac5542 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -45,7 +45,7 @@ docopt==0.6.2 # via coveralls, notifications-python-client, num2word docutils==0.16 # via botocore draftjs-exporter==2.1.7 # via wagtail elastic-apm==5.8.1 # via -r requirements.in -factory-boy==3.0.1 # via -r requirements_test.in, wagtail-factories +factory-boy==2.12.0 # via -r requirements_test.in, wagtail-factories faker==4.1.2 # via factory-boy flake8==3.8.3 # via -r requirements_test.in freezegun==0.3.14 # via -r requirements_test.in diff --git a/tests/users/test_permissions.py b/tests/users/test_permissions.py index 9eba6e0a..f4f70213 100644 --- a/tests/users/test_permissions.py +++ b/tests/users/test_permissions.py @@ -18,16 +18,16 @@ def test_branch_editors_should_only_see_pages_from_their_branch(root_page, inter Editors should only see app pages that share common root page """ env = two_branches_with_users(root_page, international_root_page) - + admin_api_url = reverse('wagtailadmin_api:pages:listing') resp_1 = env.editor_1_client.get( - f'/admin/api/v2beta/pages/?child_of={env.landing_1.pk}&for_explorer=1' + f'{admin_api_url}?child_of={env.landing_1.pk}&for_explorer=1' ) assert resp_1.status_code == status.HTTP_200_OK assert resp_1.json()['meta']['total_count'] == 1 assert resp_1.json()['items'][0]['id'] == env.listing_1.pk resp_2 = env.editor_2_client.get( - f'/admin/api/v2beta/pages/?child_of={env.landing_2.pk}&for_explorer=1' + f'{admin_api_url}?child_of={env.landing_2.pk}&for_explorer=1' ) assert resp_2.status_code == status.HTTP_200_OK assert resp_2.json()['meta']['total_count'] == 1 @@ -64,9 +64,9 @@ def test_branch_moderators_should_only_see_pages_from_their_branch(root_page, in Moderators should only see app pages that share common root page """ env = two_branches_with_users(root_page, international_root_page) - + admin_api_url = reverse('wagtailadmin_api:pages:listing') resp_1 = env.moderator_1_client.get( - f'/admin/api/v2beta/pages/?child_of={env.landing_1.pk}&for_explorer=1' + f'{admin_api_url}?child_of={env.landing_1.pk}&for_explorer=1' ) assert resp_1.status_code == status.HTTP_200_OK assert resp_1.json()['meta']['total_count'] == 1 @@ -134,6 +134,7 @@ def test_moderators_can_approve_revisions_only_for_pages_in_their_branch( ]) def test_branch_user_can_create_child_pages_in_it(branch_factory, root_page): branch = branch_factory.get(root_page) + admin_api_url = reverse('wagtailadmin_api:pages:listing') data = { 'type_of_article': 'Blog', 'article_title': 'test article', @@ -160,7 +161,7 @@ def test_branch_user_can_create_child_pages_in_it(branch_factory, root_page): # check if new page is visible in the 'Pages' menu new_article_id = int(resp_1.url.split('/')[3]) # format is '/admin/pages/6/edit/' # NOQA resp_2 = branch.client.get( - f'/admin/api/v2beta/pages/?child_of={branch.listing.pk}&for_explorer=1' # NOQA + f'{admin_api_url}?child_of={branch.listing.pk}&for_explorer=1' # NOQA ) assert resp_2.status_code == status.HTTP_200_OK assert resp_2.json()['meta']['total_count'] == 2 @@ -466,6 +467,7 @@ def test_moderators_and_admins_can_unpublish_child_pages( branch_factory, root_page ): branch = branch_factory.get(root_page) + admin_api_url = reverse('wagtailadmin_api:pages:listing') resp = branch.client.post( reverse('wagtailadmin_pages:unpublish', args=[branch.article.pk]) @@ -474,7 +476,7 @@ def test_moderators_and_admins_can_unpublish_child_pages( assert int(resp.url.split('/')[3]) == branch.listing.pk # format is /admin/pages/4/ # NOQA resp_2 = branch.client.get( - f'/admin/api/v2beta/pages/?child_of={branch.listing.pk}&for_explorer=1' + f'{admin_api_url}?child_of={branch.listing.pk}&for_explorer=1' ) assert resp_2.status_code == status.HTTP_200_OK article_status = resp_2.json()['items'][0]['meta']['status'] @@ -609,24 +611,24 @@ def test_moderators_cannot_reject_revision_from_other_branch(root_page, internat @pytest.mark.django_db def test_admins_should_be_able_to_access_all_pages_in_any_branch(root_page, international_root_page): env = two_branches_with_users(root_page, international_root_page) - + admin_api_url = reverse('wagtailadmin_api:pages:listing') resp_1 = env.admin_client.get( - f'/admin/api/v2beta/pages/?child_of={env.landing_1.pk}&for_explorer=1' + f'{admin_api_url}?child_of={env.landing_1.pk}&for_explorer=1' ) assert resp_1.status_code == status.HTTP_200_OK resp_2 = env.admin_client.get( - f'/admin/api/v2beta/pages/?child_of={env.landing_2.pk}&for_explorer=1' + f'{admin_api_url}?child_of={env.landing_2.pk}&for_explorer=1' ) assert resp_2.status_code == status.HTTP_200_OK resp_3 = env.admin_client.get( - f'/admin/api/v2beta/pages/?child_of={env.article_1.pk}&for_explorer=1' + f'{admin_api_url}?child_of={env.article_1.pk}&for_explorer=1' ) assert resp_3.status_code == status.HTTP_200_OK resp_4 = env.admin_client.get( - f'/admin/api/v2beta/pages/?child_of={env.article_2.pk}&for_explorer=1' + f'{admin_api_url}?child_of={env.article_2.pk}&for_explorer=1' ) assert resp_4.status_code == status.HTTP_200_OK From 25750238ced65651f572a3b6b7b070c329eac780 Mon Sep 17 00:00:00 2001 From: Rizwan Mansuri Date: Tue, 25 Aug 2020 09:55:03 +0100 Subject: [PATCH 9/9] Wagtail upgrade to 2.10 --- CHANGELOG.md | 1 + requirements.in | 4 ++-- requirements.txt | 16 +++++++++++----- requirements_test.txt | 18 ++++++++++++------ tests/export_readiness/test_views.py | 8 ++++---- tests/users/test_permissions.py | 2 +- 6 files changed, 31 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 408cea5b..cbc4ce74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Pre-release ### Implemented enhancements +- GAA-31 - Upgrading wagtail to 2.10 - no-ticket - migrate to codecov remove coveralls - GAA-31 - Upgrading Wagtail to 2.9 diff --git a/requirements.in b/requirements.in index 9fb334cf..7525ca2e 100644 --- a/requirements.in +++ b/requirements.in @@ -1,5 +1,5 @@ django==2.2.* -djangorestframework==3.9.* +djangorestframework==3.11.* django-environ==0.4.5 gunicorn==19.5.0 sentry-sdk==0.13.4 @@ -15,7 +15,7 @@ directory-components==20.* directory-constants==18.* django-staff-sso-client==1.* html2text==2018.1.9 -wagtail==2.9.* +wagtail==2.10.* wagtailmedia==0.* pytube==9.2.2 django-filter==2.2.0 diff --git a/requirements.txt b/requirements.txt index ec8d8b67..3ef55961 100644 --- a/requirements.txt +++ b/requirements.txt @@ -22,7 +22,7 @@ dj-database-url==0.5.0 # via -r requirements.in django-admin-ip-restrictor==2.1.0 # via -r requirements.in django-celery-beat==2.0.0 # via -r requirements.in django-environ==0.4.5 # via -r requirements.in -django-filter==2.2.0 # via -r requirements.in +django-filter==2.2.0 # via -r requirements.in, wagtail django-health-check==3.8.0 # via directory-healthcheck django-ipware==2.1.0 # via django-admin-ip-restrictor django-modelcluster==5.0.2 # via wagtail @@ -33,13 +33,14 @@ django-staff-sso-client==1.0.1 # via -r requirements.in django-taggit==1.3.0 # via wagtail django-timezone-field==4.0 # via django-celery-beat django-treebeard==4.3.1 # via wagtail -django==2.2.15 # via -r requirements.in, directory-components, directory-constants, directory-healthcheck, django-admin-ip-restrictor, django-celery-beat, django-filter, django-modeltranslation, django-redis, django-staff-sso-client, django-storages, django-taggit, django-timezone-field, django-treebeard, sigauth, wagtail +django==2.2.15 # via -r requirements.in, directory-components, directory-constants, directory-healthcheck, django-admin-ip-restrictor, django-celery-beat, django-filter, django-modeltranslation, django-redis, django-staff-sso-client, django-storages, django-taggit, django-timezone-field, django-treebeard, djangorestframework, sigauth, wagtail django_storages==1.7.1 # via -r requirements.in -djangorestframework==3.9.4 # via -r requirements.in, sigauth, wagtail +djangorestframework==3.11.1 # via -r requirements.in, sigauth, wagtail docopt==0.6.2 # via notifications-python-client, num2words docutils==0.16 # via botocore draftjs-exporter==2.1.7 # via wagtail elastic-apm==5.8.1 # via -r requirements.in +et-xmlfile==1.0.1 # via openpyxl future==0.18.2 # via notifications-python-client gevent==20.6.2 # via -r requirements.in greenlet==0.4.16 # via gevent @@ -48,6 +49,7 @@ html2text==2018.1.9 # via -r requirements.in html5lib==1.1 # via wagtail idna==2.8 # via requests importlib-metadata==1.7.0 # via kombu +jdcal==1.4.1 # via openpyxl jmespath==0.10.0 # via boto3, botocore jsonschema==3.0.1 # via directory-components kombu==4.6.11 # via -r requirements.in, celery @@ -58,6 +60,7 @@ monotonic==1.5 # via notifications-python-client notifications-python-client==5.3.0 # via -r requirements.in num2words==0.5.10 # via -r requirements.in oauthlib==3.1.0 # via requests-oauthlib +openpyxl==3.0.5 # via tablib packaging==20.4 # via bleach pillow==7.2.0 # via -r requirements.in, wagtail psycogreen==1.0.2 # via -r requirements.in @@ -79,17 +82,20 @@ sigauth==4.1.0 # via -r requirements.in six==1.15.0 # via bleach, django-modeltranslation, html5lib, jsonschema, l18n, mohawk, packaging, pyrsistent, python-dateutil, w3lib soupsieve==2.0.1 # via beautifulsoup4 sqlparse==0.3.1 # via django +tablib[xls,xlsx]==2.0.0 # via wagtail unidecode==1.1.1 # via wagtail urllib3==1.24.3 # via -r requirements.in, elastic-apm, requests, sentry-sdk vine==1.3.0 # via amqp, celery w3lib==1.22.0 # via -r requirements.in wagtail-modeltranslation==0.10.13 # via -r requirements.in -wagtail==2.9.3 # via -r requirements.in, wagtail-modeltranslation, wagtailmedia +wagtail==2.10 # via -r requirements.in, wagtail-modeltranslation, wagtailmedia wagtailmedia==0.6.0 # via -r requirements.in webencodings==0.5.1 # via bleach, html5lib whitenoise==4.1.2 # via -r requirements.in -willow==1.3 # via wagtail +willow==1.4 # via wagtail +xlrd==1.2.0 # via tablib xlsxwriter==1.3.3 # via wagtail +xlwt==1.3.0 # via tablib zipp==3.1.0 # via importlib-metadata zope.event==4.4 # via gevent zope.interface==5.1.0 # via gevent diff --git a/requirements_test.txt b/requirements_test.txt index d9ac5542..3bd37a65 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -27,7 +27,7 @@ django-admin-ip-restrictor==2.1.0 # via -r requirements.in django-celery-beat==2.0.0 # via -r requirements.in django-debug-toolbar==2.2 # via -r requirements_test.in django-environ==0.4.5 # via -r requirements.in -django-filter==2.2.0 # via -r requirements.in +django-filter==2.2.0 # via -r requirements.in, wagtail django-health-check==3.8.0 # via directory-healthcheck django-ipware==2.1.0 # via django-admin-ip-restrictor django-modelcluster==5.0.2 # via wagtail @@ -38,13 +38,14 @@ django-staff-sso-client==1.0.1 # via -r requirements.in django-taggit==1.3.0 # via wagtail django-timezone-field==4.0 # via django-celery-beat django-treebeard==4.3.1 # via wagtail -django==2.2.15 # via -r requirements.in, directory-components, directory-constants, directory-healthcheck, django-admin-ip-restrictor, django-celery-beat, django-debug-toolbar, django-filter, django-modeltranslation, django-redis, django-staff-sso-client, django-storages, django-taggit, django-timezone-field, django-treebeard, sigauth, wagtail +django==2.2.15 # via -r requirements.in, directory-components, directory-constants, directory-healthcheck, django-admin-ip-restrictor, django-celery-beat, django-debug-toolbar, django-filter, django-modeltranslation, django-redis, django-staff-sso-client, django-storages, django-taggit, django-timezone-field, django-treebeard, djangorestframework, sigauth, wagtail django_storages==1.7.1 # via -r requirements.in -djangorestframework==3.9.4 # via -r requirements.in, sigauth, wagtail +djangorestframework==3.11.1 # via -r requirements.in, sigauth, wagtail docopt==0.6.2 # via coveralls, notifications-python-client, num2words docutils==0.16 # via botocore draftjs-exporter==2.1.7 # via wagtail elastic-apm==5.8.1 # via -r requirements.in +et-xmlfile==1.0.1 # via openpyxl factory-boy==2.12.0 # via -r requirements_test.in, wagtail-factories faker==4.1.2 # via factory-boy flake8==3.8.3 # via -r requirements_test.in @@ -58,6 +59,7 @@ html5lib==1.1 # via wagtail idna==2.8 # via requests importlib-metadata==1.7.0 # via flake8, kombu, pluggy, pytest iniconfig==1.0.1 # via pytest +jdcal==1.4.1 # via openpyxl jmespath==0.10.0 # via boto3, botocore jsonschema==3.0.1 # via directory-components kombu==4.6.11 # via -r requirements.in, celery @@ -70,6 +72,7 @@ more-itertools==8.4.0 # via pytest notifications-python-client==5.3.0 # via -r requirements.in num2words==0.5.10 # via -r requirements.in oauthlib==3.1.0 # via requests-oauthlib +openpyxl==3.0.5 # via tablib packaging==20.4 # via bleach, pytest, pytest-sugar pillow==7.2.0 # via -r requirements.in, wagtail pip-tools==5.3.1 # via -r requirements_test.in @@ -98,9 +101,10 @@ requests==2.21.0 # via -r requirements.in, codecov, coveralls, notifica s3transfer==0.1.13 # via boto3 sentry-sdk==0.13.4 # via -r requirements.in sigauth==4.1.0 # via -r requirements.in -six==1.15.0 # via bleach, django-modeltranslation, freezegun, html5lib, jsonschema, l18n, mohawk, packaging, pip-tools, python-dateutil, requests-mock, w3lib +six==1.15.0 # via bleach, django-modeltranslation, freezegun, html5lib, jsonschema, l18n, mohawk, packaging, pip-tools, pyrsistent, python-dateutil, requests-mock, w3lib soupsieve==2.0.1 # via beautifulsoup4 sqlparse==0.3.1 # via django, django-debug-toolbar +tablib[xls,xlsx]==2.0.0 # via wagtail termcolor==1.1.0 # via pytest-sugar text-unidecode==1.3 # via faker toml==0.10.1 # via pytest @@ -110,12 +114,14 @@ vine==1.3.0 # via amqp, celery w3lib==1.22.0 # via -r requirements.in wagtail-factories==2.0.0 # via -r requirements_test.in wagtail-modeltranslation==0.10.13 # via -r requirements.in -wagtail==2.9.3 # via -r requirements.in, wagtail-factories, wagtail-modeltranslation, wagtailmedia +wagtail==2.10 # via -r requirements.in, wagtail-factories, wagtail-modeltranslation, wagtailmedia wagtailmedia==0.6.0 # via -r requirements.in webencodings==0.5.1 # via bleach, html5lib whitenoise==4.1.2 # via -r requirements.in -willow==1.3 # via wagtail +willow==1.4 # via wagtail +xlrd==1.2.0 # via tablib xlsxwriter==1.3.3 # via wagtail +xlwt==1.3.0 # via tablib zipp==3.1.0 # via importlib-metadata zope.event==4.4 # via gevent zope.interface==5.1.0 # via gevent diff --git a/tests/export_readiness/test_views.py b/tests/export_readiness/test_views.py index 888edcda..08506fc8 100644 --- a/tests/export_readiness/test_views.py +++ b/tests/export_readiness/test_views.py @@ -205,14 +205,14 @@ def test_industry_tags_list_endpoint(client): { 'id': tag1.pk, 'name': tag1.name, - 'icon': {'url': ANY, 'width': 100, 'height': 100}, - 'pages_count': 2 + 'icon': {'url': ANY, 'width': 100, 'height': 100, 'alt': 'An image'}, + 'pages_count': 2, }, { 'id': tag2.pk, 'name': tag2.name, - 'icon': {'url': ANY, 'width': 100, 'height': 100}, - 'pages_count': 1 + 'icon': {'url': ANY, 'width': 100, 'height': 100, 'alt': 'An image'}, + 'pages_count': 1, } ] diff --git a/tests/users/test_permissions.py b/tests/users/test_permissions.py index f4f70213..0c84a01a 100644 --- a/tests/users/test_permissions.py +++ b/tests/users/test_permissions.py @@ -343,7 +343,7 @@ def test_branch_user_can_submit_changes_for_moderation( ) # on success, user should be redirected on parent page listing assert resp.status_code == status.HTTP_302_FOUND, resp.context['form'].errors # NOQA - assert int(resp.url.split('/')[3]) == branch.listing.pk # format is /admin/pages/3/ # NOQA + assert int(resp.url.split('/')[3]) == branch.article.pk # format is /admin/pages/3/ # NOQA @pytest.mark.django_db