Commit 45bf56ab authored by Gladys Forte's avatar Gladys Forte

Merge pull request #617 in RMS/api-main-service from red-develop to product-dev

* commit 'ea76b5af':
  added endpoint rms dashboard
  added new model cms_settings for the feature of product
parents 087fe72a ea76b5af
from rest_framework.views import APIView
from rest_framework import viewsets
from rest_framework.response import Response
from app.entities import enums
from app.applicationlayer.utils import main_threading
from app.helper.email_service import sender
from rest_framework.permissions import AllowAny
from app.entities.models import (
User, Company, Department
)
from app.applicationlayer.master.dashboard.serializer import (
RMSDashBoardSerializer
)
from app.applicationlayer.utils import CustomPagination
from app.entities import enums
from django.db.models import Count
class RMSDashBoardViewSet(APIView):
def get(self, request, format=None):
# try:
enums_company = enums.UserTypeEnum.COMPANY_USER_ADMIN.value
enums_department = enums.UserTypeEnum.DEPARTMENT_USER_ADMIN.value
user_type = request.user.user_type
user_company = request.user.department.company.code
user_department = request.user.department.code
department_count = ''
company_count = ''
user_count = ''
arr_company = []
recently_company = {}
recently_users = User.objects.all().values(
'name',
'department__company__name',
'department__name',
'date_joined'
).order_by('-date_joined')[0:9]
if user_type == enums_department:
company_count = 1
department_count = 1
user_count = User.objects.filter(
department=str(user_department)
).count()
recently_company['company_name'] = request.user.department.company.name
recently_company['no_department'] = Department.objects.filter(
code=str(user_department)
).count()
recently_company['no_users'] = user_count
recently_company['date_added'] = request.user.department.company.created
arr_company.append(recently_company)
elif user_type == enums_company:
company_count = 1
user_count = User.objects.filter(
department__company=str(user_company)
).count()
department_count = Department.objects.filter(
company=str(user_company)
).count()
recently_company['company_name'] = request.user.department.company.name
recently_company['no_department'] = department_count
recently_company['no_users'] = User.objects.filter(
department__company__code=str(user_company)
).count()
recently_company['date_added'] = request.user.department.company.created
arr_company.append(recently_company)
else:
company_count = Company.objects.all().count()
companies = Company.objects.all()[0:10]
department_count = Department.objects.all().count()
user_count = User.objects.all().count()
for data in companies:
recently_company['name'] = data.name
recently_company['no_department'] = Department.objects.filter(
company=str(data.code)
).count()
recently_company['no_users'] = User.objects.filter(
department__company__code=str(data.code)
).count()
recently_company['date_added'] = data.created
arr_company.append(recently_company)
recently_company = {}
data = {
"company_count": company_count,
"department_count": department_count,
"user_count": user_count,
"recently_company": arr_company,
"recently_users": recently_users
}
return Response(data)
# except Exception as e:
# return Response(
# {'message': "query params department_code and company_code are both expected"},
# status=status.HTTP_400_BAD_REQUEST
# )
\ No newline at end of file
......@@ -6,14 +6,17 @@ from app.applicationlayer.master.company.views import AdminCompanyViewSet
from app.applicationlayer.master.department.views import AdminDepartmentViewSet
from app.applicationlayer.master.user_type.views import UserTypeViewSet
from app.applicationlayer.master.attachment.views import MasterAttachmentViewSet
from app.applicationlayer.master.dashboard.views import RMSDashBoardViewSet
router = routers.DefaultRouter()
router.register(r'users', AdminAccountViewSet)
router.register(r'companies', AdminCompanyViewSet)
router.register(r'departments', AdminDepartmentViewSet)
router.register(r'attachments', MasterAttachmentViewSet)
# router.register(r'dashboard', RMSDashBoardViewSet)
urlpatterns = [
path('', include(router.urls)),
url(r'^user-types/$', UserTypeViewSet.as_view(), name="user-types"),
url(r'^dashbaord/$', RMSDashBoardViewSet.as_view(), name="dashbaord"),
]
\ No newline at end of file
......@@ -2,6 +2,8 @@ from enum import Enum
class ModelSeriesEnum(Enum):
USER = "USR"
CMS_SETTINGS = "cms_settings"
# CLIENT = "CLI"
# CONSUMABLEPRODUCTS = "CSP"
# PROJECT = "PRJ"
......
# Generated by Django 2.2 on 2020-01-13 14:58
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('entities', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='ChangeRequestSettings',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(auto_now_add=True)),
('createdby', models.CharField(max_length=255)),
('modified', models.DateTimeField(auto_now=True)),
('modifiedby', models.CharField(max_length=255)),
('code', models.CharField(max_length=255, unique=True)),
('behalf_approved', models.BooleanField(default=False)),
('behalf_accepted', models.BooleanField(default=False)),
('behalf_rejected', models.BooleanField(default=False)),
('behalf_implemented', models.BooleanField(default=False)),
('behalf_completed', models.BooleanField(default=False)),
('active_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cms_settings_active_users', to=settings.AUTH_USER_MODEL, to_field='code')),
('behalf_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cms_settings_behalf_users', to=settings.AUTH_USER_MODEL, to_field='code')),
],
options={
'db_table': 'change_request_settings',
'ordering': ['-created'],
},
),
]
......@@ -1224,6 +1224,44 @@ class AssetGroup(models.Model):
super(AssetGroup, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.ASSET_GROUP.value, self.id)
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
class ChangeRequestSettings(AuditClass):
code = models.CharField(unique=True, max_length=255)
active_user = models.ForeignKey(
User,
on_delete=models.CASCADE,
to_field='code',
related_name='cms_settings_active_users'
)
behalf_user = models.ForeignKey(
User,
on_delete=models.CASCADE,
to_field='code',
related_name='cms_settings_behalf_users'
)
behalf_approved = models.BooleanField(default=False)
behalf_accepted = models.BooleanField(default=False)
behalf_rejected = models.BooleanField(default=False)
behalf_implemented = models.BooleanField(default=False)
behalf_completed = models.BooleanField(default=False)
class Meta:
db_table = 'change_request_settings'
ordering = ['-created']
def __str__(self):
return f'{self.code}'
def save(self, *args, **kwargs):
super(ChangeRequestSettings, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.ModelSeriesEnum.value, self.id)
if self.code == '':
self.code = code
self.created = datetime.now()
......
This diff is collapsed.
......@@ -19,3 +19,4 @@ docker run -d --restart=always -p 3001:3000 sit_rms_webv2 npm start
Clear Cache REDIS
config set stop-writes-on-bgsave-error no
docker run -p 6379:6379 -d redis:2.8
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