Commit 69b32928 authored by John Red Medrano's avatar John Red Medrano

added new endpoint for download list of form

parent e8fd5f19
from cms.entities import models from app.entities import models
from rest_framework_mongoengine import serializers from rest_framework import serializers
class headers(serializers.DocumentSerializer): class headers(serializers.ModelSerializer):
def to_representation(self, instance): def to_representation(self, instance):
setattr(instance, 'action', 'wew') setattr(
instance, 'created', instance.created.strftime('%Y-%m-%d-%H:%M:%S')
)
setattr(
instance, 'requested_to_target_date',
instance.requested_to_target_date.strftime('%Y-%m-%d-%H:%M:%S')
)
return super().to_representation(instance) return super().to_representation(instance)
class Meta: class Meta:
......
from rest_framework_mongoengine import viewsets as meviewsets from rest_framework import viewsets as meviewsets
from rest_framework_mongoengine.viewsets import ReadOnlyModelViewSet from rest_framework.viewsets import ReadOnlyModelViewSet
from drf_renderer_xlsx.mixins import XLSXFileMixin from drf_renderer_xlsx.mixins import XLSXFileMixin
from drf_renderer_xlsx.renderers import XLSXRenderer from drf_renderer_xlsx.renderers import XLSXRenderer
from cms.entities.models import ( from app.entities.models import (
ChangeRequestFormHeader, ChangeRequestFormHeader,
ChangeRequestFormApprovers, ChangeRequestFormApprovers,
ChangeRequestFormStakeHolders ChangeRequestFormStakeHolders
) )
from cms.applicationlayer.download.change_request_download import headers # from app.applicationlayer.form_listing_ import headers
from app.applicationlayer.cms.form_listing_download.serializers import headers
from django.db.models import CharField, Value from django.db.models import CharField, Value
from mongoengine.queryset.visitor import Q from django.db.models import Q
from rest_framework.response import Response from rest_framework.response import Response
from cms.applicationlayer.utilities import logged_user from rest_framework.permissions import AllowAny
# from cms.applicationlayer.utilities import logged_user
class DownloadRequest(XLSXFileMixin, ReadOnlyModelViewSet): class DownloadRequest(XLSXFileMixin, ReadOnlyModelViewSet):
...@@ -19,41 +21,51 @@ class DownloadRequest(XLSXFileMixin, ReadOnlyModelViewSet): ...@@ -19,41 +21,51 @@ class DownloadRequest(XLSXFileMixin, ReadOnlyModelViewSet):
serializer_class = headers serializer_class = headers
renderer_classes = (XLSXRenderer,) renderer_classes = (XLSXRenderer,)
filename = 'Change Request Form.xlsx' filename = 'Change Request Form.xlsx'
permission_classes = (AllowAny,)
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
# id_number = self.request.META.get('HTTP_ACCOUNT_NO') # id_number = self.request.META.get('HTTP_ACCOUNT_NO')
id_number = 'USER-20190923-0000001' id_number = 'USER-20190923-0000001'
# print(request.user.code)
# id_number = request.user.code
# id_number = self.request.query_params.get('id_number') # 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
) # approver = ChangeRequestFormApprovers.objects.filter(
serializer = self.get_serializer(self.queryset, many=True) # 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]
data = ChangeRequestFormHeader.objects.filter(
Q(frm_approvers__user__code=id_number) |
Q(requested_by_user=id_number) |
Q(frm_stakes__user__code=id_number)
).distinct()
# print(headers)
# print(headers)
# 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 = headers
# print(data)
serializer = self.get_serializer(data, many=True)
# print(serializer.data)
return Response(serializer.data) return Response(serializer.data)
column_header = { column_header = {
......
...@@ -18,7 +18,6 @@ class ChangeRequestTemplateHeaderMaster(viewsets.ModelViewSet): ...@@ -18,7 +18,6 @@ class ChangeRequestTemplateHeaderMaster(viewsets.ModelViewSet):
department = request.query_params['department_code'] department = request.query_params['department_code']
# queryset = self.filter_queryset(self.get_queryset())
permit = AllowedCompany.objects.filter( permit = AllowedCompany.objects.filter(
group_pivots=department group_pivots=department
).count() ).count()
...@@ -29,11 +28,6 @@ class ChangeRequestTemplateHeaderMaster(viewsets.ModelViewSet): ...@@ -29,11 +28,6 @@ class ChangeRequestTemplateHeaderMaster(viewsets.ModelViewSet):
created_by_department=department created_by_department=department
).order_by('requested_to_template_name') ).order_by('requested_to_template_name')
# queryset = queryset.filter
# self.serializer_class = ChangeRequestTemplatesSerializerList
page = self.paginate_queryset(queryset) page = self.paginate_queryset(queryset)
if page is not None: if page is not None:
......
from django.urls import path, include from django.urls import path, include
from rest_framework import routers from rest_framework import routers
from django.conf.urls import url from django.conf.urls import url
from rest_framework.urlpatterns import format_suffix_patterns
from app.applicationlayer.management.notification.views import NotificationsViewset from app.applicationlayer.management.notification.views import NotificationsViewset
...@@ -31,6 +32,8 @@ from app.applicationlayer.cms.form.details import views as detailsform ...@@ -31,6 +32,8 @@ from app.applicationlayer.cms.form.details import views as detailsform
from app.applicationlayer.cms.form.attachment import views as attachmentform from app.applicationlayer.cms.form.attachment import views as attachmentform
# FORM # FORM
from app.applicationlayer.cms.form_listing_download import views as dl
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'notifications', NotificationsViewset) router.register(r'notifications', NotificationsViewset)
...@@ -47,6 +50,8 @@ router.register(r'form-stakeholders', stakeholderform.ChangeRequestFormStakeHold ...@@ -47,6 +50,8 @@ router.register(r'form-stakeholders', stakeholderform.ChangeRequestFormStakeHold
router.register(r'form-attachments', attachmentform.ChangeRequestFormAttachmentsViewset) router.register(r'form-attachments', attachmentform.ChangeRequestFormAttachmentsViewset)
router.register(r'form-details', detailsform.ChangeRequestFormDetailsViewset) router.register(r'form-details', detailsform.ChangeRequestFormDetailsViewset)
router.register(r'form', dl.DownloadRequest)
# privilege CMS # privilege CMS
router.register(r'allowed-companies', allowed.AllowedCompanyViewSet) router.register(r'allowed-companies', allowed.AllowedCompanyViewSet)
# privilege CMS # privilege CMS
...@@ -58,11 +63,14 @@ router.register(r'allowed-templates', ChangeRequestTemplateHeaderMaster) ...@@ -58,11 +63,14 @@ router.register(r'allowed-templates', ChangeRequestTemplateHeaderMaster)
# filter endpoints under Allowed Companies table # filter endpoints under Allowed Companies table
urlpatterns = ( urlpatterns = [
path('', include(router.urls)), path('', include(router.urls)),
path('template-post/', header.ChangeRequestTemplatePost.as_view()), path('template-post/', header.ChangeRequestTemplatePost.as_view()),
path('form-post/', headerform.ChangeRequestFormPost.as_view()), path('form-post/', headerform.ChangeRequestFormPost.as_view()),
# filter endpoints under Allowed Companies table # filter endpoints under Allowed Companies table
path('user-list/', UserList.as_view(), name="User List"), path('user-list/', UserList.as_view(), name="User List"),
# filter endpoints under Allowed Companies table # filter endpoints under Allowed Companies table
) ]
# urlpatterns += format_suffix_patterns(urlpatterns)
# urlpatterns += router.urls
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment