Add detail pane to top-level part view

This commit is contained in:
Oliver Walters 2019-09-27 10:04:20 +10:00
parent 3e2a5263a5
commit 427f47310b
5 changed files with 183 additions and 36 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-26 23:58+0000\n"
"POT-Creation-Date: 2019-09-27 00:03+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -222,7 +222,7 @@ msgstr ""
msgid "Company"
msgstr ""
#: order/models.py:156 order/models.py:201 part/views.py:1030
#: order/models.py:156 order/models.py:201 part/views.py:1032
#: stock/models.py:437
msgid "Quantity must be greater than zero"
msgstr ""
@ -345,32 +345,76 @@ msgstr ""
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
#: part/views.py:194
#: part/templates/part/category.html:13 part/templates/part/category.html:69
msgid "Part Categories"
msgstr ""
#: part/templates/part/category.html:14
msgid "All parts"
msgstr ""
#: part/templates/part/category.html:34
msgid "Category Details"
msgstr ""
#: part/templates/part/category.html:37
msgid "Category Path"
msgstr ""
#: part/templates/part/category.html:41
msgid "Category Description"
msgstr ""
#: part/templates/part/category.html:46
msgid "Default Location"
msgstr ""
#: part/templates/part/category.html:52
msgid "Keywords"
msgstr ""
#: part/templates/part/category.html:57
msgid "Subcategories"
msgstr ""
#: part/templates/part/category.html:61
msgid "Parts (Including subcategories)"
msgstr ""
#: part/templates/part/category.html:66
msgid "Part Details"
msgstr ""
#: part/templates/part/category.html:73
msgid "Parts"
msgstr ""
#: part/views.py:196
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
#: part/views.py:771
#: part/views.py:773
msgid "No BOM file provided"
msgstr ""
#: part/views.py:1032
#: part/views.py:1034
msgid "Enter a valid quantity"
msgstr ""
#: part/views.py:1056 part/views.py:1059
#: part/views.py:1058 part/views.py:1061
msgid "Select valid part"
msgstr ""
#: part/views.py:1065
#: part/views.py:1067
msgid "Duplicate part selected"
msgstr ""
#: part/views.py:1093
#: part/views.py:1095
msgid "Select a part"
msgstr ""
#: part/views.py:1097
#: part/views.py:1099
msgid "Specify quantity"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-26 23:58+0000\n"
"POT-Creation-Date: 2019-09-27 00:03+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -222,7 +222,7 @@ msgstr ""
msgid "Company"
msgstr ""
#: order/models.py:156 order/models.py:201 part/views.py:1030
#: order/models.py:156 order/models.py:201 part/views.py:1032
#: stock/models.py:437
msgid "Quantity must be greater than zero"
msgstr ""
@ -345,32 +345,76 @@ msgstr ""
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
#: part/views.py:194
#: part/templates/part/category.html:13 part/templates/part/category.html:69
msgid "Part Categories"
msgstr ""
#: part/templates/part/category.html:14
msgid "All parts"
msgstr ""
#: part/templates/part/category.html:34
msgid "Category Details"
msgstr ""
#: part/templates/part/category.html:37
msgid "Category Path"
msgstr ""
#: part/templates/part/category.html:41
msgid "Category Description"
msgstr ""
#: part/templates/part/category.html:46
msgid "Default Location"
msgstr ""
#: part/templates/part/category.html:52
msgid "Keywords"
msgstr ""
#: part/templates/part/category.html:57
msgid "Subcategories"
msgstr ""
#: part/templates/part/category.html:61
msgid "Parts (Including subcategories)"
msgstr ""
#: part/templates/part/category.html:66
msgid "Part Details"
msgstr ""
#: part/templates/part/category.html:73
msgid "Parts"
msgstr ""
#: part/views.py:196
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
#: part/views.py:771
#: part/views.py:773
msgid "No BOM file provided"
msgstr ""
#: part/views.py:1032
#: part/views.py:1034
msgid "Enter a valid quantity"
msgstr ""
#: part/views.py:1056 part/views.py:1059
#: part/views.py:1058 part/views.py:1061
msgid "Select valid part"
msgstr ""
#: part/views.py:1065
#: part/views.py:1067
msgid "Duplicate part selected"
msgstr ""
#: part/views.py:1093
#: part/views.py:1095
msgid "Select a part"
msgstr ""
#: part/views.py:1097
#: part/views.py:1099
msgid "Specify quantity"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-26 23:58+0000\n"
"POT-Creation-Date: 2019-09-27 00:03+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -222,7 +222,7 @@ msgstr ""
msgid "Company"
msgstr ""
#: order/models.py:156 order/models.py:201 part/views.py:1030
#: order/models.py:156 order/models.py:201 part/views.py:1032
#: stock/models.py:437
msgid "Quantity must be greater than zero"
msgstr ""
@ -345,32 +345,76 @@ msgstr ""
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
#: part/views.py:194
#: part/templates/part/category.html:13 part/templates/part/category.html:69
msgid "Part Categories"
msgstr ""
#: part/templates/part/category.html:14
msgid "All parts"
msgstr ""
#: part/templates/part/category.html:34
msgid "Category Details"
msgstr ""
#: part/templates/part/category.html:37
msgid "Category Path"
msgstr ""
#: part/templates/part/category.html:41
msgid "Category Description"
msgstr ""
#: part/templates/part/category.html:46
msgid "Default Location"
msgstr ""
#: part/templates/part/category.html:52
msgid "Keywords"
msgstr ""
#: part/templates/part/category.html:57
msgid "Subcategories"
msgstr ""
#: part/templates/part/category.html:61
msgid "Parts (Including subcategories)"
msgstr ""
#: part/templates/part/category.html:66
msgid "Part Details"
msgstr ""
#: part/templates/part/category.html:73
msgid "Parts"
msgstr ""
#: part/views.py:196
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
#: part/views.py:771
#: part/views.py:773
msgid "No BOM file provided"
msgstr ""
#: part/views.py:1032
#: part/views.py:1034
msgid "Enter a valid quantity"
msgstr ""
#: part/views.py:1056 part/views.py:1059
#: part/views.py:1058 part/views.py:1061
msgid "Select valid part"
msgstr ""
#: part/views.py:1065
#: part/views.py:1067
msgid "Duplicate part selected"
msgstr ""
#: part/views.py:1093
#: part/views.py:1095
msgid "Select a part"
msgstr ""
#: part/views.py:1097
#: part/views.py:1099
msgid "Specify quantity"
msgstr ""

View File

@ -1,5 +1,6 @@
{% extends "part/part_app_base.html" %}
{% load static %}
{% load i18n %}
{% block content %}
@ -9,8 +10,8 @@
<h3>{{ category.name }}</h3>
<p>{{ category.description }}</p>
{% else %}
<h3>Part Categories</h3>
<p>All parts</p>
<h3>{% trans "Part Categories" %}</h3>
<p>{% trans "All parts" %}</p>
{% endif %}
<p>
<div class='btn-group'>
@ -30,37 +31,49 @@
</div>
<div class='col-sm-6'>
{% if category %}
<h3>Category Details</h3>
<h3>{% trans "Category Details" %}</h3>
<table class='table table-condensed table-striped'>
<tr>
<td>Category Path</td>
<td>{% trans "Category Path" %}</td>
<td>{{ category.pathstring }}</td>
</tr>
<tr>
<td>Category Description</td>
<td>{% trans "Category Description" %}</td>
<td>{{ category.description }}</td>
</tr>
{% if category.default_location %}
<tr>
<td>Default Location</td>
<td>{% trans "Default Location" %}</td>
<td><a href="{% url 'stock-location-detail' category.default_location.pk %}">{{ category.default_location.pathstring }}</a></td>
</tr>
{% endif %}
{% if category.default_keywords %}
<tr>
<td>Keywords</td>
<td>{% trans "Keywords" %}</td>
<td>{{ category.default_keywords }}</td>
</tr>
{% endif %}
<tr>
<td>Subcategories</td>
<td>{% trans "Subcategories" %}</td>
<td>{{ category.children.count }}</td>
</tr>
<tr>
<td>Parts (Including subcategories)</td>
<td>{% trans "Parts (Including subcategories)" %}</td>
<td>{{ category.partcount }}</td>
</tr>
</table>
{% else %}
<h3>{% trans "Part Details" %}</h3>
<table class='table table-striped table-condensed'>
<tr>
<td>{% trans "Part Categories" %}</td>
<td>{{ category_count }}</td>
</tr>
<tr>
<td>{% trans "Parts" %}</td>
<td>{{ part_count }}</td>
</tr>
</table>
{% endif %}
</div>
</div>

View File

@ -56,6 +56,8 @@ class PartIndex(ListView):
children = PartCategory.objects.filter(parent=None)
context['children'] = children
context['category_count'] = PartCategory.objects.count()
context['part_count'] = Part.objects.count()
return context