diff --git a/inventory/models/manufacturer.py b/inventory/models/manufacturer.py
index bc5cfd9..9a94be5 100644
--- a/inventory/models/manufacturer.py
+++ b/inventory/models/manufacturer.py
@@ -14,3 +14,6 @@ class Manufacturer(models.Model):
def __str__(self):
return self.name
+
+ class Meta:
+ ordering = ("name", )
diff --git a/inventory/templates/inventory/manufacturer_detail.html b/inventory/templates/inventory/manufacturer_detail.html
new file mode 100644
index 0000000..a20846e
--- /dev/null
+++ b/inventory/templates/inventory/manufacturer_detail.html
@@ -0,0 +1,131 @@
+{% extends "base.html" %}
+{% load static %}
+{% load formatstring %}
+
+{% block title %}Manufacturer: {{ manufacturer }}{% endblock %}
+
+{% block header_bar %}
+
+ Manufacturer: {{ manufacturer.name }}
+ {{ manufacturer.description }}
+{% endblock %}
+
+{% block header_icons %}
+ {% if user.is_staff %}
+
+
+
+ {% endif %}
+{% endblock %}
+
+{% block content %}
+
+
+
+ Name |
+ {{ manufacturer.name }} |
+
+
+ Description |
+ {{ manufacturer.description }} |
+
+ {% if manufacturer.icon %}
+
+ Icon |
+  |
+
+ {% endif %}
+
+ Link |
+ {% if manufacturer.web_link %}{{ manufacturer.web_link }}{% else %}-{% endif %} |
+
+
+
+ Tags |
+
+
+ {% for tag in manufacturer.tags.all %}
+ - {{ tag.name }}
+ {% empty %}
+ No tags
+ {% endfor %}
+
+ |
+
+
+ Created at | {{ manufacturer.created_at }} |
+ {% if manufacturer.created_at != manufacturer.changed_at %}
+ Last change | {{ manufacturer.changed_at }} |
+ {% endif %}
+
+
+
+ Items
+
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/inventory/views/manufacturer.py b/inventory/views/manufacturer.py
index d3ea14f..e36bddd 100644
--- a/inventory/views/manufacturer.py
+++ b/inventory/views/manufacturer.py
@@ -1,13 +1,24 @@
-from django.views import View
+from django.core.paginator import Paginator
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
from django.views.generic import ListView, DetailView
-from inventory.models import Manufacturer
+from inventory.models import Manufacturer, Item
-class ManufacturerView(View):
- pass
+@method_decorator(login_required, name='dispatch')
+class ManufacturerView(DetailView):
+ context_object_name = 'manufacturer'
+ queryset = Manufacturer.objects.all().prefetch_related('tags')
+
+ def get_context_data(self, *args, object_list=None, **kwargs):
+ result = super().get_context_data(*args, object_list=object_list, **kwargs)
+ p = self.request.GET.get("item_page", 1)
+ paginator = Paginator(Item.objects.filter(manufacturer=self.get_object()).select_related('container', 'distributor').order_by('name'), 50)
+ result.update({
+ "items": paginator.get_page(p)
+ })
+ return result
@method_decorator(login_required, name='dispatch')