diff --git a/InvenTree/build/forms.py b/InvenTree/build/forms.py
index 54f651eade..4f9384d34e 100644
--- a/InvenTree/build/forms.py
+++ b/InvenTree/build/forms.py
@@ -26,7 +26,6 @@ class EditBuildForm(HelperForm):
'take_from',
'batch',
'URL',
- 'notes',
]
diff --git a/InvenTree/build/migrations/0008_auto_20200201_1247.py b/InvenTree/build/migrations/0008_auto_20200201_1247.py
new file mode 100644
index 0000000000..99e916cd32
--- /dev/null
+++ b/InvenTree/build/migrations/0008_auto_20200201_1247.py
@@ -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'),
+ ),
+ ]
diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py
index 51e1b7f5e7..1ad761a98e 100644
--- a/InvenTree/build/models.py
+++ b/InvenTree/build/models.py
@@ -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):
diff --git a/InvenTree/build/templates/build/detail.html b/InvenTree/build/templates/build/detail.html
index 744ed56582..3c3be79b56 100644
--- a/InvenTree/build/templates/build/detail.html
+++ b/InvenTree/build/templates/build/detail.html
@@ -1,74 +1,67 @@
{% extends "build/build_base.html" %}
{% load static %}
-
+{% load i18n %}
{% block details %}
{% include "build/tabs.html" with tab='details' %}
-
Build Details
+{% trans "Build Details" %}
- Title {{ build.title }}
+ {% trans "Title" %} {{ build.title }}
- Part {{ build.part.full_name }}
+ {% trans "Part" %} {{ build.part.full_name }}
- Quantity {{ build.quantity }}
+ {% trans "Quantity" %} {{ build.quantity }}
- Stock Source
+ {% trans "Stock Source" %}
{% if build.take_from %}
{{ build.take_from }}
{% else %}
- Stock can be taken from any available location.
+ {% trans "Stock can be taken from any available location." %}
{% endif %}
- Status {% include "build_status.html" with build=build %}
+ {% trans "Status" %} {% include "build_status.html" with build=build %}
{% if build.batch %}
- Batch {{ build.batch }}
+ {% trans "Batch" %} {{ build.batch }}
{% endif %}
{% if build.URL %}
- URL {{ build.URL }}
+ {% trans "URL" %} {{ build.URL }}
{% endif %}
- Created {{ build.creation_date }}
+ {% trans "Created" %} {{ build.creation_date }}
{% if build.is_active %}
- Enough Parts?
+ {% trans "Enough Parts?" %}
{% if build.can_build %}
- Yes
+ {% trans "Yes" %}
{% else %}
- No
+ {% trans "No" %}
{% endif %}
{% endif %}
{% if build.completion_date %}
- Completed {{ build.completion_date }}{% if build.completed_by %}{{ build.completed_by }} {% endif %}
+ {% trans "Completed" %} {{ build.completion_date }}{% if build.completed_by %}{{ build.completed_by }} {% endif %}
{% endif %}
-{% if build.notes %}
-
-
Notes
-
{{ build.notes }}
-
-{% endif %}
-
{% endblock %}
diff --git a/InvenTree/build/templates/build/notes.html b/InvenTree/build/templates/build/notes.html
new file mode 100644
index 0000000000..6e05a40c95
--- /dev/null
+++ b/InvenTree/build/templates/build/notes.html
@@ -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 %}
+{% trans "Build Notes" %}
+
+
+
+{{ form.media }}
+
+{% else %}
+
+
+
+
{% trans "Build Notes" %}
+
+
+
+
+
+
+
+
+ {{ build.notes | markdownify }}
+
+
+{% 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 %}
\ No newline at end of file
diff --git a/InvenTree/build/templates/build/tabs.html b/InvenTree/build/templates/build/tabs.html
index 6f8ba4f355..ee6667ebcf 100644
--- a/InvenTree/build/templates/build/tabs.html
+++ b/InvenTree/build/templates/build/tabs.html
@@ -1,8 +1,13 @@
+{% load i18n %}
+
\ No newline at end of file
diff --git a/InvenTree/build/urls.py b/InvenTree/build/urls.py
index 54f9f60983..6fa7a3c304 100644
--- a/InvenTree/build/urls.py
+++ b/InvenTree/build/urls.py
@@ -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'),
]
diff --git a/InvenTree/build/views.py b/InvenTree/build/views.py
index 4fa6be696a..6a09a3234e 100644
--- a/InvenTree/build/views.py
+++ b/InvenTree/build/views.py
@@ -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
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index d0c3abc0c1..68ea180d09 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -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"
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index a52da82ac3..3241217a9d 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -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 \n"
"Language-Team: LANGUAGE \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 ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index a52da82ac3..3241217a9d 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -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 \n"
"Language-Team: LANGUAGE \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 ""