diff --git a/InvenTree/stock/forms.py b/InvenTree/stock/forms.py
index 948d963cd5..e091730deb 100644
--- a/InvenTree/stock/forms.py
+++ b/InvenTree/stock/forms.py
@@ -2,7 +2,7 @@
from InvenTree.forms import HelperForm
-from .models import StockItem, StockItemTracking
+from .models import StockItem
class ConvertStockItemForm(HelperForm):
@@ -18,19 +18,3 @@ class ConvertStockItemForm(HelperForm):
fields = [
'part'
]
-
-
-class TrackingEntryForm(HelperForm):
- """Form for creating / editing a StockItemTracking object.
-
- Note: 2021-05-11 - This form is not currently used - should delete?
- """
-
- class Meta:
- """Metaclass options."""
-
- model = StockItemTracking
-
- fields = [
- 'notes',
- ]
diff --git a/InvenTree/stock/templates/stock/item.html b/InvenTree/stock/templates/stock/item.html
index efb4a6e39f..d0822b8105 100644
--- a/InvenTree/stock/templates/stock/item.html
+++ b/InvenTree/stock/templates/stock/item.html
@@ -17,11 +17,6 @@
{% trans "Stock Tracking Information" %}
{% include "spacer.html" %}
- {% if user_owns_item and roles.stock.change and not item.is_building %}
-
- {% endif %}
@@ -315,15 +310,6 @@
});
{% endif %}
- $("#new-entry").click(function() {
- launchModalForm(
- "{% url 'stock-tracking-create' item.id %}",
- {
- reload: true,
- }
- );
- });
-
loadStockTrackingTable($("#track-table"), {
params: {
ordering: '-date',
diff --git a/InvenTree/stock/templates/stock/tracking_delete.html b/InvenTree/stock/templates/stock/tracking_delete.html
deleted file mode 100644
index 8469458dfc..0000000000
--- a/InvenTree/stock/templates/stock/tracking_delete.html
+++ /dev/null
@@ -1,9 +0,0 @@
-{% extends "modal_delete_form.html" %}
-
-{% block pre_form_content %}
-
-
-{% trans "Are you sure you want to delete this stock tracking entry?" %}
-
-
-{% endblock %}
diff --git a/InvenTree/stock/urls.py b/InvenTree/stock/urls.py
index 7fa8f04626..4ed2733181 100644
--- a/InvenTree/stock/urls.py
+++ b/InvenTree/stock/urls.py
@@ -10,7 +10,7 @@ location_urls = [
re_path(r'^delete/?', views.StockLocationDelete.as_view(), name='stock-location-delete'),
re_path(r'^qr_code/?', views.StockLocationQRCode.as_view(), name='stock-location-qr'),
- # Anything else
+ # Anything else - direct to the location detail view
re_path('^.*$', views.StockLocationDetail.as_view(), name='stock-location-detail'),
])),
@@ -22,30 +22,17 @@ stock_item_detail_urls = [
re_path(r'^qr_code/', views.StockItemQRCode.as_view(), name='stock-item-qr'),
re_path(r'^delete_test_data/', views.StockItemDeleteTestData.as_view(), name='stock-item-delete-test-data'),
- re_path(r'^add_tracking/', views.StockItemTrackingCreate.as_view(), name='stock-tracking-create'),
-
+ # Anything else - direct to the item detail view
re_path('^.*$', views.StockItemDetail.as_view(), name='stock-item-detail'),
]
-stock_tracking_urls = [
-
- # edit
- re_path(r'^(?P\d+)/edit/', views.StockItemTrackingEdit.as_view(), name='stock-tracking-edit'),
-
- # delete
- re_path(r'^(?P\d+)/delete', views.StockItemTrackingDelete.as_view(), name='stock-tracking-delete'),
-]
-
stock_urls = [
# Stock location
re_path(r'^location/', include(location_urls)),
- re_path(r'^track/', include(stock_tracking_urls)),
-
# Individual stock items
re_path(r'^item/(?P\d+)/', include(stock_item_detail_urls)),
- re_path(r'^sublocations/', views.StockIndex.as_view(template_name='stock/sublocation.html'), name='stock-sublocations'),
-
+ # Default to the stock index page
re_path(r'^.*$', views.StockIndex.as_view(), name='stock-index'),
]
diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py
index b4d1e0047a..5277aad990 100644
--- a/InvenTree/stock/views.py
+++ b/InvenTree/stock/views.py
@@ -1,7 +1,5 @@
"""Django views for interacting with Stock app."""
-from datetime import datetime
-
from django.http import HttpResponseRedirect
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
@@ -10,12 +8,12 @@ from django.views.generic import DetailView, ListView
import common.settings
from InvenTree.forms import ConfirmForm
from InvenTree.helpers import str2bool
-from InvenTree.views import (AjaxCreateView, AjaxDeleteView, AjaxUpdateView,
+from InvenTree.views import (AjaxDeleteView, AjaxUpdateView,
InvenTreeRoleMixin, QRCodeView)
from plugin.views import InvenTreePluginViewMixin
from . import forms as StockForms
-from .models import StockItem, StockItemTracking, StockLocation
+from .models import StockItem, StockLocation
class StockIndex(InvenTreeRoleMixin, InvenTreePluginViewMixin, ListView):
@@ -229,65 +227,3 @@ class StockItemDelete(AjaxDeleteView):
ajax_template_name = 'stock/item_delete.html'
context_object_name = 'item'
ajax_form_title = _('Delete Stock Item')
-
-
-class StockItemTrackingDelete(AjaxDeleteView):
- """View to delete a StockItemTracking object.
-
- Presents a deletion confirmation form to the user
- """
-
- model = StockItemTracking
- ajax_template_name = 'stock/tracking_delete.html'
- ajax_form_title = _('Delete Stock Tracking Entry')
-
-
-class StockItemTrackingEdit(AjaxUpdateView):
- """View for editing a StockItemTracking object."""
-
- model = StockItemTracking
- ajax_form_title = _('Edit Stock Tracking Entry')
- form_class = StockForms.TrackingEntryForm
-
-
-class StockItemTrackingCreate(AjaxCreateView):
- """View for creating a new StockItemTracking object."""
-
- model = StockItemTracking
- ajax_form_title = _("Add Stock Tracking Entry")
- form_class = StockForms.TrackingEntryForm
-
- def post(self, request, *args, **kwargs):
- """Create StockItemTracking object."""
- self.request = request
- self.form = self.get_form()
-
- valid = False
-
- if self.form.is_valid():
- stock_id = self.kwargs['pk']
-
- if stock_id:
- try:
- stock_item = StockItem.objects.get(id=stock_id)
-
- # Save new tracking information
- tracking = self.form.save(commit=False)
- tracking.item = stock_item
- tracking.user = self.request.user
- tracking.quantity = stock_item.quantity
- tracking.date = datetime.now().date()
- tracking.system = False
-
- tracking.save()
-
- valid = True
-
- except (StockItem.DoesNotExist, ValueError):
- pass
-
- data = {
- 'form_valid': valid
- }
-
- return self.renderJsonResponse(request, self.form, data=data)