Merge pull request #631 from SchrodingersGat/allow-dupe-names

Allow PartCategory and StocKLocation names to be non-unique
This commit is contained in:
Oliver 2020-02-02 21:46:07 +11:00 committed by GitHub
commit d62d4c9355
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 650 additions and 211 deletions

View File

@ -29,6 +29,8 @@ class InvenTreeTree(MPTTModel):
class Meta:
abstract = True
# Names must be unique at any given level in the tree
unique_together = ('name', 'parent')
class MPTTMeta:
@ -37,7 +39,6 @@ class InvenTreeTree(MPTTModel):
name = models.CharField(
blank=False,
max_length=100,
unique=True,
validators=[validate_tree_name]
)

View File

@ -1,9 +1,10 @@
{% extends "base.html" %}
{% load static %}
{% load i18n %}
{% block page_title %}
InvenTree | Company - {{ company.name }}
InvenTree | {% trans "Company" %} - {{ company.name }}
{% endblock %}
{% block content %}
@ -44,27 +45,27 @@ InvenTree | Company - {{ company.name }}
<table class="table">
{% if company.website %}
<tr>
<td>Website</td><td><a href="{{ company.website }}">{{ company.website }}</a></td>
<td>{% trans "Website" %}</td><td><a href="{{ company.website }}">{{ company.website }}</a></td>
</tr>
{% endif %}
{% if company.address %}
<tr>
<td>Address</td><td>{{ company.address }}</td>
<td>{% trans "Address" %}</td><td>{{ company.address }}</td>
</tr>
{% endif %}
{% if company.phone %}
<tr>
<td>Phone</td><td>{{ company.phone }}</td>
<td>{% trans "Phone" %}</td><td>{{ company.phone }}</td>
</tr>
{% endif %}
{% if company.email %}
<tr>
<td>Email</td><td>{{ company.email }}</td>
<td>{% trans "Email" %}</td><td>{{ company.email }}</td>
</tr>
{% endif %}
{% if company.contact %}
<tr>
<td>Contact</td><td>{{ company.contact }}</td>
<td>{% trans "Contact" %}</td><td>{{ company.contact }}</td>
</tr>
{% endif %}
</table>

View File

@ -1,19 +1,20 @@
{% extends "company/company_base.html" %}
{% load static %}
{% load i18n %}}
{% block details %}
{% include 'company/tabs.html' with tab='details' %}
<h4>Company Details</h4>
<h4>{% trans "Company Details" %}</h4>
<hr>
<table class='table table-striped'>
<tr>
<td>Customer</td>
<td>{% trans "Customer" %}</td>
<td>{% include 'yesnolabel.html' with value=company.is_customer %}</td>
</tr>
<tr>
<td>Supplier</td>
<td>{% trans "Supplier" %}</td>
<td>{% include 'yesnolabel.html' with value=company.is_supplier %}</td>
</tr>
</table>

View File

@ -1,21 +1,22 @@
{% extends "company/company_base.html" %}
{% load static %}
{% block details %}
{% load i18n %}
{% include 'company/tabs.html' with tab='parts' %}
<h4>Supplier Parts</h4>
<h4>{% trans "Supplier Parts" %}</h4>
<hr>
<div id='button-toolbar'>
<button class="btn btn-success" id='part-create'>New Supplier Part</button>
<button class="btn btn-success" id='part-create'>{% trans "New Supplier Part" %}</button>
<div class="dropdown" style="float: right;">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Options
<button 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='multi-part-order' title='Order parts'>Order Parts</a></li>
<li><a href='#' id='multi-part-delete' title='Delete parts'>Delete Parts</a></li>
<li><a href='#' id='multi-part-order' title='Order parts'>{% trans "Order Parts" %}</a></li>
<li><a href='#' id='multi-part-delete' title='Delete parts'>{% trans "Delete Parts" %}</a></li>
</ul>
</div>
</div>
@ -61,7 +62,7 @@
{
sortable: true,
field: 'part_detail.full_name',
title: 'Part',
title: '{% trans "Part" %}',
formatter: function(value, row, index, field) {
return imageHoverIcon(row.part_detail.image_url) + renderLink(value, '/part/' + row.part + '/suppliers/');
}
@ -69,7 +70,7 @@
{
sortable: true,
field: 'SKU',
title: 'SKU',
title: '{% trans "SKU" %}',
formatter: function(value, row, index, field) {
return renderLink(value, row.url);
}
@ -77,7 +78,7 @@
{
sortable: true,
field: 'manufacturer',
title: 'Manufacturer',
title: '{% trans "Manufacturer" %}',
},
{
sortable: true,
@ -86,7 +87,7 @@
},
{
field: 'URL',
title: 'URL',
title: '{% trans "URL" %}',
formatter: function(value, row, index, field) {
if (value) {
return renderLink(value, value);

View File

@ -1,15 +1,16 @@
{% extends "company/company_base.html" %}
{% load static %}
{% block details %}
{% load i18n %}
{% include 'company/tabs.html' with tab='po' %}
<h4>Open Purchase Orders</h4>
<h4>{% trans "Purchase Orders" %}</h4>
<hr>
<div id='button-bar'>
<div class='btn-group'>
<button class='btn btn-primary' type='button' id='company-order2' title='Create new purchase order'>New Purchase Order</button>
<button class='btn btn-primary' type='button' id='company-order2' title='Create new purchase order'>{% trans "New Purchase Order" %}</button>
</div>
</div>

View File

@ -1,11 +1,12 @@
{% extends "company/company_base.html" %}
{% load static %}
{% load i18n %}
{% block details %}
{% include "company/tabs.html" with tab='stock' %}
<h4>Supplier Stock</h4>
<h4>{% trans "Supplier Stock" %}</h4>
<hr>
@ -29,7 +30,7 @@
$("#stock-export").click(function() {
launchModalForm("{% url 'stock-export-options' %}", {
submit_text: "Export",
submit_text: '{% trans "Export" %}',
success: function(response) {
var url = "{% url 'stock-export' %}";

View File

@ -1,19 +1,20 @@
{% extends "base.html" %}
{% load static %}
{% load i18n %}
{% block page_title %}
InvenTree | Supplier List
InvenTree | {% trans "Supplier List" %}
{% endblock %}
{% block content %}
<h3>Supplier List</h3>
<h3>{% trans "Supplier List" %}</h3>
<hr>
<div id='button-toolbar'>
<div class='btn-group'>
<button type='button' class="btn btn-success" id='new-company' title='Add new supplier'>New Supplier</button>
<button type='button' class="btn btn-success" id='new-company' title='Add new supplier'>{% trans "New Supplier" %}</button>
</div>
</div>
@ -37,12 +38,12 @@ InvenTree | Supplier List
columns: [
{
field: 'pk',
title: 'ID',
title: '{% trans "ID" %}',
visible: false,
},
{
field: 'name',
title: 'Supplier',
title: '{% trans "Supplier" %}',
sortable: true,
formatter: function(value, row, index, field) {
return imageHoverIcon(row.image) + renderLink(value, row.url);
@ -50,12 +51,12 @@ InvenTree | Supplier List
},
{
field: 'description',
title: 'Description',
title: '{% trans "Description" %}',
sortable: true,
},
{
field: 'website',
title: 'Website',
title: '{% trans "Website" %}',
formatter: function(value, row, index, field) {
if (value) {
return renderLink(value, value);
@ -65,7 +66,7 @@ InvenTree | Supplier List
},
{
field: 'part_count',
title: 'Parts',
title: '{% trans "Parts" %}',
sortable: true,
formatter: function(value, row, index, field) {
return renderLink(value, row.url + 'parts/');

View File

@ -1,49 +0,0 @@
{% extends "base.html" %}
{% block content %}
<h3>Supplier Order Details</h3>
<table class='table table-striped'>
<tr>
<td>Reference</td>
<td>{{ order.internal_ref }}</td>
</tr>
<tr>
<td>Supplier</td>
<td>
{% if order.supplier %}
<a href="{% url 'supplier-detail-orders' order.supplier.id %}">{{ order.supplier.name }}</a>
{% endif %}
</td>
</tr>
<tr>
<td>Status</td>
<td>{% include "supplier/order_status.html" with order=order %}</td>
</tr>
<tr>
<td>Created Date</td>
<td>{{ order.created_date }}</td>
</tr>
<tr>
<td>Issued Date</td>
<td>{{ order.issued_date }}</td>
</tr>
<tr>
<td>Delivered Date</td>
<td>{{ order.delivery_date }}</td>
</tr>
</table>
{% if order.notes %}
<div class="panel panel-default">
<div class="panel-heading"><b>Notes</b></div>
<div class="panel-body">{{ order.notes }}</div>
</div>
{% endif %}
<h2>TODO</h2>
Here we list all the line ites which exist under this order...
{% endblock %}

View File

@ -1,15 +1,16 @@
{% extends "base.html" %}
{% load static %}
{% load i18n %}
{% block page_title %}
InvenTree | {{ company.name }} - Parts
InvenTree | {{ company.name }} - {% trans "Parts" %}
{% endblock %}
{% block content %}
<div class='row'>
<div class='col-sm-6'>
<h3>Supplier Part</h3>
<h3>{% trans "Supplier Part" %}</h3>
<div class='btn-row'>
<div class='btn-group'>
<button type='button' class='btn btn-default btn-glyph' id='edit-part' title='Edit supplier part'>
@ -37,52 +38,52 @@ InvenTree | {{ company.name }} - Parts
<div class='row'>
<div class='col-sm-6'>
<h4>Supplier Part Details</h4>
<h4>{% trans "Supplier Part Details" %}</h4>
<table class="table table-striped table-condensed">
<tr>
<td>Internal Part</td>
<td>{% trans "Internal Part" %}</td>
<td>
{% if part.part %}
<a href="{% url 'part-suppliers' part.part.id %}">{{ part.part.full_name }}</a>
{% endif %}
</td>
</tr>
<tr><td>Supplier</td><td><a href="{% url 'company-detail-parts' part.supplier.id %}">{{ part.supplier.name }}</a></td></tr>
<tr><td>SKU</td><td>{{ part.SKU }}</tr></tr>
<tr><td>{% trans "Supplier" %}</td><td><a href="{% url 'company-detail-parts' part.supplier.id %}">{{ part.supplier.name }}</a></td></tr>
<tr><td>{% trans "SKU" %}</td><td>{{ part.SKU }}</tr></tr>
{% if part.URL %}
<tr><td>URL</td><td><a href="{{ part.URL }}">{{ part.URL }}</a></td></tr>
<tr><td>{% trans "URL" %}</td><td><a href="{{ part.URL }}">{{ part.URL }}</a></td></tr>
{% endif %}
{% if part.description %}
<tr><td>Description</td><td>{{ part.description }}</td></tr>
<tr><td>{% trans "Description" %}</td><td>{{ part.description }}</td></tr>
{% endif %}
{% if part.manufacturer %}
<tr><td>Manufacturer</td><td>{{ part.manufacturer }}</td></tr>
<tr><td>MPN</td><td>{{ part.MPN }}</td></tr>
<tr><td>{% trans "Manufacturer" %}</td><td>{{ part.manufacturer }}</td></tr>
<tr><td>{% trans "MPN" %}</td><td>{{ part.MPN }}</td></tr>
{% endif %}
{% if part.note %}
<tr><td>Note</td><td>{{ part.note }}</td></tr>
<tr><td>{% trans "Note" %}</td><td>{{ part.note }}</td></tr>
{% endif %}
</table>
</div>
<div class='col-sm-6'>
<h4>Pricing Information</h4>
<h4>{% trans "Pricing Information" %}</h4>
<table class="table table-striped table-condensed">
<tr><td>Order Multiple</td><td>{{ part.multiple }}</td></tr>
<tr><td>{% trans "Order Multiple" %}</td><td>{{ part.multiple }}</td></tr>
{% if part.base_cost > 0 %}
<tr><td>Base Price (Flat Fee)</td><td>{{ part.base_cost }}</td></tr>
<tr><td>{% trans "Base Price (Flat Fee)" %}</td><td>{{ part.base_cost }}</td></tr>
{% endif %}
<tr>
<th>Price Breaks</th>
<th>{% trans "Price Breaks" %}</th>
<th>
<div style='float: right;'>
<button class='btn btn-primary' id='new-price-break' type='button'>New Price Break</button>
<button class='btn btn-primary' id='new-price-break' type='button'>{% trans "New Price Break" %}</button>
</div>
</th>
</tr>
<tr>
<th>Quantity</th>
<th>Price</th>
<th>{% trans "Quantity" %}</th>
<th>{% trans "Price" %}</th>
</tr>
{% if part.price_breaks.all %}
{% for pb in part.price_breaks.all %}
@ -102,7 +103,7 @@ InvenTree | {{ company.name }} - Parts
{% else %}
<tr>
<td colspan='2'>
<span class='warning-msg'><i>No price breaks have been added for this part</i></span>
<span class='warning-msg'><i>{% trans "No price breaks have been added for this part" %}</i></span>
</td>
</tr>
{% endif %}
@ -112,7 +113,7 @@ InvenTree | {{ company.name }} - Parts
<hr>
<h4>Purchase Orders</h4>
<h4>{% trans "Purchase Orders" %}</h4>
{% include "order/po_table.html" with orders=part.purchase_orders %}
{% endblock %}

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-02 07:07+0000\n"
"POT-Creation-Date: 2020-02-02 10:40+0000\n"
"PO-Revision-Date: 2020-02-02 08:07+0100\n"
"Last-Translator: Christian Schlüter <chschlue@gmail.com>\n"
"Language-Team: C <kde-i18n-doc@kde.org>\n"
@ -216,6 +216,7 @@ msgstr "Zuweisung aufheben"
#: build/templates/build/allocate_edit.html:19
#: build/templates/build/allocate_view.html:17
#: build/templates/build/detail.html:17
#: company/templates/company/detail_part.html:65
#: order/templates/order/purchase_order_detail.html:25
msgid "Part"
msgstr "Teil"
@ -239,10 +240,13 @@ msgid "Allocate"
msgstr "zuweisen"
#: build/templates/build/allocate_view.html:10
#: company/templates/company/detail_part.html:18
msgid "Order Parts"
msgstr "Teile bestellen"
#: build/templates/build/allocate_view.html:18
#: company/templates/company/index.html:54
#: company/templates/company/partdetail.html:57
#: order/templates/order/purchase_order_detail.html:26
#: part/templates/part/detail.html:33
msgid "Description"
@ -262,6 +266,7 @@ msgid "Title"
msgstr "Titel"
#: build/templates/build/detail.html:20
#: company/templates/company/partdetail.html:85
#: order/templates/order/purchase_order_detail.html:29
#: stock/templates/stock/item_base.html:90
#: stock/templates/stock/stock_adjust.html:18
@ -286,8 +291,10 @@ msgstr "Status"
msgid "Batch"
msgstr "Los"
#: build/templates/build/detail.html:42 part/templates/part/detail.html:50
#: part/templates/part/part_base.html:91
#: build/templates/build/detail.html:42
#: company/templates/company/detail_part.html:90
#: company/templates/company/partdetail.html:54
#: part/templates/part/detail.html:50 part/templates/part/part_base.html:91
#: stock/templates/stock/item_base.html:120
msgid "URL"
msgstr "URL"
@ -439,7 +446,8 @@ msgstr "Zulieferer auswählen"
msgid "Supplier stock keeping unit"
msgstr "Stock Keeping Units (SKU) des Zulieferers"
#: company/models.py:240
#: company/models.py:240 company/templates/company/detail_part.html:81
#: company/templates/company/partdetail.html:60
msgid "Manufacturer"
msgstr "Hersteller"
@ -463,6 +471,121 @@ msgstr "Mindestpreis"
msgid "Part packaging"
msgstr "Teile-Packaging"
#: company/templates/company/company_base.html:7 order/models.py:128
msgid "Company"
msgstr "Firma"
#: company/templates/company/company_base.html:48
#: company/templates/company/index.html:59
msgid "Website"
msgstr ""
#: company/templates/company/company_base.html:53
msgid "Address"
msgstr ""
#: company/templates/company/company_base.html:58
msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:63
msgid "Email"
msgstr ""
#: company/templates/company/company_base.html:68
msgid "Contact"
msgstr ""
#: company/templates/company/detail.html:8
#, fuzzy
#| msgid "Company Notes"
msgid "Company Details"
msgstr "Firmenbemerkungen"
#: company/templates/company/detail.html:13
#: stock/templates/stock/item_base.html:114
msgid "Customer"
msgstr "Kunde"
#: company/templates/company/detail.html:17
#: company/templates/company/index.html:46
#: company/templates/company/partdetail.html:51
#: order/templates/order/order_base.html:67
#: stock/templates/stock/item_base.html:126
msgid "Supplier"
msgstr "Zulieferer"
#: company/templates/company/detail_part.html:8
#: company/templates/company/tabs.html:9
msgid "Supplier Parts"
msgstr "Zulieferer-Teile"
#: company/templates/company/detail_part.html:13
#, fuzzy
#| msgid "Supplier Part"
msgid "New Supplier Part"
msgstr "Zulieferer-Teil"
#: company/templates/company/detail_part.html:15
msgid "Options"
msgstr ""
#: company/templates/company/detail_part.html:19
#, fuzzy
#| msgid "Delete attachment"
msgid "Delete Parts"
msgstr "Anhang löschen"
#: company/templates/company/detail_part.html:73
#: company/templates/company/partdetail.html:52
msgid "SKU"
msgstr ""
#: company/templates/company/detail_purchase_orders.html:8
#: company/templates/company/partdetail.html:116
#: company/templates/company/tabs.html:15 part/templates/part/tabs.html:43
msgid "Purchase Orders"
msgstr "Bestellungen"
#: company/templates/company/detail_purchase_orders.html:13
#, fuzzy
#| msgid "Purchase Order"
msgid "New Purchase Order"
msgstr "Kaufvertrag"
#: company/templates/company/detail_stock.html:9
#, fuzzy
#| msgid "Supplier part"
msgid "Supplier Stock"
msgstr "Zulieferer-Teil"
#: company/templates/company/detail_stock.html:33
msgid "Export"
msgstr ""
#: company/templates/company/index.html:7
#: company/templates/company/index.html:12
#, fuzzy
#| msgid "Suppliers"
msgid "Supplier List"
msgstr "Zulieferer"
#: company/templates/company/index.html:17
#, fuzzy
#| msgid "Supplier"
msgid "New Supplier"
msgstr "Zulieferer"
#: company/templates/company/index.html:41
msgid "ID"
msgstr ""
#: company/templates/company/index.html:69
#: company/templates/company/partdetail.html:6
#: part/templates/part/category.html:73
msgid "Parts"
msgstr "Teile"
#: company/templates/company/notes.html:10
#: company/templates/company/notes.html:27
msgid "Company Notes"
@ -473,18 +596,70 @@ msgid "Are you sure you want to delete the following Supplier Parts?"
msgstr ""
"Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?"
#: company/templates/company/tabs.html:9
msgid "Supplier Parts"
#: company/templates/company/partdetail.html:13
#: stock/templates/stock/item_base.html:130
msgid "Supplier Part"
msgstr "Zulieferer-Teil"
#: company/templates/company/partdetail.html:41
#, fuzzy
#| msgid "Supplier Parts"
msgid "Supplier Part Details"
msgstr "Zulieferer-Teile"
#: company/templates/company/partdetail.html:44
#, fuzzy
#| msgid "Internal Part Number"
msgid "Internal Part"
msgstr "Interne Teilenummer"
#: company/templates/company/partdetail.html:61
#, fuzzy
#| msgid "IPN"
msgid "MPN"
msgstr "IPN (Interne Produktnummer)"
#: company/templates/company/partdetail.html:64
#: order/templates/order/purchase_order_detail.html:33
msgid "Note"
msgstr "Notiz"
#: company/templates/company/partdetail.html:70
#, fuzzy
#| msgid "Show pricing information"
msgid "Pricing Information"
msgstr "Kosteninformationen ansehen"
#: company/templates/company/partdetail.html:72
#, fuzzy
#| msgid "Order notes"
msgid "Order Multiple"
msgstr "Bestell-Notizen"
#: company/templates/company/partdetail.html:74
msgid "Base Price (Flat Fee)"
msgstr ""
#: company/templates/company/partdetail.html:77
msgid "Price Breaks"
msgstr ""
#: company/templates/company/partdetail.html:80
msgid "New Price Break"
msgstr ""
#: company/templates/company/partdetail.html:86
msgid "Price"
msgstr ""
#: company/templates/company/partdetail.html:106
msgid "No price breaks have been added for this part"
msgstr ""
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17
msgid "Stock"
msgstr "Lagerbestand"
#: company/templates/company/tabs.html:15 part/templates/part/tabs.html:43
msgid "Purchase Orders"
msgstr "Bestellungen"
#: company/templates/company/tabs.html:21
msgid "Sales Orders"
msgstr "Bestellungen"
@ -521,10 +696,6 @@ msgstr "Link auf externe Seite"
msgid "Order notes"
msgstr "Bestell-Notizen"
#: order/models.py:128
msgid "Company"
msgstr "Firma"
#: order/models.py:159 order/models.py:210 part/views.py:1065
#: stock/models.py:440
msgid "Quantity must be greater than zero"
@ -566,11 +737,6 @@ msgstr "Empfangene Objekt-Anzahl"
msgid "Purchase Order Details"
msgstr "Bestelldetails"
#: order/templates/order/order_base.html:67
#: stock/templates/stock/item_base.html:126
msgid "Supplier"
msgstr "Zulieferer"
#: order/templates/order/order_base.html:80
msgid "Issued"
msgstr "Aufgegeben"
@ -605,10 +771,6 @@ msgstr "Bestellnummer"
msgid "Reference"
msgstr "Referenz"
#: order/templates/order/purchase_order_detail.html:33
msgid "Note"
msgstr "Notiz"
#: order/templates/order/tabs.html:5
msgid "Items"
msgstr "Positionen"
@ -939,10 +1101,6 @@ msgstr "Teile (inklusive Unter-Kategorien)"
msgid "Part Details"
msgstr "Teile-Details"
#: part/templates/part/category.html:73
msgid "Parts"
msgstr "Teile"
#: part/templates/part/detail.html:22 part/templates/part/part_base.html:85
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
@ -1317,14 +1475,6 @@ msgstr "Standort"
msgid "Serial Number"
msgstr "Seriennummer"
#: stock/templates/stock/item_base.html:114
msgid "Customer"
msgstr "Kunde"
#: stock/templates/stock/item_base.html:130
msgid "Supplier Part"
msgstr "Zulieferer-Teil"
#: stock/templates/stock/item_base.html:135
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
@ -1363,6 +1513,7 @@ msgid "Stock Details"
msgstr "Objekt-Details"
#: stock/templates/stock/location.html:60
#: templates/InvenTree/search_stock_location.html:6
msgid "Stock Locations"
msgstr "Lagerobjekt-Standorte"
@ -1512,6 +1663,16 @@ msgstr "Lagerbestands-Tracking-Eintrag bearbeiten"
msgid "Add Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag hinzufügen"
#: templates/InvenTree/search.html:12
msgid "Search Results"
msgstr ""
#: templates/InvenTree/search.html:22
#, fuzzy
#| msgid "No serial numbers found"
msgid "No results found"
msgstr "Keine Seriennummern gefunden"
#: templates/about.html:18
msgid "InvenTree Version Information"
msgstr "InvenTree-Versionsinformationen"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-02 01:39+0000\n"
"POT-Creation-Date: 2020-02-02 10:40+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"
@ -212,6 +212,7 @@ msgstr ""
#: build/templates/build/allocate_edit.html:19
#: build/templates/build/allocate_view.html:17
#: build/templates/build/detail.html:17
#: company/templates/company/detail_part.html:65
#: order/templates/order/purchase_order_detail.html:25
msgid "Part"
msgstr ""
@ -235,10 +236,13 @@ msgid "Allocate"
msgstr ""
#: build/templates/build/allocate_view.html:10
#: company/templates/company/detail_part.html:18
msgid "Order Parts"
msgstr ""
#: build/templates/build/allocate_view.html:18
#: company/templates/company/index.html:54
#: company/templates/company/partdetail.html:57
#: order/templates/order/purchase_order_detail.html:26
#: part/templates/part/detail.html:33
msgid "Description"
@ -258,6 +262,7 @@ msgid "Title"
msgstr ""
#: build/templates/build/detail.html:20
#: company/templates/company/partdetail.html:85
#: order/templates/order/purchase_order_detail.html:29
#: stock/templates/stock/item_base.html:90
#: stock/templates/stock/stock_adjust.html:18
@ -282,8 +287,10 @@ msgstr ""
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:42 part/templates/part/detail.html:50
#: part/templates/part/part_base.html:91
#: build/templates/build/detail.html:42
#: company/templates/company/detail_part.html:90
#: company/templates/company/partdetail.html:54
#: part/templates/part/detail.html:50 part/templates/part/part_base.html:91
#: stock/templates/stock/item_base.html:120
msgid "URL"
msgstr ""
@ -332,7 +339,7 @@ msgstr ""
#: build/templates/build/tabs.html:8 company/models.py:248
#: company/templates/company/tabs.html:26 order/templates/order/tabs.html:8
#: part/templates/part/tabs.html:58 stock/templates/stock/tabs.html:8
#: part/templates/part/tabs.html:58 stock/templates/stock/tabs.html:14
msgid "Notes"
msgstr ""
@ -433,7 +440,8 @@ msgstr ""
msgid "Supplier stock keeping unit"
msgstr ""
#: company/models.py:240
#: company/models.py:240 company/templates/company/detail_part.html:81
#: company/templates/company/partdetail.html:60
msgid "Manufacturer"
msgstr ""
@ -457,6 +465,107 @@ msgstr ""
msgid "Part packaging"
msgstr ""
#: company/templates/company/company_base.html:7 order/models.py:128
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:48
#: company/templates/company/index.html:59
msgid "Website"
msgstr ""
#: company/templates/company/company_base.html:53
msgid "Address"
msgstr ""
#: company/templates/company/company_base.html:58
msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:63
msgid "Email"
msgstr ""
#: company/templates/company/company_base.html:68
msgid "Contact"
msgstr ""
#: company/templates/company/detail.html:8
msgid "Company Details"
msgstr ""
#: company/templates/company/detail.html:13
#: stock/templates/stock/item_base.html:114
msgid "Customer"
msgstr ""
#: company/templates/company/detail.html:17
#: company/templates/company/index.html:46
#: company/templates/company/partdetail.html:51
#: order/templates/order/order_base.html:67
#: stock/templates/stock/item_base.html:126
msgid "Supplier"
msgstr ""
#: company/templates/company/detail_part.html:8
#: company/templates/company/tabs.html:9
msgid "Supplier Parts"
msgstr ""
#: company/templates/company/detail_part.html:13
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_part.html:15
msgid "Options"
msgstr ""
#: company/templates/company/detail_part.html:19
msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail_part.html:73
#: company/templates/company/partdetail.html:52
msgid "SKU"
msgstr ""
#: company/templates/company/detail_purchase_orders.html:8
#: company/templates/company/partdetail.html:116
#: company/templates/company/tabs.html:15 part/templates/part/tabs.html:43
msgid "Purchase Orders"
msgstr ""
#: company/templates/company/detail_purchase_orders.html:13
msgid "New Purchase Order"
msgstr ""
#: company/templates/company/detail_stock.html:9
msgid "Supplier Stock"
msgstr ""
#: company/templates/company/detail_stock.html:33
msgid "Export"
msgstr ""
#: company/templates/company/index.html:7
#: company/templates/company/index.html:12
msgid "Supplier List"
msgstr ""
#: company/templates/company/index.html:17
msgid "New Supplier"
msgstr ""
#: company/templates/company/index.html:41
msgid "ID"
msgstr ""
#: company/templates/company/index.html:69
#: company/templates/company/partdetail.html:6
#: part/templates/part/category.html:73
msgid "Parts"
msgstr ""
#: company/templates/company/notes.html:10
#: company/templates/company/notes.html:27
msgid "Company Notes"
@ -466,18 +575,60 @@ msgstr ""
msgid "Are you sure you want to delete the following Supplier Parts?"
msgstr ""
#: company/templates/company/tabs.html:9
msgid "Supplier Parts"
#: company/templates/company/partdetail.html:13
#: stock/templates/stock/item_base.html:130
msgid "Supplier Part"
msgstr ""
#: company/templates/company/partdetail.html:41
msgid "Supplier Part Details"
msgstr ""
#: company/templates/company/partdetail.html:44
msgid "Internal Part"
msgstr ""
#: company/templates/company/partdetail.html:61
msgid "MPN"
msgstr ""
#: company/templates/company/partdetail.html:64
#: order/templates/order/purchase_order_detail.html:33
msgid "Note"
msgstr ""
#: company/templates/company/partdetail.html:70
msgid "Pricing Information"
msgstr ""
#: company/templates/company/partdetail.html:72
msgid "Order Multiple"
msgstr ""
#: company/templates/company/partdetail.html:74
msgid "Base Price (Flat Fee)"
msgstr ""
#: company/templates/company/partdetail.html:77
msgid "Price Breaks"
msgstr ""
#: company/templates/company/partdetail.html:80
msgid "New Price Break"
msgstr ""
#: company/templates/company/partdetail.html:86
msgid "Price"
msgstr ""
#: company/templates/company/partdetail.html:106
msgid "No price breaks have been added for this part"
msgstr ""
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17
msgid "Stock"
msgstr ""
#: company/templates/company/tabs.html:15 part/templates/part/tabs.html:43
msgid "Purchase Orders"
msgstr ""
#: company/templates/company/tabs.html:21
msgid "Sales Orders"
msgstr ""
@ -514,10 +665,6 @@ msgstr ""
msgid "Order notes"
msgstr ""
#: order/models.py:128
msgid "Company"
msgstr ""
#: order/models.py:159 order/models.py:210 part/views.py:1065
#: stock/models.py:440
msgid "Quantity must be greater than zero"
@ -559,11 +706,6 @@ msgstr ""
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:67
#: stock/templates/stock/item_base.html:126
msgid "Supplier"
msgstr ""
#: order/templates/order/order_base.html:80
msgid "Issued"
msgstr ""
@ -598,10 +740,6 @@ msgstr ""
msgid "Reference"
msgstr ""
#: order/templates/order/purchase_order_detail.html:33
msgid "Note"
msgstr ""
#: order/templates/order/tabs.html:5
msgid "Items"
msgstr ""
@ -928,10 +1066,6 @@ msgstr ""
msgid "Part Details"
msgstr ""
#: part/templates/part/category.html:73
msgid "Parts"
msgstr ""
#: part/templates/part/detail.html:22 part/templates/part/part_base.html:85
msgid "IPN"
msgstr ""
@ -1299,14 +1433,6 @@ msgstr ""
msgid "Serial Number"
msgstr ""
#: stock/templates/stock/item_base.html:114
msgid "Customer"
msgstr ""
#: stock/templates/stock/item_base.html:130
msgid "Supplier Part"
msgstr ""
#: stock/templates/stock/item_base.html:135
msgid "Last Updated"
msgstr ""
@ -1345,6 +1471,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:60
#: templates/InvenTree/search_stock_location.html:6
msgid "Stock Locations"
msgstr ""
@ -1352,6 +1479,10 @@ msgstr ""
msgid "Stock Item"
msgstr ""
#: stock/templates/stock/tabs.html:10
msgid "Builds"
msgstr ""
#: stock/views.py:117
msgid "Edit Stock Location"
msgstr ""
@ -1490,6 +1621,14 @@ msgstr ""
msgid "Add Stock Tracking Entry"
msgstr ""
#: templates/InvenTree/search.html:12
msgid "Search Results"
msgstr ""
#: templates/InvenTree/search.html:22
msgid "No results found"
msgstr ""
#: templates/about.html:18
msgid "InvenTree Version Information"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-02 01:39+0000\n"
"POT-Creation-Date: 2020-02-02 10:40+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"
@ -212,6 +212,7 @@ msgstr ""
#: build/templates/build/allocate_edit.html:19
#: build/templates/build/allocate_view.html:17
#: build/templates/build/detail.html:17
#: company/templates/company/detail_part.html:65
#: order/templates/order/purchase_order_detail.html:25
msgid "Part"
msgstr ""
@ -235,10 +236,13 @@ msgid "Allocate"
msgstr ""
#: build/templates/build/allocate_view.html:10
#: company/templates/company/detail_part.html:18
msgid "Order Parts"
msgstr ""
#: build/templates/build/allocate_view.html:18
#: company/templates/company/index.html:54
#: company/templates/company/partdetail.html:57
#: order/templates/order/purchase_order_detail.html:26
#: part/templates/part/detail.html:33
msgid "Description"
@ -258,6 +262,7 @@ msgid "Title"
msgstr ""
#: build/templates/build/detail.html:20
#: company/templates/company/partdetail.html:85
#: order/templates/order/purchase_order_detail.html:29
#: stock/templates/stock/item_base.html:90
#: stock/templates/stock/stock_adjust.html:18
@ -282,8 +287,10 @@ msgstr ""
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:42 part/templates/part/detail.html:50
#: part/templates/part/part_base.html:91
#: build/templates/build/detail.html:42
#: company/templates/company/detail_part.html:90
#: company/templates/company/partdetail.html:54
#: part/templates/part/detail.html:50 part/templates/part/part_base.html:91
#: stock/templates/stock/item_base.html:120
msgid "URL"
msgstr ""
@ -332,7 +339,7 @@ msgstr ""
#: build/templates/build/tabs.html:8 company/models.py:248
#: company/templates/company/tabs.html:26 order/templates/order/tabs.html:8
#: part/templates/part/tabs.html:58 stock/templates/stock/tabs.html:8
#: part/templates/part/tabs.html:58 stock/templates/stock/tabs.html:14
msgid "Notes"
msgstr ""
@ -433,7 +440,8 @@ msgstr ""
msgid "Supplier stock keeping unit"
msgstr ""
#: company/models.py:240
#: company/models.py:240 company/templates/company/detail_part.html:81
#: company/templates/company/partdetail.html:60
msgid "Manufacturer"
msgstr ""
@ -457,6 +465,107 @@ msgstr ""
msgid "Part packaging"
msgstr ""
#: company/templates/company/company_base.html:7 order/models.py:128
msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:48
#: company/templates/company/index.html:59
msgid "Website"
msgstr ""
#: company/templates/company/company_base.html:53
msgid "Address"
msgstr ""
#: company/templates/company/company_base.html:58
msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:63
msgid "Email"
msgstr ""
#: company/templates/company/company_base.html:68
msgid "Contact"
msgstr ""
#: company/templates/company/detail.html:8
msgid "Company Details"
msgstr ""
#: company/templates/company/detail.html:13
#: stock/templates/stock/item_base.html:114
msgid "Customer"
msgstr ""
#: company/templates/company/detail.html:17
#: company/templates/company/index.html:46
#: company/templates/company/partdetail.html:51
#: order/templates/order/order_base.html:67
#: stock/templates/stock/item_base.html:126
msgid "Supplier"
msgstr ""
#: company/templates/company/detail_part.html:8
#: company/templates/company/tabs.html:9
msgid "Supplier Parts"
msgstr ""
#: company/templates/company/detail_part.html:13
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_part.html:15
msgid "Options"
msgstr ""
#: company/templates/company/detail_part.html:19
msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail_part.html:73
#: company/templates/company/partdetail.html:52
msgid "SKU"
msgstr ""
#: company/templates/company/detail_purchase_orders.html:8
#: company/templates/company/partdetail.html:116
#: company/templates/company/tabs.html:15 part/templates/part/tabs.html:43
msgid "Purchase Orders"
msgstr ""
#: company/templates/company/detail_purchase_orders.html:13
msgid "New Purchase Order"
msgstr ""
#: company/templates/company/detail_stock.html:9
msgid "Supplier Stock"
msgstr ""
#: company/templates/company/detail_stock.html:33
msgid "Export"
msgstr ""
#: company/templates/company/index.html:7
#: company/templates/company/index.html:12
msgid "Supplier List"
msgstr ""
#: company/templates/company/index.html:17
msgid "New Supplier"
msgstr ""
#: company/templates/company/index.html:41
msgid "ID"
msgstr ""
#: company/templates/company/index.html:69
#: company/templates/company/partdetail.html:6
#: part/templates/part/category.html:73
msgid "Parts"
msgstr ""
#: company/templates/company/notes.html:10
#: company/templates/company/notes.html:27
msgid "Company Notes"
@ -466,18 +575,60 @@ msgstr ""
msgid "Are you sure you want to delete the following Supplier Parts?"
msgstr ""
#: company/templates/company/tabs.html:9
msgid "Supplier Parts"
#: company/templates/company/partdetail.html:13
#: stock/templates/stock/item_base.html:130
msgid "Supplier Part"
msgstr ""
#: company/templates/company/partdetail.html:41
msgid "Supplier Part Details"
msgstr ""
#: company/templates/company/partdetail.html:44
msgid "Internal Part"
msgstr ""
#: company/templates/company/partdetail.html:61
msgid "MPN"
msgstr ""
#: company/templates/company/partdetail.html:64
#: order/templates/order/purchase_order_detail.html:33
msgid "Note"
msgstr ""
#: company/templates/company/partdetail.html:70
msgid "Pricing Information"
msgstr ""
#: company/templates/company/partdetail.html:72
msgid "Order Multiple"
msgstr ""
#: company/templates/company/partdetail.html:74
msgid "Base Price (Flat Fee)"
msgstr ""
#: company/templates/company/partdetail.html:77
msgid "Price Breaks"
msgstr ""
#: company/templates/company/partdetail.html:80
msgid "New Price Break"
msgstr ""
#: company/templates/company/partdetail.html:86
msgid "Price"
msgstr ""
#: company/templates/company/partdetail.html:106
msgid "No price breaks have been added for this part"
msgstr ""
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17
msgid "Stock"
msgstr ""
#: company/templates/company/tabs.html:15 part/templates/part/tabs.html:43
msgid "Purchase Orders"
msgstr ""
#: company/templates/company/tabs.html:21
msgid "Sales Orders"
msgstr ""
@ -514,10 +665,6 @@ msgstr ""
msgid "Order notes"
msgstr ""
#: order/models.py:128
msgid "Company"
msgstr ""
#: order/models.py:159 order/models.py:210 part/views.py:1065
#: stock/models.py:440
msgid "Quantity must be greater than zero"
@ -559,11 +706,6 @@ msgstr ""
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:67
#: stock/templates/stock/item_base.html:126
msgid "Supplier"
msgstr ""
#: order/templates/order/order_base.html:80
msgid "Issued"
msgstr ""
@ -598,10 +740,6 @@ msgstr ""
msgid "Reference"
msgstr ""
#: order/templates/order/purchase_order_detail.html:33
msgid "Note"
msgstr ""
#: order/templates/order/tabs.html:5
msgid "Items"
msgstr ""
@ -928,10 +1066,6 @@ msgstr ""
msgid "Part Details"
msgstr ""
#: part/templates/part/category.html:73
msgid "Parts"
msgstr ""
#: part/templates/part/detail.html:22 part/templates/part/part_base.html:85
msgid "IPN"
msgstr ""
@ -1299,14 +1433,6 @@ msgstr ""
msgid "Serial Number"
msgstr ""
#: stock/templates/stock/item_base.html:114
msgid "Customer"
msgstr ""
#: stock/templates/stock/item_base.html:130
msgid "Supplier Part"
msgstr ""
#: stock/templates/stock/item_base.html:135
msgid "Last Updated"
msgstr ""
@ -1345,6 +1471,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:60
#: templates/InvenTree/search_stock_location.html:6
msgid "Stock Locations"
msgstr ""
@ -1352,6 +1479,10 @@ msgstr ""
msgid "Stock Item"
msgstr ""
#: stock/templates/stock/tabs.html:10
msgid "Builds"
msgstr ""
#: stock/views.py:117
msgid "Edit Stock Location"
msgstr ""
@ -1490,6 +1621,14 @@ msgstr ""
msgid "Add Stock Tracking Entry"
msgstr ""
#: templates/InvenTree/search.html:12
msgid "Search Results"
msgstr ""
#: templates/InvenTree/search.html:22
msgid "No results found"
msgstr ""
#: templates/about.html:18
msgid "InvenTree Version Information"
msgstr ""

View File

@ -0,0 +1,19 @@
# Generated by Django 2.2.9 on 2020-02-02 10:24
import InvenTree.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('part', '0026_auto_20200131_1022'),
]
operations = [
migrations.AlterField(
model_name='partcategory',
name='name',
field=models.CharField(max_length=100, validators=[InvenTree.validators.validate_tree_name]),
),
]

View File

@ -0,0 +1,19 @@
# Generated by Django 2.2.9 on 2020-02-02 10:24
import InvenTree.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('stock', '0018_auto_20200202_0103'),
]
operations = [
migrations.AlterField(
model_name='stocklocation',
name='name',
field=models.CharField(max_length=100, validators=[InvenTree.validators.validate_tree_name]),
),
]

View File

@ -1,6 +1,7 @@
{% extends "base.html" %}
{% load static %}
{% load i18n %}
{% block page_title %}
InvenTree | Search Results
@ -8,7 +9,7 @@ InvenTree | Search Results
{% block content %}
<h3>Search Results</h3>
<h3>{% trans "Search Results" %}</h3>
<div>
{% include "search_form.html" with query_text=query %}
@ -18,7 +19,7 @@ InvenTree | Search Results
<hr>
<div id='no-search-results'>
<h4><i>No results found</i></h4>
<h4><i>{% trans "No results found" %}</i></h4>
</div>
{% include "InvenTree/search_part_category.html" with collapse_id="categories" %}
@ -113,7 +114,7 @@ InvenTree | Search Results
field: 'name',
title: 'Name',
formatter: function(value, row, index, field) {
return renderLink(value, '/stock/location/' + row.pk + '/');
return renderLink(row.pathstring, '/stock/location/' + row.pk + '/');
},
},
{

View File

@ -1,7 +1,9 @@
{% extends "collapse.html" %}
{% load i18n %}
{% block collapse_title %}
<h4>Stock Locations</h4>
<h4>{% trans "Stock Locations" %}</h4>
{% endblock %}
{% block collapse_heading %}