Skeleton for deleting multiple items

- Does not work yet! But opens a window...
This commit is contained in:
Oliver 2018-05-06 22:38:39 +10:00
parent a7abf9731b
commit ee0cbdbb07
3 changed files with 75 additions and 48 deletions

View File

@ -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 + " &times " + 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 + " &times " + 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');
}

View File

@ -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:

View File

@ -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;
});