stash
This commit is contained in:
parent
2fe8d14c2c
commit
4627f0aca2
14 changed files with 1064 additions and 11 deletions
|
|
@ -1,11 +1,11 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from toolshed.models import InventoryItem, Property, Tag, Category
|
||||
from toolshed.models import InventoryItem, Property, Tag, Category, StorageLocation, WorkflowInstance
|
||||
|
||||
|
||||
class InventoryItemAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'description', 'category', 'availability_policy', 'owned_quantity', 'owner')
|
||||
search_fields = ('name', 'description', 'category', 'availability_policy', 'owned_quantity', 'owner')
|
||||
list_display = ('name', 'description', 'category', 'availability_policy', 'owned_quantity', 'owner', 'storage_location')
|
||||
search_fields = ('name', 'description', 'category__name', 'availability_policy', 'owner__username', 'storage_location__name')
|
||||
|
||||
|
||||
admin.site.register(InventoryItem, InventoryItemAdmin)
|
||||
|
|
@ -13,7 +13,7 @@ admin.site.register(InventoryItem, InventoryItemAdmin)
|
|||
|
||||
class PropertyAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'description', 'category', 'unit_symbol', 'base2_prefix', 'dimensions', 'origin')
|
||||
search_fields = ('name', 'description', 'category', 'unit_symbol', 'base2_prefix', 'dimensions', 'origin')
|
||||
search_fields = ('name', 'description', 'category__name', 'unit_symbol', 'origin')
|
||||
|
||||
|
||||
admin.site.register(Property, PropertyAdmin)
|
||||
|
|
@ -21,7 +21,7 @@ admin.site.register(Property, PropertyAdmin)
|
|||
|
||||
class TagAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'description', 'category', 'origin')
|
||||
search_fields = ('name', 'description', 'category', 'origin')
|
||||
search_fields = ('name', 'description', 'category__name', 'origin')
|
||||
|
||||
|
||||
admin.site.register(Tag, TagAdmin)
|
||||
|
|
@ -29,7 +29,16 @@ admin.site.register(Tag, TagAdmin)
|
|||
|
||||
class CategoryAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'description', 'parent', 'origin')
|
||||
search_fields = ('name', 'description', 'parent', 'origin')
|
||||
search_fields = ('name', 'description', 'parent__name', 'origin')
|
||||
|
||||
|
||||
admin.site.register(Category, CategoryAdmin)
|
||||
|
||||
|
||||
class StorageLocationAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'description', 'category', 'parent', 'owner')
|
||||
search_fields = ('name', 'description', 'category__name', 'parent__name', 'owner__username')
|
||||
list_filter = ('category', 'owner')
|
||||
|
||||
|
||||
admin.site.register(StorageLocation, StorageLocationAdmin)
|
||||
|
|
|
|||
|
|
@ -72,6 +72,19 @@ class StorageLocationViewSet(viewsets.ModelViewSet):
|
|||
return StorageLocation.objects.filter(owner=self.request.user.user.get())
|
||||
return StorageLocation.objects.none()
|
||||
|
||||
def perform_create(self, serializer):
|
||||
with transaction.atomic():
|
||||
serializer.save(owner=self.request.user.user.get())
|
||||
|
||||
def perform_update(self, serializer):
|
||||
with transaction.atomic():
|
||||
if serializer.instance.owner == self.request.user.user.get():
|
||||
serializer.save()
|
||||
|
||||
def perform_destroy(self, instance):
|
||||
if instance.owner == self.request.user.user.get():
|
||||
instance.delete()
|
||||
|
||||
|
||||
router.register(r'inventory_items', InventoryItemViewSet, basename='inventory_items')
|
||||
router.register(r'storage_locations', StorageLocationViewSet, basename='storage_locations')
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from django.db import models
|
||||
from django.core.validators import MinValueValidator
|
||||
from django.core.validators import MinValueValidator, MaxValueValidator
|
||||
from django_softdelete.models import SoftDeleteModel
|
||||
from rest_framework.exceptions import ValidationError
|
||||
|
||||
|
|
|
|||
|
|
@ -50,12 +50,12 @@ class CategorySerializer(serializers.ModelSerializer):
|
|||
|
||||
class StorageLocationSerializer(serializers.ModelSerializer):
|
||||
owner = OwnerSerializer(read_only=True)
|
||||
category = CategorySerializer(required=False, allow_null=True)
|
||||
category = serializers.CharField(required=False, allow_null=True, allow_blank=True)
|
||||
path = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = StorageLocation
|
||||
fields = ['id', 'name', 'description', 'path', 'category', 'owner']
|
||||
fields = ['id', 'name', 'description', 'path', 'category', 'owner', 'parent']
|
||||
read_only_fields = ['path']
|
||||
|
||||
@staticmethod
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue