diff --git a/InvenTree/build/templates/build/allocate_view.html b/InvenTree/build/templates/build/allocate_view.html
index f5f3952546..6100f7232e 100644
--- a/InvenTree/build/templates/build/allocate_view.html
+++ b/InvenTree/build/templates/build/allocate_view.html
@@ -1,22 +1,25 @@
-
Required Parts
+{% load i18n %}
+{% load inventree_extras %}
+
+{% trans "Required Parts" %}
- Part |
- Description |
- Available |
- Required |
- Allocated |
- On Order |
+ {% trans "Part" %} |
+ {% trans "Description" %} |
+ {% trans "Available" %} |
+ {% trans "Required" %} |
+ {% trans "Allocated" %} |
+ {% trans "On Order" %} |
@@ -27,10 +30,10 @@
{{ item.part.full_name }}
{{ item.part.description }} |
- {{ item.part.total_stock }} |
- {{ item.quantity }} |
+ {% decimal item.part.total_stock %} |
+ {% decimal item.quantity %} |
{{ item.allocated }} |
- {{ item.part.on_order }} |
+ {% decimal item.part.on_order %} |
{% endfor %}
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 7d092622fe..3101879ebc 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-11-18 21:46+0000\n"
+"POT-Creation-Date: 2019-11-18 22:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,30 +18,30 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: InvenTree/helpers.py:157 order/models.py:158 order/models.py:203
+#: InvenTree/helpers.py:175 order/models.py:158 order/models.py:203
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:160
+#: InvenTree/helpers.py:178
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:181 InvenTree/helpers.py:198
+#: InvenTree/helpers.py:199 InvenTree/helpers.py:216
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:185 InvenTree/helpers.py:188 InvenTree/helpers.py:191
-#: InvenTree/helpers.py:202
+#: InvenTree/helpers.py:203 InvenTree/helpers.py:206 InvenTree/helpers.py:209
+#: InvenTree/helpers.py:220
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:208
+#: InvenTree/helpers.py:226
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:212
+#: InvenTree/helpers.py:230
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -102,7 +102,7 @@ msgstr ""
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:83
+#: InvenTree/status_codes.py:83 build/templates/build/allocate_view.html:21
msgid "Allocated"
msgstr ""
@@ -149,7 +149,40 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/views.py:289 stock/views.py:859
+#: build/templates/build/allocate_view.html:4
+msgid "Required Parts"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:9
+msgid "Allocate"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:10
+msgid "Order Parts"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:17
+msgid "Part"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:18
+#: part/templates/part/detail.html:32
+msgid "Description"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:19
+msgid "Available"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:20
+msgid "Required"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:22
+msgid "On Order"
+msgstr ""
+
+#: build/views.py:289 stock/views.py:862
#, python-brace-format
msgid "The following serial numbers already exist: ({sn})"
msgstr ""
@@ -227,7 +260,7 @@ msgid "Company"
msgstr ""
#: order/models.py:156 order/models.py:201 part/views.py:1032
-#: stock/models.py:437
+#: stock/models.py:438
msgid "Quantity must be greater than zero"
msgstr ""
@@ -251,7 +284,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:275 stock/templates/stock/item.html:106
+#: order/models.py:275 stock/templates/stock/item.html:107
msgid "Purchase Order"
msgstr ""
@@ -549,15 +582,11 @@ msgstr ""
msgid "Revision"
msgstr ""
-#: part/templates/part/detail.html:32
-msgid "Description"
-msgstr ""
-
#: part/templates/part/detail.html:37
msgid "Variant Of"
msgstr ""
-#: part/templates/part/detail.html:49 stock/templates/stock/item.html:118
+#: part/templates/part/detail.html:49 stock/templates/stock/item.html:119
msgid "URL"
msgstr ""
@@ -645,7 +674,7 @@ msgstr ""
msgid "Part cannot be sold to customers"
msgstr ""
-#: part/templates/part/detail.html:151 stock/templates/stock/item.html:150
+#: part/templates/part/detail.html:151 stock/templates/stock/item.html:151
msgid "Notes"
msgstr ""
@@ -702,193 +731,193 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:201
+#: stock/models.py:202
#, python-brace-format
msgid ""
"A stock item with this serial number already exists for template part {part}"
msgstr ""
-#: stock/models.py:206
+#: stock/models.py:207
msgid "A stock item with this serial number already exists"
msgstr ""
-#: stock/models.py:225
+#: stock/models.py:226
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:235 stock/models.py:244
+#: stock/models.py:236 stock/models.py:245
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:236
+#: stock/models.py:237
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:252
+#: stock/models.py:253
msgid "Stock item cannot be created for a template Part"
msgstr ""
-#: stock/models.py:261
+#: stock/models.py:262
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:297
+#: stock/models.py:298
msgid "Base part"
msgstr ""
-#: stock/models.py:304
+#: stock/models.py:305
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:308
+#: stock/models.py:309
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:312
+#: stock/models.py:313
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:317
msgid "Item assigned to customer?"
msgstr ""
-#: stock/models.py:319
+#: stock/models.py:320
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:324
+#: stock/models.py:325
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:333
+#: stock/models.py:334
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:343
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:354
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:360
+#: stock/models.py:361
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:435
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:441
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:443 stock/models.py:446
+#: stock/models.py:444 stock/models.py:447
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:450
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:460
msgid "Serial numbers already exist: "
msgstr ""
-#: stock/models.py:480
+#: stock/models.py:481
msgid "Add serial number"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:484
#, python-brace-format
msgid "Serialized {n} items"
msgstr ""
-#: stock/models.py:725
+#: stock/models.py:738
msgid "Tracking entry title"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:740
msgid "Entry notes"
msgstr ""
-#: stock/models.py:729
+#: stock/models.py:742
msgid "Link to external page for further information"
msgstr ""
-#: stock/templates/stock/item.html:8
+#: stock/templates/stock/item.html:9
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item.html:51
+#: stock/templates/stock/item.html:52
msgid ""
"This stock item is serialized - it has a unique serial number and the "
"quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item.html:55
+#: stock/templates/stock/item.html:56
msgid ""
"This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item.html:72
+#: stock/templates/stock/item.html:73
msgid "Belongs To"
msgstr ""
-#: stock/templates/stock/item.html:77
+#: stock/templates/stock/item.html:78
#: stock/templates/stock/stock_adjust.html:16
msgid "Location"
msgstr ""
-#: stock/templates/stock/item.html:83
+#: stock/templates/stock/item.html:84
msgid "Serial Number"
msgstr ""
-#: stock/templates/stock/item.html:88
+#: stock/templates/stock/item.html:89
#: stock/templates/stock/stock_adjust.html:20
msgid "Quantity"
msgstr ""
-#: stock/templates/stock/item.html:94
+#: stock/templates/stock/item.html:95
msgid "Batch"
msgstr ""
-#: stock/templates/stock/item.html:100
+#: stock/templates/stock/item.html:101
msgid "Build"
msgstr ""
-#: stock/templates/stock/item.html:112
+#: stock/templates/stock/item.html:113
msgid "Customer"
msgstr ""
-#: stock/templates/stock/item.html:124
+#: stock/templates/stock/item.html:125
msgid "Supplier"
msgstr ""
-#: stock/templates/stock/item.html:128
+#: stock/templates/stock/item.html:129
msgid "Supplier Part"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:134
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item.html:137
+#: stock/templates/stock/item.html:138
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item.html:141
+#: stock/templates/stock/item.html:142
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item.html:145
+#: stock/templates/stock/item.html:146
msgid "Status"
msgstr ""
-#: stock/templates/stock/item.html:159
+#: stock/templates/stock/item.html:160
msgid "Stock Tracking Information"
msgstr ""
@@ -925,76 +954,76 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: stock/views.py:373
+#: stock/views.py:375
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:374
+#: stock/views.py:376
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:377
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:378
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:377
+#: stock/views.py:379
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:404
+#: stock/views.py:407
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:409
+#: stock/views.py:412
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:416
+#: stock/views.py:419
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:427
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:495
+#: stock/views.py:498
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:510
+#: stock/views.py:513
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:523
+#: stock/views.py:526
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:551
+#: stock/views.py:554
msgid "No items were moved"
msgstr ""
-#: stock/views.py:554
+#: stock/views.py:557
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:573
+#: stock/views.py:576
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:838
+#: stock/views.py:841
msgid "Invalid part selection"
msgstr ""
-#: stock/views.py:900
+#: stock/views.py:903
msgid "Created new stock item"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 7d092622fe..3101879ebc 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: 2019-11-18 21:46+0000\n"
+"POT-Creation-Date: 2019-11-18 22:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,30 +18,30 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: InvenTree/helpers.py:157 order/models.py:158 order/models.py:203
+#: InvenTree/helpers.py:175 order/models.py:158 order/models.py:203
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:160
+#: InvenTree/helpers.py:178
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:181 InvenTree/helpers.py:198
+#: InvenTree/helpers.py:199 InvenTree/helpers.py:216
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:185 InvenTree/helpers.py:188 InvenTree/helpers.py:191
-#: InvenTree/helpers.py:202
+#: InvenTree/helpers.py:203 InvenTree/helpers.py:206 InvenTree/helpers.py:209
+#: InvenTree/helpers.py:220
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:208
+#: InvenTree/helpers.py:226
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:212
+#: InvenTree/helpers.py:230
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -102,7 +102,7 @@ msgstr ""
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:83
+#: InvenTree/status_codes.py:83 build/templates/build/allocate_view.html:21
msgid "Allocated"
msgstr ""
@@ -149,7 +149,40 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/views.py:289 stock/views.py:859
+#: build/templates/build/allocate_view.html:4
+msgid "Required Parts"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:9
+msgid "Allocate"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:10
+msgid "Order Parts"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:17
+msgid "Part"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:18
+#: part/templates/part/detail.html:32
+msgid "Description"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:19
+msgid "Available"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:20
+msgid "Required"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:22
+msgid "On Order"
+msgstr ""
+
+#: build/views.py:289 stock/views.py:862
#, python-brace-format
msgid "The following serial numbers already exist: ({sn})"
msgstr ""
@@ -227,7 +260,7 @@ msgid "Company"
msgstr ""
#: order/models.py:156 order/models.py:201 part/views.py:1032
-#: stock/models.py:437
+#: stock/models.py:438
msgid "Quantity must be greater than zero"
msgstr ""
@@ -251,7 +284,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:275 stock/templates/stock/item.html:106
+#: order/models.py:275 stock/templates/stock/item.html:107
msgid "Purchase Order"
msgstr ""
@@ -549,15 +582,11 @@ msgstr ""
msgid "Revision"
msgstr ""
-#: part/templates/part/detail.html:32
-msgid "Description"
-msgstr ""
-
#: part/templates/part/detail.html:37
msgid "Variant Of"
msgstr ""
-#: part/templates/part/detail.html:49 stock/templates/stock/item.html:118
+#: part/templates/part/detail.html:49 stock/templates/stock/item.html:119
msgid "URL"
msgstr ""
@@ -645,7 +674,7 @@ msgstr ""
msgid "Part cannot be sold to customers"
msgstr ""
-#: part/templates/part/detail.html:151 stock/templates/stock/item.html:150
+#: part/templates/part/detail.html:151 stock/templates/stock/item.html:151
msgid "Notes"
msgstr ""
@@ -702,193 +731,193 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:201
+#: stock/models.py:202
#, python-brace-format
msgid ""
"A stock item with this serial number already exists for template part {part}"
msgstr ""
-#: stock/models.py:206
+#: stock/models.py:207
msgid "A stock item with this serial number already exists"
msgstr ""
-#: stock/models.py:225
+#: stock/models.py:226
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:235 stock/models.py:244
+#: stock/models.py:236 stock/models.py:245
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:236
+#: stock/models.py:237
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:252
+#: stock/models.py:253
msgid "Stock item cannot be created for a template Part"
msgstr ""
-#: stock/models.py:261
+#: stock/models.py:262
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:297
+#: stock/models.py:298
msgid "Base part"
msgstr ""
-#: stock/models.py:304
+#: stock/models.py:305
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:308
+#: stock/models.py:309
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:312
+#: stock/models.py:313
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:317
msgid "Item assigned to customer?"
msgstr ""
-#: stock/models.py:319
+#: stock/models.py:320
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:324
+#: stock/models.py:325
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:333
+#: stock/models.py:334
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:343
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:354
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:360
+#: stock/models.py:361
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:435
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:441
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:443 stock/models.py:446
+#: stock/models.py:444 stock/models.py:447
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:450
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:460
msgid "Serial numbers already exist: "
msgstr ""
-#: stock/models.py:480
+#: stock/models.py:481
msgid "Add serial number"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:484
#, python-brace-format
msgid "Serialized {n} items"
msgstr ""
-#: stock/models.py:725
+#: stock/models.py:738
msgid "Tracking entry title"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:740
msgid "Entry notes"
msgstr ""
-#: stock/models.py:729
+#: stock/models.py:742
msgid "Link to external page for further information"
msgstr ""
-#: stock/templates/stock/item.html:8
+#: stock/templates/stock/item.html:9
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item.html:51
+#: stock/templates/stock/item.html:52
msgid ""
"This stock item is serialized - it has a unique serial number and the "
"quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item.html:55
+#: stock/templates/stock/item.html:56
msgid ""
"This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item.html:72
+#: stock/templates/stock/item.html:73
msgid "Belongs To"
msgstr ""
-#: stock/templates/stock/item.html:77
+#: stock/templates/stock/item.html:78
#: stock/templates/stock/stock_adjust.html:16
msgid "Location"
msgstr ""
-#: stock/templates/stock/item.html:83
+#: stock/templates/stock/item.html:84
msgid "Serial Number"
msgstr ""
-#: stock/templates/stock/item.html:88
+#: stock/templates/stock/item.html:89
#: stock/templates/stock/stock_adjust.html:20
msgid "Quantity"
msgstr ""
-#: stock/templates/stock/item.html:94
+#: stock/templates/stock/item.html:95
msgid "Batch"
msgstr ""
-#: stock/templates/stock/item.html:100
+#: stock/templates/stock/item.html:101
msgid "Build"
msgstr ""
-#: stock/templates/stock/item.html:112
+#: stock/templates/stock/item.html:113
msgid "Customer"
msgstr ""
-#: stock/templates/stock/item.html:124
+#: stock/templates/stock/item.html:125
msgid "Supplier"
msgstr ""
-#: stock/templates/stock/item.html:128
+#: stock/templates/stock/item.html:129
msgid "Supplier Part"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:134
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item.html:137
+#: stock/templates/stock/item.html:138
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item.html:141
+#: stock/templates/stock/item.html:142
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item.html:145
+#: stock/templates/stock/item.html:146
msgid "Status"
msgstr ""
-#: stock/templates/stock/item.html:159
+#: stock/templates/stock/item.html:160
msgid "Stock Tracking Information"
msgstr ""
@@ -925,76 +954,76 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: stock/views.py:373
+#: stock/views.py:375
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:374
+#: stock/views.py:376
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:377
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:378
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:377
+#: stock/views.py:379
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:404
+#: stock/views.py:407
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:409
+#: stock/views.py:412
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:416
+#: stock/views.py:419
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:427
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:495
+#: stock/views.py:498
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:510
+#: stock/views.py:513
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:523
+#: stock/views.py:526
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:551
+#: stock/views.py:554
msgid "No items were moved"
msgstr ""
-#: stock/views.py:554
+#: stock/views.py:557
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:573
+#: stock/views.py:576
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:838
+#: stock/views.py:841
msgid "Invalid part selection"
msgstr ""
-#: stock/views.py:900
+#: stock/views.py:903
msgid "Created new stock item"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 7d092622fe..3101879ebc 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: 2019-11-18 21:46+0000\n"
+"POT-Creation-Date: 2019-11-18 22:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,30 +18,30 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: InvenTree/helpers.py:157 order/models.py:158 order/models.py:203
+#: InvenTree/helpers.py:175 order/models.py:158 order/models.py:203
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:160
+#: InvenTree/helpers.py:178
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:181 InvenTree/helpers.py:198
+#: InvenTree/helpers.py:199 InvenTree/helpers.py:216
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:185 InvenTree/helpers.py:188 InvenTree/helpers.py:191
-#: InvenTree/helpers.py:202
+#: InvenTree/helpers.py:203 InvenTree/helpers.py:206 InvenTree/helpers.py:209
+#: InvenTree/helpers.py:220
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:208
+#: InvenTree/helpers.py:226
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:212
+#: InvenTree/helpers.py:230
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -102,7 +102,7 @@ msgstr ""
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:83
+#: InvenTree/status_codes.py:83 build/templates/build/allocate_view.html:21
msgid "Allocated"
msgstr ""
@@ -149,7 +149,40 @@ msgstr ""
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/views.py:289 stock/views.py:859
+#: build/templates/build/allocate_view.html:4
+msgid "Required Parts"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:9
+msgid "Allocate"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:10
+msgid "Order Parts"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:17
+msgid "Part"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:18
+#: part/templates/part/detail.html:32
+msgid "Description"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:19
+msgid "Available"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:20
+msgid "Required"
+msgstr ""
+
+#: build/templates/build/allocate_view.html:22
+msgid "On Order"
+msgstr ""
+
+#: build/views.py:289 stock/views.py:862
#, python-brace-format
msgid "The following serial numbers already exist: ({sn})"
msgstr ""
@@ -227,7 +260,7 @@ msgid "Company"
msgstr ""
#: order/models.py:156 order/models.py:201 part/views.py:1032
-#: stock/models.py:437
+#: stock/models.py:438
msgid "Quantity must be greater than zero"
msgstr ""
@@ -251,7 +284,7 @@ msgstr ""
msgid "Line item notes"
msgstr ""
-#: order/models.py:275 stock/templates/stock/item.html:106
+#: order/models.py:275 stock/templates/stock/item.html:107
msgid "Purchase Order"
msgstr ""
@@ -549,15 +582,11 @@ msgstr ""
msgid "Revision"
msgstr ""
-#: part/templates/part/detail.html:32
-msgid "Description"
-msgstr ""
-
#: part/templates/part/detail.html:37
msgid "Variant Of"
msgstr ""
-#: part/templates/part/detail.html:49 stock/templates/stock/item.html:118
+#: part/templates/part/detail.html:49 stock/templates/stock/item.html:119
msgid "URL"
msgstr ""
@@ -645,7 +674,7 @@ msgstr ""
msgid "Part cannot be sold to customers"
msgstr ""
-#: part/templates/part/detail.html:151 stock/templates/stock/item.html:150
+#: part/templates/part/detail.html:151 stock/templates/stock/item.html:151
msgid "Notes"
msgstr ""
@@ -702,193 +731,193 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:201
+#: stock/models.py:202
#, python-brace-format
msgid ""
"A stock item with this serial number already exists for template part {part}"
msgstr ""
-#: stock/models.py:206
+#: stock/models.py:207
msgid "A stock item with this serial number already exists"
msgstr ""
-#: stock/models.py:225
+#: stock/models.py:226
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:235 stock/models.py:244
+#: stock/models.py:236 stock/models.py:245
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:236
+#: stock/models.py:237
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:252
+#: stock/models.py:253
msgid "Stock item cannot be created for a template Part"
msgstr ""
-#: stock/models.py:261
+#: stock/models.py:262
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:297
+#: stock/models.py:298
msgid "Base part"
msgstr ""
-#: stock/models.py:304
+#: stock/models.py:305
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:308
+#: stock/models.py:309
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:312
+#: stock/models.py:313
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:317
msgid "Item assigned to customer?"
msgstr ""
-#: stock/models.py:319
+#: stock/models.py:320
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:324
+#: stock/models.py:325
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:333
+#: stock/models.py:334
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:343
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:354
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:360
+#: stock/models.py:361
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:435
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:440
+#: stock/models.py:441
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:443 stock/models.py:446
+#: stock/models.py:444 stock/models.py:447
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:450
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:459
+#: stock/models.py:460
msgid "Serial numbers already exist: "
msgstr ""
-#: stock/models.py:480
+#: stock/models.py:481
msgid "Add serial number"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:484
#, python-brace-format
msgid "Serialized {n} items"
msgstr ""
-#: stock/models.py:725
+#: stock/models.py:738
msgid "Tracking entry title"
msgstr ""
-#: stock/models.py:727
+#: stock/models.py:740
msgid "Entry notes"
msgstr ""
-#: stock/models.py:729
+#: stock/models.py:742
msgid "Link to external page for further information"
msgstr ""
-#: stock/templates/stock/item.html:8
+#: stock/templates/stock/item.html:9
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item.html:51
+#: stock/templates/stock/item.html:52
msgid ""
"This stock item is serialized - it has a unique serial number and the "
"quantity cannot be adjusted."
msgstr ""
-#: stock/templates/stock/item.html:55
+#: stock/templates/stock/item.html:56
msgid ""
"This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item.html:72
+#: stock/templates/stock/item.html:73
msgid "Belongs To"
msgstr ""
-#: stock/templates/stock/item.html:77
+#: stock/templates/stock/item.html:78
#: stock/templates/stock/stock_adjust.html:16
msgid "Location"
msgstr ""
-#: stock/templates/stock/item.html:83
+#: stock/templates/stock/item.html:84
msgid "Serial Number"
msgstr ""
-#: stock/templates/stock/item.html:88
+#: stock/templates/stock/item.html:89
#: stock/templates/stock/stock_adjust.html:20
msgid "Quantity"
msgstr ""
-#: stock/templates/stock/item.html:94
+#: stock/templates/stock/item.html:95
msgid "Batch"
msgstr ""
-#: stock/templates/stock/item.html:100
+#: stock/templates/stock/item.html:101
msgid "Build"
msgstr ""
-#: stock/templates/stock/item.html:112
+#: stock/templates/stock/item.html:113
msgid "Customer"
msgstr ""
-#: stock/templates/stock/item.html:124
+#: stock/templates/stock/item.html:125
msgid "Supplier"
msgstr ""
-#: stock/templates/stock/item.html:128
+#: stock/templates/stock/item.html:129
msgid "Supplier Part"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:134
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item.html:137
+#: stock/templates/stock/item.html:138
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item.html:141
+#: stock/templates/stock/item.html:142
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item.html:145
+#: stock/templates/stock/item.html:146
msgid "Status"
msgstr ""
-#: stock/templates/stock/item.html:159
+#: stock/templates/stock/item.html:160
msgid "Stock Tracking Information"
msgstr ""
@@ -925,76 +954,76 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: stock/views.py:373
+#: stock/views.py:375
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:374
+#: stock/views.py:376
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:377
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:376
+#: stock/views.py:378
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:377
+#: stock/views.py:379
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:404
+#: stock/views.py:407
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:409
+#: stock/views.py:412
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:416
+#: stock/views.py:419
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:424
+#: stock/views.py:427
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:495
+#: stock/views.py:498
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:510
+#: stock/views.py:513
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:523
+#: stock/views.py:526
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:551
+#: stock/views.py:554
msgid "No items were moved"
msgstr ""
-#: stock/views.py:554
+#: stock/views.py:557
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:573
+#: stock/views.py:576
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:838
+#: stock/views.py:841
msgid "Invalid part selection"
msgstr ""
-#: stock/views.py:900
+#: stock/views.py:903
msgid "Created new stock item"
msgstr ""