From f17e9de37b7c6f43dee46804e69049bc0dcf2b62 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 27 Mar 2017 22:32:34 +1100 Subject: [PATCH] Added 'track' app - Keeping track of UniquePart objects --- InvenTree/InvenTree/settings.py | 3 ++- InvenTree/InvenTree/urls.py | 2 ++ InvenTree/track/__init__.py | 0 InvenTree/track/admin.py | 5 +++++ InvenTree/track/apps.py | 7 +++++++ InvenTree/track/models.py | 32 ++++++++++++++++++++++++++++++++ InvenTree/track/tests.py | 3 +++ InvenTree/track/views.py | 3 +++ 8 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 InvenTree/track/__init__.py create mode 100644 InvenTree/track/admin.py create mode 100644 InvenTree/track/apps.py create mode 100644 InvenTree/track/models.py create mode 100644 InvenTree/track/tests.py create mode 100644 InvenTree/track/views.py diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index ac26c8e961..61f0b0d8c2 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -40,7 +40,8 @@ INSTALLED_APPS = [ 'part.apps.PartConfig', 'stock.apps.StockConfig', - 'supplier.apps.SupplierConfig' + 'supplier.apps.SupplierConfig', + 'track.apps.TrackConfig' ] MIDDLEWARE = [ diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index 415590eb3a..65680fe3d7 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -13,6 +13,7 @@ Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ + from django.conf.urls import url, include from django.contrib import admin @@ -22,5 +23,6 @@ urlpatterns = [ url(r'^stock/', include('stock.urls')), url(r'^part/', include('part.urls')), url(r'^supplier/', include('supplier.urls')), + url(r'^track/', include('track.urls')), url(r'^admin/', admin.site.urls), ] diff --git a/InvenTree/track/__init__.py b/InvenTree/track/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/InvenTree/track/admin.py b/InvenTree/track/admin.py new file mode 100644 index 0000000000..51037c0176 --- /dev/null +++ b/InvenTree/track/admin.py @@ -0,0 +1,5 @@ +from django.contrib import admin + +from .models import UniquePart + +admin.site.register(UniquePart) \ No newline at end of file diff --git a/InvenTree/track/apps.py b/InvenTree/track/apps.py new file mode 100644 index 0000000000..7873ab8bfe --- /dev/null +++ b/InvenTree/track/apps.py @@ -0,0 +1,7 @@ +from __future__ import unicode_literals + +from django.apps import AppConfig + + +class TrackConfig(AppConfig): + name = 'track' diff --git a/InvenTree/track/models.py b/InvenTree/track/models.py new file mode 100644 index 0000000000..3de10e9cde --- /dev/null +++ b/InvenTree/track/models.py @@ -0,0 +1,32 @@ +from __future__ import unicode_literals + +from django.db import models +from django.contrib.auth.models import User + +from part.models import Part + +class UniquePart(models.Model): + """ A unique instance of a Part object. + Used for tracking parts based on serial numbers, + and tracking all events in the life of a part + """ + + part = models.ForeignKey(Part, on_delete=models.CASCADE) + created = models.DateField(auto_now_add=True, + editable=False) + serial = models.IntegerField() + + createdBy = models.ForeignKey(User) + +class PartTrackingInfo(models.Model): + """ Single data-point in the life of a UniquePart + Each time something happens to the UniquePart, + a new PartTrackingInfo object should be created. + """ + + part = models.ForeignKey(UniquePart, on_delete=models.CASCADE) + date = models.DateField(auto_now_add=True, + editable=False) + notes = models.CharField(max_length=500) + + \ No newline at end of file diff --git a/InvenTree/track/tests.py b/InvenTree/track/tests.py new file mode 100644 index 0000000000..7ce503c2dd --- /dev/null +++ b/InvenTree/track/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/InvenTree/track/views.py b/InvenTree/track/views.py new file mode 100644 index 0000000000..91ea44a218 --- /dev/null +++ b/InvenTree/track/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.