Skeleton for part tracking

- Added  list and detail view
- Fixed some links
This commit is contained in:
Oliver 2018-04-15 12:35:56 +10:00
parent 9f42085731
commit 9e6c7350f9
10 changed files with 66 additions and 7 deletions

View File

@ -9,6 +9,7 @@
<li class="active"><a href="/part/">Parts</a></li>
<li><a href="/stock/">Stock</a></li>
<li><a href="/supplier/">Suppliers</a></li>
<li><a href="/track/">Tracking</a></li>
</ul>
</div>
</nav>

View File

@ -1,12 +1,12 @@
<div class='navigation'>
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item{% if category is None %} active" aria-current="page{% endif %}"><a href="/part/list/">Parts</a></li>
<li class="breadcrumb-item{% if category is None %} active" aria-current="page{% endif %}"><a href="/part/">Parts</a></li>
{% if category %}
{% for path_item in category.parentpath %}
<li class="breadcrumb-item"><a href="/part/list/?category={{ path_item.id }}">{{ path_item.name }}</a></li>
<li class="breadcrumb-item"><a href="{% url 'category-detail' path_item.id %}">{{ path_item.name }}</a></li>
{% endfor %}
<li class="breadcrumb-item active" aria-current="page"><a href="/part/list/?category={{ category.id }}">{{ category.name }}</a></li>
<li class="breadcrumb-item active" aria-current="page"><a href="{% url 'category-detail' category.id %}">{{ category.name }}</a></li>
{% endif %}
</ol>
</nav>

View File

@ -1,10 +1,16 @@
from django.contrib import admin
from .models import UniquePart
from .models import UniquePart, PartTrackingInfo
class UniquePartAdmin(admin.ModelAdmin):
list_display = ('part', 'serial', 'status', 'creation_date')
class PartTrackingAdmin(admin.ModelAdmin):
list_display = ('part', 'date', 'title')
admin.site.register(UniquePart, UniquePartAdmin)
admin.site.register(PartTrackingInfo, PartTrackingAdmin)

View File

@ -52,7 +52,8 @@ class UniquePart(models.Model):
status = models.IntegerField(default=PART_IN_PROGRESS, choices=PART_STATUS_CODES.items())
def __str__(self):
return self.part.name
return "{pn} - # {sn}".format(pn = self.part.name,
sn = self.serial)
class PartTrackingInfo(models.Model):

View File

@ -0,0 +1,26 @@
{% extends "base.html" %}
{% block content %}
Part: <a href="{% url 'part-detail' part.part.id %}">{{ part.part.name }}</a><br>
Serial number: {{ part.serial }}
{% if part.tracking_info.all|length > 0 %}
<p>Tracking information:</p>
<ul class='list-group'>
{% for info in part.tracking_info.all %}
<li class='list-group-item'>
<div class='panel panel-default'>
<div class='panel-heading'>
{{ info.title }}<span class="badge">{{ info.date }}</span>
</div>
{% if info.notes %}
<div class='panel-body'>{{ info.notes }}</div>
{% endif %}
</div>
</li>
{% endfor %}
</ul>
{% endif %}
{% endblock %}

View File

@ -0,0 +1,5 @@
{% extends "base.html"% }
{% block content %}
{% endblock %}

View File

@ -1,4 +1,4 @@
{% include "base.html" %}
{% extends "base.html" %}
{% block content %}
@ -7,7 +7,9 @@
<ul class='list-group'>
{% for part in parts.all %}
<li class='list-group-item'>
<a href="{% url 'track-detail' part.id %}">
{{ part.part.name }} - SN {{ part.serial }}
</a>
</li>
{% endfor %}
</ul>

View File

@ -0,0 +1,5 @@
{% extends "base.html" %}
{% block content %}
{% endblock %}

View File

@ -23,7 +23,13 @@ unique_api_urls = [
]
"""
track_detail_urls = [
url('^.*$', views.TrackDetail.as_view(), name='track-detail'),
]
tracking_urls = [
# Detail view
url(r'^(?P<pk>\d+)/', include(track_detail_urls)),
# List ALL tracked items
url('', views.TrackIndex.as_view(), name='track-index'),

View File

@ -15,4 +15,11 @@ class TrackIndex(ListView):
paginate_by = 50
def get_queryset(self):
return UniquePart.objects.order_by('part__name', 'serial')
return UniquePart.objects.order_by('part__name', 'serial')
class TrackDetail(DetailView):
queryset = UniquePart.objects.all()
template_name = 'track/detail.html'
context_object_name='part'