prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Translations for footer_en missing in production
  I noticed that in the settings the footer option is called footer_en. Seems like a translation has gone missing
  ![image](https://user-images.githubusercontent.com/19433606/228253442-09290b66-c344-417f-856a-19e97083a23a.png)
  
  
  </issue>
  <code>
  [start of src/branding/models.py]
  1 from django.db import models
  2 from wagtail.contrib.settings.models import BaseSetting, register_setting
  3 
  4 from django.utils.translation import gettext_lazy as _
  5 from wagtail.admin.edit_handlers import FieldPanel, FieldRowPanel, \
  6     MultiFieldPanel, StreamFieldPanel, TabbedInterface, ObjectList
  7 from wagtail.core import blocks
  8 from wagtail.core.fields import StreamField
  9 from wagtail.images.edit_handlers import ImageChooserPanel
  10 from utils.translation import TranslatedField
  11 
  12 
  13 @register_setting(icon='fa-window-minimize')
  14 class FooterSettings(BaseSetting):
  15     class Meta:
  16         verbose_name = _('footer_en')   # quickfix
  17 
  18     footer_en = StreamField(
  19         [('column', blocks.StructBlock([
  20             ('size', blocks.IntegerBlock(min_value=1, max_value=12)),
  21             ('content', blocks.RichTextBlock()),
  22         ]))],
  23         blank=True,
  24     )
  25 
  26     footer_sv = StreamField(
  27         [('column', blocks.StructBlock([
  28             ('size', blocks.IntegerBlock(min_value=1, max_value=12)),
  29             ('content', blocks.RichTextBlock()),
  30         ]))],
  31         blank=True,
  32     )
  33 
  34     footer = TranslatedField('footer_en', 'footer_sv')
  35 
  36     panels_sv = [
  37         StreamFieldPanel('footer_sv')
  38     ]
  39 
  40     panels_en = [
  41         StreamFieldPanel('footer_en')
  42     ]
  43 
  44     edit_handler = TabbedInterface([
  45         ObjectList(panels_en, heading=_("English")),
  46         ObjectList(panels_sv, heading=_("Swedish"))
  47     ])
  48 
  49 
  50 @register_setting(icon='openquote')
  51 class SocialMediaSettings(BaseSetting):
  52     class Meta:
  53         verbose_name = _('social media accounts')
  54 
  55     facebook = models.URLField(
  56         help_text=_('Your Facebook page URL'),
  57         blank=True,
  58     )
  59     instagram = models.CharField(
  60         max_length=255,
  61         help_text=_('Your Instagram username, without the @'),
  62         blank=True,
  63     )
  64     twitter = models.CharField(
  65         max_length=255,
  66         help_text=_('Your Twitter username, without the @'),
  67         blank=True,
  68     )
  69 
  70 
  71 class Logo(models.Model):
  72     class Meta:
  73         verbose_name = _('logo')
  74         verbose_name_plural = _('logos')
  75 
  76     def __str__(self):
  77         logotext = str(_('logo'))
  78         return logotext.capitalize()
  79 
  80     CATEGORY_CHOICES = (
  81         ('committee', _('Committee')),
  82         ('section', _('Section')),
  83     )
  84 
  85     category = models.CharField(
  86         max_length=20,
  87         choices=CATEGORY_CHOICES,
  88         verbose_name=_('category'),
  89         blank=False,
  90         null=False,
  91     )
  92 
  93     link = models.URLField(
  94         verbose_name=_('links to'),
  95         null=False,
  96         blank=False,
  97     )
  98 
  99     logo = models.ForeignKey(
  100         'wagtailimages.Image',
  101         verbose_name=_('logo'),
  102         null=True,
  103         blank=True,
  104         on_delete=models.SET_NULL,
  105         related_name='+'
  106     )
  107 
  108     logo_white = models.ForeignKey(
  109         'wagtailimages.Image',
  110         verbose_name=_('white logo'),
  111         null=True,
  112         blank=True,
  113         on_delete=models.SET_NULL,
  114         related_name='+'
  115     )
  116 
  117     logo_black = models.ForeignKey(
  118         'wagtailimages.Image',
  119         verbose_name=_('black logo'),
  120         null=True,
  121         blank=True,
  122         on_delete=models.SET_NULL,
  123         related_name='+'
  124     )
  125 
  126     belongs_to = models.ForeignKey(
  127         'wagtailcore.Site',
  128         verbose_name=_('belongs to'),
  129         null=True,
  130         blank=True,
  131         on_delete=models.SET_NULL,
  132     )
  133 
  134     # ------ Administrator settings ------
  135     panels = [MultiFieldPanel([
  136         FieldRowPanel([
  137             FieldPanel('category'),
  138             FieldPanel('link'),
  139         ]),
  140         ImageChooserPanel('logo'),
  141         ImageChooserPanel('logo_white'),
  142         ImageChooserPanel('logo_black'),
  143         FieldPanel('belongs_to'),
  144     ])]
  145
  [end of src/branding/models.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/src/branding/models.py b/src/branding/models.py
  --- a/src/branding/models.py
  +++ b/src/branding/models.py
  @@ -13,7 +13,7 @@
   @register_setting(icon='fa-window-minimize')
   class FooterSettings(BaseSetting):
       class Meta:
  -        verbose_name = _('footer_en')   # quickfix
  +        verbose_name = _('footer')   # quickfix
   
       footer_en = StreamField(
           [('column', blocks.StructBlock([
  
verification_info: {"golden_diff": "diff --git a/src/branding/models.py b/src/branding/models.py\n--- a/src/branding/models.py\n+++ b/src/branding/models.py\n@@ -13,7 +13,7 @@\n @register_setting(icon='fa-window-minimize')\n class FooterSettings(BaseSetting):\n     class Meta:\n-        verbose_name = _('footer_en')   # quickfix\n+        verbose_name = _('footer')   # quickfix\n \n     footer_en = StreamField(\n         [('column', blocks.StructBlock([\n", "issue": "Translations for footer_en missing in production\nI noticed that in the settings the footer option is called footer_en. Seems like a translation has gone missing\r\n![image](https://user-images.githubusercontent.com/19433606/228253442-09290b66-c344-417f-856a-19e97083a23a.png)\r\n\n", "before_files": [{"content": "from django.db import models\nfrom wagtail.contrib.settings.models import BaseSetting, register_setting\n\nfrom django.utils.translation import gettext_lazy as _\nfrom wagtail.admin.edit_handlers import FieldPanel, FieldRowPanel, \\\n    MultiFieldPanel, StreamFieldPanel, TabbedInterface, ObjectList\nfrom wagtail.core import blocks\nfrom wagtail.core.fields import StreamField\nfrom wagtail.images.edit_handlers import ImageChooserPanel\nfrom utils.translation import TranslatedField\n\n\n@register_setting(icon='fa-window-minimize')\nclass FooterSettings(BaseSetting):\n    class Meta:\n        verbose_name = _('footer_en')   # quickfix\n\n    footer_en = StreamField(\n        [('column', blocks.StructBlock([\n            ('size', blocks.IntegerBlock(min_value=1, max_value=12)),\n            ('content', blocks.RichTextBlock()),\n        ]))],\n        blank=True,\n    )\n\n    footer_sv = StreamField(\n        [('column', blocks.StructBlock([\n            ('size', blocks.IntegerBlock(min_value=1, max_value=12)),\n            ('content', blocks.RichTextBlock()),\n        ]))],\n        blank=True,\n    )\n\n    footer = TranslatedField('footer_en', 'footer_sv')\n\n    panels_sv = [\n        StreamFieldPanel('footer_sv')\n    ]\n\n    panels_en = [\n        StreamFieldPanel('footer_en')\n    ]\n\n    edit_handler = TabbedInterface([\n        ObjectList(panels_en, heading=_(\"English\")),\n        ObjectList(panels_sv, heading=_(\"Swedish\"))\n    ])\n\n\n@register_setting(icon='openquote')\nclass SocialMediaSettings(BaseSetting):\n    class Meta:\n        verbose_name = _('social media accounts')\n\n    facebook = models.URLField(\n        help_text=_('Your Facebook page URL'),\n        blank=True,\n    )\n    instagram = models.CharField(\n        max_length=255,\n        help_text=_('Your Instagram username, without the @'),\n        blank=True,\n    )\n    twitter = models.CharField(\n        max_length=255,\n        help_text=_('Your Twitter username, without the @'),\n        blank=True,\n    )\n\n\nclass Logo(models.Model):\n    class Meta:\n        verbose_name = _('logo')\n        verbose_name_plural = _('logos')\n\n    def __str__(self):\n        logotext = str(_('logo'))\n        return logotext.capitalize()\n\n    CATEGORY_CHOICES = (\n        ('committee', _('Committee')),\n        ('section', _('Section')),\n    )\n\n    category = models.CharField(\n        max_length=20,\n        choices=CATEGORY_CHOICES,\n        verbose_name=_('category'),\n        blank=False,\n        null=False,\n    )\n\n    link = models.URLField(\n        verbose_name=_('links to'),\n        null=False,\n        blank=False,\n    )\n\n    logo = models.ForeignKey(\n        'wagtailimages.Image',\n        verbose_name=_('logo'),\n        null=True,\n        blank=True,\n        on_delete=models.SET_NULL,\n        related_name='+'\n    )\n\n    logo_white = models.ForeignKey(\n        'wagtailimages.Image',\n        verbose_name=_('white logo'),\n        null=True,\n        blank=True,\n        on_delete=models.SET_NULL,\n        related_name='+'\n    )\n\n    logo_black = models.ForeignKey(\n        'wagtailimages.Image',\n        verbose_name=_('black logo'),\n        null=True,\n        blank=True,\n        on_delete=models.SET_NULL,\n        related_name='+'\n    )\n\n    belongs_to = models.ForeignKey(\n        'wagtailcore.Site',\n        verbose_name=_('belongs to'),\n        null=True,\n        blank=True,\n        on_delete=models.SET_NULL,\n    )\n\n    # ------ Administrator settings ------\n    panels = [MultiFieldPanel([\n        FieldRowPanel([\n            FieldPanel('category'),\n            FieldPanel('link'),\n        ]),\n        ImageChooserPanel('logo'),\n        ImageChooserPanel('logo_white'),\n        ImageChooserPanel('logo_black'),\n        FieldPanel('belongs_to'),\n    ])]\n", "path": "src/branding/models.py"}]}