Markdownify the notes field for Build model

This commit is contained in:
Oliver Walters 2020-02-02 00:00:19 +11:00
parent 51fab36074
commit a7846940c4
11 changed files with 461 additions and 209 deletions

View File

@ -26,7 +26,6 @@ class EditBuildForm(HelperForm):
'take_from',
'batch',
'URL',
'notes',
]

View File

@ -0,0 +1,19 @@
# Generated by Django 2.2.9 on 2020-02-01 12:47
from django.db import migrations
import markdownx.models
class Migration(migrations.Migration):
dependencies = [
('build', '0007_auto_20191118_2321'),
]
operations = [
migrations.AlterField(
model_name='build',
name='notes',
field=markdownx.models.MarkdownxField(blank=True, help_text='Extra build notes'),
),
]

View File

@ -16,6 +16,8 @@ from django.db import models, transaction
from django.db.models import Sum
from django.core.validators import MinValueValidator
from markdownx.models import MarkdownxField
from InvenTree.status_codes import BuildStatus
from InvenTree.fields import InvenTreeURLField
@ -92,7 +94,7 @@ class Build(models.Model):
URL = InvenTreeURLField(blank=True, help_text=_('Link to external URL'))
notes = models.TextField(blank=True, help_text=_('Extra build notes'))
notes = MarkdownxField(blank=True, help_text=_('Extra build notes'))
@transaction.atomic
def cancelBuild(self, user):

View File

@ -1,74 +1,67 @@
{% extends "build/build_base.html" %}
{% load static %}
{% load i18n %}
{% block details %}
{% include "build/tabs.html" with tab='details' %}
<h4>Build Details</h4>
<h4>{% trans "Build Details" %}</h4>
<hr>
<table class='table table-striped'>
<tr>
<td>Title</td><td>{{ build.title }}</td>
<td>{% trans "Title" %}</td><td>{{ build.title }}</td>
</tr>
<tr>
<td>Part</td><td><a href="{% url 'part-build' build.part.id %}">{{ build.part.full_name }}</a></td>
<td>{% trans "Part" %}</td><td><a href="{% url 'part-build' build.part.id %}">{{ build.part.full_name }}</a></td>
</tr>
<tr>
<td>Quantity</td><td>{{ build.quantity }}</td>
<td>{% trans "Quantity" %}</td><td>{{ build.quantity }}</td>
</tr>
<tr>
<td>Stock Source</td>
<td>{% trans "Stock Source" %}</td>
<td>
{% if build.take_from %}
<a href="{% url 'stock-location-detail' build.take_from.id %}">{{ build.take_from }}</a>
{% else %}
Stock can be taken from any available location.
{% trans "Stock can be taken from any available location." %}
{% endif %}
</td>
</tr>
<tr>
<td>Status</td><td>{% include "build_status.html" with build=build %}</td>
<td>{% trans "Status" %}</td><td>{% include "build_status.html" with build=build %}</td>
</tr>
{% if build.batch %}
<tr>
<td>Batch</td><td>{{ build.batch }}</td>
<td>{% trans "Batch" %}</td><td>{{ build.batch }}</td>
</tr>
{% endif %}
{% if build.URL %}
<tr>
<td>URL</td><td><a href="{{ build.URL }}">{{ build.URL }}</a></td>
<td>{% trans "URL" %}</td><td><a href="{{ build.URL }}">{{ build.URL }}</a></td>
</tr>
{% endif %}
<tr>
<td>Created</td><td>{{ build.creation_date }}</td>
<td>{% trans "Created" %}</td><td>{{ build.creation_date }}</td>
</tr>
{% if build.is_active %}
<tr>
<td>Enough Parts?</td>
<td>{% trans "Enough Parts?" %}</td>
<td>
{% if build.can_build %}
Yes
{% trans "Yes" %}
{% else %}
No
{% trans "No" %}
{% endif %}
</td>
</tr>
{% endif %}
{% if build.completion_date %}
<tr>
<td>Completed</td><td>{{ build.completion_date }}{% if build.completed_by %}<span class='badge'>{{ build.completed_by }}</span>{% endif %}</td>
<td>{% trans "Completed" %}</td><td>{{ build.completion_date }}{% if build.completed_by %}<span class='badge'>{{ build.completed_by }}</span>{% endif %}</td>
</tr>
{% endif %}
</table>
{% if build.notes %}
<div class="panel panel-default">
<div class="panel-heading"><b>Notes</b></div>
<div class="panel-body">{{ build.notes }}</div>
</div>
{% endif %}
{% endblock %}

View File

@ -0,0 +1,56 @@
{% extends "build/build_base.html" %}
{% load static %}
{% load i18n %}
{% load markdownify %}
{% block details %}
{% include "build/tabs.html" with tab='notes' %}
{% if editing %}
<h4>{% trans "Build Notes" %}</h4>
<hr>
<form method='POST'>
{% csrf_token %}
{{ form }}
<hr>
<input type="submit" value='{% trans "Save" %}'/>
</form>
{{ form.media }}
{% else %}
<div class='row'>
<div class='col-sm-6'>
<h4>{% trans "Build Notes" %}</h4>
</div>
<div class='col-sm-6'>
<button title='{% trans "Edit notes" %}' class='btn btn-default btn-glyph float-right' id='edit-notes'><span class='glyphicon glyphicon-edit'></span></button>
</div>
</div>
<hr>
<div class='panel panel-default'>
<div class='panel-content'>
{{ build.notes | markdownify }}
</div>
</div>
{% endif %}
{% endblock %}
{% block js_ready %}
{{ block.super }}
{% if editing %}
{% else %}
$("#edit-notes").click(function() {
location.href = "{% url 'build-notes' build.id %}?edit=1";
});
{% endif %}
{% endblock %}

View File

@ -1,8 +1,13 @@
{% load i18n %}
<ul class='nav nav-tabs'>
<li{% if tab == 'details' %} class='active'{% endif %}>
<a href="{% url 'build-detail' build.id %}">Details</a>
<a href="{% url 'build-detail' build.id %}">{% trans "Details" %}</a>
</li>
<li{% if tab == 'notes' %} class='active'{% endif %}>
<a href="{% url 'build-notes' build.id %}">{% trans "Notes" %}</a>
</li>
<li{% if tab == 'allocate' %} class='active'{% endif %}>
<a href="{% url 'build-allocate' build.id %}">Assign Parts</a>
<a href="{% url 'build-allocate' build.id %}">{% trans "Assign Parts" %}</a>
</li>
</ul>

View File

@ -25,6 +25,7 @@ build_detail_urls = [
url(r'^auto-allocate/?', views.BuildAutoAllocate.as_view(), name='build-auto-allocate'),
url(r'^unallocate/', views.BuildUnallocate.as_view(), name='build-unallocate'),
url(r'^notes/', views.BuildNotes.as_view(), name='build-notes'),
url(r'^.*$', views.BuildDetail.as_view(), name='build-detail'),
]

View File

@ -7,8 +7,9 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext as _
from django.core.exceptions import ValidationError
from django.views.generic import DetailView, ListView
from django.views.generic import DetailView, ListView, UpdateView
from django.forms import HiddenInput
from django.urls import reverse
from part.models import Part
from .models import Build, BuildItem
@ -309,6 +310,28 @@ class BuildComplete(AjaxUpdateView):
}
class BuildNotes(UpdateView):
""" View for editing the 'notes' field of a Build object.
"""
context_object_name = 'build'
template_name = 'build/notes.html'
model = Build
fields = ['notes']
def get_success_url(self):
return reverse('build-notes', kwargs={'pk': self.get_object().id})
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx['editing'] = str2bool(self.request.GET.get('edit', ''))
return ctx
class BuildDetail(DetailView):
""" Detail view of a single Build object. """
model = Build

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-01 12:45+0000\n"
"POT-Creation-Date: 2020-02-01 12:59+0000\n"
"PO-Revision-Date: 2019-12-19 17:48+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -131,27 +131,27 @@ msgstr "Überschuss darf 100% nicht überschreiten"
msgid "Overage must be an integer value or a percentage"
msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein"
#: build/forms.py:36
#: build/forms.py:35
msgid "Confirm"
msgstr "Bestätigen"
#: build/forms.py:53 stock/forms.py:34
#: build/forms.py:52 stock/forms.py:34
msgid "Enter unique serial numbers (or leave blank)"
msgstr "Eindeutige Seriennummern eingeben (oder leer lassen)"
#: build/forms.py:55
#: build/forms.py:54
msgid "Confirm build completion"
msgstr "Bau-Fertigstellung bestätigen"
#: build/models.py:51
#: build/models.py:53
msgid "Brief description of the build"
msgstr "Kurze Beschreibung des Baus"
#: build/models.py:60
#: build/models.py:62
msgid "Select part to build"
msgstr "Teil für den Bau wählen"
#: build/models.py:66
#: build/models.py:68
msgid ""
"Select location to take stock from for this build (leave blank to take from "
"any stock location)"
@ -159,46 +159,46 @@ msgstr ""
"Lager-Entnahmestandort für diesen Bau wählen (oder leer lassen für einen "
"beliebigen Lager-Standort)"
#: build/models.py:72
#: build/models.py:74
msgid "Number of parts to build"
msgstr "Anzahl der zu bauenden Teile"
#: build/models.py:78
#: build/models.py:80
msgid "Build status"
msgstr "Bau-Status"
#: build/models.py:81
#: build/models.py:83
msgid "Batch code for this build output"
msgstr "Chargennummer für diese Bau-Ausgabe"
#: build/models.py:93
#: build/models.py:95
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
#: build/models.py:95
#: build/models.py:97
msgid "Extra build notes"
msgstr "Notizen für den Bau"
#: build/models.py:380
#: build/models.py:382
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "Ausgewähltes Lagerobjekt nicht in BOM für Teil '{p}' gefunden"
#: build/models.py:383
#: build/models.py:385
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
"zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten"
#: build/models.py:401
#: build/models.py:403
msgid "Build to allocate parts"
msgstr "Bau starten um Teile zuzuweisen"
#: build/models.py:408
#: build/models.py:410
msgid "Stock Item to allocate to build"
msgstr "Lagerobjekt dem Bau zuweisen"
#: build/models.py:416
#: build/models.py:418
#, fuzzy
msgid "Stock quantity to allocate to build"
msgstr "Lagerobjekt-Anzahl dem Bau zuweisen"
@ -217,6 +217,7 @@ msgstr "Zuweisung aufheben"
#: build/templates/build/allocate_edit.html:19
#: build/templates/build/allocate_view.html:17
#: build/templates/build/detail.html:17
#: order/templates/order/purchase_order_detail.html:107
msgid "Part"
msgstr "Teil"
@ -254,7 +255,108 @@ msgstr "Beschreibung"
msgid "On Order"
msgstr "bestellt"
#: build/views.py:289 stock/views.py:863
#: build/templates/build/detail.html:8
#, fuzzy
#| msgid "Build status"
msgid "Build Details"
msgstr "Bau-Status"
#: build/templates/build/detail.html:14
msgid "Title"
msgstr ""
#: build/templates/build/detail.html:20
#: order/templates/order/purchase_order_detail.html:111
#: stock/templates/stock/item.html:89
#: stock/templates/stock/stock_adjust.html:18
msgid "Quantity"
msgstr "Anzahl"
#: build/templates/build/detail.html:23
#, fuzzy
#| msgid "Stock Item"
msgid "Stock Source"
msgstr "Lagerobjekt"
#: build/templates/build/detail.html:28
msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:33
#: order/templates/order/purchase_order_detail.html:70
#: stock/templates/stock/item.html:146
msgid "Status"
msgstr "Status"
#: build/templates/build/detail.html:37 stock/templates/stock/item.html:95
msgid "Batch"
msgstr "Los"
#: build/templates/build/detail.html:42 part/templates/part/detail.html:50
#: part/templates/part/part_base.html:91 stock/templates/stock/item.html:119
msgid "URL"
msgstr "URL"
#: build/templates/build/detail.html:46
#: order/templates/order/purchase_order_detail.html:74
msgid "Created"
msgstr "Erstellt"
#: build/templates/build/detail.html:50
msgid "Enough Parts?"
msgstr ""
#: build/templates/build/detail.html:53
msgid "Yes"
msgstr ""
#: build/templates/build/detail.html:55
#, fuzzy
#| msgid "Note"
msgid "No"
msgstr "Notiz"
#: build/templates/build/detail.html:62
#, fuzzy
#| msgid "Complete"
msgid "Completed"
msgstr "Fertig"
#: build/templates/build/notes.html:13 build/templates/build/notes.html:30
#, fuzzy
#| msgid "Build status"
msgid "Build Notes"
msgstr "Bau-Status"
#: build/templates/build/notes.html:20 company/templates/company/notes.html:17
#: part/templates/part/notes.html:20
msgid "Save"
msgstr ""
#: build/templates/build/notes.html:33 company/templates/company/notes.html:30
#: part/templates/part/notes.html:32
#, fuzzy
#| msgid "Entry notes"
msgid "Edit notes"
msgstr "Eintrags-Notizen"
#: build/templates/build/tabs.html:5 company/templates/company/tabs.html:5
#: part/templates/part/tabs.html:6
msgid "Details"
msgstr "Details"
#: build/templates/build/tabs.html:8 company/models.py:248
#: company/templates/company/tabs.html:26
#: order/templates/order/purchase_order_detail.html:168
#: part/templates/part/tabs.html:58 stock/templates/stock/item.html:151
msgid "Notes"
msgstr "Notizen"
#: build/templates/build/tabs.html:11
msgid "Assign Parts"
msgstr ""
#: build/views.py:290 stock/views.py:863
#, python-brace-format
msgid "The following serial numbers already exist: ({sn})"
msgstr "Die folgende Seriennummer existiert bereits: ({sn})"
@ -385,12 +487,6 @@ msgstr "Standard-Zulieferer?"
msgid "Supplier part description"
msgstr "Beschreibung des Teils"
#: company/models.py:248 company/templates/company/tabs.html:26
#: order/templates/order/purchase_order_detail.html:168
#: part/templates/part/tabs.html:58 stock/templates/stock/item.html:151
msgid "Notes"
msgstr "Notizen"
#: company/models.py:250
#, fuzzy
#| msgid "Minimum allowed stock level"
@ -408,25 +504,11 @@ msgstr ""
msgid "Company Notes"
msgstr "Firma"
#: company/templates/company/notes.html:17 part/templates/part/notes.html:20
msgid "Save"
msgstr ""
#: company/templates/company/notes.html:30 part/templates/part/notes.html:32
#, fuzzy
#| msgid "Entry notes"
msgid "Edit notes"
msgstr "Eintrags-Notizen"
#: company/templates/company/partdelete.html:5
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:5 part/templates/part/tabs.html:6
msgid "Details"
msgstr "Details"
#: company/templates/company/tabs.html:9
#, fuzzy
#| msgid "Supplier Part"
@ -529,15 +611,6 @@ msgstr "Bestelldetails"
msgid "Supplier"
msgstr "Zulieferer"
#: order/templates/order/purchase_order_detail.html:70
#: stock/templates/stock/item.html:146
msgid "Status"
msgstr "Status"
#: order/templates/order/purchase_order_detail.html:74
msgid "Created"
msgstr "Erstellt"
#: order/templates/order/purchase_order_detail.html:79
msgid "Issued"
msgstr "Aufgegeben"
@ -559,12 +632,6 @@ msgstr "Bestellnummer"
msgid "Reference"
msgstr "Referenz"
#: order/templates/order/purchase_order_detail.html:111
#: stock/templates/stock/item.html:89
#: stock/templates/stock/stock_adjust.html:18
msgid "Quantity"
msgstr "Anzahl"
#: order/templates/order/purchase_order_detail.html:115
msgid "Note"
msgstr "Notiz"
@ -924,11 +991,6 @@ msgstr "Revision"
msgid "Variant Of"
msgstr "Variante von"
#: part/templates/part/detail.html:50 part/templates/part/part_base.html:91
#: stock/templates/stock/item.html:119
msgid "URL"
msgstr "URL"
#: part/templates/part/detail.html:55
msgid "Category"
msgstr "Kategorie"
@ -1289,10 +1351,6 @@ msgstr "Standort"
msgid "Serial Number"
msgstr "Seriennummer"
#: stock/templates/stock/item.html:95
msgid "Batch"
msgstr "Los"
#: stock/templates/stock/item.html:113
msgid "Customer"
msgstr "Kunde"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-01 12:45+0000\n"
"POT-Creation-Date: 2020-02-01 12:59+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"
@ -129,71 +129,71 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
#: build/forms.py:36
#: build/forms.py:35
msgid "Confirm"
msgstr ""
#: build/forms.py:53 stock/forms.py:34
#: build/forms.py:52 stock/forms.py:34
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
#: build/forms.py:55
#: build/forms.py:54
msgid "Confirm build completion"
msgstr ""
#: build/models.py:51
#: build/models.py:53
msgid "Brief description of the build"
msgstr ""
#: build/models.py:60
#: build/models.py:62
msgid "Select part to build"
msgstr ""
#: build/models.py:66
#: build/models.py:68
msgid ""
"Select location to take stock from for this build (leave blank to take from "
"any stock location)"
msgstr ""
#: build/models.py:72
#: build/models.py:74
msgid "Number of parts to build"
msgstr ""
#: build/models.py:78
#: build/models.py:80
msgid "Build status"
msgstr ""
#: build/models.py:81
#: build/models.py:83
msgid "Batch code for this build output"
msgstr ""
#: build/models.py:93
#: build/models.py:95
msgid "Link to external URL"
msgstr ""
#: build/models.py:95
#: build/models.py:97
msgid "Extra build notes"
msgstr ""
#: build/models.py:380
#: build/models.py:382
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
#: build/models.py:383
#: build/models.py:385
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
#: build/models.py:401
#: build/models.py:403
msgid "Build to allocate parts"
msgstr ""
#: build/models.py:408
#: build/models.py:410
msgid "Stock Item to allocate to build"
msgstr ""
#: build/models.py:416
#: build/models.py:418
msgid "Stock quantity to allocate to build"
msgstr ""
@ -211,6 +211,7 @@ msgstr ""
#: build/templates/build/allocate_edit.html:19
#: build/templates/build/allocate_view.html:17
#: build/templates/build/detail.html:17
#: order/templates/order/purchase_order_detail.html:107
msgid "Part"
msgstr ""
@ -248,7 +249,96 @@ msgstr ""
msgid "On Order"
msgstr ""
#: build/views.py:289 stock/views.py:863
#: build/templates/build/detail.html:8
msgid "Build Details"
msgstr ""
#: build/templates/build/detail.html:14
msgid "Title"
msgstr ""
#: build/templates/build/detail.html:20
#: order/templates/order/purchase_order_detail.html:111
#: stock/templates/stock/item.html:89
#: stock/templates/stock/stock_adjust.html:18
msgid "Quantity"
msgstr ""
#: build/templates/build/detail.html:23
msgid "Stock Source"
msgstr ""
#: build/templates/build/detail.html:28
msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:33
#: order/templates/order/purchase_order_detail.html:70
#: stock/templates/stock/item.html:146
msgid "Status"
msgstr ""
#: build/templates/build/detail.html:37 stock/templates/stock/item.html:95
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:42 part/templates/part/detail.html:50
#: part/templates/part/part_base.html:91 stock/templates/stock/item.html:119
msgid "URL"
msgstr ""
#: build/templates/build/detail.html:46
#: order/templates/order/purchase_order_detail.html:74
msgid "Created"
msgstr ""
#: build/templates/build/detail.html:50
msgid "Enough Parts?"
msgstr ""
#: build/templates/build/detail.html:53
msgid "Yes"
msgstr ""
#: build/templates/build/detail.html:55
msgid "No"
msgstr ""
#: build/templates/build/detail.html:62
msgid "Completed"
msgstr ""
#: build/templates/build/notes.html:13 build/templates/build/notes.html:30
msgid "Build Notes"
msgstr ""
#: build/templates/build/notes.html:20 company/templates/company/notes.html:17
#: part/templates/part/notes.html:20
msgid "Save"
msgstr ""
#: build/templates/build/notes.html:33 company/templates/company/notes.html:30
#: part/templates/part/notes.html:32
msgid "Edit notes"
msgstr ""
#: build/templates/build/tabs.html:5 company/templates/company/tabs.html:5
#: part/templates/part/tabs.html:6
msgid "Details"
msgstr ""
#: build/templates/build/tabs.html:8 company/models.py:248
#: company/templates/company/tabs.html:26
#: order/templates/order/purchase_order_detail.html:168
#: part/templates/part/tabs.html:58 stock/templates/stock/item.html:151
msgid "Notes"
msgstr ""
#: build/templates/build/tabs.html:11
msgid "Assign Parts"
msgstr ""
#: build/views.py:290 stock/views.py:863
#, python-brace-format
msgid "The following serial numbers already exist: ({sn})"
msgstr ""
@ -357,12 +447,6 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
#: company/models.py:248 company/templates/company/tabs.html:26
#: order/templates/order/purchase_order_detail.html:168
#: part/templates/part/tabs.html:58 stock/templates/stock/item.html:151
msgid "Notes"
msgstr ""
#: company/models.py:250
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@ -376,22 +460,10 @@ msgstr ""
msgid "Company Notes"
msgstr ""
#: company/templates/company/notes.html:17 part/templates/part/notes.html:20
msgid "Save"
msgstr ""
#: company/templates/company/notes.html:30 part/templates/part/notes.html:32
msgid "Edit notes"
msgstr ""
#: company/templates/company/partdelete.html:5
msgid "Are you sure you want to delete the following Supplier Parts?"
msgstr ""
#: company/templates/company/tabs.html:5 part/templates/part/tabs.html:6
msgid "Details"
msgstr ""
#: company/templates/company/tabs.html:9
msgid "Supplier Parts"
msgstr ""
@ -490,15 +562,6 @@ msgstr ""
msgid "Supplier"
msgstr ""
#: order/templates/order/purchase_order_detail.html:70
#: stock/templates/stock/item.html:146
msgid "Status"
msgstr ""
#: order/templates/order/purchase_order_detail.html:74
msgid "Created"
msgstr ""
#: order/templates/order/purchase_order_detail.html:79
msgid "Issued"
msgstr ""
@ -520,12 +583,6 @@ msgstr ""
msgid "Reference"
msgstr ""
#: order/templates/order/purchase_order_detail.html:111
#: stock/templates/stock/item.html:89
#: stock/templates/stock/stock_adjust.html:18
msgid "Quantity"
msgstr ""
#: order/templates/order/purchase_order_detail.html:115
msgid "Note"
msgstr ""
@ -868,11 +925,6 @@ msgstr ""
msgid "Variant Of"
msgstr ""
#: part/templates/part/detail.html:50 part/templates/part/part_base.html:91
#: stock/templates/stock/item.html:119
msgid "URL"
msgstr ""
#: part/templates/part/detail.html:55
msgid "Category"
msgstr ""
@ -1223,10 +1275,6 @@ msgstr ""
msgid "Serial Number"
msgstr ""
#: stock/templates/stock/item.html:95
msgid "Batch"
msgstr ""
#: stock/templates/stock/item.html:113
msgid "Customer"
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-01 12:45+0000\n"
"POT-Creation-Date: 2020-02-01 12:59+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"
@ -129,71 +129,71 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
#: build/forms.py:36
#: build/forms.py:35
msgid "Confirm"
msgstr ""
#: build/forms.py:53 stock/forms.py:34
#: build/forms.py:52 stock/forms.py:34
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
#: build/forms.py:55
#: build/forms.py:54
msgid "Confirm build completion"
msgstr ""
#: build/models.py:51
#: build/models.py:53
msgid "Brief description of the build"
msgstr ""
#: build/models.py:60
#: build/models.py:62
msgid "Select part to build"
msgstr ""
#: build/models.py:66
#: build/models.py:68
msgid ""
"Select location to take stock from for this build (leave blank to take from "
"any stock location)"
msgstr ""
#: build/models.py:72
#: build/models.py:74
msgid "Number of parts to build"
msgstr ""
#: build/models.py:78
#: build/models.py:80
msgid "Build status"
msgstr ""
#: build/models.py:81
#: build/models.py:83
msgid "Batch code for this build output"
msgstr ""
#: build/models.py:93
#: build/models.py:95
msgid "Link to external URL"
msgstr ""
#: build/models.py:95
#: build/models.py:97
msgid "Extra build notes"
msgstr ""
#: build/models.py:380
#: build/models.py:382
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
#: build/models.py:383
#: build/models.py:385
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
#: build/models.py:401
#: build/models.py:403
msgid "Build to allocate parts"
msgstr ""
#: build/models.py:408
#: build/models.py:410
msgid "Stock Item to allocate to build"
msgstr ""
#: build/models.py:416
#: build/models.py:418
msgid "Stock quantity to allocate to build"
msgstr ""
@ -211,6 +211,7 @@ msgstr ""
#: build/templates/build/allocate_edit.html:19
#: build/templates/build/allocate_view.html:17
#: build/templates/build/detail.html:17
#: order/templates/order/purchase_order_detail.html:107
msgid "Part"
msgstr ""
@ -248,7 +249,96 @@ msgstr ""
msgid "On Order"
msgstr ""
#: build/views.py:289 stock/views.py:863
#: build/templates/build/detail.html:8
msgid "Build Details"
msgstr ""
#: build/templates/build/detail.html:14
msgid "Title"
msgstr ""
#: build/templates/build/detail.html:20
#: order/templates/order/purchase_order_detail.html:111
#: stock/templates/stock/item.html:89
#: stock/templates/stock/stock_adjust.html:18
msgid "Quantity"
msgstr ""
#: build/templates/build/detail.html:23
msgid "Stock Source"
msgstr ""
#: build/templates/build/detail.html:28
msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:33
#: order/templates/order/purchase_order_detail.html:70
#: stock/templates/stock/item.html:146
msgid "Status"
msgstr ""
#: build/templates/build/detail.html:37 stock/templates/stock/item.html:95
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:42 part/templates/part/detail.html:50
#: part/templates/part/part_base.html:91 stock/templates/stock/item.html:119
msgid "URL"
msgstr ""
#: build/templates/build/detail.html:46
#: order/templates/order/purchase_order_detail.html:74
msgid "Created"
msgstr ""
#: build/templates/build/detail.html:50
msgid "Enough Parts?"
msgstr ""
#: build/templates/build/detail.html:53
msgid "Yes"
msgstr ""
#: build/templates/build/detail.html:55
msgid "No"
msgstr ""
#: build/templates/build/detail.html:62
msgid "Completed"
msgstr ""
#: build/templates/build/notes.html:13 build/templates/build/notes.html:30
msgid "Build Notes"
msgstr ""
#: build/templates/build/notes.html:20 company/templates/company/notes.html:17
#: part/templates/part/notes.html:20
msgid "Save"
msgstr ""
#: build/templates/build/notes.html:33 company/templates/company/notes.html:30
#: part/templates/part/notes.html:32
msgid "Edit notes"
msgstr ""
#: build/templates/build/tabs.html:5 company/templates/company/tabs.html:5
#: part/templates/part/tabs.html:6
msgid "Details"
msgstr ""
#: build/templates/build/tabs.html:8 company/models.py:248
#: company/templates/company/tabs.html:26
#: order/templates/order/purchase_order_detail.html:168
#: part/templates/part/tabs.html:58 stock/templates/stock/item.html:151
msgid "Notes"
msgstr ""
#: build/templates/build/tabs.html:11
msgid "Assign Parts"
msgstr ""
#: build/views.py:290 stock/views.py:863
#, python-brace-format
msgid "The following serial numbers already exist: ({sn})"
msgstr ""
@ -357,12 +447,6 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
#: company/models.py:248 company/templates/company/tabs.html:26
#: order/templates/order/purchase_order_detail.html:168
#: part/templates/part/tabs.html:58 stock/templates/stock/item.html:151
msgid "Notes"
msgstr ""
#: company/models.py:250
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@ -376,22 +460,10 @@ msgstr ""
msgid "Company Notes"
msgstr ""
#: company/templates/company/notes.html:17 part/templates/part/notes.html:20
msgid "Save"
msgstr ""
#: company/templates/company/notes.html:30 part/templates/part/notes.html:32
msgid "Edit notes"
msgstr ""
#: company/templates/company/partdelete.html:5
msgid "Are you sure you want to delete the following Supplier Parts?"
msgstr ""
#: company/templates/company/tabs.html:5 part/templates/part/tabs.html:6
msgid "Details"
msgstr ""
#: company/templates/company/tabs.html:9
msgid "Supplier Parts"
msgstr ""
@ -490,15 +562,6 @@ msgstr ""
msgid "Supplier"
msgstr ""
#: order/templates/order/purchase_order_detail.html:70
#: stock/templates/stock/item.html:146
msgid "Status"
msgstr ""
#: order/templates/order/purchase_order_detail.html:74
msgid "Created"
msgstr ""
#: order/templates/order/purchase_order_detail.html:79
msgid "Issued"
msgstr ""
@ -520,12 +583,6 @@ msgstr ""
msgid "Reference"
msgstr ""
#: order/templates/order/purchase_order_detail.html:111
#: stock/templates/stock/item.html:89
#: stock/templates/stock/stock_adjust.html:18
msgid "Quantity"
msgstr ""
#: order/templates/order/purchase_order_detail.html:115
msgid "Note"
msgstr ""
@ -868,11 +925,6 @@ msgstr ""
msgid "Variant Of"
msgstr ""
#: part/templates/part/detail.html:50 part/templates/part/part_base.html:91
#: stock/templates/stock/item.html:119
msgid "URL"
msgstr ""
#: part/templates/part/detail.html:55
msgid "Category"
msgstr ""
@ -1223,10 +1275,6 @@ msgstr ""
msgid "Serial Number"
msgstr ""
#: stock/templates/stock/item.html:95
msgid "Batch"
msgstr ""
#: stock/templates/stock/item.html:113
msgid "Customer"
msgstr ""