mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Skeleton for deleting multiple items
- Does not work yet! But opens a window...
This commit is contained in:
parent
a7abf9731b
commit
ee0cbdbb07
@ -1,5 +1,5 @@
|
||||
|
||||
function moveStock(rows, options) {
|
||||
function moveStockItems(items, options) {
|
||||
|
||||
var modal = '#modal-form';
|
||||
|
||||
@ -7,7 +7,7 @@ function moveStock(rows, options) {
|
||||
modal = options.modal;
|
||||
}
|
||||
|
||||
if (rows.length == 0) {
|
||||
if (items.length == 0) {
|
||||
alert('No stock items selected');
|
||||
return;
|
||||
}
|
||||
@ -33,54 +33,75 @@ function moveStock(rows, options) {
|
||||
}
|
||||
|
||||
getStockLocations({},
|
||||
{
|
||||
success: function(response) {
|
||||
openModal(modal);
|
||||
modalSetTitle(modal, "Move " + rows.length + " stock items");
|
||||
modalSetButtonText(modal, "Move");
|
||||
{
|
||||
success: function(response) {
|
||||
openModal(modal);
|
||||
modalSetTitle(modal, "Move " + items.length + " stock items");
|
||||
modalSetButtonText(modal, "Move");
|
||||
|
||||
// Extact part row info
|
||||
var parts = [];
|
||||
// Extact part row info
|
||||
var parts = [];
|
||||
|
||||
var html = "Select new location:<br>\n";
|
||||
var html = "Select new location:<br>\n";
|
||||
|
||||
html += "<select class='select' id='stock-location'>";
|
||||
html += "<select class='select' id='stock-location'>";
|
||||
|
||||
for (i = 0; i < response.length; i++) {
|
||||
var loc = response[i];
|
||||
for (i = 0; i < response.length; i++) {
|
||||
var loc = response[i];
|
||||
|
||||
html += makeOption(loc.pk, loc.name + ' - <i>' + loc.description + '</i>');
|
||||
}
|
||||
|
||||
html += "</select><br><hr>";
|
||||
|
||||
html += "The following stock items will be moved:<br><ul class='list-group'>\n";
|
||||
|
||||
for (i = 0; i < rows.length; i++) {
|
||||
parts.push(rows[i].pk);
|
||||
|
||||
html += "<li class='list-group-item'>" + rows[i].quantity + " × " + rows[i].part.name;
|
||||
|
||||
if (rows[i].location) {
|
||||
html += " (" + rows[i].location.name + ")";
|
||||
}
|
||||
|
||||
html += "</li>\n";
|
||||
}
|
||||
|
||||
html += "</ul>\n";
|
||||
|
||||
modalSetContent(modal, html);
|
||||
attachSelect(modal);
|
||||
|
||||
$(modal).on('click', '#modal-form-submit', function() {
|
||||
var locId = $(modal).find("#stock-location").val();
|
||||
|
||||
doMove(locId, parts);
|
||||
});
|
||||
},
|
||||
error: function(error) {
|
||||
alert('Error getting stock locations:\n' + error.error);
|
||||
html += makeOption(loc.pk, loc.name + ' - <i>' + loc.description + '</i>');
|
||||
}
|
||||
});
|
||||
|
||||
html += "</select><br><hr>";
|
||||
|
||||
html += "The following stock items will be moved:<br><ul class='list-group'>\n";
|
||||
|
||||
for (i = 0; i < items.length; i++) {
|
||||
parts.push(items[i].pk);
|
||||
|
||||
html += "<li class='list-group-item'>" + items[i].quantity + " × " + items[i].part.name;
|
||||
|
||||
if (items[i].location) {
|
||||
html += " (" + items[i].location.name + ")";
|
||||
}
|
||||
|
||||
html += "</li>\n";
|
||||
}
|
||||
|
||||
html += "</ul>\n";
|
||||
|
||||
modalSetContent(modal, html);
|
||||
attachSelect(modal);
|
||||
|
||||
$(modal).on('click', '#modal-form-submit', function() {
|
||||
var locId = $(modal).find("#stock-location").val();
|
||||
|
||||
doMove(locId, parts);
|
||||
});
|
||||
},
|
||||
error: function(error) {
|
||||
alert('Error getting stock locations:\n' + error.error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function deleteStockItems(items, options) {
|
||||
|
||||
var modal = '#modal-delete';
|
||||
|
||||
if ('modal' in options) {
|
||||
modal = options.modal;
|
||||
}
|
||||
|
||||
if (items.length == 0) {
|
||||
alert('No stock items selected');
|
||||
return;
|
||||
}
|
||||
|
||||
function doDelete(parts) {
|
||||
//TODO
|
||||
}
|
||||
|
||||
openModal(modal);
|
||||
modalSetTitle(modal, 'Delete ' + items.length + ' stock items');
|
||||
}
|
@ -166,6 +166,10 @@ class StockItem(models.Model):
|
||||
|
||||
infinite = models.BooleanField(default=False)
|
||||
|
||||
def can_delete(self):
|
||||
# TODO - Return FALSE if this item cannot be deleted!
|
||||
return True
|
||||
|
||||
@property
|
||||
def in_stock(self):
|
||||
if self.quantity == 0:
|
||||
|
@ -126,19 +126,21 @@
|
||||
|
||||
var items = selectedStock();
|
||||
|
||||
moveStock(items,
|
||||
moveStockItems(items,
|
||||
{
|
||||
success: function() {
|
||||
$("#stock-table").bootstrapTable('refresh');
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#multi-item-delete").click(function() {
|
||||
|
||||
var items = selectedStock();
|
||||
|
||||
alert('Deleting ' + items.length + ' items');
|
||||
deleteStockItems(items, {});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user