diff --git a/boofilsic/settings.py b/boofilsic/settings.py index d80add93..ce37a99d 100644 --- a/boofilsic/settings.py +++ b/boofilsic/settings.py @@ -518,6 +518,9 @@ STORAGES = { # TODO: support S3 }, } +DEFAULT_ITEM_COVER = "item/default.svg" +SITE_INFO["default_cover_url"] = MEDIA_URL + DEFAULT_ITEM_COVER + CSRF_TRUSTED_ORIGINS = [SITE_INFO["site_url"]] if DEBUG: CSRF_TRUSTED_ORIGINS += ["http://127.0.0.1:8000", "http://localhost:8000"] diff --git a/catalog/common/models.py b/catalog/common/models.py index c6259d59..4a7c1b1e 100644 --- a/catalog/common/models.py +++ b/catalog/common/models.py @@ -29,7 +29,7 @@ from common.models import ( from common.models.lang import get_current_locales from common.models.misc import uniq -from .utils import DEFAULT_ITEM_COVER, item_cover_path, resource_cover_path +from .utils import item_cover_path, resource_cover_path if TYPE_CHECKING: from journal.models import Collection @@ -382,7 +382,10 @@ class Item(PolymorphicModel): ) metadata = models.JSONField(_("metadata"), blank=True, null=True, default=dict) cover = models.ImageField( - _("cover"), upload_to=item_cover_path, default=DEFAULT_ITEM_COVER, blank=True + _("cover"), + upload_to=item_cover_path, + default=settings.DEFAULT_ITEM_COVER, + blank=True, ) created_time = models.DateTimeField(auto_now_add=True) edited_time = models.DateTimeField(auto_now=True) @@ -715,13 +718,13 @@ class Item(PolymorphicModel): ) def has_cover(self) -> bool: - return bool(self.cover) and self.cover != DEFAULT_ITEM_COVER + return bool(self.cover) and self.cover != settings.DEFAULT_ITEM_COVER @property def cover_image_url(self) -> str | None: return ( f"{settings.SITE_INFO['site_url']}{self.cover.url}" # type:ignore - if self.cover and self.cover != DEFAULT_ITEM_COVER + if self.cover and self.cover != settings.DEFAULT_ITEM_COVER else None ) @@ -825,7 +828,7 @@ class ExternalResource(models.Model): _("url to the resource"), blank=False, max_length=1000, unique=True ) cover = models.ImageField( - upload_to=resource_cover_path, default=DEFAULT_ITEM_COVER, blank=True + upload_to=resource_cover_path, default=settings.DEFAULT_ITEM_COVER, blank=True ) other_lookup_ids = models.JSONField(default=dict) metadata = models.JSONField(default=dict) diff --git a/catalog/common/utils.py b/catalog/common/utils.py index c4b8053a..2ed25045 100644 --- a/catalog/common/utils.py +++ b/catalog/common/utils.py @@ -2,8 +2,6 @@ import uuid from django.utils import timezone -DEFAULT_ITEM_COVER = "item/default.svg" - def resource_cover_path(resource, filename): fn = ( diff --git a/catalog/performance/models.py b/catalog/performance/models.py index 5c9b8931..abdc899e 100644 --- a/catalog/performance/models.py +++ b/catalog/performance/models.py @@ -1,6 +1,7 @@ from functools import cached_property from typing import TYPE_CHECKING +from django.conf import settings from django.db import models from django.utils.translation import gettext_lazy as _ from ninja import Schema @@ -15,7 +16,6 @@ from catalog.common import ( jsondata, ) from catalog.common.models import LanguageListField -from catalog.common.utils import DEFAULT_ITEM_COVER class CrewMemberSchema(Schema): @@ -390,7 +390,7 @@ class PerformanceProduction(Item): def cover_image_url(self) -> str | None: return ( self.cover.url # type:ignore - if self.cover and self.cover != DEFAULT_ITEM_COVER + if self.cover and self.cover != settings.DEFAULT_ITEM_COVER else self.show.cover_image_url if self.show else None ) diff --git a/catalog/search/external.py b/catalog/search/external.py index 091686a6..c82e3e08 100644 --- a/catalog/search/external.py +++ b/catalog/search/external.py @@ -190,6 +190,8 @@ class TheMovieDatabase: subtitle = f"{m.get('release_date', '')} {m.get('original_name', '')}" cover = ( f"https://image.tmdb.org/t/p/w500/{m.get('poster_path')}" + if m.get("poster_path") + else None ) results.append( SearchResultItem( diff --git a/catalog/search/views.py b/catalog/search/views.py index f4a8ca73..e52e02b2 100644 --- a/catalog/search/views.py +++ b/catalog/search/views.py @@ -161,13 +161,7 @@ def external_search(request): dedupe_urls = cache.get(cache_key, []) items = [i for i in items if i.source_url not in dedupe_urls] - return render( - request, - "external_search_results.html", - { - "external_items": items, - }, - ) + return render(request, "external_search_results.html", {"external_items": items}) @login_required diff --git a/catalog/templates/_item_card.html b/catalog/templates/_item_card.html index d90b341d..05c980c1 100644 --- a/catalog/templates/_item_card.html +++ b/catalog/templates/_item_card.html @@ -27,7 +27,8 @@