mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Fixed navbar, added missing template and urls
This commit is contained in:
parent
08ffbee8ed
commit
e28dde7f7b
@ -11,6 +11,7 @@ from django.contrib import admin
|
|||||||
from django.contrib.auth import views as auth_views
|
from django.contrib.auth import views as auth_views
|
||||||
|
|
||||||
from company.urls import company_urls
|
from company.urls import company_urls
|
||||||
|
from company.urls import manufacturer_part_urls
|
||||||
from company.urls import supplier_part_urls
|
from company.urls import supplier_part_urls
|
||||||
from company.urls import price_break_urls
|
from company.urls import price_break_urls
|
||||||
|
|
||||||
@ -114,6 +115,7 @@ dynamic_javascript_urls = [
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^part/', include(part_urls)),
|
url(r'^part/', include(part_urls)),
|
||||||
|
url(r'^manufacturer-part/', include(manufacturer_part_urls)),
|
||||||
url(r'^supplier-part/', include(supplier_part_urls)),
|
url(r'^supplier-part/', include(supplier_part_urls)),
|
||||||
url(r'^price-break/', include(price_break_urls)),
|
url(r'^price-break/', include(price_break_urls)),
|
||||||
|
|
||||||
|
@ -307,7 +307,7 @@ class ManufacturerPart(models.Model):
|
|||||||
manufacturer = models.ForeignKey(
|
manufacturer = models.ForeignKey(
|
||||||
Company,
|
Company,
|
||||||
on_delete=models.SET_NULL,
|
on_delete=models.SET_NULL,
|
||||||
related_name='manufactured_parts',
|
related_name='manufacturer_parts',
|
||||||
limit_choices_to={
|
limit_choices_to={
|
||||||
'is_manufacturer': True
|
'is_manufacturer': True
|
||||||
},
|
},
|
||||||
@ -386,6 +386,24 @@ class SupplierPart(models.Model):
|
|||||||
help_text=_('Supplier stock keeping unit')
|
help_text=_('Supplier stock keeping unit')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
manufacturer = models.ForeignKey(
|
||||||
|
Company,
|
||||||
|
on_delete=models.SET_NULL,
|
||||||
|
related_name='manufactured_parts',
|
||||||
|
limit_choices_to={
|
||||||
|
'is_manufacturer': True
|
||||||
|
},
|
||||||
|
verbose_name=_('Manufacturer'),
|
||||||
|
help_text=_('Select manufacturer'),
|
||||||
|
null=True, blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
MPN = models.CharField(
|
||||||
|
max_length=100, blank=True, null=True,
|
||||||
|
verbose_name=_('MPN'),
|
||||||
|
help_text=_('Manufacturer part number')
|
||||||
|
)
|
||||||
|
|
||||||
link = InvenTreeURLField(
|
link = InvenTreeURLField(
|
||||||
blank=True, null=True,
|
blank=True, null=True,
|
||||||
verbose_name=_('Link'),
|
verbose_name=_('Link'),
|
||||||
|
91
InvenTree/part/templates/part/manufacturer.html
Normal file
91
InvenTree/part/templates/part/manufacturer.html
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
{% extends "part/part_base.html" %}
|
||||||
|
{% load static %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block menubar %}
|
||||||
|
{% include 'part/navbar.html' with tab='manufacturers' %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block heading %}
|
||||||
|
{% trans "Part Manufacturers" %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block details %}
|
||||||
|
<div id='button-toolbar'>
|
||||||
|
<div class='btn-group'>
|
||||||
|
<button class="btn btn-success" id='manufacturer-create'>
|
||||||
|
<span class='fas fa-plus-circle'></span> {% trans "New Supplier Part" %}
|
||||||
|
</button>
|
||||||
|
<div id='opt-dropdown' class="btn-group">
|
||||||
|
<button id='manufacturer-part-options' class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">{% trans "Options" %}<span class="caret"></span></button>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href='#' id='manufacturer-part-delete' title='{% trans "Delete manufacturer parts" %}'>{% trans "Delete" %}</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table class="table table-striped table-condensed" id='manufacturer-table' data-toolbar='#button-toolbar'>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block js_load %}
|
||||||
|
{{ block.super }}
|
||||||
|
{% endblock %}
|
||||||
|
{% block js_ready %}
|
||||||
|
{{ block.super }}
|
||||||
|
|
||||||
|
$('#manufacturer-create').click(function () {
|
||||||
|
launchModalForm(
|
||||||
|
"{% url 'manufacturer-part-create' %}",
|
||||||
|
{
|
||||||
|
reload: true,
|
||||||
|
data: {
|
||||||
|
part: {{ part.id }}
|
||||||
|
},
|
||||||
|
secondary: [
|
||||||
|
{
|
||||||
|
field: 'manufacturer',
|
||||||
|
label: '{% trans "New Manufacturer" %}',
|
||||||
|
title: '{% trans "Create new manufacturer" %}',
|
||||||
|
url: "{% url 'manufacturer-create' %}",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#manufacturer-part-delete").click(function() {
|
||||||
|
|
||||||
|
var selections = $("#manufacturer-table").bootstrapTable("getSelections");
|
||||||
|
|
||||||
|
var parts = [];
|
||||||
|
|
||||||
|
selections.forEach(function(item) {
|
||||||
|
parts.push(item.pk);
|
||||||
|
});
|
||||||
|
|
||||||
|
launchModalForm("{% url 'manufacturer-part-delete' %}", {
|
||||||
|
data: {
|
||||||
|
parts: parts,
|
||||||
|
},
|
||||||
|
reload: true,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
loadSupplierPartTable(
|
||||||
|
"#supplier-table",
|
||||||
|
"{% url 'api-supplier-part-list' %}",
|
||||||
|
{
|
||||||
|
params: {
|
||||||
|
part: {{ part.id }},
|
||||||
|
part_detail: true,
|
||||||
|
supplier_detail: true,
|
||||||
|
manufacturer_detail: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
linkButtonsToSelection($("#supplier-table"), ['#supplier-part-options'])
|
||||||
|
|
||||||
|
{% endblock %}
|
@ -70,7 +70,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% if part.purchaseable and roles.purchase_order.view %}
|
{% if part.purchaseable and roles.purchase_order.view %}
|
||||||
<li class='list-group-item {% if tab == "manufacturers" %}active{% endif %}' title='{% trans "Manufacturers" %}'>
|
<li class='list-group-item {% if tab == "manufacturers" %}active{% endif %}' title='{% trans "Manufacturers" %}'>
|
||||||
<a href='{% url "part-suppliers" part.id %}'>
|
<a href='{% url "part-manufacturers" part.id %}'>
|
||||||
<span class='menu-tab-icon fas fa-building'></span>
|
<span class='menu-tab-icon fas fa-building'></span>
|
||||||
{% trans "Manufacturers" %}
|
{% trans "Manufacturers" %}
|
||||||
</a>
|
</a>
|
||||||
|
@ -60,6 +60,7 @@ part_detail_urls = [
|
|||||||
url(r'^bom/?', views.PartDetail.as_view(template_name='part/bom.html'), name='part-bom'),
|
url(r'^bom/?', views.PartDetail.as_view(template_name='part/bom.html'), name='part-bom'),
|
||||||
url(r'^build/?', views.PartDetail.as_view(template_name='part/build.html'), name='part-build'),
|
url(r'^build/?', views.PartDetail.as_view(template_name='part/build.html'), name='part-build'),
|
||||||
url(r'^used/?', views.PartDetail.as_view(template_name='part/used_in.html'), name='part-used-in'),
|
url(r'^used/?', views.PartDetail.as_view(template_name='part/used_in.html'), name='part-used-in'),
|
||||||
|
url(r'^manufacturers/?', views.PartDetail.as_view(template_name='part/manufacturer.html'), name='part-manufacturers'),
|
||||||
url(r'^suppliers/?', views.PartDetail.as_view(template_name='part/supplier.html'), name='part-suppliers'),
|
url(r'^suppliers/?', views.PartDetail.as_view(template_name='part/supplier.html'), name='part-suppliers'),
|
||||||
url(r'^orders/?', views.PartDetail.as_view(template_name='part/orders.html'), name='part-orders'),
|
url(r'^orders/?', views.PartDetail.as_view(template_name='part/orders.html'), name='part-orders'),
|
||||||
url(r'^sales-orders/', views.PartDetail.as_view(template_name='part/sales_orders.html'), name='part-sales-orders'),
|
url(r'^sales-orders/', views.PartDetail.as_view(template_name='part/sales_orders.html'), name='part-sales-orders'),
|
||||||
|
Loading…
Reference in New Issue
Block a user