diff --git a/partdoc/parts/templates/parts/part.html b/partdoc/parts/templates/parts/part.html
new file mode 100644
index 0000000..ca9d8b2
--- /dev/null
+++ b/partdoc/parts/templates/parts/part.html
@@ -0,0 +1,20 @@
+
part {{part.number}}
+{{part.name}}
+
diff --git a/partdoc/parts/templates/parts/parts.html b/partdoc/parts/templates/parts/parts.html
index 75c1310..21fe47e 100644
--- a/partdoc/parts/templates/parts/parts.html
+++ b/partdoc/parts/templates/parts/parts.html
@@ -12,7 +12,7 @@
{% for part in quantities %}
- | {{part.number}} |
+ {{part.number}} |
{{part.name}} |
{% for product in part.quantities %}
{{product}} |
diff --git a/partdoc/parts/templates/parts/product.html b/partdoc/parts/templates/parts/product.html
index ea3e8c5..3e2d6e6 100644
--- a/partdoc/parts/templates/parts/product.html
+++ b/partdoc/parts/templates/parts/product.html
@@ -3,13 +3,13 @@
explicit sketches
implicit sketches
\ No newline at end of file
+
diff --git a/partdoc/parts/templates/parts/products.html b/partdoc/parts/templates/parts/products.html
index 3cf1fee..9ce0ba9 100644
--- a/partdoc/parts/templates/parts/products.html
+++ b/partdoc/parts/templates/parts/products.html
@@ -1,6 +1,6 @@
Available products:
\ No newline at end of file
+
diff --git a/partdoc/parts/templates/parts/sketch.html b/partdoc/parts/templates/parts/sketch.html
index cc4fb29..cc1f785 100644
--- a/partdoc/parts/templates/parts/sketch.html
+++ b/partdoc/parts/templates/parts/sketch.html
@@ -3,9 +3,10 @@
{{sketch.get_brand}}
{{sketch.get_brand.name.foo}}
-Edit
\ No newline at end of file
+Edit
diff --git a/partdoc/parts/urls.py b/partdoc/parts/urls.py
index 91dadcf..11c3e83 100644
--- a/partdoc/parts/urls.py
+++ b/partdoc/parts/urls.py
@@ -5,9 +5,11 @@ from . import views
app_name = "parts"
urlpatterns = [
path('', views.index, name="index"),
- path('product//', views.product, name="detail"),
+ path('product//', views.product, name="product"),
path('sketch//', views.sketch, name="sketch"),
path('parts', views.parts, name="parts"),
+ path('part/by_number/', views.part_by_number, name="part_num"),
+ path('part/', views.part, name="part"),
path('add//sketch/', views.sketch_add, name="continue_sketch"),
path('add//sketch', views.sketch_add, name="new_sketch"),
path('search/part/', views.part_search, name="part_search"),
diff --git a/partdoc/parts/views.py b/partdoc/parts/views.py
index bb5074e..0b77aa8 100644
--- a/partdoc/parts/views.py
+++ b/partdoc/parts/views.py
@@ -28,6 +28,18 @@ def sketch(request, sketch_id):
context = {'sketch': sketch}
return render(request, 'parts/sketch.html', context)
+def __part_view(request, part):
+ sketches = part.usage_set.values('sketch', 'sketch_number', 'sketch__name', 'sketch__product__name', 'sketch__product__id').annotate(qty=Sum('productusage__quantity'))
+ context = {'part': part, 'sketches': sketches}
+ return render(request, 'parts/part.html', context)
+
+def part(request, part_id):
+ part = BrandedPart.objects.get(id=part_id)
+ return __part_view(request, part)
+
+def part_by_number(request, part_number):
+ part = BrandedPart.objects.get(number=part_number)
+ return __part_view(request, part)
def parts(request):
products = Product.objects.order_by('name')
@@ -49,6 +61,7 @@ def parts(request):
"number": part.number,
"quantities": prod_qtys,
"sum": sum(prod_qtys),
+ "id": part.id,
})
context = {'products': products, 'parts': parts, 'quantities': quantities, 'len': len(quantities)}