2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-04-28 13:54:25 +00:00
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
+3 -4
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:
+1 -1
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
+1 -1
View File
@@ -19,4 +19,4 @@ class PartCategorySerializer(serializers.ModelSerializer):
fields = ('pk',
'name',
'description',
'path')
'path')
+1 -1
View File
@@ -14,4 +14,4 @@ urlpatterns = [
# Display list of parts
url(r'^$', views.PartList.as_view())
]
]
+1
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")
+6 -3
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)
+5 -2
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)
+1 -1
View File
@@ -4,4 +4,4 @@ from . import views
urlpatterns = [
url(r'^$', views.index, name='index')
]
]
+2 -1
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")
+4 -2
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)
+4 -4
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):