diff --git a/network-api/networkapi/wagtailpages/migrations/0044_auto_20211013_0018.py b/network-api/networkapi/wagtailpages/migrations/0044_auto_20211013_0018.py new file mode 100644 index 00000000000..8730d6cf14c --- /dev/null +++ b/network-api/networkapi/wagtailpages/migrations/0044_auto_20211013_0018.py @@ -0,0 +1,24 @@ +# Generated by Django 3.1.11 on 2021-10-13 00:18 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailimages', '0023_add_choose_permissions'), + ('wagtailpages', '0043_auto_20211011_2340'), + ] + + operations = [ + migrations.RemoveField( + model_name='buyersguideproductcategory', + name='og_image', + ), + migrations.AddField( + model_name='buyersguideproductcategory', + name='share_image', + field=models.ForeignKey(blank=True, help_text='Optional image that will apear when category page is shared.', null=True, on_delete=django.db.models.deletion.SET_NULL, to='wagtailimages.image', verbose_name='Share Image'), + ), + ] diff --git a/network-api/networkapi/wagtailpages/pagemodels/products.py b/network-api/networkapi/wagtailpages/pagemodels/products.py index 2b11f63c39f..463602819a4 100644 --- a/network-api/networkapi/wagtailpages/pagemodels/products.py +++ b/network-api/networkapi/wagtailpages/pagemodels/products.py @@ -37,7 +37,6 @@ from networkapi.wagtailpages.utils import insert_panels_after, get_locale_from_request # TODO: Move this util function -from networkapi.buyersguide.utils import get_category_og_image_upload_path from .mixin.snippets import LocalizedSnippet from networkapi.wagtailpages.utils import get_language_from_request @@ -141,17 +140,29 @@ class BuyersGuideProductCategory(TranslatableMixin, LocalizedSnippet, models.Mod help_text='Sort ordering number. Same-numbered items sort alphabetically' ) - og_image = models.FileField( - max_length=2048, - help_text='Image to use as OG image', - upload_to=get_category_og_image_upload_path, + share_image = models.ForeignKey( + 'wagtailimages.Image', + null=True, blank=True, + on_delete=models.SET_NULL, + verbose_name='Share Image', + help_text='Optional image that will apear when category page is shared.', ) + panels = [ + FieldPanel('name'), + FieldPanel('description'), + FieldPanel('featured'), + FieldPanel('hidden'), + FieldPanel('sort_order'), + ImageChooserPanel('share_image'), + ] + translatable_fields = [ TranslatableField('name'), TranslatableField('description'), SynchronizedField('slug'), + SynchronizedField('share_image'), ] @property @@ -1604,6 +1615,12 @@ def categories_page(self, request, slug): f' | Mozilla Foundation' context['template_cache_key_fragment'] = f'{category.slug}_{request.LANGUAGE_CODE}' + # Checking if category has custom metadata, if so, update the share image and description. + if category.share_image: + setattr(self, 'search_image_id', category.localized.share_image_id) + if category.description: + setattr(self, 'search_description', category.localized.description) + return render(request, "buyersguide/category_page.html", context) def get_sitemap_urls(self, request):