Commit 7105270d authored by Gladys Forte's avatar Gladys Forte

asset group

parent 606a1444
from app.entities import models
from rest_framework import serializers
from app.applicationlayer.utils import model_to_dict
class AssetGroupSerializer(serializers.ModelSerializer):
class Meta:
model = models.AssetGroup
fields = '__all__'
read_only_fields = ['created', 'code']
\ No newline at end of file
from django_filters import rest_framework as filters
from app.entities.models import AssetGroup
class AssetGroupFilter(filters.FilterSet):
class Meta:
model = AssetGroup
fields = '__all__'
\ No newline at end of file
from app.entities import models
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_group.table_filters import AssetGroupFilter
from app.applicationlayer.ams.asset_group import serializers
from app.applicationlayer.utils import (
CustomPagination, status_message_response
)
from app.helper import decorators
from django.db import transaction
class AssetGroupViewset(viewsets.ModelViewSet):
queryset = models.AssetGroup.objects.all()
serializer_class = serializers.AssetGroupSerializer
pagination_class = CustomPagination
lookup_field = "code"
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
ordering_fields = '__all__'
search_fields = (
'code', 'name', 'asset_group'
)
@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 Group created', serializer.data
)
return Response(
message
)
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 Groups 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
)
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)
\ No newline at end of file
from django.urls import path, include
from rest_framework import routers
from django.conf.urls import url
from rest_framework.urlpatterns import format_suffix_patterns
from app.applicationlayer.ams.asset_group import views as assetgroup
router = routers.DefaultRouter()
router.register(r'asset-group', assetgroup.AssetGroupViewset)
urlpatterns = [
path('', include(router.urls)),
]
\ No newline at end of file
...@@ -41,7 +41,8 @@ class GenerateCode(Enum): ...@@ -41,7 +41,8 @@ class GenerateCode(Enum):
FORM_ATTACH = 'FRMATCH' FORM_ATTACH = 'FRMATCH'
FORM_DETAIL = 'FRMDETAIL' FORM_DETAIL = 'FRMDETAIL'
ASSET_GROUP = 'AMSGRP'
''' '''
********* *********
LOG ENUMS LOG ENUMS
......
# Generated by Django 2.2 on 2019-10-24 18:34
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0026_auto_20191022_1726'),
]
operations = [
migrations.CreateModel(
name='AssetGroup',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(max_length=255, unique=True)),
('name', models.CharField(max_length=255, unique=True)),
('asset_group', models.CharField(max_length=255, unique=True)),
('created', models.DateTimeField(blank=True, null=True)),
],
options={
'db_table': 'asset_groups',
},
),
]
...@@ -1098,4 +1098,33 @@ class OverdueTrigger(models.Model): ...@@ -1098,4 +1098,33 @@ class OverdueTrigger(models.Model):
********************** **********************
*** AMS TABLES *** *** AMS TABLES ***
********************** **********************
""" """
\ No newline at end of file
class AssetGroup(models.Model):
code = models.CharField(
unique=True,
max_length=255)
name = models.CharField(
unique=True,
max_length=255)
asset_group = models.CharField(
unique=True,
max_length=255)
created = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'asset_groups'
def __str__(self):
return f'{self.code}'
def save(self, *args, **kwargs):
super(AssetGroup, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.ASSET_GROUP.value, self.id)
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
\ No newline at end of file
...@@ -37,6 +37,7 @@ urlpatterns = [ ...@@ -37,6 +37,7 @@ urlpatterns = [
re_path(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}), re_path(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}),
re_path(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}), re_path(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}),
path('api/v1/asset-management/', include('app.applicationlayer.ams.urls_ams')),
] ]
if settings.DEBUG: if settings.DEBUG:
......
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