From 008ddc1e1fbe2a1ecad2755cb55f241ae1b84656 Mon Sep 17 00:00:00 2001
From: Hangzhi Yu <hangzhi@protonmail.com>
Date: Sat, 8 Jan 2022 17:18:23 +0100
Subject: [PATCH] Delete FaviconImg objects of Favicon object when it is
 updated

---
 CHANGELOG.rst        | 1 +
 aleksis/core/apps.py | 7 ++++---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 8880280da..2bfb3645e 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -23,6 +23,7 @@ Added
 Fixed
 ~~~~~
 
+* Existing FaviconImg objects were not updated when a new Favicon image is uploaded via preferences
 * GroupManager.get_queryset() returned an incomplete QuerySet
 * OAuth was broken by a non-semver-adhering django-oauth-toolkit update
 * Too long texts in chips didn't result in a larger chip.
diff --git a/aleksis/core/apps.py b/aleksis/core/apps.py
index 520a5fc43..47df1dbda 100644
--- a/aleksis/core/apps.py
+++ b/aleksis/core/apps.py
@@ -97,15 +97,16 @@ class CoreConfig(AppConfig):
             if name in ("primary", "secondary"):
                 clean_scss()
             elif name in ("favicon", "pwa_icon"):
-                from favicon.models import Favicon  # noqa
+                from favicon.models import Favicon, FaviconImg  # noqa
 
                 is_favicon = name == "favicon"
 
                 if new_value:
-                    Favicon.on_site.update_or_create(
+                    favicon_id = Favicon.on_site.update_or_create(
                         title=name,
                         defaults={"isFavicon": is_favicon, "faviconImage": new_value},
-                    )
+                    )[0]
+                    FaviconImg.objects.filter(faviconFK=favicon_id).delete()
                 else:
                     Favicon.on_site.filter(title=name, isFavicon=is_favicon).delete()
                     if name in settings.DEFAULT_FAVICON_PATHS:
-- 
GitLab