diff --git a/inventory/models/distributor.py b/inventory/models/distributor.py index c560d7a..554d15c 100644 --- a/inventory/models/distributor.py +++ b/inventory/models/distributor.py @@ -17,3 +17,6 @@ class Distributor(models.Model): def __str__(self): return self.name + + class Meta: + ordering = ("name", ) \ No newline at end of file diff --git a/inventory/templates/inventory/distributor_detail.html b/inventory/templates/inventory/distributor_detail.html new file mode 100644 index 0000000..6c0f821 --- /dev/null +++ b/inventory/templates/inventory/distributor_detail.html @@ -0,0 +1,164 @@ +{% extends "base.html" %} +{% load static %} +{% load formatstring %} + +{% block title %}Distributor: {{ distributor }}{% endblock %} + +{% block header_bar %} + + Distributor: {{ distributor.name }} + {{ distributor.description }} +{% endblock %} + +{% block header_icons %} + {% if user.is_staff %} +
  • + +
  • + {% endif %} +{% endblock %} + +{% block content %} + + + + + + + + + + + {% if distributor.icon %} + + + + + {% endif %} + + + + + {% if distributor.search_link %} + + + + + {% endif %} + {% if distributor.phone %} + + + + + {% endif %} + {% if distributor.email %} + + + + + {% endif %} + + + + + + + + {% if distributor.created_at != distributor.changed_at %} + + {% endif %} + +
    Name{{ distributor.name }}
    Description{{ distributor.description }}
    Icon
    Link{% if distributor.web_link %}{{ distributor.web_link }}{% else %}-{% endif %}
    Search + +
    + + + +
    +
    Phone{{ distributor.phone }}
    Email{{ distributor.email }}
    Tags +
      + {% for tag in distributor.tags.all %} +
    • {{ tag.name }}
    • + {% empty %} + No tags + {% endfor %} +
    +
    Created at{{ distributor.created_at }}
    Last change{{ distributor.changed_at }}
    + +

    Items

    + + + + + + + + + + + + + + + {% for item in items %} + + + + + + + + {% endfor %} + +
    NameDescriptionContainerManufacturer
    {{ item.name }} + {% if item.documentation.all %} + + {% endif %} + {% if user.is_staff %} + + {% endif %} + {{ item.description }}{{ item.container.display_name }} + {% if item.manufacturer %} + + {% if item.manufacturer.icon %}{% endif %}{{ item.manufacturer.name }} + + {% else %} + - + {% endif %} +
    + + + +{% endblock %} \ No newline at end of file diff --git a/inventory/views/distributor.py b/inventory/views/distributor.py index 08e01d0..3e049eb 100644 --- a/inventory/views/distributor.py +++ b/inventory/views/distributor.py @@ -1,14 +1,23 @@ -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 Distributor +from inventory.models import Distributor, Item +@method_decorator(login_required, name='dispatch') +class DistributorView(DetailView): + context_object_name = 'distributor' + queryset = Distributor.objects.all().prefetch_related('tags') -class DistributorView(View): - pass - + 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(distributor=self.get_object()).select_related('container', 'manufacturer').order_by('name'), 50) + result.update({ + "items": paginator.get_page(p) + }) + return result @method_decorator(login_required, name='dispatch') class DistributorListView(ListView):