Commit afbd70c4 authored by John Red Medrano's avatar John Red Medrano

commit this development to pull the latest migration

parent 36d387e5
...@@ -7,6 +7,9 @@ class AMSAssetSerializer(serializers.ModelSerializer): ...@@ -7,6 +7,9 @@ class AMSAssetSerializer(serializers.ModelSerializer):
def to_representation(self, instance): def to_representation(self, instance):
ret = super().to_representation(instance) ret = super().to_representation(instance)
ret['asset_type'] = instance.asset_type.name ret['asset_type'] = instance.asset_type.name
ret['in_qty'] = instance.ams_asset_to_assetdetail.filter(status='In-Store').count()
ret['out_qty'] = instance.ams_asset_to_assetdetail.filter(status='Deployed').count()
ret['unavailable'] = instance.ams_asset_to_assetdetail.filter(status='Faulty').count()
return ret return ret
......
...@@ -6,17 +6,18 @@ from django_filters.rest_framework import DjangoFilterBackend ...@@ -6,17 +6,18 @@ from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import SearchFilter, OrderingFilter from rest_framework.filters import SearchFilter, OrderingFilter
from app.applicationlayer.ams.asset.table_filters import AMSAssetFilter from app.applicationlayer.ams.asset.table_filters import AMSAssetFilter
from app.applicationlayer.ams.asset import serializers from app.applicationlayer.ams.asset import serializers
from django.db import transaction
from app.applicationlayer.utils import( from app.applicationlayer.utils import(
CustomPagination, status_message_response CustomPagination, status_message_response
) )
class AMSAssetViewSet(viewsets.ModelViewSet): class AMSAssetViewSet(viewsets.ModelViewSet):
queryset = models.AMSAsset.objects queryset = AMSAsset.objects.all()
serializer_class = serializers.AMSAssetSerializer serializer_class = serializers.AMSAssetSerializer
pagination_class = CustomPagination pagination_class = CustomPagination
lookup_field = 'code' lookup_field = 'code'
filter_backends( filter_backends = (
DjangoFilterBackend, SearchFilter, DjangoFilterBackend, SearchFilter,
OrderingFilter OrderingFilter
) )
...@@ -53,4 +54,35 @@ class AMSAssetViewSet(viewsets.ModelViewSet): ...@@ -53,4 +54,35 @@ class AMSAssetViewSet(viewsets.ModelViewSet):
) )
@transaction.atomic
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
message = status_message_response(
201, 'success',
'New Asset created', serializer.data
)
return Response(
message
)
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance)
return Response(serializer.data)
@transaction.atomic
def destroy(self, request, *args, **kwargs):
instance = self.get_object()
self.perform_destroy(instance)
return Response(status=status.HTTP_204_NO_CONTENT)
from app.entities.models import AMSAsset
from rest_framework import serializers
class AMSAssetSerializer(serializers.ModelSerializer):
def to_representation(self, instance):
ret = super().to_representation(instance)
ret['asset_type'] = instance.asset_type.name
return ret
class Meta:
model = AMSAsset
fields = (
'code'
'name',
'asset_type',
)
read_only_fields = (
'created',
)
\ No newline at end of file
from django_filters import rest_framework as filters
from app.entities.models import AMSAsset
class AMSAssetFilter(filters.FilterSet):
class Meta:
model = AMSAsset
fields = '__all__'
\ No newline at end of file
from app.entities.models import AMSAsset
from rest_framework import viewsets, status
from rest_framework.response import Response
from django_filters import rest_framework as filters
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import SearchFilter, OrderingFilter
from app.applicationlayer.ams.asset.table_filters import AMSAssetFilter
from app.applicationlayer.ams.asset import serializers
from django.db import transaction
from app.applicationlayer.utils import(
CustomPagination, status_message_response
)
class AMSAssetViewSet(viewsets.ModelViewSet):
queryset = AMSAsset.objects.all()
serializer_class = serializers.AMSAssetSerializer
pagination_class = CustomPagination
lookup_field = 'code'
filter_backends = (
DjangoFilterBackend, SearchFilter,
OrderingFilter
)
ordering_fields = '__all__'
search_filter = (
'code',
'name',
'asset_type__name'
)
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
message = status_message_response(
200,
'success',
'List of Asset found!',
serializer.data
)
return self.get_paginated_response(message)
serializer = self.get_serializer(self.queryset, many=True)
return Response(
serializer.data,
status=status.HTTP_200_OK
)
@transaction.atomic
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
message = status_message_response(
201, 'success',
'New Asset created', serializer.data
)
return Response(
message
)
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance)
return Response(serializer.data)
@transaction.atomic
def destroy(self, request, *args, **kwargs):
instance = self.get_object()
self.perform_destroy(instance)
return Response(status=status.HTTP_204_NO_CONTENT)
...@@ -7,12 +7,14 @@ from app.applicationlayer.ams.asset_group import views as assetgroup ...@@ -7,12 +7,14 @@ from app.applicationlayer.ams.asset_group import views as assetgroup
from app.applicationlayer.ams.ams_privilege import views as amsprivilege from app.applicationlayer.ams.ams_privilege import views as amsprivilege
from app.applicationlayer.ams.ams_user_type.views import AMSUserTypeViewSet from app.applicationlayer.ams.ams_user_type.views import AMSUserTypeViewSet
from app.applicationlayer.ams.asset_type import views as assettype from app.applicationlayer.ams.asset_type import views as assettype
from app.applicationlayer.ams.asset.views import AMSAssetViewSet
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'asset-group', assetgroup.AssetGroupViewset) router.register(r'asset-group', assetgroup.AssetGroupViewset)
router.register(r'asset-type', assettype.AssetTypeViewset) router.register(r'asset-type', assettype.AssetTypeViewset)
router.register(r'ams-privilege', amsprivilege.AMSPrivilegeViewSet) router.register(r'ams-privilege', amsprivilege.AMSPrivilegeViewSet)
router.register(r'assets', AMSAssetViewSet)
urlpatterns = [ urlpatterns = [
path('', include(router.urls)), path('', include(router.urls)),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment