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', 'take_from',
'batch', 'batch',
'URL', '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.db.models import Sum
from django.core.validators import MinValueValidator from django.core.validators import MinValueValidator
from markdownx.models import MarkdownxField
from InvenTree.status_codes import BuildStatus from InvenTree.status_codes import BuildStatus
from InvenTree.fields import InvenTreeURLField from InvenTree.fields import InvenTreeURLField
@ -92,7 +94,7 @@ class Build(models.Model):
URL = InvenTreeURLField(blank=True, help_text=_('Link to external URL')) 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 @transaction.atomic
def cancelBuild(self, user): def cancelBuild(self, user):

View File

@ -1,74 +1,67 @@
{% extends "build/build_base.html" %} {% extends "build/build_base.html" %}
{% load static %} {% load static %}
{% load i18n %}
{% block details %} {% block details %}
{% include "build/tabs.html" with tab='details' %} {% include "build/tabs.html" with tab='details' %}
<h4>Build Details</h4> <h4>{% trans "Build Details" %}</h4>
<hr> <hr>
<table class='table table-striped'> <table class='table table-striped'>
<tr> <tr>
<td>Title</td><td>{{ build.title }}</td> <td>{% trans "Title" %}</td><td>{{ build.title }}</td>
</tr> </tr>
<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>
<tr> <tr>
<td>Quantity</td><td>{{ build.quantity }}</td> <td>{% trans "Quantity" %}</td><td>{{ build.quantity }}</td>
</tr> </tr>
<tr> <tr>
<td>Stock Source</td> <td>{% trans "Stock Source" %}</td>
<td> <td>
{% if build.take_from %} {% if build.take_from %}
<a href="{% url 'stock-location-detail' build.take_from.id %}">{{ build.take_from }}</a> <a href="{% url 'stock-location-detail' build.take_from.id %}">{{ build.take_from }}</a>
{% else %} {% else %}
Stock can be taken from any available location. {% trans "Stock can be taken from any available location." %}
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
<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> </tr>
{% if build.batch %} {% if build.batch %}
<tr> <tr>
<td>Batch</td><td>{{ build.batch }}</td> <td>{% trans "Batch" %}</td><td>{{ build.batch }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if build.URL %} {% if build.URL %}
<tr> <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> </tr>
{% endif %} {% endif %}
<tr> <tr>
<td>Created</td><td>{{ build.creation_date }}</td> <td>{% trans "Created" %}</td><td>{{ build.creation_date }}</td>
</tr> </tr>
{% if build.is_active %} {% if build.is_active %}
<tr> <tr>
<td>Enough Parts?</td> <td>{% trans "Enough Parts?" %}</td>
<td> <td>
{% if build.can_build %} {% if build.can_build %}
Yes {% trans "Yes" %}
{% else %} {% else %}
No {% trans "No" %}
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endif %} {% endif %}
{% if build.completion_date %} {% if build.completion_date %}
<tr> <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> </tr>
{% endif %} {% endif %}
</table> </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 %} {% 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'> <ul class='nav nav-tabs'>
<li{% if tab == 'details' %} class='active'{% endif %}> <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>
<li{% if tab == 'allocate' %} class='active'{% endif %}> <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> </li>
</ul> </ul>

View File

@ -25,6 +25,7 @@ build_detail_urls = [
url(r'^auto-allocate/?', views.BuildAutoAllocate.as_view(), name='build-auto-allocate'), url(r'^auto-allocate/?', views.BuildAutoAllocate.as_view(), name='build-auto-allocate'),
url(r'^unallocate/', views.BuildUnallocate.as_view(), name='build-unallocate'), 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'), 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.utils.translation import ugettext as _
from django.core.exceptions import ValidationError 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.forms import HiddenInput
from django.urls import reverse
from part.models import Part from part.models import Part
from .models import Build, BuildItem 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): class BuildDetail(DetailView):
""" Detail view of a single Build object. """ """ Detail view of a single Build object. """
model = Build model = Build

View File

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

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-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" "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"
@ -129,71 +129,71 @@ msgstr ""
msgid "Overage must be an integer value or a percentage" msgid "Overage must be an integer value or a percentage"
msgstr "" msgstr ""
#: build/forms.py:36 #: build/forms.py:35
msgid "Confirm" msgid "Confirm"
msgstr "" 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)" msgid "Enter unique serial numbers (or leave blank)"
msgstr "" msgstr ""
#: build/forms.py:55 #: build/forms.py:54
msgid "Confirm build completion" msgid "Confirm build completion"
msgstr "" msgstr ""
#: build/models.py:51 #: build/models.py:53
msgid "Brief description of the build" msgid "Brief description of the build"
msgstr "" msgstr ""
#: build/models.py:60 #: build/models.py:62
msgid "Select part to build" msgid "Select part to build"
msgstr "" msgstr ""
#: build/models.py:66 #: build/models.py:68
msgid "" msgid ""
"Select location to take stock from for this build (leave blank to take from " "Select location to take stock from for this build (leave blank to take from "
"any stock location)" "any stock location)"
msgstr "" msgstr ""
#: build/models.py:72 #: build/models.py:74
msgid "Number of parts to build" msgid "Number of parts to build"
msgstr "" msgstr ""
#: build/models.py:78 #: build/models.py:80
msgid "Build status" msgid "Build status"
msgstr "" msgstr ""
#: build/models.py:81 #: build/models.py:83
msgid "Batch code for this build output" msgid "Batch code for this build output"
msgstr "" msgstr ""
#: build/models.py:93 #: build/models.py:95
msgid "Link to external URL" msgid "Link to external URL"
msgstr "" msgstr ""
#: build/models.py:95 #: build/models.py:97
msgid "Extra build notes" msgid "Extra build notes"
msgstr "" msgstr ""
#: build/models.py:380 #: build/models.py:382
#, python-brace-format #, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'" msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "" msgstr ""
#: build/models.py:383 #: build/models.py:385
#, python-brace-format #, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr "" msgstr ""
#: build/models.py:401 #: build/models.py:403
msgid "Build to allocate parts" msgid "Build to allocate parts"
msgstr "" msgstr ""
#: build/models.py:408 #: build/models.py:410
msgid "Stock Item to allocate to build" msgid "Stock Item to allocate to build"
msgstr "" msgstr ""
#: build/models.py:416 #: build/models.py:418
msgid "Stock quantity to allocate to build" msgid "Stock quantity to allocate to build"
msgstr "" msgstr ""
@ -211,6 +211,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
#: order/templates/order/purchase_order_detail.html:107 #: order/templates/order/purchase_order_detail.html:107
msgid "Part" msgid "Part"
msgstr "" msgstr ""
@ -248,7 +249,96 @@ msgstr ""
msgid "On Order" msgid "On Order"
msgstr "" 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 #, python-brace-format
msgid "The following serial numbers already exist: ({sn})" msgid "The following serial numbers already exist: ({sn})"
msgstr "" msgstr ""
@ -357,12 +447,6 @@ msgstr ""
msgid "Supplier part description" msgid "Supplier part description"
msgstr "" 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 #: company/models.py:250
msgid "Minimum charge (e.g. stocking fee)" msgid "Minimum charge (e.g. stocking fee)"
msgstr "" msgstr ""
@ -376,22 +460,10 @@ msgstr ""
msgid "Company Notes" msgid "Company Notes"
msgstr "" 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 #: company/templates/company/partdelete.html:5
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:5 part/templates/part/tabs.html:6
msgid "Details"
msgstr ""
#: company/templates/company/tabs.html:9 #: company/templates/company/tabs.html:9
msgid "Supplier Parts" msgid "Supplier Parts"
msgstr "" msgstr ""
@ -490,15 +562,6 @@ msgstr ""
msgid "Supplier" msgid "Supplier"
msgstr "" 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 #: order/templates/order/purchase_order_detail.html:79
msgid "Issued" msgid "Issued"
msgstr "" msgstr ""
@ -520,12 +583,6 @@ msgstr ""
msgid "Reference" msgid "Reference"
msgstr "" 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 #: order/templates/order/purchase_order_detail.html:115
msgid "Note" msgid "Note"
msgstr "" msgstr ""
@ -868,11 +925,6 @@ msgstr ""
msgid "Variant Of" msgid "Variant Of"
msgstr "" 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 #: part/templates/part/detail.html:55
msgid "Category" msgid "Category"
msgstr "" msgstr ""
@ -1223,10 +1275,6 @@ msgstr ""
msgid "Serial Number" msgid "Serial Number"
msgstr "" msgstr ""
#: stock/templates/stock/item.html:95
msgid "Batch"
msgstr ""
#: stock/templates/stock/item.html:113 #: stock/templates/stock/item.html:113
msgid "Customer" msgid "Customer"
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-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" "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"
@ -129,71 +129,71 @@ msgstr ""
msgid "Overage must be an integer value or a percentage" msgid "Overage must be an integer value or a percentage"
msgstr "" msgstr ""
#: build/forms.py:36 #: build/forms.py:35
msgid "Confirm" msgid "Confirm"
msgstr "" 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)" msgid "Enter unique serial numbers (or leave blank)"
msgstr "" msgstr ""
#: build/forms.py:55 #: build/forms.py:54
msgid "Confirm build completion" msgid "Confirm build completion"
msgstr "" msgstr ""
#: build/models.py:51 #: build/models.py:53
msgid "Brief description of the build" msgid "Brief description of the build"
msgstr "" msgstr ""
#: build/models.py:60 #: build/models.py:62
msgid "Select part to build" msgid "Select part to build"
msgstr "" msgstr ""
#: build/models.py:66 #: build/models.py:68
msgid "" msgid ""
"Select location to take stock from for this build (leave blank to take from " "Select location to take stock from for this build (leave blank to take from "
"any stock location)" "any stock location)"
msgstr "" msgstr ""
#: build/models.py:72 #: build/models.py:74
msgid "Number of parts to build" msgid "Number of parts to build"
msgstr "" msgstr ""
#: build/models.py:78 #: build/models.py:80
msgid "Build status" msgid "Build status"
msgstr "" msgstr ""
#: build/models.py:81 #: build/models.py:83
msgid "Batch code for this build output" msgid "Batch code for this build output"
msgstr "" msgstr ""
#: build/models.py:93 #: build/models.py:95
msgid "Link to external URL" msgid "Link to external URL"
msgstr "" msgstr ""
#: build/models.py:95 #: build/models.py:97
msgid "Extra build notes" msgid "Extra build notes"
msgstr "" msgstr ""
#: build/models.py:380 #: build/models.py:382
#, python-brace-format #, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'" msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "" msgstr ""
#: build/models.py:383 #: build/models.py:385
#, python-brace-format #, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr "" msgstr ""
#: build/models.py:401 #: build/models.py:403
msgid "Build to allocate parts" msgid "Build to allocate parts"
msgstr "" msgstr ""
#: build/models.py:408 #: build/models.py:410
msgid "Stock Item to allocate to build" msgid "Stock Item to allocate to build"
msgstr "" msgstr ""
#: build/models.py:416 #: build/models.py:418
msgid "Stock quantity to allocate to build" msgid "Stock quantity to allocate to build"
msgstr "" msgstr ""
@ -211,6 +211,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
#: order/templates/order/purchase_order_detail.html:107 #: order/templates/order/purchase_order_detail.html:107
msgid "Part" msgid "Part"
msgstr "" msgstr ""
@ -248,7 +249,96 @@ msgstr ""
msgid "On Order" msgid "On Order"
msgstr "" 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 #, python-brace-format
msgid "The following serial numbers already exist: ({sn})" msgid "The following serial numbers already exist: ({sn})"
msgstr "" msgstr ""
@ -357,12 +447,6 @@ msgstr ""
msgid "Supplier part description" msgid "Supplier part description"
msgstr "" 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 #: company/models.py:250
msgid "Minimum charge (e.g. stocking fee)" msgid "Minimum charge (e.g. stocking fee)"
msgstr "" msgstr ""
@ -376,22 +460,10 @@ msgstr ""
msgid "Company Notes" msgid "Company Notes"
msgstr "" 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 #: company/templates/company/partdelete.html:5
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:5 part/templates/part/tabs.html:6
msgid "Details"
msgstr ""
#: company/templates/company/tabs.html:9 #: company/templates/company/tabs.html:9
msgid "Supplier Parts" msgid "Supplier Parts"
msgstr "" msgstr ""
@ -490,15 +562,6 @@ msgstr ""
msgid "Supplier" msgid "Supplier"
msgstr "" 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 #: order/templates/order/purchase_order_detail.html:79
msgid "Issued" msgid "Issued"
msgstr "" msgstr ""
@ -520,12 +583,6 @@ msgstr ""
msgid "Reference" msgid "Reference"
msgstr "" 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 #: order/templates/order/purchase_order_detail.html:115
msgid "Note" msgid "Note"
msgstr "" msgstr ""
@ -868,11 +925,6 @@ msgstr ""
msgid "Variant Of" msgid "Variant Of"
msgstr "" 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 #: part/templates/part/detail.html:55
msgid "Category" msgid "Category"
msgstr "" msgstr ""
@ -1223,10 +1275,6 @@ msgstr ""
msgid "Serial Number" msgid "Serial Number"
msgstr "" msgstr ""
#: stock/templates/stock/item.html:95
msgid "Batch"
msgstr ""
#: stock/templates/stock/item.html:113 #: stock/templates/stock/item.html:113
msgid "Customer" msgid "Customer"
msgstr "" msgstr ""