This commit is contained in:
Oliver Walters 2017-03-28 23:38:12 +11:00
parent b5dc22f33a
commit 7ce5a9a7e5
11 changed files with 29 additions and 20 deletions

View File

@ -43,7 +43,6 @@ class InvenTreeTree(models.Model):
on_delete=models.CASCADE,
blank=True,
null=True)
#limit_choices_to={id: getAcceptableParents})
def getUniqueChildren(self, unique=None):
""" Return a flat set of all child items that exist under this node.
@ -76,7 +75,7 @@ class InvenTreeTree(models.Model):
available = contents.get_all_objects_for_this_type()
# List of child IDs
# List of child IDs
childs = getUniqueChildren()
acceptable = [None]
@ -101,7 +100,7 @@ class InvenTreeTree(models.Model):
else:
return []
@property
@property
def path(self):
if self.parent:
return "/".join([p.name for p in self.parentpath]) + "/" + self.name
@ -132,7 +131,7 @@ class InvenTreeTree(models.Model):
# Null parent is OK
elif val is None:
pass
# Ensure that the new parent is not already a child
# Ensure that the new parent is not already a child
else:
kids = self.getUniqueChildren()
if val in kids:

View File

@ -88,7 +88,7 @@ class PartRevision(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=500)
revision_date = models.DateField(auto_now_add = True)
revision_date = models.DateField(auto_now_add=True)
def __str__(self):
return self.name

View File

@ -19,4 +19,4 @@ class PartCategorySerializer(serializers.ModelSerializer):
fields = ('pk',
'name',
'description',
'path')
'path')

View File

@ -14,4 +14,4 @@ urlpatterns = [
# Display list of parts
url(r'^$', views.PartList.as_view())
]
]

View File

@ -6,6 +6,7 @@ from rest_framework import generics
from .models import PartCategory, Part
from .serializers import PartSerializer, PartCategorySerializer
def index(request):
return HttpResponse("Hello world. This is the parts page")

View File

@ -2,15 +2,18 @@ from django.contrib import admin
from .models import ProjectCategory, Project, ProjectPart
class ProjectCategoryAdmin(admin.ModelAdmin):
list_display = ('name', 'path', 'description')
class ProjectAdmin(admin.ModelAdmin):
list_display = ('name', 'description', 'category')
class ProjectPartAdmin(admin.ModelAdmin):
list_display = ('part', 'project', 'quantity')
admin.site.register(ProjectCategory, ProjectCategoryAdmin)
admin.site.register(Project, ProjectAdmin)
admin.site.register(ProjectPart, ProjectPartAdmin)
admin.site.register(ProjectPart, ProjectPartAdmin)

View File

@ -5,6 +5,7 @@ from django.db import models
from InvenTree.models import InvenTreeTree
from part.models import Part
class ProjectCategory(InvenTreeTree):
""" ProjectCategory provides hierarchical organization of Project objects.
Each ProjectCategory can contain zero-or-more child categories,
@ -15,6 +16,7 @@ class ProjectCategory(InvenTreeTree):
verbose_name = "Project Category"
verbose_name_plural = "Project Categories"
class Project(models.Model):
""" A Project takes multiple Part objects.
A project can output zero-or-more Part objects
@ -33,6 +35,7 @@ class Project(models.Model):
"""
return self.projectpart_set.all()
class ProjectPart(models.Model):
""" A project part associates a single part with a project
The quantity of parts required for a single-run of that project is stored.
@ -56,5 +59,5 @@ class ProjectPart(models.Model):
def __str__(self):
return "{quan} x {name}".format(
name = self.part.name,
quan = self.quantity)
name=self.part.name,
quan=self.quantity)

View File

@ -4,4 +4,4 @@ from . import views
urlpatterns = [
url(r'^$', views.index, name='index')
]
]

View File

@ -1,5 +1,6 @@
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
def index(request):
return HttpResponse("This is the Projects page")
return HttpResponse("This is the Projects page")

View File

@ -2,11 +2,13 @@ from django.contrib import admin
from .models import Warehouse, StockItem
class WarehouseAdmin(admin.ModelAdmin):
list_display = ('name', 'path', 'description')
class StockItemAdmin(admin.ModelAdmin):
list_display = ('part', 'quantity', 'location', 'status', 'updated')
admin.site.register(Warehouse, WarehouseAdmin)
admin.site.register(StockItem, StockItemAdmin)
admin.site.register(StockItem, StockItemAdmin)

View File

@ -25,10 +25,10 @@ class StockItem(models.Model):
status = models.IntegerField(default=ITEM_IN_PROGRESS,
choices=[
(ITEM_IN_PROGRESS, "In progress"),
(ITEM_DAMAGED, "Damaged"),
(ITEM_ATTENTION, "Requires attention"),
(ITEM_COMPLETE, "Complete")
(ITEM_IN_PROGRESS, "In progress"),
(ITEM_DAMAGED, "Damaged"),
(ITEM_ATTENTION, "Requires attention"),
(ITEM_COMPLETE, "Complete")
])
def __str__(self):