diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py
index 528349931c..8bec540b20 100644
--- a/InvenTree/stock/models.py
+++ b/InvenTree/stock/models.py
@@ -180,6 +180,18 @@ class StockItem(models.Model):
def has_tracking_info(self):
return self.tracking_info.count() > 0
+ def add_transaction_note(self, title, user, notes='', system=True):
+ track = StockItemTracking.objects.create(
+ item=self,
+ title=title,
+ user=user,
+ date=datetime.now().date(),
+ notes=notes,
+ system=system
+ )
+
+ track.save()
+
@transaction.atomic
def stocktake(self, count, user):
""" Perform item stocktake.
@@ -197,6 +209,11 @@ class StockItem(models.Model):
self.stocktake_user = user
self.save()
+ self.add_transaction_note('Stocktake',
+ user,
+ notes='Counted {n} items'.format(n=count),
+ system=True)
+
@transaction.atomic
def add_stock(self, amount):
""" Add items to stock
diff --git a/InvenTree/stock/templates/stock/item.html b/InvenTree/stock/templates/stock/item.html
index c0fa277896..b3b4b8ad6a 100644
--- a/InvenTree/stock/templates/stock/item.html
+++ b/InvenTree/stock/templates/stock/item.html
@@ -84,8 +84,8 @@
{% for track in item.tracking_info.all %}
{{ track.title }}
- {% if track.description %}
-
{{ track.description }}
+ {% if track.notes %}
+
{{ track.notes }}
{% endif %}
{{ track.date }}
diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py
index e3f38724bd..3a28b715d4 100644
--- a/InvenTree/stock/views.py
+++ b/InvenTree/stock/views.py
@@ -137,6 +137,28 @@ class StockItemMove(AjaxUpdateView):
ajax_submit_text = 'Move'
form_class = MoveStockItemForm
+ def post(self, request, *args, **kwargs):
+ form = self.form_class(request.POST, instance=self.get_object())
+
+ if form.is_valid():
+ obj = form.save()
+
+ try:
+ loc = StockLocation.objects.get(pk=form['location'].value())
+ loc_path = loc.pathstring
+ except StockLocation.DoesNotExist:
+ loc_path = ''
+
+ obj.add_transaction_note("Moved item to '{where}'".format(where=loc_path),
+ request.user,
+ system=True)
+
+ data = {
+ 'form_valid': form.is_valid(),
+ }
+
+ return self.renderJsonResponse(request, form, data)
+
class StockItemStocktake(AjaxUpdateView):
model = StockItem
@@ -150,12 +172,10 @@ class StockItemStocktake(AjaxUpdateView):
form = self.form_class(request.POST, instance=self.get_object())
if form.is_valid():
- obj = form.save()
- obj.stocktake_date = datetime.datetime.now()
- obj.stocktake_user = request.user
+ obj = self.get_object()
- obj.save()
+ obj.stocktake(form.data['quantity'], request.user)
data = {
'form_valid': form.is_valid()