Merge remote-tracking branch 'inventree/master'

This commit is contained in:
Oliver Walters 2020-02-02 22:26:18 +11:00
commit 8412885e09
21 changed files with 733 additions and 223 deletions

View File

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

View File

@ -41,6 +41,13 @@ function inventreeDocReady() {
modal.modal('show'); modal.modal('show');
}); });
// Callback to launch the 'Database Stats' window
$('#launch-stats').click(function() {
launchModalForm("/stats/", {
no_post: true,
});
});
} }
function isFileTransfer(transfer) { function isFileTransfer(transfer) {

View File

@ -33,7 +33,8 @@ from django.conf.urls.static import static
from django.views.generic.base import RedirectView from django.views.generic.base import RedirectView
from rest_framework.documentation import include_docs_urls from rest_framework.documentation import include_docs_urls
from .views import IndexView, SearchView, SettingsView, EditUserView, SetPasswordView from .views import IndexView, SearchView, DatabaseStatsView
from .views import SettingsView, EditUserView, SetPasswordView
from .views import InfoView from .views import InfoView
from users.urls import user_urls from users.urls import user_urls
@ -97,6 +98,7 @@ urlpatterns = [
url(r'^index/', IndexView.as_view(), name='index'), url(r'^index/', IndexView.as_view(), name='index'),
url(r'^search/', SearchView.as_view(), name='search'), url(r'^search/', SearchView.as_view(), name='search'),
url(r'^stats/', DatabaseStatsView.as_view(), name='stats'),
url(r'^api/', include(apipatterns)), url(r'^api/', include(apipatterns)),
url(r'^api-doc/', include_docs_urls(title='InvenTree API')), url(r'^api-doc/', include_docs_urls(title='InvenTree API')),

View File

@ -8,6 +8,7 @@ as JSON objects and passing them to modal forms (using jQuery / bootstrap).
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from __future__ import unicode_literals from __future__ import unicode_literals
from django.utils.translation import gettext_lazy as _
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.http import JsonResponse, HttpResponseRedirect from django.http import JsonResponse, HttpResponseRedirect
@ -15,7 +16,8 @@ from django.views import View
from django.views.generic import UpdateView, CreateView from django.views.generic import UpdateView, CreateView
from django.views.generic.base import TemplateView from django.views.generic.base import TemplateView
from part.models import Part from part.models import Part, PartCategory
from stock.models import StockLocation, StockItem
from common.models import InvenTreeSetting from common.models import InvenTreeSetting
from .forms import DeleteForm, EditUserForm, SetPasswordForm from .forms import DeleteForm, EditUserForm, SetPasswordForm
@ -537,3 +539,33 @@ class SettingsView(TemplateView):
ctx['settings'] = InvenTreeSetting.objects.all().order_by('key') ctx['settings'] = InvenTreeSetting.objects.all().order_by('key')
return ctx return ctx
class DatabaseStatsView(AjaxView):
""" View for displaying database statistics """
ajax_template_name = "stats.html"
ajax_form_title = _("Database Statistics")
def get_context_data(self, **kwargs):
ctx = {}
# Part stats
ctx['part_count'] = Part.objects.count()
ctx['part_cat_count'] = PartCategory.objects.count()
# Stock stats
ctx['stock_item_count'] = StockItem.objects.count()
ctx['stock_loc_count'] = StockLocation.objects.count()
"""
TODO: Other ideas for database metrics
- "Popular" parts (used to make other parts?)
- Most ordered part
- Most sold part
- etc etc etc
"""
return ctx

View File

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

View File

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

View File

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

View File

@ -1,15 +1,16 @@
{% extends "company/company_base.html" %} {% extends "company/company_base.html" %}
{% load static %} {% load static %}
{% block details %} {% block details %}
{% load i18n %}
{% include 'company/tabs.html' with tab='po' %} {% include 'company/tabs.html' with tab='po' %}
<h4>Open Purchase Orders</h4> <h4>{% trans "Purchase Orders" %}</h4>
<hr> <hr>
<div id='button-bar'> <div id='button-bar'>
<div class='btn-group'> <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>
</div> </div>

View File

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

View File

@ -1,19 +1,20 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load static %} {% load static %}
{% load i18n %}
{% block page_title %} {% block page_title %}
InvenTree | Supplier List InvenTree | {% trans "Supplier List" %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<h3>Supplier List</h3> <h3>{% trans "Supplier List" %}</h3>
<hr> <hr>
<div id='button-toolbar'> <div id='button-toolbar'>
<div class='btn-group'> <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>
</div> </div>
@ -37,12 +38,12 @@ InvenTree | Supplier List
columns: [ columns: [
{ {
field: 'pk', field: 'pk',
title: 'ID', title: '{% trans "ID" %}',
visible: false, visible: false,
}, },
{ {
field: 'name', field: 'name',
title: 'Supplier', title: '{% trans "Supplier" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return imageHoverIcon(row.image) + renderLink(value, row.url); return imageHoverIcon(row.image) + renderLink(value, row.url);
@ -50,12 +51,12 @@ InvenTree | Supplier List
}, },
{ {
field: 'description', field: 'description',
title: 'Description', title: '{% trans "Description" %}',
sortable: true, sortable: true,
}, },
{ {
field: 'website', field: 'website',
title: 'Website', title: '{% trans "Website" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
if (value) { if (value) {
return renderLink(value, value); return renderLink(value, value);
@ -65,7 +66,7 @@ InvenTree | Supplier List
}, },
{ {
field: 'part_count', field: 'part_count',
title: 'Parts', title: '{% trans "Parts" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return renderLink(value, row.url + 'parts/'); 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" %} {% extends "base.html" %}
{% load static %} {% load static %}
{% load i18n %}
{% block page_title %} {% block page_title %}
InvenTree | {{ company.name }} - Parts InvenTree | {{ company.name }} - {% trans "Parts" %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class='row'> <div class='row'>
<div class='col-sm-6'> <div class='col-sm-6'>
<h3>Supplier Part</h3> <h3>{% trans "Supplier Part" %}</h3>
<div class='btn-row'> <div class='btn-row'>
<div class='btn-group'> <div class='btn-group'>
<button type='button' class='btn btn-default btn-glyph' id='edit-part' title='Edit supplier part'> <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='row'>
<div class='col-sm-6'> <div class='col-sm-6'>
<h4>Supplier Part Details</h4> <h4>{% trans "Supplier Part Details" %}</h4>
<table class="table table-striped table-condensed"> <table class="table table-striped table-condensed">
<tr> <tr>
<td>Internal Part</td> <td>{% trans "Internal Part" %}</td>
<td> <td>
{% if part.part %} {% if part.part %}
<a href="{% url 'part-suppliers' part.part.id %}">{{ part.part.full_name }}</a> <a href="{% url 'part-suppliers' part.part.id %}">{{ part.part.full_name }}</a>
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
<tr><td>Supplier</td><td><a href="{% url 'company-detail-parts' part.supplier.id %}">{{ part.supplier.name }}</a></td></tr> <tr><td>{% trans "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 "SKU" %}</td><td>{{ part.SKU }}</tr></tr>
{% if part.URL %} {% 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 %} {% endif %}
{% if part.description %} {% if part.description %}
<tr><td>Description</td><td>{{ part.description }}</td></tr> <tr><td>{% trans "Description" %}</td><td>{{ part.description }}</td></tr>
{% endif %} {% endif %}
{% if part.manufacturer %} {% if part.manufacturer %}
<tr><td>Manufacturer</td><td>{{ part.manufacturer }}</td></tr> <tr><td>{% trans "Manufacturer" %}</td><td>{{ part.manufacturer }}</td></tr>
<tr><td>MPN</td><td>{{ part.MPN }}</td></tr> <tr><td>{% trans "MPN" %}</td><td>{{ part.MPN }}</td></tr>
{% endif %} {% endif %}
{% if part.note %} {% if part.note %}
<tr><td>Note</td><td>{{ part.note }}</td></tr> <tr><td>{% trans "Note" %}</td><td>{{ part.note }}</td></tr>
{% endif %} {% endif %}
</table> </table>
</div> </div>
<div class='col-sm-6'> <div class='col-sm-6'>
<h4>Pricing Information</h4> <h4>{% trans "Pricing Information" %}</h4>
<table class="table table-striped table-condensed"> <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 %} {% 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 %} {% endif %}
<tr> <tr>
<th>Price Breaks</th> <th>{% trans "Price Breaks" %}</th>
<th> <th>
<div style='float: right;'> <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> </div>
</th> </th>
</tr> </tr>
<tr> <tr>
<th>Quantity</th> <th>{% trans "Quantity" %}</th>
<th>Price</th> <th>{% trans "Price" %}</th>
</tr> </tr>
{% if part.price_breaks.all %} {% if part.price_breaks.all %}
{% for pb in part.price_breaks.all %} {% for pb in part.price_breaks.all %}
@ -102,7 +103,7 @@ InvenTree | {{ company.name }} - Parts
{% else %} {% else %}
<tr> <tr>
<td colspan='2'> <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> </td>
</tr> </tr>
{% endif %} {% endif %}
@ -112,7 +113,7 @@ InvenTree | {{ company.name }} - Parts
<hr> <hr>
<h4>Purchase Orders</h4> <h4>{% trans "Purchase Orders" %}</h4>
{% include "order/po_table.html" with orders=part.purchase_orders %} {% include "order/po_table.html" with orders=part.purchase_orders %}
{% endblock %} {% endblock %}

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2020-02-02 08:07+0100\n"
"Last-Translator: Christian Schlüter <chschlue@gmail.com>\n" "Last-Translator: Christian Schlüter <chschlue@gmail.com>\n"
"Language-Team: C <kde-i18n-doc@kde.org>\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_edit.html:19
#: build/templates/build/allocate_view.html:17 #: build/templates/build/allocate_view.html:17
#: build/templates/build/detail.html:17 #: build/templates/build/detail.html:17
#: company/templates/company/detail_part.html:65
#: order/templates/order/purchase_order_detail.html:25 #: order/templates/order/purchase_order_detail.html:25
msgid "Part" msgid "Part"
msgstr "Teil" msgstr "Teil"
@ -239,10 +240,13 @@ msgid "Allocate"
msgstr "zuweisen" msgstr "zuweisen"
#: build/templates/build/allocate_view.html:10 #: build/templates/build/allocate_view.html:10
#: company/templates/company/detail_part.html:18
msgid "Order Parts" msgid "Order Parts"
msgstr "Teile bestellen" msgstr "Teile bestellen"
#: build/templates/build/allocate_view.html:18 #: 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 #: order/templates/order/purchase_order_detail.html:26
#: part/templates/part/detail.html:33 #: part/templates/part/detail.html:33
msgid "Description" msgid "Description"
@ -262,6 +266,7 @@ msgid "Title"
msgstr "Titel" msgstr "Titel"
#: build/templates/build/detail.html:20 #: build/templates/build/detail.html:20
#: company/templates/company/partdetail.html:85
#: order/templates/order/purchase_order_detail.html:29 #: order/templates/order/purchase_order_detail.html:29
#: stock/templates/stock/item_base.html:90 #: stock/templates/stock/item_base.html:90
#: stock/templates/stock/stock_adjust.html:18 #: stock/templates/stock/stock_adjust.html:18
@ -286,8 +291,10 @@ msgstr "Status"
msgid "Batch" msgid "Batch"
msgstr "Los" msgstr "Los"
#: build/templates/build/detail.html:42 part/templates/part/detail.html:50 #: build/templates/build/detail.html:42
#: part/templates/part/part_base.html:91 #: 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 #: stock/templates/stock/item_base.html:120
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
@ -439,7 +446,8 @@ msgstr "Zulieferer auswählen"
msgid "Supplier stock keeping unit" msgid "Supplier stock keeping unit"
msgstr "Stock Keeping Units (SKU) des Zulieferers" 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" msgid "Manufacturer"
msgstr "Hersteller" msgstr "Hersteller"
@ -463,6 +471,121 @@ msgstr "Mindestpreis"
msgid "Part packaging" msgid "Part packaging"
msgstr "Teile-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:10
#: company/templates/company/notes.html:27 #: company/templates/company/notes.html:27
msgid "Company Notes" msgid "Company Notes"
@ -473,18 +596,70 @@ msgid "Are you sure you want to delete the following Supplier Parts?"
msgstr "" msgstr ""
"Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?" "Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?"
#: company/templates/company/tabs.html:9 #: company/templates/company/partdetail.html:13
msgid "Supplier Parts" #: 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" 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 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17
msgid "Stock" msgid "Stock"
msgstr "Lagerbestand" 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 #: company/templates/company/tabs.html:21
msgid "Sales Orders" msgid "Sales Orders"
msgstr "Bestellungen" msgstr "Bestellungen"
@ -521,10 +696,6 @@ msgstr "Link auf externe Seite"
msgid "Order notes" msgid "Order notes"
msgstr "Bestell-Notizen" msgstr "Bestell-Notizen"
#: order/models.py:128
msgid "Company"
msgstr "Firma"
#: order/models.py:159 order/models.py:210 part/views.py:1065 #: order/models.py:159 order/models.py:210 part/views.py:1065
#: stock/models.py:440 #: stock/models.py:440
msgid "Quantity must be greater than zero" msgid "Quantity must be greater than zero"
@ -566,11 +737,6 @@ msgstr "Empfangene Objekt-Anzahl"
msgid "Purchase Order Details" msgid "Purchase Order Details"
msgstr "Bestelldetails" 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 #: order/templates/order/order_base.html:80
msgid "Issued" msgid "Issued"
msgstr "Aufgegeben" msgstr "Aufgegeben"
@ -605,10 +771,6 @@ msgstr "Bestellnummer"
msgid "Reference" msgid "Reference"
msgstr "Referenz" msgstr "Referenz"
#: order/templates/order/purchase_order_detail.html:33
msgid "Note"
msgstr "Notiz"
#: order/templates/order/tabs.html:5 #: order/templates/order/tabs.html:5
msgid "Items" msgid "Items"
msgstr "Positionen" msgstr "Positionen"
@ -939,10 +1101,6 @@ msgstr "Teile (inklusive Unter-Kategorien)"
msgid "Part Details" msgid "Part Details"
msgstr "Teile-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 #: part/templates/part/detail.html:22 part/templates/part/part_base.html:85
msgid "IPN" msgid "IPN"
msgstr "IPN (Interne Produktnummer)" msgstr "IPN (Interne Produktnummer)"
@ -1317,14 +1475,6 @@ msgstr "Standort"
msgid "Serial Number" msgid "Serial Number"
msgstr "Seriennummer" 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 #: stock/templates/stock/item_base.html:135
msgid "Last Updated" msgid "Last Updated"
msgstr "Zuletzt aktualisiert" msgstr "Zuletzt aktualisiert"
@ -1363,6 +1513,7 @@ msgid "Stock Details"
msgstr "Objekt-Details" msgstr "Objekt-Details"
#: stock/templates/stock/location.html:60 #: stock/templates/stock/location.html:60
#: templates/InvenTree/search_stock_location.html:6
msgid "Stock Locations" msgid "Stock Locations"
msgstr "Lagerobjekt-Standorte" msgstr "Lagerobjekt-Standorte"
@ -1512,6 +1663,16 @@ msgstr "Lagerbestands-Tracking-Eintrag bearbeiten"
msgid "Add Stock Tracking Entry" msgid "Add Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag hinzufügen" 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 #: templates/about.html:18
msgid "InvenTree Version Information" msgid "InvenTree Version Information"
msgstr "InvenTree-Versionsinformationen" msgstr "InvenTree-Versionsinformationen"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -212,6 +212,7 @@ msgstr ""
#: build/templates/build/allocate_edit.html:19 #: build/templates/build/allocate_edit.html:19
#: build/templates/build/allocate_view.html:17 #: build/templates/build/allocate_view.html:17
#: build/templates/build/detail.html:17 #: build/templates/build/detail.html:17
#: company/templates/company/detail_part.html:65
#: order/templates/order/purchase_order_detail.html:25 #: order/templates/order/purchase_order_detail.html:25
msgid "Part" msgid "Part"
msgstr "" msgstr ""
@ -235,10 +236,13 @@ msgid "Allocate"
msgstr "" msgstr ""
#: build/templates/build/allocate_view.html:10 #: build/templates/build/allocate_view.html:10
#: company/templates/company/detail_part.html:18
msgid "Order Parts" msgid "Order Parts"
msgstr "" msgstr ""
#: build/templates/build/allocate_view.html:18 #: 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 #: order/templates/order/purchase_order_detail.html:26
#: part/templates/part/detail.html:33 #: part/templates/part/detail.html:33
msgid "Description" msgid "Description"
@ -258,6 +262,7 @@ msgid "Title"
msgstr "" msgstr ""
#: build/templates/build/detail.html:20 #: build/templates/build/detail.html:20
#: company/templates/company/partdetail.html:85
#: order/templates/order/purchase_order_detail.html:29 #: order/templates/order/purchase_order_detail.html:29
#: stock/templates/stock/item_base.html:90 #: stock/templates/stock/item_base.html:90
#: stock/templates/stock/stock_adjust.html:18 #: stock/templates/stock/stock_adjust.html:18
@ -282,8 +287,10 @@ msgstr ""
msgid "Batch" msgid "Batch"
msgstr "" msgstr ""
#: build/templates/build/detail.html:42 part/templates/part/detail.html:50 #: build/templates/build/detail.html:42
#: part/templates/part/part_base.html:91 #: 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 #: stock/templates/stock/item_base.html:120
msgid "URL" msgid "URL"
msgstr "" msgstr ""
@ -332,7 +339,7 @@ msgstr ""
#: build/templates/build/tabs.html:8 company/models.py:248 #: build/templates/build/tabs.html:8 company/models.py:248
#: company/templates/company/tabs.html:26 order/templates/order/tabs.html:8 #: 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" msgid "Notes"
msgstr "" msgstr ""
@ -433,7 +440,8 @@ msgstr ""
msgid "Supplier stock keeping unit" msgid "Supplier stock keeping unit"
msgstr "" msgstr ""
#: company/models.py:240 #: company/models.py:240 company/templates/company/detail_part.html:81
#: company/templates/company/partdetail.html:60
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
@ -457,6 +465,107 @@ msgstr ""
msgid "Part packaging" msgid "Part packaging"
msgstr "" 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:10
#: company/templates/company/notes.html:27 #: company/templates/company/notes.html:27
msgid "Company Notes" msgid "Company Notes"
@ -466,18 +575,60 @@ msgstr ""
msgid "Are you sure you want to delete the following Supplier Parts?" msgid "Are you sure you want to delete the following Supplier Parts?"
msgstr "" msgstr ""
#: company/templates/company/tabs.html:9 #: company/templates/company/partdetail.html:13
msgid "Supplier Parts" #: 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 "" msgstr ""
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17
msgid "Stock" msgid "Stock"
msgstr "" msgstr ""
#: company/templates/company/tabs.html:15 part/templates/part/tabs.html:43
msgid "Purchase Orders"
msgstr ""
#: company/templates/company/tabs.html:21 #: company/templates/company/tabs.html:21
msgid "Sales Orders" msgid "Sales Orders"
msgstr "" msgstr ""
@ -514,10 +665,6 @@ msgstr ""
msgid "Order notes" msgid "Order notes"
msgstr "" msgstr ""
#: order/models.py:128
msgid "Company"
msgstr ""
#: order/models.py:159 order/models.py:210 part/views.py:1065 #: order/models.py:159 order/models.py:210 part/views.py:1065
#: stock/models.py:440 #: stock/models.py:440
msgid "Quantity must be greater than zero" msgid "Quantity must be greater than zero"
@ -559,11 +706,6 @@ msgstr ""
msgid "Purchase Order Details" msgid "Purchase Order Details"
msgstr "" 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 #: order/templates/order/order_base.html:80
msgid "Issued" msgid "Issued"
msgstr "" msgstr ""
@ -598,10 +740,6 @@ msgstr ""
msgid "Reference" msgid "Reference"
msgstr "" msgstr ""
#: order/templates/order/purchase_order_detail.html:33
msgid "Note"
msgstr ""
#: order/templates/order/tabs.html:5 #: order/templates/order/tabs.html:5
msgid "Items" msgid "Items"
msgstr "" msgstr ""
@ -928,10 +1066,6 @@ msgstr ""
msgid "Part Details" msgid "Part Details"
msgstr "" msgstr ""
#: part/templates/part/category.html:73
msgid "Parts"
msgstr ""
#: part/templates/part/detail.html:22 part/templates/part/part_base.html:85 #: part/templates/part/detail.html:22 part/templates/part/part_base.html:85
msgid "IPN" msgid "IPN"
msgstr "" msgstr ""
@ -1299,14 +1433,6 @@ msgstr ""
msgid "Serial Number" msgid "Serial Number"
msgstr "" 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 #: stock/templates/stock/item_base.html:135
msgid "Last Updated" msgid "Last Updated"
msgstr "" msgstr ""
@ -1345,6 +1471,7 @@ msgid "Stock Details"
msgstr "" msgstr ""
#: stock/templates/stock/location.html:60 #: stock/templates/stock/location.html:60
#: templates/InvenTree/search_stock_location.html:6
msgid "Stock Locations" msgid "Stock Locations"
msgstr "" msgstr ""
@ -1352,6 +1479,10 @@ msgstr ""
msgid "Stock Item" msgid "Stock Item"
msgstr "" msgstr ""
#: stock/templates/stock/tabs.html:10
msgid "Builds"
msgstr ""
#: stock/views.py:117 #: stock/views.py:117
msgid "Edit Stock Location" msgid "Edit Stock Location"
msgstr "" msgstr ""
@ -1490,6 +1621,14 @@ msgstr ""
msgid "Add Stock Tracking Entry" msgid "Add Stock Tracking Entry"
msgstr "" msgstr ""
#: templates/InvenTree/search.html:12
msgid "Search Results"
msgstr ""
#: templates/InvenTree/search.html:22
msgid "No results found"
msgstr ""
#: templates/about.html:18 #: templates/about.html:18
msgid "InvenTree Version Information" msgid "InvenTree Version Information"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -212,6 +212,7 @@ msgstr ""
#: build/templates/build/allocate_edit.html:19 #: build/templates/build/allocate_edit.html:19
#: build/templates/build/allocate_view.html:17 #: build/templates/build/allocate_view.html:17
#: build/templates/build/detail.html:17 #: build/templates/build/detail.html:17
#: company/templates/company/detail_part.html:65
#: order/templates/order/purchase_order_detail.html:25 #: order/templates/order/purchase_order_detail.html:25
msgid "Part" msgid "Part"
msgstr "" msgstr ""
@ -235,10 +236,13 @@ msgid "Allocate"
msgstr "" msgstr ""
#: build/templates/build/allocate_view.html:10 #: build/templates/build/allocate_view.html:10
#: company/templates/company/detail_part.html:18
msgid "Order Parts" msgid "Order Parts"
msgstr "" msgstr ""
#: build/templates/build/allocate_view.html:18 #: 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 #: order/templates/order/purchase_order_detail.html:26
#: part/templates/part/detail.html:33 #: part/templates/part/detail.html:33
msgid "Description" msgid "Description"
@ -258,6 +262,7 @@ msgid "Title"
msgstr "" msgstr ""
#: build/templates/build/detail.html:20 #: build/templates/build/detail.html:20
#: company/templates/company/partdetail.html:85
#: order/templates/order/purchase_order_detail.html:29 #: order/templates/order/purchase_order_detail.html:29
#: stock/templates/stock/item_base.html:90 #: stock/templates/stock/item_base.html:90
#: stock/templates/stock/stock_adjust.html:18 #: stock/templates/stock/stock_adjust.html:18
@ -282,8 +287,10 @@ msgstr ""
msgid "Batch" msgid "Batch"
msgstr "" msgstr ""
#: build/templates/build/detail.html:42 part/templates/part/detail.html:50 #: build/templates/build/detail.html:42
#: part/templates/part/part_base.html:91 #: 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 #: stock/templates/stock/item_base.html:120
msgid "URL" msgid "URL"
msgstr "" msgstr ""
@ -332,7 +339,7 @@ msgstr ""
#: build/templates/build/tabs.html:8 company/models.py:248 #: build/templates/build/tabs.html:8 company/models.py:248
#: company/templates/company/tabs.html:26 order/templates/order/tabs.html:8 #: 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" msgid "Notes"
msgstr "" msgstr ""
@ -433,7 +440,8 @@ msgstr ""
msgid "Supplier stock keeping unit" msgid "Supplier stock keeping unit"
msgstr "" msgstr ""
#: company/models.py:240 #: company/models.py:240 company/templates/company/detail_part.html:81
#: company/templates/company/partdetail.html:60
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
@ -457,6 +465,107 @@ msgstr ""
msgid "Part packaging" msgid "Part packaging"
msgstr "" 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:10
#: company/templates/company/notes.html:27 #: company/templates/company/notes.html:27
msgid "Company Notes" msgid "Company Notes"
@ -466,18 +575,60 @@ msgstr ""
msgid "Are you sure you want to delete the following Supplier Parts?" msgid "Are you sure you want to delete the following Supplier Parts?"
msgstr "" msgstr ""
#: company/templates/company/tabs.html:9 #: company/templates/company/partdetail.html:13
msgid "Supplier Parts" #: 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 "" msgstr ""
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17
msgid "Stock" msgid "Stock"
msgstr "" msgstr ""
#: company/templates/company/tabs.html:15 part/templates/part/tabs.html:43
msgid "Purchase Orders"
msgstr ""
#: company/templates/company/tabs.html:21 #: company/templates/company/tabs.html:21
msgid "Sales Orders" msgid "Sales Orders"
msgstr "" msgstr ""
@ -514,10 +665,6 @@ msgstr ""
msgid "Order notes" msgid "Order notes"
msgstr "" msgstr ""
#: order/models.py:128
msgid "Company"
msgstr ""
#: order/models.py:159 order/models.py:210 part/views.py:1065 #: order/models.py:159 order/models.py:210 part/views.py:1065
#: stock/models.py:440 #: stock/models.py:440
msgid "Quantity must be greater than zero" msgid "Quantity must be greater than zero"
@ -559,11 +706,6 @@ msgstr ""
msgid "Purchase Order Details" msgid "Purchase Order Details"
msgstr "" 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 #: order/templates/order/order_base.html:80
msgid "Issued" msgid "Issued"
msgstr "" msgstr ""
@ -598,10 +740,6 @@ msgstr ""
msgid "Reference" msgid "Reference"
msgstr "" msgstr ""
#: order/templates/order/purchase_order_detail.html:33
msgid "Note"
msgstr ""
#: order/templates/order/tabs.html:5 #: order/templates/order/tabs.html:5
msgid "Items" msgid "Items"
msgstr "" msgstr ""
@ -928,10 +1066,6 @@ msgstr ""
msgid "Part Details" msgid "Part Details"
msgstr "" msgstr ""
#: part/templates/part/category.html:73
msgid "Parts"
msgstr ""
#: part/templates/part/detail.html:22 part/templates/part/part_base.html:85 #: part/templates/part/detail.html:22 part/templates/part/part_base.html:85
msgid "IPN" msgid "IPN"
msgstr "" msgstr ""
@ -1299,14 +1433,6 @@ msgstr ""
msgid "Serial Number" msgid "Serial Number"
msgstr "" 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 #: stock/templates/stock/item_base.html:135
msgid "Last Updated" msgid "Last Updated"
msgstr "" msgstr ""
@ -1345,6 +1471,7 @@ msgid "Stock Details"
msgstr "" msgstr ""
#: stock/templates/stock/location.html:60 #: stock/templates/stock/location.html:60
#: templates/InvenTree/search_stock_location.html:6
msgid "Stock Locations" msgid "Stock Locations"
msgstr "" msgstr ""
@ -1352,6 +1479,10 @@ msgstr ""
msgid "Stock Item" msgid "Stock Item"
msgstr "" msgstr ""
#: stock/templates/stock/tabs.html:10
msgid "Builds"
msgstr ""
#: stock/views.py:117 #: stock/views.py:117
msgid "Edit Stock Location" msgid "Edit Stock Location"
msgstr "" msgstr ""
@ -1490,6 +1621,14 @@ msgstr ""
msgid "Add Stock Tracking Entry" msgid "Add Stock Tracking Entry"
msgstr "" msgstr ""
#: templates/InvenTree/search.html:12
msgid "Search Results"
msgstr ""
#: templates/InvenTree/search.html:22
msgid "No results found"
msgstr ""
#: templates/about.html:18 #: templates/about.html:18
msgid "InvenTree Version Information" msgid "InvenTree Version Information"
msgstr "" 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" %} {% extends "base.html" %}
{% load static %} {% load static %}
{% load i18n %}
{% block page_title %} {% block page_title %}
InvenTree | Search Results InvenTree | Search Results
@ -8,7 +9,7 @@ InvenTree | Search Results
{% block content %} {% block content %}
<h3>Search Results</h3> <h3>{% trans "Search Results" %}</h3>
<div> <div>
{% include "search_form.html" with query_text=query %} {% include "search_form.html" with query_text=query %}
@ -18,7 +19,7 @@ InvenTree | Search Results
<hr> <hr>
<div id='no-search-results'> <div id='no-search-results'>
<h4><i>No results found</i></h4> <h4><i>{% trans "No results found" %}</i></h4>
</div> </div>
{% include "InvenTree/search_part_category.html" with collapse_id="categories" %} {% include "InvenTree/search_part_category.html" with collapse_id="categories" %}
@ -113,7 +114,7 @@ InvenTree | Search Results
field: 'name', field: 'name',
title: 'Name', title: 'Name',
formatter: function(value, row, index, field) { 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" %} {% extends "collapse.html" %}
{% load i18n %}
{% block collapse_title %} {% block collapse_title %}
<h4>Stock Locations</h4> <h4>{% trans "Stock Locations" %}</h4>
{% endblock %} {% endblock %}
{% block collapse_heading %} {% block collapse_heading %}

View File

@ -1,4 +1,5 @@
{% load static %} {% load static %}
{% load i18n %}
<nav class="navbar navbar-default navbar-fixed-top"> <nav class="navbar navbar-default navbar-fixed-top">
<div class="container-fluid"> <div class="container-fluid">
@ -6,11 +7,11 @@
<a class="navbar-brand" id='logo' href="{% url 'index' %}" style="padding-top: 7px; padding-bottom: 5px;"><img src="{% static 'img/inventree.png' %}" width="40" height="40" style="display:block; margin: auto;"/></a> <a class="navbar-brand" id='logo' href="{% url 'index' %}" style="padding-top: 7px; padding-bottom: 5px;"><img src="{% static 'img/inventree.png' %}" width="40" height="40" style="display:block; margin: auto;"/></a>
</div> </div>
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li><a href="{% url 'part-index' %}">Parts</a></li> <li><a href="{% url 'part-index' %}">{% trans "Parts" %}</a></li>
<li><a href="{% url 'stock-index' %}">Stock</a></li> <li><a href="{% url 'stock-index' %}">{% trans "Stock" %}</a></li>
<li><a href="{% url 'build-index' %}">Build</a></li> <li><a href="{% url 'build-index' %}">{% trans "Build" %}</a></li>
<li><a href="{% url 'company-index' %}">Suppliers</a></li> <li><a href="{% url 'company-index' %}">{% trans "Suppliers" %}</a></li>
<li><a href="{% url 'purchase-order-index' %}">Orders</a></li> <li><a href="{% url 'purchase-order-index' %}">{% trans "Orders" %}</a></li>
</ul> </ul>
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
{% include "search_form.html" %} {% include "search_form.html" %}
@ -19,16 +20,17 @@
<ul class='dropdown-menu'> <ul class='dropdown-menu'>
{% if user.is_authenticated %} {% if user.is_authenticated %}
{% if user.is_staff %} {% if user.is_staff %}
<li><a href="/admin/"><span class="glyphicon glyphicon-edit"></span> Admin</a></li> <li><a href="/admin/"><span class="glyphicon glyphicon-edit"></span> {% trans "Admin" %}</a></li>
<hr> <hr>
{% endif %} {% endif %}
<li><a href="{% url 'settings' %}"><span class="glyphicon glyphicon-cog"></span> Settings</a></li> <li><a href="{% url 'settings' %}"><span class="glyphicon glyphicon-cog"></span> {% trans "Settings" %}</a></li>
<li><a href="{% url 'logout' %}"><span class="glyphicon glyphicon-log-out"></span> Logout</a></li> <li><a href="{% url 'logout' %}"><span class="glyphicon glyphicon-log-out"></span> {% trans "Logout" %}</a></li>
{% else %} {% else %}
<li><a href="{% url 'login' %}"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> <li><a href="{% url 'login' %}"><span class="glyphicon glyphicon-log-in"></span> {% trans "Login" %}</a></li>
{% endif %} {% endif %}
<hr> <hr>
<li id='launch-about'><a href='#'><span class="glyphicon glyphicon-info-sign"></span> About InvenTree</a></li> <li id='launch-about'><a href='#'><span class="glyphicon glyphicon-info-sign"></span> {% trans "About InvenTree" %}</a></li>
<li id='launch-stats'><a href='#'><span class='glyphicon glyphicon-stats'></span> {% trans "Statistics" %}</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>

View File

@ -0,0 +1,28 @@
{% load static %}
{% load inventree_extras %}
{% load i18n %}
<table class='table table-striped table-condensed'>
<tr>
<td colspan='2'><b>{% trans "Parts" %}</b></td>
</tr>
<tr>
<td>{% trans "Parts" %}</td>
<td>{{ part_count }}</td>
</tr>
<tr>
<td>{% trans "Part Categories" %}</td>
<td>{{ part_cat_count }}</td>
</tr>
<tr>
<td colspan="2"><b>{% trans "Stock Items" %}</b></td>
</tr>
<tr>
<td>{% trans "Stock Items" %}</td>
<td>{{ stock_item_count }}</td>
</tr>
<tr>
<td>{% trans "Stock Locations" %}</td>
<td>{{ stock_loc_count }}</td>
</tr>
</table>