diff --git a/ram/metadata/migrations/0010_alter_manufacturer_category.py b/ram/metadata/migrations/0010_alter_manufacturer_category.py
new file mode 100644
index 0000000..7b20356
--- /dev/null
+++ b/ram/metadata/migrations/0010_alter_manufacturer_category.py
@@ -0,0 +1,26 @@
+# Generated by Django 4.1.5 on 2023-01-06 00:52
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("metadata", "0009_alter_company_logo_alter_decoder_image_and_more"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="manufacturer",
+ name="category",
+ field=models.CharField(
+ choices=[
+ ("model", "Model"),
+ ("real", "Real"),
+ ("accessory", "Accessory"),
+ ("other", "Other"),
+ ],
+ max_length=64,
+ ),
+ ),
+ ]
diff --git a/ram/metadata/models.py b/ram/metadata/models.py
index 50947b4..5c375ed 100644
--- a/ram/metadata/models.py
+++ b/ram/metadata/models.py
@@ -1,3 +1,5 @@
+from urllib.parse import quote_plus
+
from django.db import models
from django.conf import settings
from django.dispatch.dispatcher import receiver
@@ -34,6 +36,9 @@ class Manufacturer(models.Model):
def __str__(self):
return self.name
+ def safe_name(self):
+ return quote_plus(self.name, safe="&")
+
def logo_thumbnail(self):
return get_image_preview(self.logo.url)
@@ -56,6 +61,9 @@ class Company(models.Model):
def __str__(self):
return self.name
+ def safe_name(self):
+ return quote_plus(self.name, safe="&")
+
def logo_thumbnail(self):
return get_image_preview(self.logo.url)
diff --git a/ram/portal/templates/base.html b/ram/portal/templates/base.html
index d0b2e31..fc7e3ef 100644
--- a/ram/portal/templates/base.html
+++ b/ram/portal/templates/base.html
@@ -76,17 +76,27 @@
Home
diff --git a/ram/portal/templates/cards.html b/ram/portal/templates/cards.html
index 38244b0..b1da629 100644
--- a/ram/portal/templates/cards.html
+++ b/ram/portal/templates/cards.html
@@ -1,22 +1,25 @@
{% extends "base.html" %}
+ {% block header %}
+
Results found: {{ matches }}
+ {% endblock %}
{% block cards_layout %}
{% block cards %}
- {% for r in rolling_stock %}
+ {% for d in data %}
- {% for i in r.image.all %}
- {% if forloop.first %}
{% endif %}
+ {% for i in d.image.all %}
+ {% if forloop.first %}
{% endif %}
{% endfor %}
- {{ r }}
-
+ {{ d }}
+
- {% if r.tags.all %}
+ {% if d.tags.all %}
Tags:
- {% for t in r.tags.all %}
+ {% for t in d.tags.all %}
{{ t.name }} {# new line is required #}
{% endfor %}
@@ -30,41 +33,43 @@
Type
- {{ r.rolling_class.type }}
+ {{ d.rolling_class.type }}
Company
- {{ r.rolling_class.company }}
+ {{ d.rolling_class.company }}
Class
- {{ r.rolling_class.identifier }}
+ {{ d.rolling_class.identifier }}
Road number
- {{ r.road_number }}
+ {{ d.road_number }}
Era
- {{ r.era }}
+ {{ d.era }}
Manufacturer
- {{ r.manufacturer|default_if_none:"" }}{% if r.manufacturer.website %} {% endif %}
+ {%if d.manufacturer %}
+ {{ d.manufacturer }}{% if d.manufactured.website %} {% endif %}
+ {% endif %}
Scale
- {{ r.scale }}
+ {{ d.scale }}
SKU
- {{ r.sku }}
+ {{ d.sku }}
- {% if r.decoder %}
+ {% if d.decoder %}
@@ -74,18 +79,18 @@
Decoder
- {{ r.decoder }}
+ {{ d.decoder }}
Address
- {{ r.address }}
+ {{ d.address }}
{% endif %}
diff --git a/ram/portal/templates/companies.html b/ram/portal/templates/companies.html
index ed6ad2a..4a260a0 100644
--- a/ram/portal/templates/companies.html
+++ b/ram/portal/templates/companies.html
@@ -1,12 +1,12 @@
{% extends "cards.html" %}
{% block cards %}
- {% for c in company %}
+ {% for d in data %}
@@ -51,12 +51,12 @@
{% endfor %}
{% endblock %}
{% block pagination %}
- {% if company.has_other_pages %}
+ {% if data.has_other_pages %}
{% endif %}
{% endblock %}
- {% block cards %}
- {% for r in rolling_stock %}
-
-
- {% for i in r.rolling_stock.image.all %}
- {% if forloop.first %}
{% endif %}
- {% endfor %}
-
-
- {{ r }}
-
-
- {% if r.rolling_stock.tags.all %}
-
Tags:
- {% for t in r.rolling_stock.tags.all %}
- {{ t.name }} {# new line is required #}
- {% endfor %}
-
- {% endif %}
-
-
-
- Data
-
-
-
-
- Type
- {{ r.rolling_stock.rolling_class.type }}
-
-
- Company
-
- {{ r.rolling_stock.rolling_class.company }}
-
-
-
- Class
- {{ r.rolling_stock.rolling_class.identifier }}
-
-
- Road number
- {{ r.rolling_stock.road_number }}
-
-
- Era
- {{ r.rolling_stock.era }}
-
-
- Manufacturer
- {{ r.rolling_stock.manufacturer|default_if_none:"" }}{% if r.rolling_stock.manufacturer.website %} {% endif %}
-
-
- Scale
- {{ r.rolling_stock.scale }}
-
-
- SKU
- {{ r.rolling_stock.sku }}
-
-
-
- {% if r.rolling_stock.decoder %}
-
-
-
- DCC data
-
-
-
-
- Decoder
- {{ r.rolling_stock.decoder }}
-
-
- Address
- {{ r.rolling_stock.address }}
-
-
-
- {% endif %}
-
-
-
-
- {% endfor %}
- {% endblock %}
{% block pagination %}
- {% if rolling_stock.has_other_pages %}
+ {% if data.has_other_pages %}