Commit a06c967a authored by Gladys Forte's avatar Gladys Forte

Merge branch 'product-dev' into 'product-sit'

Product dev

See merge request rms/Backend/api-main-service!1003
parents 4f18782d b12f3a69
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
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()
ret['created_by'] = instance.created_by.name
return ret
class Meta:
model = AMSAsset
fields = '__all__'
from django_filters import rest_framework as filters
from app.entities.models import AMSAsset
class AMSAssetFilter(filters.FilterSet):
class Meta:
model = AMSAsset
fields = '__all__'
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
)
from rest_framework.decorators import action
from app.applicationlayer.utils import log_save, enums
from app.applicationlayer.utils import model_to_dict
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):
form = request.data
serializer = self.get_serializer(data=form)
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 update(self, request, *args, **kwargs):
try:
partial = kwargs.pop('partial', False)
instance = self.get_object()
form = request.data
form['created_by'] = request.user.code
serializer = self.get_serializer(instance, data=form, partial=partial)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(instance)
self.perform_update(serializer)
new_instance = serializer.data
log_save(
enums.LogEnum.UPDATE.value,
enums.LogEntitiesEnum.AMSReport.value,
old_instance['id'],
old_instance,
new_instance
)
return Response(serializer.data)
except IntegrityError as e:
return Response(
{"message": "Cannot delete or update this reocrd it has foreign key constraint to other tables"},
status=status.HTTP_400_BAD_REQUEST
)
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)
#comment
@action(
methods=['GET'], detail=False,
url_path='archived', url_name='archived'
)
def archived(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
queryset = queryset.filter(is_active=False)
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 Archived Assets 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
)
\ No newline at end of file
......@@ -5,7 +5,24 @@ from app.applicationlayer.utils import model_to_dict
class AssetGroupSerializer(serializers.ModelSerializer):
def to_representation(self, instance):
ret = super().to_representation(instance)
asset_stocks = models.AMSAssetStock.objects.filter(asset_group=instance.code)
asset_counter = 0
asset_type_counter = 0
for asset_stock in asset_stocks:
asset_counter = asset_counter + models.AMSAsset.objects.filter(code=asset_stock.asset.code).count()
asset_type_counter = asset_type_counter + 1
ret['asset_type_count'] = asset_type_counter
ret['asset_count'] = asset_counter
ret['asset_stock_count'] = instance.ams_asset_to_assetgroup.count()
return ret
class Meta:
model = models.AssetGroup
model = models.AMSAssetGroup
fields = '__all__'
read_only_fields = ['created', 'code']
\ No newline at end of file
read_only_fields = ['created', 'created_by', 'code']
\ No newline at end of file
from django_filters import rest_framework as filters
from app.entities.models import AssetGroup
from app.entities.models import AMSAssetGroup
class AssetGroupFilter(filters.FilterSet):
class Meta:
model = AssetGroup
model = AMSAssetGroup
fields = '__all__'
\ No newline at end of file
......@@ -11,25 +11,30 @@ from app.applicationlayer.utils import (
)
from app.helper import decorators
from django.db import transaction
from rest_framework.decorators import action
class AssetGroupViewset(viewsets.ModelViewSet):
queryset = models.AssetGroup.objects.all()
queryset = models.AMSAssetGroup.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'
'code', 'name'
)
@transaction.atomic
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
# serializer.is_valid(raise_exception=True)
if serializer.is_valid(raise_exception=True):
serializer.save(created_by=self.request.user)
self.perform_create(serializer)
message = status_message_response(
......@@ -78,3 +83,33 @@ class AssetGroupViewset(viewsets.ModelViewSet):
self.perform_destroy(instance)
return Response(status=status.HTTP_204_NO_CONTENT)
@action(
methods=['GET'], detail=False,
url_path='archived', url_name='archived'
)
def archived(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
queryset = queryset.filter(is_active=False)
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 Archived 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
)
from app.entities.models import AMSAssetStock
from rest_framework import serializers
class AMSAssetStockSerializer(serializers.ModelSerializer):
def to_representation(self, instance):
ret = super().to_representation(instance)
ret['asset_group'] = instance.asset_group.name
ret['asset'] = instance.asset.name
ret['asset_type'] = instance.asset.asset_type.name
ret['manager'] = instance.manager.name
ret['user_client'] = instance.user_client.name
# ret['created_by'] = {
# "name": instance.created_by.name,
# "code": instance.created_by.code
# }
return ret
class Meta:
model = AMSAssetStock
fields = '__all__'
\ No newline at end of file
from django_filters import rest_framework as filters
from app.entities.models import AMSAssetStock
class AMSAssetStockFilter(filters.FilterSet):
class Meta:
model = AMSAssetStock
fields = '__all__'
\ No newline at end of file
from app.entities.models import AMSAssetStock
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_stock.table_filters import AMSAssetStockFilter
from app.applicationlayer.ams.asset_stock import serializers
from django.db import transaction
from app.applicationlayer.utils import(
CustomPagination, status_message_response
)
from rest_framework.decorators import action
class AMSAssetStockViewSet(viewsets.ModelViewSet):
queryset = AMSAssetStock.objects.all()
serializer_class = serializers.AMSAssetStockSerializer
pagination_class = CustomPagination
lookup_field = 'code'
filter_backends = (
DjangoFilterBackend, SearchFilter,
OrderingFilter
)
ordering_fields = '__all__'
search_filter = (
'code',
'name',
'asset_group__name',
'asset__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 Stock list 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 Stock 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)
@action(
methods=['GET'], detail=False,
url_path='archived', url_name='archived'
)
def archived(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
queryset = queryset.filter(is_active=False)
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 Archived Asset Stocks 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
)
from app.entities import models
from rest_framework import serializers
from app.applicationlayer.utils import model_to_dict
class AssetTypeSerializer(serializers.ModelSerializer):
def to_representation(self, instance):
ret = super().to_representation(instance)
assets = instance.ams_asset_type.select_related()
ams_stock_counter = 0
for asset in assets:
ams_stock_counter = ams_stock_counter + models.AMSAsset.objects.get(code=asset.code).ams_asset_to_assetdetail.count()
ret['asset_count'] = assets.count()
ret['asset_stock_count'] = ams_stock_counter
return ret
class Meta:
model = models.AMSAssetType
fields = '__all__'
read_only_fields = ['created', 'created_by', 'code']
\ No newline at end of file
from django_filters import rest_framework as filters
from app.entities.models import AMSAssetType
class AssetTypeFilter(filters.FilterSet):
class Meta:
model = AMSAssetType
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_type.table_filters import AssetTypeFilter
from app.applicationlayer.ams.asset_type import serializers
from app.applicationlayer.utils import (
CustomPagination, status_message_response
)
from app.helper import decorators
from django.db import transaction
from rest_framework.decorators import action
from app.applicationlayer.utils import model_to_dict
from app.applicationlayer.utils import log_save
from app.entities import enums
class AssetTypeViewset(viewsets.ModelViewSet):
queryset = models.AMSAssetType.objects.all()
serializer_class = serializers.AssetTypeSerializer
pagination_class = CustomPagination
lookup_field = "code"
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
ordering_fields = '__all__'
search_fields = (
'code', 'name'
)
@transaction.atomic
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
# serializer.is_valid(raise_exception=True)
# if requestor == poc:
# message = {
# 'code': 400,
# 'status': 'failed',
# 'message': 'Cannot assign same user on point of contact and requestor',
# }
# return Response(message, status=status.HTTP_400_BAD_REQUEST)
if serializer.is_valid(raise_exception=True):
serializer.save(created_by=self.request.user)
self.perform_create(serializer)
message = status_message_response(
201, 'success',
'New Asset Type created', serializer.data
)
return Response(
message
)
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
# queryset = models.AMSAssetType.objects.annotate(
# view_count=Sum(
# When(relations_item__has_viewed=True, then=1),
# output_field=IntegerField(),
# ),
# love_count=Sum(
# When(relations_item__has_loved=True, then=1),
# output_field=IntegerField(),
# ),
# )
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 Types 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()
instance.is_active = False
instance.save()
# new_instance = model_to_dict(instance)
# log_save(
# enums.LogEnum.DELETED.value,
# enums.LogEntitiesEnum.,
# new_instance['id'],
# new_instance,
# ''
# )
return Response(status=status.HTTP_204_NO_CONTENT)
@action(
methods=['GET'], detail=False,
url_path='archived', url_name='archived'
)
def archived(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
queryset = queryset.filter(is_active=False)
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 Archived Asset Types 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
)
#restore archived asset_type
def partial_update(self, request, *args, **kwargs):
try:
kwargs['partial'] = True
code = self.kwargs['code']
instance = models.AMSAssetType.objects.filter(
code=code
)
instance.update(is_active=True)
message = status_message_response(
200, 'success',
'Archived Asset Type restored',
''
)
return Response(message, status=status.HTTP_200_OK)
except Exception as e:
message = status_message_response(
500, 'failed',
'Request was not able to process' + str(e), []
)
return Response(message,
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
\ No newline at end of file
from app.entities import models
from rest_framework import serializers
from app.applicationlayer.utils import model_to_dict
class AMSReportSerializer(serializers.ModelSerializer):
def to_representation(self, instance):
ret = super().to_representation(instance)
ret['created_by'] = instance.created_by.name
ret['report_type'] = instance.report_type.name
ret['unique_identifier'] = instance.asset_stock.unique_identifier
ret['asset'] = instance.asset_stock.asset.name
ret['asset_type'] = instance.asset_stock.asset.asset_type.name
del ret['asset_stock']
return ret
class Meta:
model = models.AMSReport
fields = '__all__'
\ No newline at end of file
from django_filters import rest_framework as filters
from app.entities.models import AMSReport
class AMSReportFilter(filters.FilterSet):
class Meta:
model = AMSReport
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.report.table_filters import AMSReportFilter
from app.applicationlayer.ams.report import serializers
from app.applicationlayer.utils import (
CustomPagination, status_message_response
)
from app.helper import decorators
from django.db import transaction
from app.applicationlayer.utils import model_to_dict
from app.applicationlayer.utils import log_save, enums
from django.db import IntegrityError
from rest_framework.decorators import action
class AMSReportViewset(viewsets.ModelViewSet):
queryset = models.AMSReport.objects.all()
serializer_class = serializers.AMSReportSerializer
pagination_class = CustomPagination
lookup_field = "code"
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
ordering_fields = '__all__'
search_fields = (
'code', 'name'
)
@transaction.atomic
def create(self, request, *args, **kwargs):
form = request.data
form['created_by'] = request.user.code
serializer = self.get_serializer(data=form)
# serializer.is_valid(raise_exception=True)
if serializer.is_valid(raise_exception=True):
serializer.save(created_by=self.request.user)
self.perform_create(serializer)
message = status_message_response(
201, 'success',
'New Report created', serializer.data
)
return Response(
message
)
def update(self, request, *args, **kwargs):
try:
partial = kwargs.pop('partial', False)
instance = self.get_object()
form = request.data
form['created_by'] = request.user.code
serializer = self.get_serializer(instance, data=form, partial=partial)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(instance)
self.perform_update(serializer)
new_instance = serializer.data
log_save(
enums.LogEnum.UPDATE.value,
enums.LogEntitiesEnum.AMSReport.value,
old_instance['id'],
old_instance,
new_instance
)
return Response(serializer.data)
except IntegrityError as e:
print(e)
return Response(
{"message": "Cannot delete or update this reocrd it has foreign key constraint to other tables"},
status=status.HTTP_400_BAD_REQUEST
)
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset()).filter(is_active=True)
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 Report 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()
instance.is_active = False
instance.save()
new_instance = model_to_dict(instance)
log_save(
enums.LogEnum.UPDATE.value,
enums.LogEntitiesEnum.AMSReport.value,
new_instance['id'],
new_instance,
''
)
return Response(status=status.HTTP_204_NO_CONTENT)
@action(
methods=['GET'], detail=False,
url_path='archived', url_name='archived'
)
def archived(self, request, *args, **kwargs):
self.serializer_class = serializers.AMSReportSerializer
queryset = self.filter_queryset(self.queryset).filter(is_active=False)
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 Archived Report 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
)
@action(
methods=['PATCH'], detail=True,
url_path='restore', url_name='restore'
)
def restore(self, request, code=None):
instance = self.get_object()
instance.is_active = True
instance.save()
new_instance = model_to_dict(instance)
log_save(
enums.LogEnum.UPDATE.value,
enums.LogEntitiesEnum.AMSReport.value,
new_instance['id'],
new_instance,
''
)
return Response(status=status.HTTP_204_NO_CONTENT)
from app.entities import models
from rest_framework import serializers
from app.applicationlayer.utils import model_to_dict
class AMSReportTypeSerializer(serializers.ModelSerializer):
def to_representation(self, instance):
ret = super().to_representation(instance)
ret['created_by'] = instance.created_by.name
return ret
class Meta:
model = models.AMSReportType
fields = '__all__'
\ No newline at end of file
from django_filters import rest_framework as filters
from app.entities.models import AMSReportType
class AMSReportTypeFilter(filters.FilterSet):
class Meta:
model = AMSReportType
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.report_type.table_filters import AMSReportTypeFilter
from app.applicationlayer.ams.report_type import serializers
from app.applicationlayer.utils import (
CustomPagination, status_message_response
)
from app.helper import decorators
from django.db import transaction
from app.applicationlayer.utils import model_to_dict
from app.applicationlayer.utils import log_save, enums
from django.db import IntegrityError
from rest_framework.decorators import action
class AMSReportTypeViewset(viewsets.ModelViewSet):
queryset = models.AMSReportType.objects.all()
serializer_class = serializers.AMSReportTypeSerializer
pagination_class = CustomPagination
lookup_field = "code"
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
ordering_fields = '__all__'
search_fields = (
'code', 'name'
)
@transaction.atomic
def create(self, request, *args, **kwargs):
form = request.data
form['created_by'] = request.user.code
serializer = self.get_serializer(data=form)
# serializer.is_valid(raise_exception=True)
if serializer.is_valid(raise_exception=True):
serializer.save(created_by=self.request.user)
self.perform_create(serializer)
message = status_message_response(
201, 'success',
'New Report Type created', serializer.data
)
return Response(
message
)
def update(self, request, *args, **kwargs):
try:
partial = kwargs.pop('partial', False)
instance = self.get_object()
form = request.data
form['created_by'] = request.user.code
serializer = self.get_serializer(instance, data=form, partial=partial)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(instance)
self.perform_update(serializer)
new_instance = serializer.data
log_save(
enums.LogEnum.UPDATE.value,
enums.LogEntitiesEnum.AMSReportType.value,
old_instance['id'],
old_instance,
new_instance
)
return Response(serializer.data)
except IntegrityError as e:
print(e)
return Response(
{"message": "Cannot delete or update this reocrd it has foreign key constraint to other tables"},
status=status.HTTP_400_BAD_REQUEST
)
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.queryset).filter(is_active=True)
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 Report Types 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()
instance.is_active = False
instance.save()
new_instance = model_to_dict(instance)
log_save(
enums.LogEnum.UPDATE.value,
enums.LogEntitiesEnum.AMSReportType.value,
new_instance['id'],
new_instance,
''
)
return Response(status=status.HTTP_204_NO_CONTENT)
@action(
methods=['GET'], detail=False,
url_path='archived', url_name='archived'
)
def archived(self, request, *args, **kwargs):
self.serializer_class = serializers.AMSReportTypeSerializer
queryset = self.filter_queryset(self.queryset).filter(is_active=False)
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 Archived Report type 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
)
@action(
methods=['PATCH'], detail=True,
url_path='restore', url_name='restore'
)
def restore(self, request, code=None):
instance = self.get_object()
instance.is_active = True
instance.save()
new_instance = model_to_dict(instance)
log_save(
enums.LogEnum.UPDATE.value,
enums.LogEntitiesEnum.AMSReportType.value,
new_instance['id'],
new_instance,
''
)
return Response(status=status.HTTP_204_NO_CONTENT)
......@@ -6,11 +6,21 @@ from rest_framework.urlpatterns import format_suffix_patterns
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_user_type.views import AMSUserTypeViewSet
from app.applicationlayer.ams.asset_type import views as assettype
from app.applicationlayer.ams.asset.views import AMSAssetViewSet
from app.applicationlayer.ams.asset_stock.views import AMSAssetStockViewSet
from app.applicationlayer.ams.report_type.views import AMSReportTypeViewset
from app.applicationlayer.ams.report.views import AMSReportViewset
router = routers.DefaultRouter()
router.register(r'asset-group', assetgroup.AssetGroupViewset)
router.register(r'asset-type', assettype.AssetTypeViewset)
router.register(r'ams-privilege', amsprivilege.AMSPrivilegeViewSet)
router.register(r'assets', AMSAssetViewSet)
router.register(r'assets-stock-list', AMSAssetStockViewSet)
router.register(r'report-type', AMSReportTypeViewset)
router.register(r'report', AMSReportViewset)
urlpatterns = [
path('', include(router.urls)),
......
......@@ -17,7 +17,8 @@ from app.applicationlayer.utils import model_to_dict
from app.entities.models import (
User, EntityLog, PasswordReset, Application, UserImage,
ChangeRequestFormHeader, ChangeRequestTemplateHeader,
AllowedCompany, Company, Department, UserHistory
AllowedCompany, Company, Department, UserHistory,
AMSPrivilege
)
from django.contrib.auth.hashers import make_password
......@@ -32,6 +33,12 @@ from app.applicationlayer.utils import (
CustomPagination, status_message_response, log_save,
main_threading
)
import os
import configparser
config = configparser.ConfigParser()
config_file = os.path.join('./', 'env.ini')
config.read(config_file)
class UserViewSet(viewsets.ModelViewSet):
......@@ -181,7 +188,6 @@ class UserViewSet(viewsets.ModelViewSet):
partial = kwargs.pop('partial', False)
instance = self.get_object()
cms_form = ChangeRequestFormHeader.objects.filter(
Q(frm_approvers__user__code=instance.code) |
Q(frm_stakes__user__code=instance.code) |
......@@ -220,16 +226,25 @@ class UserViewSet(viewsets.ModelViewSet):
rms = Application.objects.filter(id=1).values('code').first()
app.append(rms['code'])
app = Application.objects.filter(
app_data = Application.objects.filter(
code__in=app
)
if not config['APPLICATION_CODE']['AMS'] in app:
ams_priv = AMSPrivilege.objects.filter(
id_number=instance.code
).delete()
if not config['APPLICATION_CODE']['CMS'] in app:
cms_priv = AllowedCompany.objects.filter(
id_number=instance.code
).delete()
instance = User.objects.get(
id=serializer.data['id']
)
instance.application.set(app)
instance.application.set(app_data)
new_instance = serializer.data
log_save(
......
......@@ -18,8 +18,8 @@ from app.applicationlayer.management.batchupload.serializer import (
BatchUploadSerializer
)
from app.entities.models import (
User, Application, ExtractTransformLoad,
AllowedCompany, Company, Department, UserHistory, MasterAttachment
User, Application, ExtractTransformLoad, AllowedCompany,
Company, Department, UserHistory, MasterAttachment, AMSPrivilege
)
from app.applicationlayer.utils import (
status_message_response,
......@@ -40,6 +40,7 @@ from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.pagesizes import A4
from reportlab.lib.enums import TA_JUSTIFY, TA_RIGHT, TA_LEFT, TA_CENTER
from reportlab.lib.colors import red
from django.db import transaction
config = configparser.ConfigParser()
......@@ -207,48 +208,73 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
attach_user.first().delete()
departments = Department.objects.exclude(id=1).annotate(
Privilege_Company=F('company__name'),
Privilege_Department=F('name'),
Privilege_Department_Code=F('code')
Change_Request_Privilege_Company=F('company__name'),
Change_Request_Privilege_Department=F('name'),
Change_Request_Privilege_Department_Code=F('code')
).values(
'Privilege_Company',
'Privilege_Department',
'Privilege_Department_Code'
'Change_Request_Privilege_Company',
'Change_Request_Privilege_Department',
'Change_Request_Privilege_Department_Code'
)
ams_user_groups = []
for a in enums.AMSUserTypeEnum:
ams_user_groups.append(
{
"Asset_Management_Privilege_Department": '',
"Asset_Management_Privilege_Department_Code": '',
"Asset_Management_User_Group": a.name
}
)
data = {
'Username': ["ob-john"],
'Name': ["John Doe"],
'Company': [departments[0]['Privilege_Company']],
'Department': [departments[0]['Privilege_Department']],
'Department_Code': [departments[0]['Privilege_Department_Code']],
'Company': [departments[0]['Change_Request_Privilege_Company']],
'Department': [departments[0]['Change_Request_Privilege_Department']],
'Department_Code': [departments[0]['Change_Request_Privilege_Department_Code']],
'Email': ["johndoe@gmail.com"],
'Contact_No': ["123456"],
'Application': ["cms,ams"],
'Default_app': ["cms"],
'Privilege_Company': [departments[0]['Privilege_Company']],
'Privilege_Department': [departments[0]['Privilege_Department']],
'Privilege_Department_Code': [departments[0]['Privilege_Department_Code']],
'Change_Request_Privilege_Company': [departments[0]['Change_Request_Privilege_Company']],
'Change_Request_Privilege_Department': [departments[0]['Change_Request_Privilege_Department']],
'Change_Request_Privilege_Department_Code': [departments[0]['Change_Request_Privilege_Department_Code']],
'Create_CR': ["Yes"],
'Create_Template': ["No"],
'View_All_CR': ["Yes"],
'Approve_CR': ["Yes"]
'View_All_CR_Template': ["Yes"],
'Approve_CR': ["Yes"],
'Asset_Management_Privilege_Company': [departments[0]['Change_Request_Privilege_Company']],
'Asset_Management_Privilege_Department': [departments[0]['Change_Request_Privilege_Department']],
'Asset_Management_Privilege_Department_Code': [departments[0]['Change_Request_Privilege_Department_Code']],
'Asset_Management_User_Group': "MANAGER"
}
cols = ['Username', 'Name', 'Company', 'Department', 'Department_Code']
cols += ['Email', 'Contact_No', 'Application', 'Default_app']
cols += ['Privilege_Company', 'Privilege_Department', 'Privilege_Department_Code']
cols += ['Create_CR', 'Create_Template', 'View_All_CR', 'Approve_CR']
cols += ['Change_Request_Privilege_Company', 'Change_Request_Privilege_Department', 'Change_Request_Privilege_Department_Code']
cols += ['Create_CR', 'Create_Template', 'View_All_CR','View_All_CR_Template', 'Approve_CR']
cols += ['Asset_Management_Privilege_Company', 'Asset_Management_Privilege_Department', 'Asset_Management_Privilege_Department_Code', 'Asset_Management_User_Group']
df = pd.DataFrame(data)
header = {"Privilege_Company": ['Please use this department code as reference']}
header = {"Change_Request_Privilege_Company": ['Please use this department code as reference'],
"Asset_Management_User_Group": ['Please use this user group as reference']}
df3 = pd.DataFrame(
header
)
df2 = pd.DataFrame(
df_dept = pd.DataFrame(
departments
)
df_ams = pd.DataFrame(
ams_user_groups
)
df2 = df_dept.join(df_ams, how='right')
df_row_reindex = pd.concat([df, df3, df2])
df_row_reindex = df_row_reindex.reindex(columns=cols)
df_row_reindex = df_row_reindex.to_csv(index=False, line_terminator='\n')
......@@ -273,9 +299,11 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
return self.get_paginated_response(message)
@transaction.atomic
def create(self, request, **kwargs):
csv_file = request.FILES['file']
extension_file = str(csv_file).split('.')[1]
sp1 = transaction.savepoint()
if extension_file.lower() != 'csv':
return Response(
......@@ -293,6 +321,8 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
department_error = 'Department should be same with the logged user'
company_error = 'Company should be same with the logged user'
application_cms_error = 'Please indicate cms in the Application column'
application_ams_error = 'Please indicate ams in the Application column'
etl = ExtractTransformLoad.objects.create(
file_name=str(csv_file),
......@@ -321,7 +351,7 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
Q(company=user_company)
)
if not request_department:
etl2.delete()
# etl2.delete()
return Response(
{"message": company_error},
status=status.HTTP_400_BAD_REQUEST
......@@ -329,7 +359,7 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
elif request.user.user_type == enums_department:
if keys['Department_Code'] != request.user.department.code:
etl2.delete()
# etl2.delete()
return Response(
{"message": department_error},
# {"message": str(e)},
......@@ -341,13 +371,27 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
name__icontains=keys['Department_Code']
)
try:
default_app = Application.objects.filter(
excel_code=keys['Default_app']
).first()
except Exception as e:
transaction.savepoint_rollback(sp1)
return Response(
{"message": f"Invalid Default Application at row {data + 2}"},
status=status.HTTP_400_BAD_REQUEST
)
try:
dept_code = Department.objects.get(
code=keys['Department_Code']
)
except Exception as e:
transaction.savepoint_rollback(sp1)
return Response(
{"message": f"Invalid Department Code at row {data + 2}"},
status=status.HTTP_400_BAD_REQUEST
)
users = {
"username": keys['Username'],
......@@ -376,6 +420,11 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
excel_code__in=keys['Application'].split(',')
)
app_excel_code = []
for i in app:
app_excel_code.append(i.excel_code)
current_user.application.set(app)
current_user = User.objects.get(id=current_user.id)
......@@ -398,15 +447,19 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
else:
current_user = check_user[0]
# cms privilege
try:
privilege_department_code = keys['Privilege_Department_Code']
privilege_department_code = keys['Change_Request_Privilege_Department_Code']
privilege_department_code = Department.objects.get(
code=privilege_department_code
)
# if privilege_department_code:
# if 'cms' in app_excel_code:
ccr = True if str(keys['Create_CR']).lower() == 'yes' else False
crt = True if str(keys['Create_Template']).lower() == 'yes' else False
view_all = True if str(keys['View_All_CR']).lower() == 'yes' else False
view_all_template = True if str(keys['View_All_CR_Template']).lower() == 'yes' else False
approve_cr = True if str(keys['Approve_CR']).lower() == 'yes' else False
privilege_object = {
......@@ -416,41 +469,103 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
"create_change_request": ccr,
"create_change_request_template": crt,
"view_all_change_request": view_all,
"view_all_change_request_template": view_all_template,
"approve_cr": approve_cr
}
AllowedCompany.objects.create(**privilege_object)
# else:
# return Response(
# {"message": f"Please indicate cms application at row {data + 2}"},
# status=status.HTTP_400_BAD_REQUEST
# )
except IntegrityError as e:
etl2.delete()
# etl2.delete()
# transaction.savepoint_rollback(sp1)
return Response(
{"message": f"Duplicate user privilege at row {data + 2}"},
status=status.HTTP_400_BAD_REQUEST
)
except ObjectDoesNotExist as e:
etl2.delete()
# etl2.delete()
transaction.savepoint_rollback(sp1)
return Response(
{"message": f"Department Does not Exist at Privilege row {data + 2}"},
status=status.HTTP_400_BAD_REQUEST
)
# ams privilege
try:
# ams_privilege_department_code = keys['Asset_Management_Privilege_Department_Code']
# if('ams' in app_excel_code and
# ams_privilege_department_code is None):
# print("none")
# elif:
# return Response(
# {"message": f"Please indicate ams application at row {data + 2}"},
# status=status.HTTP_400_BAD_REQUEST
# )
ams_privilege_department_code = keys['Asset_Management_Privilege_Department_Code']
ams_privilege_department_code = Department.objects.get(
code=ams_privilege_department_code
)
# if ams_privilege_department_code:
ams_privilege_department_code = keys[
'Asset_Management_Privilege_Department_Code']
ams_privilege_department_code = Department.objects.get(
code=ams_privilege_department_code
)
asset_user_code = keys['Asset_Management_User_Group']
privilege_object_ams = {
"id_number": current_user,
"department": ams_privilege_department_code,
"ams_user_type": asset_user_code
}
AMSPrivilege.objects.create(**privilege_object_ams)
except IntegrityError as e:
# etl2.delete()
# transaction.savepoint_rollback(sp1)
return Response(
{"message": f"Duplicate ams privilege at row {data + 2}"},
status=status.HTTP_400_BAD_REQUEST
)
except ObjectDoesNotExist as e:
# etl2.delete()
transaction.savepoint_rollback(sp1)
return Response(
{"message": f"Department Does not Exist at AMS Privilege row {data + 2}"},
status=status.HTTP_400_BAD_REQUEST
)
# end of ams privilege
except IntegrityError as e:
etl2.delete()
# etl2.delete()
# transaction.savepoint_rollback(sp1)
return Response(
{"message": f"Record already exist at row {data + 2}"},
status=status.HTTP_400_BAD_REQUEST
)
except KeyError as e:
etl2.delete()
# etl2.delete()
transaction.savepoint_rollback(sp1)
return Response(
{"message": f"Missing column {e.args[0]}"},
status=status.HTTP_400_BAD_REQUEST
)
except ObjectDoesNotExist as e:
etl2.delete()
# etl2.delete()
transaction.savepoint_rollback(sp1)
return Response(
{"message": f"Department Does not Exist at row {data + 2}"},
status=status.HTTP_400_BAD_REQUEST
......
......@@ -31,13 +31,17 @@ class GenerateCode(Enum):
FORM_DETAIL = 'FRMDETAIL'
ETL = 'ETL'
# ASSET_GROUP = 'AMSGRP'
CMS_SETTINGS = "CMSSET"
ASSET_TYPE = 'ASSTTYPE'
ASSET = 'ASST'
ASSET_STOCK = 'ASSTSTOCK'
ASSET_GROUP = 'ASSTGRP'
ASSET_STOCK_SUPPORT = 'ASSTSTOCKSUP'
REPORT_TYPE = 'RPTTYPE'
REPORT = 'RPT'
FORM_ASSET = 'FRMASSET'
'''
*********
......@@ -72,6 +76,15 @@ class LogEntitiesEnum(Enum):
ChangeRequestFormDetails = "ChangeRequestFormDetails"
ChangeRequestSettings = 'ChangeRequestSettings'
AMSReportType = 'AMSReportType'
AMSReport = 'AMSReport'
AMSAsset = 'AMSAsset'
AMSAssetStock = 'AMSAssetStock'
AMSAssetStockSupport = 'AMSAssetStockSupport'
AMSAssetType = 'AMSAssetType'
AMSAssetGroup = 'AMSAssetGroup'
'''
*********
CR HISTORY ENUMS
......
# Generated by Django 2.2 on 2020-03-18 13:14
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('entities', '0005_amsprivilege'),
]
operations = [
migrations.CreateModel(
name='AMSAsset',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(default='', max_length=255, unique=True)),
('name', models.CharField(max_length=255, unique=True)),
('description', models.CharField(blank=True, max_length=255, null=True)),
('created', models.DateTimeField(auto_now_add=True)),
('is_active', models.BooleanField(default=True)),
],
options={
'db_table': 'ams_assets',
'ordering': ['-created'],
},
),
migrations.CreateModel(
name='AMSAssetGroup',
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)),
('created', models.DateTimeField(auto_now_add=True)),
('is_active', models.BooleanField(default=True)),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ams_asset_group_created_by', to=settings.AUTH_USER_MODEL, to_field='code')),
],
options={
'db_table': 'ams_asset_groups',
'ordering': ['-created'],
},
),
migrations.CreateModel(
name='AMSAssetStock',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(default='', max_length=255, unique=True)),
('unique_identifier', models.CharField(max_length=255, unique=True)),
('status', models.CharField(choices=[('In-Store', 'In-Store'), ('Deployed', 'Deployed'), ('Returned', 'Returned'), ('Written Off', 'Written Off'), ('Faulty', 'Faulty')], default='In-Store', max_length=100)),
('acquisition_type', models.CharField(choices=[('Owned', 'Owned'), ('Loan', 'Loan')], default='Owned', max_length=100)),
('location', models.CharField(max_length=255)),
('dynamic_field', models.TextField(blank=True, null=True)),
('created', models.DateTimeField(auto_now_add=True)),
('is_active', models.BooleanField(default=True)),
('asset', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ams_asset_to_assetdetail', to='entities.AMSAsset', to_field='code')),
('asset_group', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ams_asset_to_assetgroup', to='entities.AMSAssetGroup', to_field='code')),
('manager', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ams_asset_manager', to=settings.AUTH_USER_MODEL, to_field='code')),
('user_client', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ams_asset_user_client', to=settings.AUTH_USER_MODEL, to_field='code')),
],
options={
'db_table': 'ams_asset_stocks',
'ordering': ['-created'],
},
),
migrations.CreateModel(
name='AMSAssetStockSupport',
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)),
('start_date', models.DateTimeField(blank=True, null=True)),
('end_date', models.DateTimeField(blank=True, null=True)),
('created', models.DateTimeField(auto_now_add=True)),
('is_active', models.BooleanField(default=True)),
('asset_stock', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='entities.AMSAssetStock', to_field='code')),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ams_asset_stock_created_by', to=settings.AUTH_USER_MODEL, to_field='code')),
],
options={
'db_table': 'ams_asset_stock_supports',
'ordering': ['-created'],
},
),
migrations.CreateModel(
name='AMSAssetType',
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)),
('dynamic_field', models.TextField(blank=True, null=True)),
('created', models.DateTimeField(auto_now_add=True)),
('is_active', models.BooleanField(default=True)),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ams_asset_type_created_by', to=settings.AUTH_USER_MODEL, to_field='code')),
],
options={
'db_table': 'ams_asset_types',
'ordering': ['-created'],
},
),
migrations.CreateModel(
name='AMSAuditTrail',
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)),
('description', models.CharField(blank=True, max_length=255, null=True)),
('created', models.DateTimeField(auto_now_add=True)),
('deleted_at', models.DateTimeField(blank=True, null=True)),
('asset_stock', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='entities.AMSAssetStock', to_field='code')),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ams_audit_trail_created_by', to=settings.AUTH_USER_MODEL, to_field='code')),
],
options={
'db_table': 'ams_audit_trail',
'ordering': ['-created'],
},
),
migrations.CreateModel(
name='AMSReport',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(default='', max_length=255, unique=True)),
('name', models.CharField(max_length=255, unique=True)),
('dynamic_field', models.TextField(blank=True, null=True)),
('created', models.DateTimeField(auto_now_add=True)),
('is_active', models.BooleanField(default=True)),
('asset_stock', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report_to_asset_stock', to='entities.AMSAssetStock', to_field='code')),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ams_report_created_by', to=settings.AUTH_USER_MODEL, to_field='code')),
],
options={
'db_table': 'ams_reports',
'ordering': ['-created'],
},
),
migrations.CreateModel(
name='AMSReportType',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(default='', max_length=255, unique=True)),
('name', models.CharField(max_length=255, unique=True)),
('description', models.CharField(blank=True, max_length=255, null=True)),
('dynamic_field', models.TextField(blank=True, null=True)),
('created', models.DateTimeField(auto_now_add=True)),
('is_active', models.BooleanField(default=True)),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ams_report_type_created_by', to=settings.AUTH_USER_MODEL, to_field='code')),
],
options={
'db_table': 'ams_report_types',
'ordering': ['-created'],
},
),
migrations.CreateModel(
name='ChangeRequestFormAssets',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(max_length=255, unique=True)),
('created', models.DateTimeField(auto_now_add=True)),
('deleted_at', models.DateTimeField(blank=True, null=True)),
('asset_stock', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='entities.AMSAssetStock', to_field='code')),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cms_form_assets_created_by', to=settings.AUTH_USER_MODEL, to_field='code')),
('form_code', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='change_request_form_assets', to='entities.ChangeRequestFormHeader', to_field='form_code')),
],
options={
'db_table': 'change_request_form_assets',
'ordering': ['-created'],
},
),
migrations.DeleteModel(
name='AssetGroup',
),
migrations.AlterField(
model_name='amsprivilege',
name='ams_user_type',
field=models.CharField(choices=[('MANAGER', 'MANAGER'), ('USER_CLIENT', 'USER_CLIENT'), ('SUPPORT', 'SUPPORT'), ('VIEWER', 'VIEWER')], default='MANAGER', max_length=100),
),
migrations.AlterField(
model_name='amsprivilege',
name='department',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ams_privilege_departments', to='entities.Department', to_field='code'),
),
migrations.AlterField(
model_name='amsprivilege',
name='id_number',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ams_privilege_id_number', to=settings.AUTH_USER_MODEL, to_field='code'),
),
migrations.AlterField(
model_name='entitylog',
name='entity',
field=models.CharField(choices=[('USER', 'USER'), ('APPLICATION', 'APPLICATION'), ('COMPANY', 'COMPANY'), ('DEPARTMENT', 'DEPARTMENT'), ('MODULE', 'MODULE'), ('DELEGATION', 'DELEGATION'), ('ChangeRequestTemplateHeader', 'ChangeRequestTemplateHeader'), ('ChangeRequestTemplateApprovers', 'ChangeRequestTemplateApprovers'), ('ChangeRequestTemplateStakeHolders', 'ChangeRequestTemplateStakeHolders'), ('ChangeRequestTemplateAttachments', 'ChangeRequestTemplateAttachments'), ('ChangeRequestTemplateDetails', 'ChangeRequestTemplateDetails'), ('ChangeRequestFormHeader', 'ChangeRequestFormHeader'), ('ChangeRequestFormApprovers', 'ChangeRequestFormApprovers'), ('ChangeRequestFormStakeHolders', 'ChangeRequestFormStakeHolders'), ('ChangeRequestFormAttachments', 'ChangeRequestFormAttachments'), ('ChangeRequestFormDetails', 'ChangeRequestFormDetails'), ('ChangeRequestSettings', 'ChangeRequestSettings'), ('AMSReportType', 'AMSReportType'), ('AMSReport', 'AMSReport')], default='Add', max_length=50),
),
migrations.AlterField(
model_name='extracttransformload',
name='model_type',
field=models.CharField(choices=[('APP', 'APP'), ('MODULE', 'MODULE'), ('COMPANY', 'COMPANY'), ('DEPARTMENT', 'DEPARTMENT'), ('USER', 'USER'), ('DELEGATION', 'DELEGATION'), ('NOTIF', 'NOTIF'), ('TMP', 'TMP'), ('TMPAPR', 'TMPAPR'), ('TMPSTK', 'TMPSTK'), ('TMPATCH', 'TMPATCH'), ('TMPDETAIL', 'TMPDETAIL'), ('FRM', 'FRM'), ('FRMAPR', 'FRMAPR'), ('FRMSTK', 'FRMSTK'), ('FRMATCH', 'FRMATCH'), ('FRMDETAIL', 'FRMDETAIL'), ('ETL', 'ETL'), ('CMSSET', 'CMSSET'), ('ASSTTYPE', 'ASSTTYPE'), ('ASST', 'ASST'), ('ASSTSTOCK', 'ASSTSTOCK'), ('ASSTGRP', 'ASSTGRP'), ('ASSTSTOCKSUP', 'ASSTSTOCKSUP'), ('RPTTYPE', 'RPTTYPE'), ('RPT', 'RPT'), ('FRMASSET', 'FRMASSET')], default='USER', max_length=100),
),
migrations.AddField(
model_name='amsreport',
name='report_type',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report_to_report_type', to='entities.AMSReportType', to_field='code'),
),
migrations.AddField(
model_name='amsasset',
name='asset_type',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ams_asset_type', to='entities.AMSAssetType', to_field='code'),
),
migrations.AddField(
model_name='amsasset',
name='created_by',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='ams_asset_created_by', to=settings.AUTH_USER_MODEL, to_field='code'),
),
]
# Generated by Django 2.2 on 2020-03-18 15:35
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0006_auto_20200318_1314'),
]
operations = [
migrations.AlterField(
model_name='entitylog',
name='entity',
field=models.CharField(choices=[('USER', 'USER'), ('APPLICATION', 'APPLICATION'), ('COMPANY', 'COMPANY'), ('DEPARTMENT', 'DEPARTMENT'), ('MODULE', 'MODULE'), ('DELEGATION', 'DELEGATION'), ('ChangeRequestTemplateHeader', 'ChangeRequestTemplateHeader'), ('ChangeRequestTemplateApprovers', 'ChangeRequestTemplateApprovers'), ('ChangeRequestTemplateStakeHolders', 'ChangeRequestTemplateStakeHolders'), ('ChangeRequestTemplateAttachments', 'ChangeRequestTemplateAttachments'), ('ChangeRequestTemplateDetails', 'ChangeRequestTemplateDetails'), ('ChangeRequestFormHeader', 'ChangeRequestFormHeader'), ('ChangeRequestFormApprovers', 'ChangeRequestFormApprovers'), ('ChangeRequestFormStakeHolders', 'ChangeRequestFormStakeHolders'), ('ChangeRequestFormAttachments', 'ChangeRequestFormAttachments'), ('ChangeRequestFormDetails', 'ChangeRequestFormDetails'), ('ChangeRequestSettings', 'ChangeRequestSettings'), ('AMSReportType', 'AMSReportType'), ('AMSReport', 'AMSReport'), ('AMSASSET', 'AMSASSET')], default='Add', max_length=50),
),
]
# Generated by Django 2.2 on 2020-03-18 15:45
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0007_auto_20200318_1535'),
]
operations = [
migrations.AlterField(
model_name='entitylog',
name='entity',
field=models.CharField(choices=[('USER', 'USER'), ('APPLICATION', 'APPLICATION'), ('COMPANY', 'COMPANY'), ('DEPARTMENT', 'DEPARTMENT'), ('MODULE', 'MODULE'), ('DELEGATION', 'DELEGATION'), ('ChangeRequestTemplateHeader', 'ChangeRequestTemplateHeader'), ('ChangeRequestTemplateApprovers', 'ChangeRequestTemplateApprovers'), ('ChangeRequestTemplateStakeHolders', 'ChangeRequestTemplateStakeHolders'), ('ChangeRequestTemplateAttachments', 'ChangeRequestTemplateAttachments'), ('ChangeRequestTemplateDetails', 'ChangeRequestTemplateDetails'), ('ChangeRequestFormHeader', 'ChangeRequestFormHeader'), ('ChangeRequestFormApprovers', 'ChangeRequestFormApprovers'), ('ChangeRequestFormStakeHolders', 'ChangeRequestFormStakeHolders'), ('ChangeRequestFormAttachments', 'ChangeRequestFormAttachments'), ('ChangeRequestFormDetails', 'ChangeRequestFormDetails'), ('ChangeRequestSettings', 'ChangeRequestSettings'), ('AMSReportType', 'AMSReportType'), ('AMSReport', 'AMSReport'), ('AMSAsset', 'AMSAsset'), ('AMSAssetStock', 'AMSAssetStock'), ('AMSAssetStockSupport', 'AMSAssetStockSupport')], default='Add', max_length=50),
),
]
# Generated by Django 2.2 on 2020-03-18 17:24
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0008_auto_20200318_1545'),
]
operations = [
migrations.AlterField(
model_name='entitylog',
name='entity',
field=models.CharField(choices=[('USER', 'USER'), ('APPLICATION', 'APPLICATION'), ('COMPANY', 'COMPANY'), ('DEPARTMENT', 'DEPARTMENT'), ('MODULE', 'MODULE'), ('DELEGATION', 'DELEGATION'), ('ChangeRequestTemplateHeader', 'ChangeRequestTemplateHeader'), ('ChangeRequestTemplateApprovers', 'ChangeRequestTemplateApprovers'), ('ChangeRequestTemplateStakeHolders', 'ChangeRequestTemplateStakeHolders'), ('ChangeRequestTemplateAttachments', 'ChangeRequestTemplateAttachments'), ('ChangeRequestTemplateDetails', 'ChangeRequestTemplateDetails'), ('ChangeRequestFormHeader', 'ChangeRequestFormHeader'), ('ChangeRequestFormApprovers', 'ChangeRequestFormApprovers'), ('ChangeRequestFormStakeHolders', 'ChangeRequestFormStakeHolders'), ('ChangeRequestFormAttachments', 'ChangeRequestFormAttachments'), ('ChangeRequestFormDetails', 'ChangeRequestFormDetails'), ('ChangeRequestSettings', 'ChangeRequestSettings'), ('AMSReportType', 'AMSReportType'), ('AMSReport', 'AMSReport'), ('AMSAsset', 'AMSAsset'), ('AMSAssetStock', 'AMSAssetStock'), ('AMSAssetStockSupport', 'AMSAssetStockSupport'), ('AMSAssetType', 'AMSAssetType'), ('AMSAssetGroup', 'AMSAssetGroup')], default='Add', max_length=50),
),
]
......@@ -1246,30 +1246,98 @@ class ChangeRequestSettings(models.Model):
**********************
"""
class AssetGroup(models.Model):
class AMSPrivilege(models.Model):
id_number = models.ForeignKey(
User,
on_delete=models.PROTECT,
to_field='code',
related_name='ams_privilege_id_number'
)
department = models.ForeignKey(
Department,
on_delete=models.PROTECT,
related_name='ams_privilege_departments',
to_field='code'
)
ams_user_type = models.CharField(
choices=[(tag.value, tag.value) for tag in enums.AMSUserTypeEnum],
default=enums.AMSUserTypeEnum.MANAGER.value,
max_length=100
)
created_at = models.DateTimeField(auto_now_add=True)
deleted_at = models.DateTimeField(null=True, blank=True)
class Meta:
db_table = 'ams_privileges'
unique_together = ['department', 'id_number']
class AMSAssetGroup(models.Model):
code = models.CharField(
unique=True,
max_length=255)
name = models.CharField(
unique=True,
max_length=255)
asset_group = models.CharField(
created_by = models.ForeignKey(
User,
on_delete=models.PROTECT,
to_field='code',
related_name='ams_asset_group_created_by'
)
created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
is_active = models.BooleanField(default=True)
class Meta:
db_table = 'ams_asset_groups'
ordering = ['-created']
def __str__(self):
return f'{self.code}'
def save(self, *args, **kwargs):
super(AMSAssetGroup, 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()
class AMSAssetType(models.Model):
code = models.CharField(
unique=True,
max_length=255)
created = models.DateTimeField(
name = models.CharField(
unique=True,
max_length=255)
dynamic_field = models.TextField(
blank=True,
null=True)
null=True
)
created_by = models.ForeignKey(
User,
on_delete=models.PROTECT,
to_field='code',
related_name='ams_asset_type_created_by'
)
created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
is_active = models.BooleanField(default=True)
class Meta:
db_table = 'asset_groups'
db_table = 'ams_asset_types'
ordering = ['-created']
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)
super(AMSAssetType, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.ASSET_TYPE.value, self.id)
if self.code == '':
self.code = code
......@@ -1277,211 +1345,343 @@ class AssetGroup(models.Model):
self.save()
class AMSPrivilege(models.Model):
id_number = models.ForeignKey(
class AMSAsset(models.Model):
code = models.CharField(
unique=True,
max_length=255,
default='')
name = models.CharField(
unique=True,
max_length=255)
asset_type = models.ForeignKey(
AMSAssetType,
on_delete=models.PROTECT,
to_field='code',
related_name='ams_asset_type'
)
# asset_type = models.ManyToManyField(AMSAssetType)
description = models.CharField(
blank=True,
null=True,
max_length=255)
created_by = models.ForeignKey(
User,
on_delete=models.PROTECT,
to_field='code',
related_name='ams_asset_created_by'
)
created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
is_active = models.BooleanField(default=True)
class Meta:
db_table = 'ams_assets'
ordering = ['-created']
def __str__(self):
return f'{self.code}'
def save(self, *args, **kwargs):
super(AMSAsset, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.ASSET.value, self.id)
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
class AMSAssetStock(models.Model):
code = models.CharField(
unique=True,
max_length=255,
default='')
unique_identifier = models.CharField(
unique=True,
max_length=255)
status = models.CharField(
choices=[(tag.value, tag.value) for tag in enums.AMSAssetStatus],
default=enums.AMSAssetStatus.INSTORE.value,
max_length=100
)
acquisition_type = models.CharField(
choices=[(tag.value, tag.value) for tag in enums.AMSAssetAquisitionType],
default=enums.AMSAssetAquisitionType.OWN.value,
max_length=100
)
location = models.CharField(
max_length=255
)
user_client = models.ForeignKey(
User,
on_delete=models.PROTECT,
to_field='code',
related_name='ams_asset_user_client'
)
manager = models.ForeignKey(
User,
on_delete=models.PROTECT,
to_field='code',
related_name='ams_asset_manager'
)
dynamic_field = models.TextField(
blank=True,
null=True
)
asset = models.ForeignKey(
AMSAsset,
on_delete=models.PROTECT,
to_field='code',
related_name='ams_asset_to_assetdetail'
)
asset_group = models.ForeignKey(
AMSAssetGroup,
on_delete=models.PROTECT,
to_field='code',
related_name='ams_asset_to_assetgroup'
)
created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
is_active = models.BooleanField(default=True)
class Meta:
db_table = 'ams_asset_stocks'
ordering = ['-created']
def __str__(self):
return f'{self.code}'
def save(self, *args, **kwargs):
super(AMSAssetStock, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.ASSET_STOCK.value, self.id)
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
class AMSAssetStockSupport(models.Model):
code = models.CharField(
unique=True,
max_length=255)
name = models.CharField(
unique=True,
max_length=255)
start_date = models.DateTimeField(
null=True,
blank=True)
end_date = models.DateTimeField(
null=True,
blank=True)
created_by = models.ForeignKey(
User,
on_delete=models.CASCADE,
to_field='code',
related_name='ams_privilege_id_number'
related_name='ams_asset_stock_created_by'
)
department = models.ForeignKey(
Department,
asset_stock = models.ForeignKey(
AMSAssetStock,
on_delete=models.CASCADE,
related_name='ams_privilege_departments',
to_field='code'
)
ams_user_type = models.CharField(
choices=[(tag.value, tag.value) for tag in enums.AMSUserTypeEnum],
default=enums.AMSUserTypeEnum.MANAGER.value,
max_length=100
created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
is_active = models.BooleanField(default=True)
class Meta:
db_table = 'ams_asset_stock_supports'
ordering = ['-created']
def __str__(self):
return f'{self.code}'
def save(self, *args, **kwargs):
super(AMSAssetStockSupport, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.ASSET_STOCK_SUPPORT.value, self.id)
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
class AMSReportType(models.Model):
code = models.CharField(
unique=True,
max_length=255,
default='')
name = models.CharField(
unique=True,
max_length=255)
description = models.CharField(
blank=True,
null=True,
max_length=255)
dynamic_field = models.TextField(
blank=True,
null=True
)
created_at = models.DateTimeField(auto_now_add=True)
deleted_at = models.DateTimeField(null=True, blank=True)
created_by = models.ForeignKey(
User,
on_delete=models.CASCADE,
to_field='code',
related_name='ams_report_type_created_by'
)
created = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=True)
class Meta:
db_table = 'ams_privileges'
unique_together = ['department', 'id_number']
db_table = 'ams_report_types'
ordering = ['-created']
def __str__(self):
return f'{self.code}'
# class AMSAssetGroup(models.Model):
# code = models.CharField(
# unique=True,
# max_length=255)
# name = models.CharField(
# unique=True,
# max_length=255)
# created_by = models.ForeignKey(
# User,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='ams_asset_group_created_by'
# )
# created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
def save(self, *args, **kwargs):
super(AMSReportType, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.REPORT_TYPE.value, self.id)
# class Meta:
# db_table = 'ams_asset_groups'
# ordering = ['-created']
# def __str__(self):
# return f'{self.code}'
# def save(self, *args, **kwargs):
# super(AMSAssetGroup, 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()
# class AMSAssetType(models.Model):
# code = models.CharField(
# unique=True,
# max_length=255)
# name = models.CharField(
# unique=True,
# max_length=255)
# dynamic_field = models.TextField(
# blank=True,
# null=True
# )
# created_by = models.ForeignKey(
# User,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='ams_asset_type_created_by'
# )
# created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
# class Meta:
# db_table = 'ams_asset_types'
# ordering = ['-created']
# def __str__(self):
# return f'{self.code}'
# def save(self, *args, **kwargs):
# super(AMSAssetType, self).save(*args, **kwargs)
# code = number_generator(enums.GenerateCode.ASSET_TYPE.value, self.id)
# if self.code == '':
# self.code = code
# self.created = datetime.now()
# self.save()
# class AMSAsset(models.Model):
# code = models.CharField(
# unique=True,
# max_length=255)
# name = models.CharField(
# unique=True,
# max_length=255)
# asset_type = models.ForeignKey(
# AMSAssetType,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='ams_asset_type'
# )
# description = models.CharField(
# blank=True,
# null=True,
# max_length=255)
# created_by = models.ForeignKey(
# User,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='ams_asset_created_by'
# )
# created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
# class Meta:
# db_table = 'ams_assets'
# ordering = ['-created']
# def __str__(self):
# return f'{self.code}'
# def save(self, *args, **kwargs):
# super(AMSAsset, self).save(*args, **kwargs)
# code = number_generator(enums.GenerateCode.ASSET.value, self.id)
# if self.code == '':
# self.code = code
# self.created = datetime.now()
# self.save()
# class AMSAssetStock(models.Model):
# code = models.CharField(
# unique=True,
# max_length=255)
# unique_identifier = models.CharField(
# unique=True,
# max_length=255)
# status = models.CharField(
# choices=[(tag.value, tag.value) for tag in enums.AMSAssetStatus],
# default=enums.AMSAssetStatus.INSTORE.value,
# max_length=100
# )
# acquisition_type = models.CharField(
# choices=[(tag.value, tag.value) for tag in enums.AMSAssetAquisitionType],
# default=enums.AMSAssetAquisitionType.OWN.value,
# max_length=100
# )
# location = models.CharField(
# max_length=255
# )
# user_client = models.ForeignKey(
# User,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='ams_asset_user_client'
# )
# manager = models.ForeignKey(
# User,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='ams_asset_manager'
# )
# dynamic_field = models.TextField(
# blank=True,
# null=True
# )
# asset = models.ForeignKey(
# AMSAsset,
# on_delete=models.CASCADE,
# to_field='code'
# )
# asset_type = models.ForeignKey(
# AMSAssetType,
# on_delete=models.CASCADE,
# to_field='code'
# )
# created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
class AMSReport(models.Model):
# class Meta:
# db_table = 'ams_asset_stocks'
# ordering = ['-created']
code = models.CharField(
unique=True,
max_length=255,
default='')
name = models.CharField(
unique=True,
max_length=255)
dynamic_field = models.TextField(
blank=True,
null=True
)
report_type = models.ForeignKey(
AMSReportType,
on_delete=models.CASCADE,
to_field='code',
related_name='report_to_report_type'
)
asset_stock = models.ForeignKey(
AMSAssetStock,
on_delete=models.CASCADE,
to_field='code',
related_name='report_to_asset_stock'
)
created_by = models.ForeignKey(
User,
on_delete=models.CASCADE,
to_field='code',
related_name='ams_report_created_by'
)
created = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=True)
class Meta:
db_table = 'ams_reports'
ordering = ['-created']
def __str__(self):
return f'{self.code}'
def save(self, *args, **kwargs):
super(AMSReport, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.REPORT.value, self.id)
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
class AMSAuditTrail(models.Model):
code = models.CharField(
unique=True,
max_length=255)
name = models.CharField(
unique=True,
max_length=255)
description = models.CharField(
blank=True,
null=True,
max_length=255)
asset_stock = models.ForeignKey(
AMSAssetStock,
on_delete=models.CASCADE,
to_field='code'
)
created_by = models.ForeignKey(
User,
on_delete=models.CASCADE,
to_field='code',
related_name='ams_audit_trail_created_by'
)
created = models.DateTimeField(auto_now_add=True)
deleted_at = models.DateTimeField(null=True, blank=True)
class Meta:
db_table = 'ams_audit_trail'
ordering = ['-created']
# def __str__(self):
# return f'{self.code}'
def __str__(self):
return f'{self.code}'
# def save(self, *args, **kwargs):
# super(AMSAssetStock, self).save(*args, **kwargs)
# code = number_generator(enums.GenerateCode.ASSET_STOCK.value, self.id)
def save(self, *args, **kwargs):
super(AMSReport, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.REPORT.value, self.id)
# if self.code == '':
# self.code = code
# self.created = datetime.now()
# self.save()
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
class ChangeRequestFormAssets(models.Model):
code = models.CharField(
unique=True,
max_length=255)
form_code = models.ForeignKey(
ChangeRequestFormHeader,
on_delete=models.PROTECT,
to_field='form_code',
related_name='change_request_form_assets')
asset_stock = models.ForeignKey(
AMSAssetStock,
on_delete=models.CASCADE,
to_field='code'
)
created_by = models.ForeignKey(
User,
on_delete=models.CASCADE,
to_field='code',
related_name='cms_form_assets_created_by'
)
created = models.DateTimeField(auto_now_add=True)
deleted_at = models.DateTimeField(null=True, blank=True)
class Meta:
db_table = 'change_request_form_assets'
ordering = ['-created']
def __str__(self):
return f'{self.code}'
def save(self, *args, **kwargs):
super(ChangeRequestFormAssets, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.FORM_ASSET.value, self.id)
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
\ No newline at end of file
......@@ -22,7 +22,6 @@ cluster = api
cms_notification = cms_notification
[NOTIFICATION_EMAIL]
APPROVER_MESSAGE = has sent you an APPROVAL REQUEST for change request;RMS-ACTIONREQUIRED
REQUESTOR_MESSAGE = has APPROVED the change request;RMS-CRAPPROVED
......@@ -35,3 +34,9 @@ VENDOR_REJECT_MESSAGE = has REJECTED the change request;RMS-CRREJECTED-VENDOR
REVISED_MESSAGE = has REJECTED the change request for your revision;RMS-CRREVISED
CANCEL_MESSAGE = has CANCELLED the change request;RMS-CRCANCELLED-USERTRIGGER
APPROVER_REJECT_MESSAGE = has REJECTED the change request for your approval;RMS-CRREJECTED-APPROVER
[APPLICATION_CODE]
RMS = APP-20190923-0000001
CMS = APP-20190923-0000002
AMS = APP-20190923-0000003
\ No newline at end of file
Username,Name,Company,Department,Department_Code,Email,Contact_No,Application,Default_app,Privilege_Company,Privilege_Department,Privilege_Department_Code,Create_CR,Create_Template,View_All_CR,Approve_CR
ob-john,John Doe,Oneberry Technologies Pte Ltd,Business Development,DEPARTMENT-20200122-0000003,johndoe@gmail.com,123456,"cms,ams",cms,Oneberry Technologies Pte Ltd,Business Development,DEPARTMENT-20200122-0000003,Yes,No,Yes,Yes
,,,,,,,,,Please use this department code as reference,,,,,,
,,,,,,,,,Oneberry Technologies Pte Ltd,Business Development,DEPARTMENT-20200122-0000003,,,,
,,,,,,,,,JTC Corporation,Security,DEPARTMENT-20200122-0000002,,,,
,,,,,,,,,Sample Company,Facilities Management,DEPARTMENT-20200130-0000004,,,,
Username,Name,Company,Department,Department_Code,Email,Contact_No,Application,Default_app,Change_Request_Privilege_Company,Change_Request_Privilege_Department,Change_Request_Privilege_Department_Code,Create_CR,Create_Template,View_All_CR,View_All_CR_Template,Approve_CR,Asset_Management_Privilege_Company,Asset_Management_Privilege_Department,Asset_Management_Privilege_Department_Code,Asset_Management_User_Group
ob-john,John Doe,Oneberry Technologies Pte Ltd,Business Development,DEPARTMENT-20200122-0000003,johndoe@gmail.com,123456,"cms,ams",cms,Oneberry Technologies Pte Ltd,Business Development,DEPARTMENT-20200122-0000003,Yes,No,Yes,Yes,Yes,Oneberry Technologies Pte Ltd,Business Development,DEPARTMENT-20200122-0000003,MANAGER
,,,,,,,,,Please use this department code as reference,,,,,,,,,,,
,,,,,,,,,Oneberry Technologies Pte Ltd,Business Development,DEPARTMENT-20200122-0000003,,,,,,,,,
,,,,,,,,,JTC Corporation,Security,DEPARTMENT-20200122-0000002,,,,,,,,,
,,,,,,,,,Sample Company,Facilities Management,DEPARTMENT-20200130-0000004,,,,,,,,,
{
"info": {
"_postman_id": "c5ad0726-f9e0-4795-88d2-924ab3aa1201",
"_postman_id": "4003aad5-0e38-415c-95fc-84a0c8bb6607",
"name": "RMSv2",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
......@@ -802,7 +802,7 @@
],
"body": {
"mode": "raw",
"raw": "{\r\n\t\"application\":[\"APP-20190923-0000002\"],\r\n\t\"department\": \"\",\r\n\t\"user_type\": \"OUA\",\r\n\t\"name\": \"ss\",\r\n\t\"username\": \"jtc-sereness\",\r\n\t\"doa\":\"\",\r\n\t\"default_app\": \"APP-20190923-0000002\",\r\n\t\"contact_no\": \"1312313\",\r\n\t\"email\": \"t@gmail.com\"\r\n}\r\n"
"raw": "{\r\n\t\"application\":[\"APP-20190923-0000002\"],\r\n\t\"department\": \"DEPARTMENT-20200122-0000002\",\r\n\t\"user_type\": \"OUA\",\r\n\t\"name\": \"ss\",\r\n\t\"username\": \"jtc-sereness\",\r\n\t\"doa\":\"\",\r\n\t\"default_app\": \"APP-20190923-0000002\",\r\n\t\"contact_no\": \"1312313\",\r\n\t\"email\": \"t@gmail.com\"\r\n}\r\n"
},
"url": {
"raw": "{{baseurl}}/management/users/",
......@@ -832,17 +832,17 @@
],
"body": {
"mode": "raw",
"raw": "{\r\n\t\"application\":[\"APP-20190917-0000001\",\"APP-20190917-0000003\"],\r\n\t\"department\": \"DEPARTMENT-20190917-0000002\",\r\n\t\"user_type\": \"OUA\",\r\n\t\"name\": \"Ritas\",\r\n\t\"username\": \"obrit1a\",\r\n\t\"doa\":\"\",\r\n\t\"default_app\": \"APP-20190917-0000001\",\r\n\t\"contact_no\": \"1312313\",\r\n\t\"email\": \"test@gmail.com\"\r\n}\r\n"
"raw": "{\r\n\t\"application\":[\"APP-20190923-0000001\"],\r\n\t\"department\": \"DEPARTMENT-20200122-0000002\",\r\n\t\"user_type\": \"OUA\",\r\n\t\"name\": \"Ritas\",\r\n\t\"username\": \"obrita\",\r\n\t\"doa\":\"\",\r\n\t\"default_app\": \"APP-20190923-0000001\",\r\n\t\"contact_no\": \"1312313\",\r\n\t\"email\": \"test@gmail.com\"\r\n}\r\n"
},
"url": {
"raw": "{{baseurl}}/management/users/USER-20190919-0000028/",
"raw": "{{baseurl}}/management/users/USER-20200122-0000002/",
"host": [
"{{baseurl}}"
],
"path": [
"management",
"users",
"USER-20190919-0000028",
"USER-20200122-0000002",
""
]
}
......@@ -3226,12 +3226,7 @@
],
"body": {
"mode": "raw",
"raw": "{\n\t\"cms_settings\": [\n {\n \"behalf_approved\": true,\n \"behalf_accepted\": true,\n \"behalf_rejected\": true,\n \"behalf_implemented\": true,\n \"behalf_completed\": true,\n \"behalf_user\": \"USER-20200122-0000005\"\n },\n {\n \"behalf_approved\": true,\n \"behalf_accepted\": true,\n \"behalf_rejected\": true,\n \"behalf_implemented\": true,\n \"behalf_completed\": true,\n \"behalf_user\": \"USER-20200122-0000002\"\n },\n {\n \"behalf_approved\": true,\n \"behalf_accepted\": true,\n \"behalf_rejected\": true,\n \"behalf_implemented\": true,\n \"behalf_completed\": true,\n \"behalf_user\": \"USER-20200122-0000005\"\n }\n ]\n}",
"options": {
"raw": {
"language": "json"
}
}
"raw": "{\n\t\"cms_settings\": [\n {\n \"behalf_approved\": true,\n \"behalf_accepted\": true,\n \"behalf_rejected\": true,\n \"behalf_implemented\": true,\n \"behalf_completed\": true,\n \"behalf_user\": \"USER-20200122-0000005\"\n },\n {\n \"behalf_approved\": true,\n \"behalf_accepted\": true,\n \"behalf_rejected\": true,\n \"behalf_implemented\": true,\n \"behalf_completed\": true,\n \"behalf_user\": \"USER-20200122-0000002\"\n },\n {\n \"behalf_approved\": true,\n \"behalf_accepted\": true,\n \"behalf_rejected\": true,\n \"behalf_implemented\": true,\n \"behalf_completed\": true,\n \"behalf_user\": \"USER-20200122-0000005\"\n }\n ]\n}"
},
"url": {
"raw": "{{baseurl}}/change-request/cms-settings/",
......@@ -3461,7 +3456,7 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{baseurl}}/asset-management/ams-privilege/",
"raw": "{{baseurl}}/asset-management/ams-privilege/?id_number=USER-20200311-0000007",
"host": [
"{{baseurl}}"
],
......@@ -3469,6 +3464,12 @@
"asset-management",
"ams-privilege",
""
],
"query": [
{
"key": "id_number",
"value": "USER-20200311-0000007"
}
]
}
},
......@@ -3481,12 +3482,7 @@
"header": [],
"body": {
"mode": "raw",
"raw": "{\n\t\"body_data\": [\n {\n \"id_number\": \"USER-20200122-0000002\",\n \"department\": \"DEPARTMENT-20200122-0000003\",\n \"ams_user_type\": \"MANAGER\"\n },\n {\n \"id_number\": \"USER-20200122-0000002\",\n \"department\": \"DEPARTMENT-20200122-0000002\",\n \"ams_user_type\": \"USER_CLIENT\"\n }\n ]\n}",
"options": {
"raw": {
"language": "json"
}
}
"raw": "{\n\t\"form\": [\n {\n \"id_number\": \"USER-20200310-0000016\",\n \"department\": \"DEPARTMENT-20200218-0000003\",\n \"ams_user_type\": \"MANAGER\"\n },\n {\n \"id_number\": \"USER-20200310-0000016\",\n \"department\": \"DEPARTMENT-20200211-0000002\",\n \"ams_user_type\": \"MANAGER\"\n }\n ]\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/ams-privilege/",
......@@ -3523,7 +3519,7 @@
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"Asset Group 1\",\n\t\"asset_group\": \"JTC\"\n}"
"raw": "{\n\t\"name\": \"Asset Group 1\",\n\t\"asset_group\": \"JTC\",\n\t\"created_by\": \"USER-20190923-0000001\"\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/asset-group/",
......@@ -3632,6 +3628,864 @@
}
},
"response": []
},
{
"name": "Archive List",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseurl}}/asset-management/asset-group/archived/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"asset-group",
"archived",
""
]
}
},
"response": []
}
],
"protocolProfileBehavior": {},
"_postman_isSubFolder": true
},
{
"name": "Asset Type",
"item": [
{
"name": "List of Asset Type",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"cctv\",\n\t\"dynamic_field\": \"\",\n\t\"created_by\": \"USER-20190923-0000001\"\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/asset-type/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"asset-type",
""
]
}
},
"response": []
},
{
"name": "Create of Asset Type",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"cctv5\",\n\t\"dynamic_fied\": \"\",\n\t\"created_by\": \"USER-20190923-0000001\"\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/asset-type/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"asset-type",
""
]
}
},
"response": []
},
{
"name": "View Asset Type",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": ""
}
},
"response": []
},
{
"name": "Delete Asset Type",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": ""
}
},
"response": []
},
{
"name": "Archive List",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseurl}}/asset-management/asset-type/archived/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"asset-type",
"archived",
""
]
}
},
"response": []
}
],
"protocolProfileBehavior": {},
"_postman_isSubFolder": true
},
{
"name": "Asset",
"item": [
{
"name": "List of Asset",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseurl}}/asset-management/assets/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"assets",
""
]
}
},
"response": []
},
{
"name": "View of Asset",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseurl}}/asset-management/assets/ASST-20200317-0000004/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"assets",
"ASST-20200317-0000004",
""
]
}
},
"response": []
},
{
"name": "Delete of Asset",
"request": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseurl}}/asset-management/assets/jmedrano-20200317-0000002/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"assets",
"jmedrano-20200317-0000002",
""
]
}
},
"response": []
},
{
"name": "Create of Asset",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"CCTV22\",\n\t\"asset_type\": \"ASSTTYPE-20200317-0000002\",\n\t\"created_by\": \"USER-20190923-0000001\"\n\t\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/assets/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"assets",
""
]
}
},
"response": []
},
{
"name": "Archive List",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseurl}}/asset-management/assets/archived/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"assets",
"archived",
""
]
}
},
"response": []
}
],
"protocolProfileBehavior": {},
"_postman_isSubFolder": true
},
{
"name": "Asset Stock List",
"item": [
{
"name": "List of Asset Stock",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseurl}}/asset-management/assets-stock-list/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"assets-stock-list",
""
]
}
},
"response": []
},
{
"name": "View of Asset Stock",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseurl}}/asset-management/assets-stock-list/ASSTSTOCK-20200317-0000002/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"assets-stock-list",
"ASSTSTOCK-20200317-0000002",
""
]
}
},
"response": []
},
{
"name": "Delete of Asset Stock",
"request": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseurl}}/asset-management/assets-stock-list/ASSTSTOCK-20200317-0000002/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"assets-stock-list",
"ASSTSTOCK-20200317-0000002",
""
]
}
},
"response": []
},
{
"name": "Create of Asset Stock",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"CCTV2\",\n\t\"asset_type\": \"ASSTTYPE-20200317-0000001\",\n\t\"created_by\": \"USER-20190923-0000001\",\n\t\"unique_identifier\": \"ph-002\",\n\t\"status\": \"In-Store\",\n\t\"acquisition_type\": \"Owned\",\n\t\"location\" : \"Country Space\",\n\t\"user_client\": \"USER-20190923-0000001\",\n\t\"manager\": \"USER-20190923-0000001\",\n\t\"dynamic_field\": \"\",\n\t\"asset\": \"ASST-20200317-0000004\",\n\t\"asset_group\": \"ASSTGRP-20200317-0000001\"\n\t\n\t\n}\n"
},
"url": {
"raw": "{{baseurl}}/asset-management/assets-stock-list/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"assets-stock-list",
""
]
}
},
"response": []
},
{
"name": "Archive List",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseurl}}/asset-management/assets-stock-list/archived/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"assets-stock-list",
"archived",
""
]
}
},
"response": []
}
],
"protocolProfileBehavior": {},
"_postman_isSubFolder": true
},
{
"name": "Report Type",
"item": [
{
"name": "List of Report Type",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"cctv\",\n\t\"dynamic_field\": \"\",\n\t\"created_by\": \"USER-20190923-0000001\"\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/report-type/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report-type",
""
]
}
},
"response": []
},
{
"name": "View of ReportType",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseurl}}/asset-management/report-type/RPTTYPE-20200318-0000001/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report-type",
"RPTTYPE-20200318-0000001",
""
]
}
},
"response": []
},
{
"name": "Archived of ReportType",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"cctv\",\n\t\"dynamic_field\": \"\",\n\t\"created_by\": \"USER-20190923-0000001\"\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/report-type/archived/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report-type",
"archived",
""
]
}
},
"response": []
},
{
"name": "Create of Report Type",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"incident\",\n\t\"dynamic_field\": \"wowo\",\n\t\"description\": \"this is a test for report type\"\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/report-type/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report-type",
""
]
}
},
"response": []
},
{
"name": "Update of Report Type",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"incident\",\n\t\"dynamic_field\": \"\",\n\t\"description\": \"this is a test for report type\"\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/report-type/RPTTYPE-20200318-0000001/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report-type",
"RPTTYPE-20200318-0000001",
""
]
}
},
"response": []
},
{
"name": "Delete of Report Type",
"request": {
"method": "DELETE",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseurl}}/asset-management/report-type/RPTTYPE-20200318-0000001/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report-type",
"RPTTYPE-20200318-0000001",
""
]
}
},
"response": []
},
{
"name": "Restore of Report Type",
"request": {
"method": "PATCH",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseurl}}/asset-management/report-type/RPTTYPE-20200318-0000001/restore/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report-type",
"RPTTYPE-20200318-0000001",
"restore",
""
]
}
},
"response": []
}
],
"protocolProfileBehavior": {},
"_postman_isSubFolder": true
},
{
"name": "Report",
"item": [
{
"name": "List of Report Type",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseurl}}/asset-management/report/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report",
""
]
}
},
"response": []
},
{
"name": "View of ReportType",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseurl}}/asset-management/report/RPT-20200318-0000005/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report",
"RPT-20200318-0000005",
""
]
}
},
"response": []
},
{
"name": "Archived of ReportType",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"cctv\",\n\t\"dynamic_field\": \"\",\n\t\"created_by\": \"USER-20190923-0000001\"\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/report/archived/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report",
"archived",
""
]
}
},
"response": []
},
{
"name": "Create of Report Type",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"Cam 17 downs\",\n\t\"dynamic_field\": \"\",\n\t\"description\": \"this is a test for report type\",\n\t\"report_type\": \"RPTTYPE-20200318-0000001\",\n\t\"asset_stock\": \"ASSTSTOCK-20200317-0000004\"\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/report/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report",
""
]
}
},
"response": []
},
{
"name": "Update of Report Type",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"Cam 17 downdds\",\n\t\"dynamic_field\": \"\",\n\t\"description\": \"this is a test for report type\",\n\t\"report_type\": \"RPTTYPE-20200318-0000001\",\n\t\"asset_stock\": \"ASSTSTOCK-20200317-0000004\"\n}"
},
"url": {
"raw": "{{baseurl}}/asset-management/report/RPT-20200318-0000005/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report",
"RPT-20200318-0000005",
""
]
}
},
"response": []
},
{
"name": "Delete of Report Type",
"request": {
"method": "DELETE",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseurl}}/asset-management/report/RPT-20200318-0000005/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report",
"RPT-20200318-0000005",
""
]
}
},
"response": []
},
{
"name": "Restore of Report Type",
"request": {
"method": "PATCH",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseurl}}/asset-management/report/RPT-20200318-0000005/restore/",
"host": [
"{{baseurl}}"
],
"path": [
"asset-management",
"report",
"RPT-20200318-0000005",
"restore",
""
]
}
},
"response": []
}
],
"event": [
{
"listen": "prerequest",
"script": {
"id": "dc05875a-6fd9-477c-a8bf-d5ac4385881b",
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"id": "2a8cc892-4049-4c34-ad81-01ca77c4812b",
"type": "text/javascript",
"exec": [
""
]
}
}
],
"protocolProfileBehavior": {},
......@@ -3646,7 +4500,7 @@
"bearer": [
{
"key": "token",
"value": "4a6d5d4ce95b759f2718e64878d4be38d257022b",
"value": "52b082644cbf5fc485da2169f30fd1bf5bf3207e",
"type": "string"
}
]
......
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