diff --git a/ram/bookshelf/admin.py b/ram/bookshelf/admin.py index fb5c22d..1c18986 100644 --- a/ram/bookshelf/admin.py +++ b/ram/bookshelf/admin.py @@ -475,6 +475,7 @@ class MagazineAdmin(SortableAdminBase, admin.ModelAdmin): "fields": ( "published", "name", + "website", "publisher", "ISBN", "language", diff --git a/ram/bookshelf/migrations/0027_magazine_website.py b/ram/bookshelf/migrations/0027_magazine_website.py new file mode 100644 index 0000000..ff31ad2 --- /dev/null +++ b/ram/bookshelf/migrations/0027_magazine_website.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0 on 2025-12-12 14:02 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookshelf", "0026_alter_basebook_language_alter_magazine_image_and_more"), + ] + + operations = [ + migrations.AddField( + model_name="magazine", + name="website", + field=models.URLField(blank=True), + ), + ] diff --git a/ram/bookshelf/models.py b/ram/bookshelf/models.py index 58de694..df556ce 100644 --- a/ram/bookshelf/models.py +++ b/ram/bookshelf/models.py @@ -1,5 +1,6 @@ import os import shutil +from urllib.parse import urlparse from django.db import models from django.conf import settings from django.urls import reverse @@ -169,6 +170,7 @@ class Catalog(BaseBook): class Magazine(BaseModel): name = models.CharField(max_length=200) publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE) + website = models.URLField(blank=True) ISBN = models.CharField(max_length=17, blank=True) # 13 + dashes image = models.ImageField( blank=True, @@ -205,6 +207,10 @@ class Magazine(BaseModel): kwargs={"uuid": self.uuid} ) + def website_short(self): + if self.website: + return urlparse(self.website).netloc.replace("www.", "") + class MagazineIssue(BaseBook): magazine = models.ForeignKey( diff --git a/ram/metadata/models.py b/ram/metadata/models.py index 23f5f63..a956738 100644 --- a/ram/metadata/models.py +++ b/ram/metadata/models.py @@ -1,4 +1,5 @@ import os +from urllib.parse import urlparse from django.db import models from django.urls import reverse from django.conf import settings @@ -57,6 +58,10 @@ class Manufacturer(models.Model): }, ) + def website_short(self): + if self.website: + return urlparse(self.website).netloc.replace("www.", "") + def logo_thumbnail(self): return get_image_preview(self.logo.url) diff --git a/ram/portal/templates/bookshelf/book.html b/ram/portal/templates/bookshelf/book.html index 4fad1a2..2a3159d 100644 --- a/ram/portal/templates/bookshelf/book.html +++ b/ram/portal/templates/bookshelf/book.html @@ -69,7 +69,9 @@ {% if type == "catalog" %} Manufacturer - {{ book.manufacturer }} + + {{ book.manufacturer }}{% if book.manufacturer.website %} {% endif %} + Scales @@ -96,7 +98,10 @@ {% elif type == "magazineissue" %} Magazine - {{ book.magazine }} + + {{ book.magazine }} + {% if book.magazine.website %} {% endif %} + Publisher diff --git a/ram/portal/templates/cards/book.html b/ram/portal/templates/cards/book.html index 03c1927..b425ba1 100644 --- a/ram/portal/templates/cards/book.html +++ b/ram/portal/templates/cards/book.html @@ -37,7 +37,9 @@ {% if d.type == "catalog" %} Manufacturer - {{ d.item.manufacturer }} + + {{ d.item.manufacturer }}{% if d.item.manufacturer.website %} {% endif %} + Scales diff --git a/ram/portal/templates/cards/magazine.html b/ram/portal/templates/cards/magazine.html index 471e662..c86a5a6 100644 --- a/ram/portal/templates/cards/magazine.html +++ b/ram/portal/templates/cards/magazine.html @@ -43,6 +43,7 @@ {{ d.label|capfirst }} +
{% if not d.item.published %} Unpublished @@ -57,6 +58,11 @@ Magazine {{ d.item.magazine }} + {% else %} + + Website + {% if d.item.website %}{{ d.item.website_short }}{% else %}-{% endif %} + {% endif %} Publisher diff --git a/ram/portal/templates/cards/manufacturer.html b/ram/portal/templates/cards/manufacturer.html index fbcfd3f..8c84397 100644 --- a/ram/portal/templates/cards/manufacturer.html +++ b/ram/portal/templates/cards/manufacturer.html @@ -17,12 +17,10 @@ {% endif %} - {% if d.item.website %} Website - + {% if d.item.website %}{{ d.item.website_short }}{% else %}-{% endif %} - {% endif %} Category {{ d.item.category | title }} diff --git a/ram/portal/templates/magazine.html b/ram/portal/templates/magazine.html index 05f7630..852dd2b 100644 --- a/ram/portal/templates/magazine.html +++ b/ram/portal/templates/magazine.html @@ -88,7 +88,7 @@ Name - {{ magazine }} + {{ magazine }} Publisher @@ -97,6 +97,14 @@ {% if magazine.publisher.website %} {% endif %} + + Website + {% if magazine.website %}{{ magazine.website_short }}{% else %}-{% endif %} + + + Language + {{ magazine.get_language_display }} + ISBN {{ magazine.ISBN | default:"-" }} diff --git a/ram/portal/views.py b/ram/portal/views.py index 2eb9b33..588f212 100644 --- a/ram/portal/views.py +++ b/ram/portal/views.py @@ -73,8 +73,7 @@ class GetData(View): .filter(self.filter) ) - def get(self, request, filter=Q(), page=1): - self.filter = filter + def get(self, request, page=1): data = [] for item in self.get_data(request): data.append({ diff --git a/ram/ram/__init__.py b/ram/ram/__init__.py index 623d417..0f17a7e 100644 --- a/ram/ram/__init__.py +++ b/ram/ram/__init__.py @@ -1,4 +1,4 @@ from ram.utils import git_suffix -__version__ = "0.18.4" +__version__ = "0.18.5" __version__ += git_suffix(__file__)