2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-17 20:45:44 +00:00

Added views / forms to edit and delete BuildItem objects

- Alter stock allocation
- remove (unallocate) stock from a build
This commit is contained in:
Oliver Walters
2019-04-30 18:51:05 +10:00
parent 24ed6f393b
commit efbef251b6
4 changed files with 81 additions and 14 deletions

View File

@ -0,0 +1,3 @@
Are you sure you want to unallocate these parts?
<br>
This will remove {{ item.quantity }} parts from build '{{ item.build.title }}'.

View File

@ -6,7 +6,13 @@ from django.conf.urls import url, include
from . import views
build_item_detail_urls = [
url('^edit/?', views.BuildItemEdit.as_view(), name='build-item-edit'),
url('^delete/?', views.BuildItemDelete.as_view(), name='build-item-delete'),
]
build_item_urls = [
url(r'^(?P<pk>\d+)/', include(build_item_detail_urls)),
url('^new/', views.BuildItemCreate.as_view(), name='build-item-create'),
]

View File

@ -15,7 +15,7 @@ from .models import Build, BuildItem
from stock.models import StockItem
from .forms import EditBuildForm, EditBuildItemForm
from InvenTree.views import AjaxView, AjaxUpdateView, AjaxCreateView
from InvenTree.views import AjaxView, AjaxUpdateView, AjaxCreateView, AjaxDeleteView
class BuildIndex(ListView):
@ -131,6 +131,22 @@ class BuildUpdate(AjaxUpdateView):
}
class BuildItemDelete(AjaxDeleteView):
""" View to 'unallocate' a BuildItem.
Really we are deleting the BuildItem object from the database.
"""
model = BuildItem
ajax_template_name = 'build/delete_build_item.html'
ajax_form_title = 'Unallocate Stock'
context_object_name = 'item'
def get_data(self):
return {
'danger': 'Removed parts from build allocation'
}
class BuildItemCreate(AjaxCreateView):
""" View for allocating a new part to a build """
@ -189,4 +205,18 @@ class BuildItemCreate(AjaxCreateView):
except Build.DoesNotExist:
pass
return initials
return initials
class BuildItemEdit(AjaxUpdateView):
""" View to edit a BuildItem object """
model = BuildItem
ajax_template_name = 'modal_form.html'
form_class = EditBuildItemForm
ajax_form_title = 'Edit Stock Allocation'
def get_data(self):
return {
'info': 'Updated Build Item',
}