Commit da0b1869 authored by Gladys Forte's avatar Gladys Forte

Merge branch 'RMSv2' of http://42.61.118.105:7990/scm/rms/api-main-service into gladys-dev2

parents 83a6d280 c676b867
from app.entities import models from app.entities import models
from rest_framework import serializers from rest_framework import serializers
from django.db.models import Q from django.db.models import Q
from django.forms.models import model_to_dict
from drf_writable_nested import WritableNestedModelSerializer from drf_writable_nested import WritableNestedModelSerializer
from app.applicationlayer.cms.utils_cr import (get_account_details, from app.applicationlayer.cms.utils_cr import (get_account_details,
get_dept_details, get_dept_details,
...@@ -13,25 +14,12 @@ class ChangeRequestTemplateApproversSerializer( ...@@ -13,25 +14,12 @@ class ChangeRequestTemplateApproversSerializer(
def to_representation(self, instance): def to_representation(self, instance):
ret = super().to_representation(instance) ret = super().to_representation(instance)
try: try:
user = instance.user ret['company'] = model_to_dict(instance.user.department.company)
ret['department'] = model_to_dict(instance.user.department)
user_details = get_account_details(user.code) ret['name'] = instance.user.name
name = user_details.values_list('name', flat=True)[0] ret['email'] = instance.user.email
email = user_details.values_list('email', flat=True)[0] ret['contact_no'] = instance.user.contact_no
contact_no = user_details.values_list('contact_no', flat=True)[0]
dept_code = user_details.values_list('department', flat=True)[0]
department_details = get_dept_details(dept_code)
department = department_details.values_list('name', flat=True)[0]
comp_code = department_details.values_list('company', flat=True)[0]
company_details = get_companies_details(comp_code)
company = company_details.values_list('name', flat=True)[0]
ret['company'] = company
ret['department'] = department
ret['name'] = name
ret['email'] = email
ret['contact_no'] = contact_no
return ret return ret
except Exception as e: except Exception as e:
...@@ -54,25 +42,13 @@ class ChangeRequestTemplateStakeHoldersSerializer( ...@@ -54,25 +42,13 @@ class ChangeRequestTemplateStakeHoldersSerializer(
def to_representation(self, instance): def to_representation(self, instance):
ret = super().to_representation(instance) ret = super().to_representation(instance)
try: try:
user = instance.user
ret['company'] = model_to_dict(instance.user.department.company)
user_details = get_account_details(user.code) ret['department'] = model_to_dict(instance.user.department)
name = user_details.values_list('name', flat=True)[0] ret['name'] = instance.user.name
email = user_details.values_list('email', flat=True)[0] ret['email'] = instance.user.email
contact_no = user_details.values_list('contact_no', flat=True)[0]
dept_code = user_details.values_list('department', flat=True)[0]
department_details = get_dept_details(dept_code)
department = department_details.values_list('name', flat=True)[0]
comp_code = department_details.values_list('company', flat=True)[0]
company_details = get_companies_details(comp_code)
company = company_details.values_list('name', flat=True)[0]
ret['company'] = company
ret['department'] = department
ret['name'] = name
ret['email'] = email
ret['contact_no'] = contact_no ret['contact_no'] = contact_no
return ret return ret
except Exception as e: except Exception as e:
...@@ -122,34 +98,21 @@ class ChangeRequestTemplatesSerializer( ...@@ -122,34 +98,21 @@ class ChangeRequestTemplatesSerializer(
def to_representation(self, instance): def to_representation(self, instance):
ret = super().to_representation(instance) ret = super().to_representation(instance)
try: try:
company = instance.requested_to_company.code
department = instance.requested_to_department.code ret['company'] = model_to_dict(instance.user.department.company)
point_of_contact = instance.requested_to_user.code ret['department'] = model_to_dict(instance.user.department)
created_by = instance.created_by_user.code ret['point_of_contact'] = model_to_dict(instance.requested_to_user)
ret['created_by'] = instance.created_by_user.code
company = get_companies_details(company)
company = company.values_list('name', flat=True)[0]
department = get_dept_details(department)
department = department.values_list('name', flat=True)[0]
point_of_contact = get_account_details(point_of_contact)
point_of_contact = point_of_contact.values_list('name', flat=True)[0]
created_by = get_account_details(created_by)
created_by = created_by.values_list('name', flat=True)[0]
ret['company'] = company
ret['department'] = department
ret['point_of_contact'] = point_of_contact
ret['created_by'] = created_by
return ret return ret
except Exception as e: except Exception as e:
ret['company'] = "none" ret['company'] = "none"
ret['department'] = "none" ret['department'] = "none"
ret['point_of_contact'] = "none" ret['point_of_contact'] = "none"
ret['created_by'] = "none" ret['created_by'] = "none"
return ret return ret
class Meta: class Meta:
...@@ -164,4 +127,4 @@ class ChangeRequestTemplatesSerializer( ...@@ -164,4 +127,4 @@ class ChangeRequestTemplatesSerializer(
'tmp_approvers', 'tmp_stakes', 'tmp_attachments', 'tmp_approvers', 'tmp_stakes', 'tmp_attachments',
'tmp_details') 'tmp_details')
read_only_fields = ['created', 'template_no'] read_only_fields = ['created', 'template_no']
\ No newline at end of file
...@@ -364,7 +364,7 @@ class ChangeRequestTemplatePost(APIView): ...@@ -364,7 +364,7 @@ class ChangeRequestTemplatePost(APIView):
if serializerStake.is_valid(raise_exception=True): if serializerStake.is_valid(raise_exception=True):
serializerStake.save() serializerStake.save()
# create template attachments # create template attachments
if template_header['tmp_attachments']: if template_header['tmp_attachments']:
tmp_attachments = template_header['tmp_attachments'] tmp_attachments = template_header['tmp_attachments']
......
...@@ -64,6 +64,7 @@ class ModuleViewSet(viewsets.ModelViewSet): ...@@ -64,6 +64,7 @@ class ModuleViewSet(viewsets.ModelViewSet):
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset()) queryset = self.filter_queryset(self.get_queryset())
queryset = queryset.exclude(id=1)
page = self.paginate_queryset(queryset) page = self.paginate_queryset(queryset)
if page is not None: if page is not None:
......
...@@ -30,7 +30,7 @@ class AdminAccountViewSet(viewsets.ModelViewSet): ...@@ -30,7 +30,7 @@ class AdminAccountViewSet(viewsets.ModelViewSet):
# @rms.department_list # @rms.department_list
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
# try: try:
queryset = self.filter_queryset(self.get_queryset()) queryset = self.filter_queryset(self.get_queryset())
if len(self.request.query_params) > 0: if len(self.request.query_params) > 0:
...@@ -56,8 +56,8 @@ class AdminAccountViewSet(viewsets.ModelViewSet): ...@@ -56,8 +56,8 @@ class AdminAccountViewSet(viewsets.ModelViewSet):
serializer = self.get_serializer(queryset, many=True) serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data) return Response(serializer.data)
# except Exception as e: except Exception as e:
# return Response( return Response(
# {'message': "query params department_code and company_code are both expected"}, {'message': "query params department_code and company_code are both expected"},
# status=status.HTTP_400_BAD_REQUEST status=status.HTTP_400_BAD_REQUEST
# ) )
from rest_framework import serializers
from app.entities import models
class MasterAttachmentSerializer(serializers.ModelSerializer):
class Meta:
model = models.MasterAttachment
fields = '__all__'
read_only = ('uploaded_by', 'created', 'code',)
import copy
from rest_framework import status, viewsets
from rest_framework.response import Response
from app.entities.models import MasterAttachment
from app.applicationlayer.master.attachment.serializer import MasterAttachmentSerializer
from app.applicationlayer.utils import CustomPagination, status_message_response
from django.db import transaction
from rest_framework.exceptions import ValidationError
class MasterAttachmentViewSet(viewsets.ModelViewSet):
queryset = MasterAttachment.objects.all()
serializer_class = MasterAttachmentSerializer
pagination_class = CustomPagination
# @decorators.rms.user_list
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 Attachment found',
serializer.data
)
return self.get_paginated_response(message)
serializer = self.get_serializer(queryset, many=True)
return Response(
serializer.data,
status=status.HTTP_200_OK
)
@transaction.atomic
def create(self, request, *args, **kwargs):
ids = []
for instance in self.request.data.getlist('url'):
data = MasterAttachment.objects.create(url=instance)
ids.append(data.id)
return Response(
{"ids": ids},
status=status.HTTP_201_CREATED
)
...@@ -30,6 +30,7 @@ class AdminDepartmentViewSet(viewsets.ModelViewSet): ...@@ -30,6 +30,7 @@ class AdminDepartmentViewSet(viewsets.ModelViewSet):
company = self.request.query_params['company_code'] company = self.request.query_params['company_code']
queryset = self.filter_queryset(self.get_queryset()) queryset = self.filter_queryset(self.get_queryset())
queryset = queryset.filter(company__code=company) queryset = queryset.filter(company__code=company)
queryset = queryset.exclude(id=1)
page = self.paginate_queryset(queryset) page = self.paginate_queryset(queryset)
if page is not None: if page is not None:
......
...@@ -5,11 +5,13 @@ from app.applicationlayer.master.Account.views import AdminAccountViewSet ...@@ -5,11 +5,13 @@ from app.applicationlayer.master.Account.views import AdminAccountViewSet
from app.applicationlayer.master.company.views import AdminCompanyViewSet from app.applicationlayer.master.company.views import AdminCompanyViewSet
from app.applicationlayer.master.department.views import AdminDepartmentViewSet from app.applicationlayer.master.department.views import AdminDepartmentViewSet
from app.applicationlayer.master.user_type.views import UserTypeViewSet from app.applicationlayer.master.user_type.views import UserTypeViewSet
from app.applicationlayer.master.attachment.views import MasterAttachmentViewSet
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'users', AdminAccountViewSet) router.register(r'users', AdminAccountViewSet)
router.register(r'companies', AdminCompanyViewSet) router.register(r'companies', AdminCompanyViewSet)
router.register(r'departments', AdminDepartmentViewSet) router.register(r'departments', AdminDepartmentViewSet)
router.register(r'attachments', MasterAttachmentViewSet)
# router.register(r'user-types', UserTypeViewSet) # router.register(r'user-types', UserTypeViewSet)
urlpatterns = [ urlpatterns = [
......
# Generated by Django 2.2 on 2019-09-26 10:40
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('entities', '0007_auto_20190924_1206'),
]
operations = [
migrations.CreateModel(
name='MasterAttachment',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('url', models.FileField(blank=True, null=True, upload_to='uploads/')),
],
options={
'db_table': 'master_attachments',
},
),
migrations.AlterField(
model_name='allowedcompany',
name='company_pivot',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='allowed_company_company_pivot', to='entities.Company', to_field='code'),
),
migrations.AlterField(
model_name='allowedcompany',
name='group_pivots',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='allowed_company_group_pivots', to='entities.Department', to_field='code'),
),
migrations.AlterField(
model_name='allowedcompany',
name='id_number',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='allowed_company_id_number', to=settings.AUTH_USER_MODEL, to_field='code'),
),
migrations.AlterField(
model_name='changerequestformattachments',
name='file_upload',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='form_attachments', to='entities.MasterAttachment'),
),
migrations.AlterField(
model_name='changerequestformattachments',
name='tmp_attach',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='template_attachments', to='entities.ChangeRequestTemplateAttachments', to_field='code'),
),
migrations.AlterField(
model_name='changerequesttemplateattachments',
name='file_upload',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='template_attachments', to='entities.MasterAttachment'),
),
]
...@@ -435,6 +435,16 @@ class BaseStakeholder(models.Model): ...@@ -435,6 +435,16 @@ class BaseStakeholder(models.Model):
abstract = True abstract = True
class MasterAttachment(models.Model):
url = models.FileField(
upload_to='uploads/',
blank=True,
null=True)
class Meta:
db_table = 'master_attachments'
class BaseAttachment(models.Model): class BaseAttachment(models.Model):
attachment_type = models.CharField(max_length=255) attachment_type = models.CharField(max_length=255)
attachment_name = models.CharField(max_length=255) attachment_name = models.CharField(max_length=255)
...@@ -451,10 +461,6 @@ class BaseAttachment(models.Model): ...@@ -451,10 +461,6 @@ class BaseAttachment(models.Model):
User, User,
on_delete=models.DO_NOTHING, on_delete=models.DO_NOTHING,
to_field='code') to_field='code')
file_upload = models.FileField(
upload_to='uploads/',
blank=True,
null=True)
created = models.DateTimeField( created = models.DateTimeField(
blank=True, blank=True,
null=True) null=True)
...@@ -580,6 +586,13 @@ class ChangeRequestTemplateAttachments(BaseAttachment): ...@@ -580,6 +586,13 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
code = models.CharField( code = models.CharField(
max_length=255, max_length=255,
unique=True) unique=True)
file_upload = models.ForeignKey(
MasterAttachment,
on_delete=models.PROTECT,
related_name='template_attachments',
blank=True,
null=True
)
template_no = models.ForeignKey( template_no = models.ForeignKey(
ChangeRequestTemplateHeader, ChangeRequestTemplateHeader,
on_delete=models.DO_NOTHING, on_delete=models.DO_NOTHING,
...@@ -816,10 +829,18 @@ class ChangeRequestFormAttachments(BaseAttachment): ...@@ -816,10 +829,18 @@ class ChangeRequestFormAttachments(BaseAttachment):
on_delete=models.DO_NOTHING, on_delete=models.DO_NOTHING,
to_field='form_code', to_field='form_code',
related_name='frm_attachments') related_name='frm_attachments')
file_upload = models.ForeignKey(
MasterAttachment,
on_delete=models.PROTECT,
related_name='form_attachments',
blank=True,
null=True
)
tmp_attach = models.ForeignKey( tmp_attach = models.ForeignKey(
ChangeRequestTemplateAttachments, ChangeRequestTemplateAttachments,
null=True, null=True,
blank=True, blank=True,
related_name="template_attachments",
on_delete=models.DO_NOTHING, on_delete=models.DO_NOTHING,
to_field='code') to_field='code')
......
...@@ -14,9 +14,14 @@ Including another URLconf ...@@ -14,9 +14,14 @@ Including another URLconf
2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
""" """
from django.contrib import admin from django.contrib import admin
from django.urls import path, include from django.urls import path, include, re_path
from django.conf.urls import url from django.conf.urls import url
from app.applicationlayer.management.notification import views as notifview from app.applicationlayer.management.notification import views as notifview
from django.views.static import serve
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [ urlpatterns = [
...@@ -28,4 +33,12 @@ urlpatterns = [ ...@@ -28,4 +33,12 @@ urlpatterns = [
path('api/v1/master/', include('app.applicationlayer.master.urls')), path('api/v1/master/', include('app.applicationlayer.master.urls')),
url(r'^chat/$', notifview.index, name='index'), url(r'^chat/$', notifview.index, name='index'),
url(r'^chat/(?P<room_name>[^/]+)/$', notifview.room, name='room'), url(r'^chat/(?P<room_name>[^/]+)/$', notifview.room, name='room'),
re_path(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}),
re_path(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}),
] ]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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