mirror of
https://github.com/inventree/InvenTree.git
synced 2025-07-01 03:00:54 +00:00
Adding bulk deletion endpoint for notifications (#3154)
* Catch DoesNotExist error * Move notificationtable function to js file * Fix for custom metadata class - Previously only worked if a POST or PUT action was available on the endpoint - So, a ListAPIView endpoint would not actually work! - Adding in a BulkDelete mixin to a ListAPIView caused failure * Add unit test to ensure new OPTIONS metadata updates are checked * Expand functionality of the existing BulkDelete mixin - Allow deletion by custom filters - Allow each implementing class to implement custom filters - Adds more unit testing for BulkDelete mixin class * Add bulk delete operation for Notification API - Ensure users can only delete their *own* notifications * Improve notification tables / buttons / etc * Adds unit testing for bulk delete of notifications - Fixed API permissions for notifications list endpoint * Update BulkDelete operations for the StockItemTestResult table * Use filters parameter in attachments table to ensure that only correct attachments are deleted * JS linting * Fixes for unit tests
This commit is contained in:
@ -280,9 +280,7 @@
|
||||
|
||||
// Ensure that we are only deleting the correct test results
|
||||
response.forEach(function(result) {
|
||||
if (result.stock_item == {{ item.pk }}) {
|
||||
items.push(result.pk);
|
||||
}
|
||||
items.push(result.pk);
|
||||
});
|
||||
|
||||
var html = `
|
||||
@ -293,6 +291,9 @@
|
||||
constructForm(url, {
|
||||
form_data: {
|
||||
items: items,
|
||||
filters: {
|
||||
stock_item: {{ item.pk }},
|
||||
}
|
||||
},
|
||||
method: 'DELETE',
|
||||
title: '{% trans "Delete Test Data" %}',
|
||||
|
@ -968,10 +968,28 @@ class StockTestResultTest(StockAPITestCase):
|
||||
)
|
||||
|
||||
# Now, let's delete all the newly created items with a single API request
|
||||
# However, we will provide incorrect filters
|
||||
response = self.delete(
|
||||
url,
|
||||
{
|
||||
'items': tests,
|
||||
'filters': {
|
||||
'stock_item': 10,
|
||||
}
|
||||
},
|
||||
expected_code=204
|
||||
)
|
||||
|
||||
self.assertEqual(StockItemTestResult.objects.count(), n + 50)
|
||||
|
||||
# Try again, but with the correct filters this time
|
||||
response = self.delete(
|
||||
url,
|
||||
{
|
||||
'items': tests,
|
||||
'filters': {
|
||||
'stock_item': 1,
|
||||
}
|
||||
},
|
||||
expected_code=204
|
||||
)
|
||||
|
Reference in New Issue
Block a user