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

Merge pull request #198 in RMS/api-main-service from red-develop to RMSv2

* commit '52a39c89':
  added new endpoint list of temlates filter by allowed companies
parents 95440d33 52a39c89
from cms.entities import models
from rest_framework_mongoengine import serializers
class headers(serializers.DocumentSerializer):
def to_representation(self, instance):
setattr(instance, 'action', 'wew')
return super().to_representation(instance)
class Meta:
model = models.ChangeRequestFormHeader
fields = (
'requested_to_template_name',
'company_desc',
'department_desc',
'requested_desc',
'status',
'requested_to_priority',
'created',
'requested_to_target_date'
)
from rest_framework_mongoengine import viewsets as meviewsets
from rest_framework_mongoengine.viewsets import ReadOnlyModelViewSet
from drf_renderer_xlsx.mixins import XLSXFileMixin
from drf_renderer_xlsx.renderers import XLSXRenderer
from cms.entities.models import (
ChangeRequestFormHeader,
ChangeRequestFormApprovers,
ChangeRequestFormStakeHolders
)
from cms.applicationlayer.download.change_request_download import headers
from django.db.models import CharField, Value
from mongoengine.queryset.visitor import Q
from rest_framework.response import Response
from cms.applicationlayer.utilities import logged_user
class DownloadRequest(XLSXFileMixin, ReadOnlyModelViewSet):
queryset = ChangeRequestFormHeader.objects.all()
serializer_class = headers
renderer_classes = (XLSXRenderer,)
filename = 'Change Request Form.xlsx'
def list(self, request, *args, **kwargs):
# id_number = self.request.META.get('HTTP_ACCOUNT_NO')
id_number = 'USER-20190923-0000001'
# id_number = self.request.query_params.get('id_number')
approver = ChangeRequestFormApprovers.objects.filter(
Q(user=id_number) &
Q(deleted_at=None)
)
approver = [data['form_code'] for data in approver]
stake = ChangeRequestFormStakeHolders.objects.filter(
Q(user=id_number) &
Q(deleted_at=None)
)
stake = [data['form_code'] for data in stake]
headers = ChangeRequestFormHeader.objects.filter(
deleted_at=None,
requested_by_user=id_number
)
headers = [data['form_code'] for data in headers]
form_code = stake + approver + headers
self.queryset = ChangeRequestFormHeader.objects.filter(
form_code__in=form_code,
deleted_at=None,
)
exclude = self.queryset.filter(
status='DRAFT',
requested_by_user__ne=id_number
)
exclude = [data['form_code'] for data in exclude]
self.queryset = self.queryset.filter(
form_code__nin=exclude
)
serializer = self.get_serializer(self.queryset, many=True)
return Response(serializer.data)
column_header = {
'titles': [
"Name",
"Company Request To",
"Department Requested To",
"Requested By",
"Status",
"Priority Level",
"Action"
"Date Modified",
"Date Required"
],
'column_width': [17, 30, 17],
'height': 25,
'style': {
'alignment': {
'horizontal': 'center',
'vertical': 'center',
'wrapText': False,
'shrink_to_fit': True,
},
'border_side': {
'border_style': 'thin',
'color': 'FF000000',
},
'font': {
'name': 'Arial',
'size': 14,
'bold': True,
'color': 'FF000000',
},
},
}
from app.entities import models
from rest_framework import serializers
class ChangeRequestTemplatesSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateHeader
fields = '__all__'
\ No newline at end of file
from rest_framework import viewsets, status
from rest_framework.response import Response
from app.entities.models import ChangeRequestTemplateHeader, AllowedCompany
from app.applicationlayer.cms.master.template_list.serializers import ChangeRequestTemplatesSerializer
from app.applicationlayer.utils import CustomPagination, status_message_response
from rest_framework.exceptions import ParseError
class ChangeRequestTemplateHeaderMaster(viewsets.ModelViewSet):
queryset = ChangeRequestTemplateHeader.objects.all()
serializer_class = ChangeRequestTemplatesSerializer
pagination_class = CustomPagination
lookup_field = 'template_no'
def list(self, request, *args, **kwargs):
if "department_code" not in request.query_params:
raise ParseError('department_code is expected at query params')
department = request.query_params['department_code']
# queryset = self.filter_queryset(self.get_queryset())
permit = AllowedCompany.objects.filter(
group_pivots=department
).count()
if permit <= 0:
raise ParseError('This department is not allowed')
else:
queryset = ChangeRequestTemplateHeader.objects.filter(
created_by_department=department
).order_by('requested_to_template_name')
# queryset = queryset.filter
# self.serializer_class = ChangeRequestTemplatesSerializerList
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 Templates 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
)
...@@ -11,6 +11,7 @@ from app.applicationlayer.cms.allowed_company import views as allowed ...@@ -11,6 +11,7 @@ from app.applicationlayer.cms.allowed_company import views as allowed
from app.applicationlayer.cms.master.company.views import ChangeRequestCompanyViewSet from app.applicationlayer.cms.master.company.views import ChangeRequestCompanyViewSet
from app.applicationlayer.cms.master.department.views import ChangeRequestDepartmentViewSet from app.applicationlayer.cms.master.department.views import ChangeRequestDepartmentViewSet
from app.applicationlayer.cms.master.account.views import UserList from app.applicationlayer.cms.master.account.views import UserList
from app.applicationlayer.cms.master.template_list.views import ChangeRequestTemplateHeaderMaster
# MASTERS # MASTERS
# TEMPLATE # TEMPLATE
...@@ -53,6 +54,7 @@ router.register(r'allowed-companies', allowed.AllowedCompanyViewSet) ...@@ -53,6 +54,7 @@ router.register(r'allowed-companies', allowed.AllowedCompanyViewSet)
# filter endpoints under Allowed Companies table # filter endpoints under Allowed Companies table
router.register(r'companies', ChangeRequestCompanyViewSet) router.register(r'companies', ChangeRequestCompanyViewSet)
router.register(r'departments', ChangeRequestDepartmentViewSet) router.register(r'departments', ChangeRequestDepartmentViewSet)
router.register(r'allowed-templates', ChangeRequestTemplateHeaderMaster)
# filter endpoints under Allowed Companies table # filter endpoints under Allowed Companies table
......
...@@ -136,7 +136,8 @@ REST_FRAMEWORK = { ...@@ -136,7 +136,8 @@ REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': [ 'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.AdminRenderer', 'rest_framework.renderers.AdminRenderer',
'rest_framework.renderers.BrowsableAPIRenderer' 'rest_framework.renderers.BrowsableAPIRenderer',
'drf_renderer_xlsx.renderers.XLSXRenderer',
], ],
'DEFAULT_PERMISSION_CLASSES': ( 'DEFAULT_PERMISSION_CLASSES': (
......
...@@ -19,7 +19,9 @@ Django==2.2 ...@@ -19,7 +19,9 @@ Django==2.2
django-cors-headers==2.5.2 django-cors-headers==2.5.2
django-filter==2.1.0 django-filter==2.1.0
djangorestframework==3.9.2 djangorestframework==3.9.2
drf-renderer-xlsx==0.3.3
drf-writable-nested==0.5.1 drf-writable-nested==0.5.1
et-xmlfile==1.0.1
gevent==1.4.0 gevent==1.4.0
greenlet==0.4.15 greenlet==0.4.15
hiredis==1.0.0 hiredis==1.0.0
...@@ -27,11 +29,13 @@ hyperlink==19.0.0 ...@@ -27,11 +29,13 @@ hyperlink==19.0.0
idna==2.8 idna==2.8
incremental==17.5.0 incremental==17.5.0
isort==4.3.17 isort==4.3.17
jdcal==1.4.1
lazy-object-proxy==1.3.1 lazy-object-proxy==1.3.1
Markdown==3.1 Markdown==3.1
mccabe==0.6.1 mccabe==0.6.1
msgpack==0.6.1 msgpack==0.6.1
mysqlclient==1.4.2.post1 mysqlclient==1.4.2.post1
openpyxl==3.0.0
pep8==1.7.1 pep8==1.7.1
Pillow==6.0.0 Pillow==6.0.0
pycparser==2.19 pycparser==2.19
......
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