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__)