From 5ec25ef4635f4dd3e00db6a7050771eb96b76a03 Mon Sep 17 00:00:00 2001 From: Tim Patterson Date: Mon, 27 Feb 2023 17:19:07 +0000 Subject: [PATCH 1/9] Updated changelog --- CHANGELOG.md | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d12c139e..2778395c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,40 @@ # Changelog -## Upgraded Django version --upgraded version to 3.2.18 ## Pre-release -* KLS-205 - Upgrade django and wagtail + ### Implemented enhancements -* KLS-249 - Add ability to get related investment opportunities by investment_type + +## [2.9.2](https://github.com/uktrade/directory-cms/releases/tag/2.9.2) +[Full Changelog](https://github.com/uktrade/directory-cms/compare/2.9.1...2.9.2) + +### Implemented enhancements +* KLS-411 - Upgraded Cryptography to 39.0.1 + +## [2.9.1](https://github.com/uktrade/directory-cms/releases/tag/2.9.1) +[Full Changelog](https://github.com/uktrade/directory-cms/compare/2.9.0...2.9.1) + +### Implemented enhancements +* Upgraded Django version to 3.2.18 +## [2.9.0](https://github.com/uktrade/directory-cms/releases/tag/2.9.0) +[Full Changelog](https://github.com/uktrade/directory-cms/compare/2.8.0...2.9.0) +### Implemented enhancements * KLS-288 patch django v3.2.16 ### Fixed bugs Fix for elastic apm failure in pipeline +## [2.8.0](https://github.com/uktrade/directory-cms/releases/tag/2.8.0) +[Full Changelog](https://github.com/uktrade/directory-cms/compare/2.7.0...2.8.0) +### Implemented enhancements +* KLS-205 - Upgrade django and wagtail + +## [2.7.0](https://github.com/uktrade/directory-cms/releases/tag/2.7.0) +[Full Changelog](https://github.com/uktrade/directory-cms/compare/2.6.0...2.7.0) +### Implemented enhancements +* KLS-249 - Add ability to get related investment opportunities by investment_type + ## [2.6.0](https://github.com/uktrade/directory-cms/releases/tag/2.6.0) [Full Changelog](https://github.com/uktrade/directory-cms/compare/2.5.1...2.6.0) From aa9a747f18312e1411927999436f3a95d092830a Mon Sep 17 00:00:00 2001 From: LuptonM Date: Tue, 28 Feb 2023 16:55:21 +0000 Subject: [PATCH 2/9] add hero_image and hero_video to article page for freeports work --- .gitignore | 2 +- core/constants.py | 1 + .../migrations/0159_auto_20230228_1653.py | 151 ++++++++++++++++++ .../models/great_international.py | 28 +++- .../panels/great_international.py | 12 +- great_international/serializers.py | 2 + great_international/translation.py | 3 + 7 files changed, 188 insertions(+), 11 deletions(-) create mode 100644 great_international/migrations/0159_auto_20230228_1653.py diff --git a/.gitignore b/.gitignore index 609e29b8..02305bc4 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ __pycache__/ staticfiles BrowserStackLocal node_modules/ - +venv/ .env ENV/ diff --git a/core/constants.py b/core/constants.py index e736a1b8..b8ddd39f 100644 --- a/core/constants.py +++ b/core/constants.py @@ -13,4 +13,5 @@ ('Advice', 'Advice'), ('Case study', 'Case study'), ('Campaign', 'Campaign'), + ('Freeport landing', 'Freeport landing') ] diff --git a/great_international/migrations/0159_auto_20230228_1653.py b/great_international/migrations/0159_auto_20230228_1653.py new file mode 100644 index 00000000..cca5fc92 --- /dev/null +++ b/great_international/migrations/0159_auto_20230228_1653.py @@ -0,0 +1,151 @@ +# Generated by Django 3.2.18 on 2023-02-28 16:53 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailmedia', '0003_copy_media_permissions_to_collections'), + ('wagtailimages', '0023_add_choose_permissions'), + ('great_international', '0158_add_get_related_opportunities_by_field'), + ] + + operations = [ + migrations.AddField( + model_name='internationalarticlepage', + name='hero_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='internationalarticlepage', + name='hero_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='internationalarticlepage', + name='hero_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='internationalarticlepage', + name='hero_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='internationalarticlepage', + name='hero_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='internationalarticlepage', + name='hero_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='internationalarticlepage', + name='hero_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='internationalarticlepage', + name='hero_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='internationalarticlepage', + name='hero_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='internationalarticlepage', + name='hero_video', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailmedia.media'), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='hero_video_ar', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailmedia.media'), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='hero_video_de', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailmedia.media'), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='hero_video_en_gb', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailmedia.media'), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='hero_video_es', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailmedia.media'), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='hero_video_fr', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailmedia.media'), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='hero_video_ja', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailmedia.media'), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='hero_video_pt', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailmedia.media'), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='hero_video_zh_hans', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailmedia.media'), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='type_of_article_ar', + field=models.TextField(blank=True, choices=[('Blog', 'Blog'), ('Advice', 'Advice'), ('Case study', 'Case study'), ('Campaign', 'Campaign'), ('Freeport landing', 'Freeport landing')], null=True), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='type_of_article_de', + field=models.TextField(blank=True, choices=[('Blog', 'Blog'), ('Advice', 'Advice'), ('Case study', 'Case study'), ('Campaign', 'Campaign'), ('Freeport landing', 'Freeport landing')], null=True), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='type_of_article_en_gb', + field=models.TextField(blank=True, choices=[('Blog', 'Blog'), ('Advice', 'Advice'), ('Case study', 'Case study'), ('Campaign', 'Campaign'), ('Freeport landing', 'Freeport landing')], null=True), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='type_of_article_es', + field=models.TextField(blank=True, choices=[('Blog', 'Blog'), ('Advice', 'Advice'), ('Case study', 'Case study'), ('Campaign', 'Campaign'), ('Freeport landing', 'Freeport landing')], null=True), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='type_of_article_fr', + field=models.TextField(blank=True, choices=[('Blog', 'Blog'), ('Advice', 'Advice'), ('Case study', 'Case study'), ('Campaign', 'Campaign'), ('Freeport landing', 'Freeport landing')], null=True), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='type_of_article_ja', + field=models.TextField(blank=True, choices=[('Blog', 'Blog'), ('Advice', 'Advice'), ('Case study', 'Case study'), ('Campaign', 'Campaign'), ('Freeport landing', 'Freeport landing')], null=True), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='type_of_article_pt', + field=models.TextField(blank=True, choices=[('Blog', 'Blog'), ('Advice', 'Advice'), ('Case study', 'Case study'), ('Campaign', 'Campaign'), ('Freeport landing', 'Freeport landing')], null=True), + ), + migrations.AddField( + model_name='internationalarticlepage', + name='type_of_article_zh_hans', + field=models.TextField(blank=True, choices=[('Blog', 'Blog'), ('Advice', 'Advice'), ('Case study', 'Case study'), ('Campaign', 'Campaign'), ('Freeport landing', 'Freeport landing')], null=True), + ), + migrations.AlterField( + model_name='internationalarticlepage', + name='type_of_article', + field=models.TextField(blank=True, choices=[('Blog', 'Blog'), ('Advice', 'Advice'), ('Case study', 'Case study'), ('Campaign', 'Campaign'), ('Freeport landing', 'Freeport landing')], null=True), + ), + ] diff --git a/great_international/models/great_international.py b/great_international/models/great_international.py index 75a56de8..5d6f9a9a 100644 --- a/great_international/models/great_international.py +++ b/great_international/models/great_international.py @@ -4,7 +4,8 @@ from wagtail.core.blocks import PageChooserBlock from wagtail.core.fields import StreamField from wagtail.core.models import Orderable - +from wagtail.images.blocks import ImageChooserBlock +from wagtailmedia.blocks import AbstractMediaChooserBlock from core.constants import ARTICLE_TYPES from core.fields import single_struct_block_stream_field_factory from core.mixins import ServiceHomepageMixin @@ -12,8 +13,8 @@ from core.models import WagtailAdminExclusivePageMixin from export_readiness import snippets from great_international.blocks import great_international as blocks +from wagtail.core import blocks as wagtailblocks from great_international.panels import great_international as panels - from . import find_a_supplier as fas_models from .base import BaseInternationalPage @@ -189,7 +190,6 @@ def allowed_subpage_models(cls): fas_models.InternationalTradeHomePage, ] - class InternationalArticlePage(panels.InternationalArticlePagePanels, BaseInternationalPage): parent_page_types = [ 'great_international.InternationalArticleListingPage', @@ -200,8 +200,24 @@ class InternationalArticlePage(panels.InternationalArticlePagePanels, BaseIntern ] subpage_types = [] - type_of_article = models.TextField(choices=ARTICLE_TYPES, null=True) - + type_of_article = models.TextField(choices=ARTICLE_TYPES, null=True, blank =True) + + hero_image = models.ForeignKey( + 'wagtailimages.Image', + null=True, + blank=True, + on_delete=models.SET_NULL, + related_name='+' + ) + + hero_video = models.ForeignKey( + 'wagtailmedia.Media', + null=True, + blank=True, + on_delete=models.SET_NULL, + related_name='+', + ) + article_title = models.TextField() article_subheading = models.TextField( blank=True, @@ -434,7 +450,7 @@ class InternationalTopicLandingPage(panels.InternationalTopicLandingPagePanels, ] landing_page_title = models.CharField(max_length=255) - + #actuially this is the one hero_image = models.ForeignKey( 'wagtailimages.Image', null=True, diff --git a/great_international/panels/great_international.py b/great_international/panels/great_international.py index f28c0ce0..f4ee6863 100644 --- a/great_international/panels/great_international.py +++ b/great_international/panels/great_international.py @@ -7,13 +7,15 @@ MultiFieldPanel, ObjectList, PageChooserPanel, - StreamFieldPanel, + StreamFieldPanel ) + from wagtail.documents.edit_handlers import DocumentChooserPanel from wagtail.images.edit_handlers import ImageChooserPanel from wagtailmedia.edit_handlers import MediaChooserPanel from wagtailmedia.widgets import AdminMediaChooser - +from wagtail.images.blocks import ImageChooserBlock +from wagtailmedia.blocks import AbstractMediaChooserBlock from core.helpers import make_translated_interface from core.panels import SearchEngineOptimisationPanel @@ -276,13 +278,15 @@ class BaseInternationalSectorPagePanels: content_panels=content_panels, settings_panels=settings_panels ) - - + class InternationalArticlePagePanels: content_panels = [ FieldPanel('title'), FieldPanel('article_title'), + FieldPanel('type_of_article'), + ImageChooserPanel('hero_image'), + MediaChooserPanel('hero_video'), MultiFieldPanel( heading='Article content', children=[ diff --git a/great_international/serializers.py b/great_international/serializers.py index 898c899e..561d4a68 100644 --- a/great_international/serializers.py +++ b/great_international/serializers.py @@ -295,6 +295,8 @@ class InternationalArticlePageSerializer(BasePageSerializer): display_title = serializers.CharField(source='article_title') article_title = serializers.CharField() article_teaser = serializers.CharField() + hero_image = wagtail_fields.ImageRenditionField('original') + hero_video = core_fields.VideoField() article_subheading = serializers.CharField() article_image = wagtail_fields.ImageRenditionField('original') diff --git a/great_international/translation.py b/great_international/translation.py index c2004bf0..e76a6d5b 100644 --- a/great_international/translation.py +++ b/great_international/translation.py @@ -9,6 +9,9 @@ class InternationalArticlePageTranslationOptions(BaseTranslationOptions): fields = ( 'article_title', 'article_subheading', + 'hero_image', + 'hero_video', + 'type_of_article', 'article_teaser', 'article_body_text', 'cta_title', From 40982ebf699e34f6674ce1d5cbdc7b9df87ee088 Mon Sep 17 00:00:00 2001 From: LuptonM Date: Tue, 28 Feb 2023 17:20:14 +0000 Subject: [PATCH 3/9] flake errors --- great_international/models/great_international.py | 5 ++--- great_international/panels/great_international.py | 4 +--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/great_international/models/great_international.py b/great_international/models/great_international.py index 5d6f9a9a..9ce1c3ae 100644 --- a/great_international/models/great_international.py +++ b/great_international/models/great_international.py @@ -4,8 +4,6 @@ from wagtail.core.blocks import PageChooserBlock from wagtail.core.fields import StreamField from wagtail.core.models import Orderable -from wagtail.images.blocks import ImageChooserBlock -from wagtailmedia.blocks import AbstractMediaChooserBlock from core.constants import ARTICLE_TYPES from core.fields import single_struct_block_stream_field_factory from core.mixins import ServiceHomepageMixin @@ -13,7 +11,6 @@ from core.models import WagtailAdminExclusivePageMixin from export_readiness import snippets from great_international.blocks import great_international as blocks -from wagtail.core import blocks as wagtailblocks from great_international.panels import great_international as panels from . import find_a_supplier as fas_models from .base import BaseInternationalPage @@ -191,6 +188,7 @@ def allowed_subpage_models(cls): ] class InternationalArticlePage(panels.InternationalArticlePagePanels, BaseInternationalPage): + parent_page_types = [ 'great_international.InternationalArticleListingPage', 'great_international.InternationalCampaignPage', @@ -198,6 +196,7 @@ class InternationalArticlePage(panels.InternationalArticlePagePanels, BaseIntern 'great_international.WhyInvestInTheUKPage', 'great_international.InvestmentGeneralContentPage', ] + subpage_types = [] type_of_article = models.TextField(choices=ARTICLE_TYPES, null=True, blank =True) diff --git a/great_international/panels/great_international.py b/great_international/panels/great_international.py index f4ee6863..aa852636 100644 --- a/great_international/panels/great_international.py +++ b/great_international/panels/great_international.py @@ -14,8 +14,6 @@ from wagtail.images.edit_handlers import ImageChooserPanel from wagtailmedia.edit_handlers import MediaChooserPanel from wagtailmedia.widgets import AdminMediaChooser -from wagtail.images.blocks import ImageChooserBlock -from wagtailmedia.blocks import AbstractMediaChooserBlock from core.helpers import make_translated_interface from core.panels import SearchEngineOptimisationPanel @@ -280,7 +278,7 @@ class BaseInternationalSectorPagePanels: ) class InternationalArticlePagePanels: - + content_panels = [ FieldPanel('title'), FieldPanel('article_title'), From 30d943dad7cb71f56e3ec3074331902ad99a4455 Mon Sep 17 00:00:00 2001 From: LuptonM Date: Wed, 1 Mar 2023 14:09:52 +0000 Subject: [PATCH 4/9] format fix --- great_international/models/great_international.py | 14 +++++++------- great_international/panels/great_international.py | 5 +++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/great_international/models/great_international.py b/great_international/models/great_international.py index 9ce1c3ae..bea443b1 100644 --- a/great_international/models/great_international.py +++ b/great_international/models/great_international.py @@ -187,8 +187,9 @@ def allowed_subpage_models(cls): fas_models.InternationalTradeHomePage, ] + class InternationalArticlePage(panels.InternationalArticlePagePanels, BaseInternationalPage): - + parent_page_types = [ 'great_international.InternationalArticleListingPage', 'great_international.InternationalCampaignPage', @@ -196,11 +197,11 @@ class InternationalArticlePage(panels.InternationalArticlePagePanels, BaseIntern 'great_international.WhyInvestInTheUKPage', 'great_international.InvestmentGeneralContentPage', ] - + subpage_types = [] - type_of_article = models.TextField(choices=ARTICLE_TYPES, null=True, blank =True) - + type_of_article = models.TextField(choices=ARTICLE_TYPES, null=True, blank=True) + hero_image = models.ForeignKey( 'wagtailimages.Image', null=True, @@ -208,7 +209,7 @@ class InternationalArticlePage(panels.InternationalArticlePagePanels, BaseIntern on_delete=models.SET_NULL, related_name='+' ) - + hero_video = models.ForeignKey( 'wagtailmedia.Media', null=True, @@ -216,7 +217,6 @@ class InternationalArticlePage(panels.InternationalArticlePagePanels, BaseIntern on_delete=models.SET_NULL, related_name='+', ) - article_title = models.TextField() article_subheading = models.TextField( blank=True, @@ -449,7 +449,7 @@ class InternationalTopicLandingPage(panels.InternationalTopicLandingPagePanels, ] landing_page_title = models.CharField(max_length=255) - #actuially this is the one + hero_image = models.ForeignKey( 'wagtailimages.Image', null=True, diff --git a/great_international/panels/great_international.py b/great_international/panels/great_international.py index aa852636..4566420c 100644 --- a/great_international/panels/great_international.py +++ b/great_international/panels/great_international.py @@ -276,9 +276,10 @@ class BaseInternationalSectorPagePanels: content_panels=content_panels, settings_panels=settings_panels ) - + + class InternationalArticlePagePanels: - + content_panels = [ FieldPanel('title'), FieldPanel('article_title'), From 449cb440b15185c36c86a7108c7600c1a7b8c032 Mon Sep 17 00:00:00 2001 From: LuptonM Date: Wed, 1 Mar 2023 15:33:31 +0000 Subject: [PATCH 5/9] rename migration --- ...9_added_hero_video_and_image_to_International_article_page.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename great_international/migrations/{0159_auto_20230228_1653.py => 0159_added_hero_video_and_image_to_International_article_page.py} (100%) diff --git a/great_international/migrations/0159_auto_20230228_1653.py b/great_international/migrations/0159_added_hero_video_and_image_to_International_article_page.py similarity index 100% rename from great_international/migrations/0159_auto_20230228_1653.py rename to great_international/migrations/0159_added_hero_video_and_image_to_International_article_page.py From b230cdaef54cbbdb43c61304922dee04ee608292 Mon Sep 17 00:00:00 2001 From: Tim Patterson Date: Wed, 8 Mar 2023 09:24:09 +0000 Subject: [PATCH 6/9] Set Wagtail version to 2.15.* (LTS) --- requirements.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.in b/requirements.in index 306f0b7f..619bb343 100644 --- a/requirements.in +++ b/requirements.in @@ -26,7 +26,7 @@ requests[security]==2.27.1 markdown==2.* bleach==3.* bleach-whitelist==0.* -wagtail==2.16.* +wagtail==2.15.* wagtail-modeltranslation==0.11.0 django-modeltranslation==0.18.2 urllib3==1.26.* @@ -36,7 +36,7 @@ notifications-python-client==6.3.* num2words==0.5.10 pycountry==19.8.18 elastic-apm>6.0 -gevent==21.8.0 +gevent==22.10.* psycogreen==1.0.2 wagtailmedia==0.5.0 cryptography==39.* From ecd3646b459330246b04bfd367349e1af13eaf6a Mon Sep 17 00:00:00 2001 From: Tim Patterson Date: Wed, 8 Mar 2023 10:01:24 +0000 Subject: [PATCH 7/9] Replace MarkdownTextarea with standard Django forms Textarea --- .../blocks/great_international.py | 6 +-- requirements.txt | 38 +++++++--------- requirements_test.txt | 44 ++++++++----------- 3 files changed, 36 insertions(+), 52 deletions(-) diff --git a/great_international/blocks/great_international.py b/great_international/blocks/great_international.py index 3cd232b5..af2ecc29 100644 --- a/great_international/blocks/great_international.py +++ b/great_international/blocks/great_international.py @@ -5,15 +5,15 @@ from core import blocks as core_blocks from core.helpers import render_markdown -from core.widgets import MarkdownTextarea +from django.utils.safestring import mark_safe class MarkdownBlock(blocks.FieldBlock): - def __init__(self, required=True, help_text=None, **kwargs): + def __init__(self, required=True, help_text=mark_safe('Enter content in Markdown format - Guide '), **kwargs): self.field = forms.CharField( required=required, help_text=help_text, - widget=MarkdownTextarea(), + widget=forms.Textarea(), ) super().__init__(**kwargs) diff --git a/requirements.txt b/requirements.txt index 01824e2a..23f7f092 100644 --- a/requirements.txt +++ b/requirements.txt @@ -61,10 +61,8 @@ click-repl==0.2.0 # via celery colorama==0.4.6 # via twine -cryptography==39.0.1 - # via - # -r requirements.in - # secretstorage +cryptography==39.0.2 + # via -r requirements.in directory-components==38.2.1 # via -r requirements.in directory-constants==22.0.2 @@ -101,7 +99,7 @@ django-admin-ip-restrictor==2.2.0 # via -r requirements.in django-celery-beat==2.2.1 # via -r requirements.in -django-environ==0.9.0 +django-environ==0.10.0 # via -r requirements.in django-filter==21.1 # via @@ -125,7 +123,7 @@ django-staff-sso-client==4.1.1 # via -r requirements.in django-storages==1.13.2 # via -r requirements.in -django-taggit==2.1.0 +django-taggit==1.5.1 # via wagtail django-timezone-field==4.2.3 # via django-celery-beat @@ -144,13 +142,13 @@ docutils==0.19 # via readme-renderer draftjs-exporter==2.1.7 # via wagtail -elastic-apm==6.15.0 +elastic-apm==6.15.1 # via -r requirements.in et-xmlfile==1.1.0 # via openpyxl -gevent==21.8.0 +gevent==22.10.2 # via -r requirements.in -greenlet==1.1.3.post0 +greenlet==2.0.2 # via gevent gunicorn==20.1.0 # via -r requirements.in @@ -166,10 +164,6 @@ importlib-metadata==6.0.0 # twine jaraco-classes==3.2.3 # via keyring -jeepney==0.8.0 - # via - # keyring - # secretstorage jmespath==1.0.1 # via # boto3 @@ -188,7 +182,7 @@ markdown==2.6.11 # via -r requirements.in mohawk==1.1.0 # via sigauth -more-itertools==9.0.0 +more-itertools==9.1.0 # via jaraco-classes notifications-python-client==6.3.0 # via -r requirements.in @@ -206,7 +200,7 @@ pillow==9.4.0 # via wagtail pkginfo==1.9.6 # via twine -prompt-toolkit==3.0.36 +prompt-toolkit==3.0.38 # via click-repl psycogreen==1.0.2 # via -r requirements.in @@ -260,9 +254,7 @@ rfc3986==2.0.0 # via twine s3transfer==0.6.0 # via boto3 -secretstorage==3.3.3 - # via keyring -sentry-sdk==1.15.0 +sentry-sdk==1.16.0 # via -r requirements.in sigauth==5.1.1 # via -r requirements.in @@ -286,7 +278,7 @@ tablib[xls,xlsx]==3.3.0 # via wagtail telepath==0.3 # via wagtail -tqdm==4.64.1 +tqdm==4.65.0 # via twine twine==3.8.0 # via wagtail-modeltranslation @@ -305,7 +297,7 @@ vine==5.0.0 # kombu w3lib==1.22 # via -r requirements.in -wagtail==2.16.3 +wagtail==2.15.6 # via # -r requirements.in # wagtail-modeltranslation @@ -320,11 +312,11 @@ webencodings==0.5.1 # via # bleach # html5lib -whitenoise==6.3.0 +whitenoise==6.4.0 # via -r requirements.in willow==1.4.1 # via wagtail -wrapt==1.14.1 +wrapt==1.15.0 # via elastic-apm xlrd==2.0.1 # via tablib @@ -332,7 +324,7 @@ xlsxwriter==3.0.8 # via wagtail xlwt==1.3.0 # via tablib -zipp==3.14.0 +zipp==3.15.0 # via importlib-metadata zope-event==4.6 # via gevent diff --git a/requirements_test.txt b/requirements_test.txt index 876f5751..4b3fb12f 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -75,10 +75,8 @@ coverage[toml]==6.5.0 # pytest-cov coveralls==3.3.1 # via -r requirements_test.in -cryptography==39.0.1 - # via - # -r requirements.in - # secretstorage +cryptography==39.0.2 + # via -r requirements.in directory-components==38.2.1 # via -r requirements.in directory-constants==22.0.2 @@ -118,7 +116,7 @@ django-celery-beat==2.2.1 # via -r requirements.in django-debug-toolbar==3.2.4 # via -r requirements_test.in -django-environ==0.9.0 +django-environ==0.10.0 # via -r requirements.in django-filter==21.1 # via @@ -142,7 +140,7 @@ django-staff-sso-client==4.1.1 # via -r requirements.in django-storages==1.13.2 # via -r requirements.in -django-taggit==2.1.0 +django-taggit==1.5.1 # via wagtail django-timezone-field==4.2.3 # via django-celery-beat @@ -162,7 +160,7 @@ docutils==0.19 # via readme-renderer draftjs-exporter==2.1.7 # via wagtail -elastic-apm==6.15.0 +elastic-apm==6.15.1 # via -r requirements.in et-xmlfile==1.1.0 # via openpyxl @@ -172,15 +170,15 @@ factory-boy==2.12.0 # via # -r requirements_test.in # wagtail-factories -faker==17.0.0 +faker==17.6.0 # via factory-boy flake8==6.0.0 # via -r requirements_test.in freezegun==0.3.14 # via -r requirements_test.in -gevent==21.8.0 +gevent==22.10.2 # via -r requirements.in -greenlet==1.1.3.post0 +greenlet==2.0.2 # via gevent gunicorn==20.1.0 # via -r requirements.in @@ -198,10 +196,6 @@ iniconfig==2.0.0 # via pytest jaraco-classes==3.2.3 # via keyring -jeepney==0.8.0 - # via - # keyring - # secretstorage jmespath==1.0.1 # via # boto3 @@ -222,7 +216,7 @@ mccabe==0.7.0 # via flake8 mohawk==1.1.0 # via sigauth -more-itertools==9.0.0 +more-itertools==9.1.0 # via jaraco-classes notifications-python-client==6.3.0 # via -r requirements.in @@ -242,13 +236,13 @@ packaging==23.0 # pytest-sugar pillow==9.4.0 # via wagtail -pip-tools==6.12.2 +pip-tools==6.12.3 # via -r requirements_test.in pkginfo==1.9.6 # via twine pluggy==1.0.0 # via pytest -prompt-toolkit==3.0.36 +prompt-toolkit==3.0.38 # via click-repl psycogreen==1.0.2 # via -r requirements.in @@ -270,7 +264,7 @@ pyproject-hooks==1.0.0 # via build pyrsistent==0.19.3 # via jsonschema -pytest==7.2.1 +pytest==7.2.2 # via # -r requirements_test.in # pytest-cov @@ -327,9 +321,7 @@ rfc3986==2.0.0 # via twine s3transfer==0.6.0 # via boto3 -secretstorage==3.3.3 - # via keyring -sentry-sdk==1.15.0 +sentry-sdk==1.16.0 # via -r requirements.in sigauth==5.1.1 # via -r requirements.in @@ -365,7 +357,7 @@ tomli==2.0.1 # coverage # pyproject-hooks # pytest -tqdm==4.64.1 +tqdm==4.65.0 # via twine twine==3.8.0 # via wagtail-modeltranslation @@ -384,7 +376,7 @@ vine==5.0.0 # kombu w3lib==1.22 # via -r requirements.in -wagtail==2.16.3 +wagtail==2.15.6 # via # -r requirements.in # wagtail-factories @@ -404,11 +396,11 @@ webencodings==0.5.1 # html5lib wheel==0.38.4 # via pip-tools -whitenoise==6.3.0 +whitenoise==6.4.0 # via -r requirements.in willow==1.4.1 # via wagtail -wrapt==1.14.1 +wrapt==1.15.0 # via elastic-apm xlrd==2.0.1 # via tablib @@ -416,7 +408,7 @@ xlsxwriter==3.0.8 # via wagtail xlwt==1.3.0 # via tablib -zipp==3.14.0 +zipp==3.15.0 # via importlib-metadata zope-event==4.6 # via gevent From 62574c7c62532357222df4f326550ea4a90c8dd6 Mon Sep 17 00:00:00 2001 From: Tim Patterson Date: Wed, 8 Mar 2023 16:54:11 +0000 Subject: [PATCH 8/9] Update changelog --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2778395c..083b64f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,8 @@ ## Pre-release - - +### Fixed bugs +* KLS-358 - Missing content on Investment Opportunity content editing panels ### Implemented enhancements ## [2.9.2](https://github.com/uktrade/directory-cms/releases/tag/2.9.2) From 7f920d6aad46e31328ecd5ff3df606d3e99b7c1a Mon Sep 17 00:00:00 2001 From: Tim Patterson Date: Wed, 8 Mar 2023 17:19:02 +0000 Subject: [PATCH 9/9] Fix flake8 long line error --- great_international/blocks/great_international.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/great_international/blocks/great_international.py b/great_international/blocks/great_international.py index af2ecc29..dcfbde0e 100644 --- a/great_international/blocks/great_international.py +++ b/great_international/blocks/great_international.py @@ -9,7 +9,9 @@ class MarkdownBlock(blocks.FieldBlock): - def __init__(self, required=True, help_text=mark_safe('Enter content in Markdown format - Guide '), **kwargs): + def __init__(self, required=True, help_text=mark_safe( + 'Enter content in Markdown format - Guide '), + **kwargs): self.field = forms.CharField( required=required, help_text=help_text,