first comit
This commit is contained in:
259
manager/views.py
Executable file
259
manager/views.py
Executable file
@@ -0,0 +1,259 @@
|
||||
from django.shortcuts import render, get_object_or_404, redirect
|
||||
from hrm.models import *
|
||||
from custom_user.models import User
|
||||
from django.contrib.auth.decorators import login_required
|
||||
import json
|
||||
from django.http import HttpResponseRedirect, HttpResponse, JsonResponse
|
||||
from django.urls import reverse
|
||||
from datetime import datetime
|
||||
from api.views import sendMail
|
||||
|
||||
|
||||
@login_required
|
||||
def add_employee(request):
|
||||
if request.method == 'GET':
|
||||
context = {
|
||||
"companies": company.objects.all(),
|
||||
"department": department.objects.all(),
|
||||
"pay_structure": pay_choices,
|
||||
"managers": employee.objects.filter(groups__name='Manager'),
|
||||
"segment": "add_employee"
|
||||
}
|
||||
return render(request, 'manager/add_employee.html', context)
|
||||
|
||||
@login_required
|
||||
def select_employee(request):
|
||||
employees = employee.objects.all()
|
||||
context = {
|
||||
'employees': employees,
|
||||
"segment": "edit_employee"
|
||||
}
|
||||
return render(request, 'manager/select_employee.html', context)
|
||||
|
||||
@login_required
|
||||
def edit_employee(request):
|
||||
if request.method == 'GET':
|
||||
employee_id = request.GET.get('employee_id')
|
||||
user = User.objects.get(email='josh@themainframe.co.uk')
|
||||
employee_object = get_object_or_404(employee, id=employee_id)
|
||||
context = {
|
||||
"employee": employee_object,
|
||||
"companies": company.objects.all(),
|
||||
"department": department.objects.all(),
|
||||
"pay_structure": pay_choices,
|
||||
"managers": employee.objects.filter(groups__name='Manager'),
|
||||
"segment": "edit_employee"
|
||||
}
|
||||
return render(request, 'manager/edit_employee.html', context)
|
||||
elif (request.method == 'POST' and request.user.is_staff):
|
||||
try:
|
||||
data = json.loads(request.POST.get('data', ''))
|
||||
formData = data['formData']
|
||||
employee_object = employee.objects.get(id=formData['employee_id'])
|
||||
u = User.objects.get(id=employee_object.employee.id)
|
||||
for key,value in formData.items():
|
||||
if key == 'employee_id':
|
||||
pass
|
||||
elif (not key.startswith('User') and 'date' not in key):
|
||||
setattr(employee_object, key, value)
|
||||
elif 'date' in key:
|
||||
print(value)
|
||||
if value != "None":
|
||||
date = datetime.strptime(value, "%d %b %Y").strftime("%Y-%m-%d")
|
||||
setattr(employee_object, key, date)
|
||||
elif key.startswith('User'):
|
||||
key = key.split('__')[1]
|
||||
setattr(u, key, value)
|
||||
employee_object.save()
|
||||
u.save()
|
||||
message = f"{employee_object.employee.first_name} {employee_object.employee.last_name} has been saved."
|
||||
messageTitle = "Success!"
|
||||
messageStatus = 'text-bg-success'
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
||||
return response
|
||||
except Exception as e:
|
||||
#logger.error(repr(e))
|
||||
print(repr(e))
|
||||
messageTitle = "Oops!"
|
||||
messageStatus = 'text-bg-danger'
|
||||
message = str(repr(e))
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
||||
return response
|
||||
|
||||
@login_required
|
||||
def select_department(request):
|
||||
departments = department.objects.all()
|
||||
context = {
|
||||
'departments': departments,
|
||||
"segment": "departments"
|
||||
}
|
||||
return render(request, 'manager/select_departments.html', context)
|
||||
|
||||
@login_required
|
||||
def edit_department(request):
|
||||
if request.method == 'GET':
|
||||
d = department.objects.get(id=request.GET.get('department_id'))
|
||||
emp = employee.objects.filter(company__id=d.company_set.first().id)
|
||||
empl = []
|
||||
for e in emp:
|
||||
empl.append(f"{e.id}")
|
||||
context = {
|
||||
"department": d,
|
||||
"employees": employee.objects.all(),
|
||||
"emp": empl,
|
||||
"managers": employee.objects.filter(groups__name='Manager'),
|
||||
"segment": "department"
|
||||
}
|
||||
return render(request, 'manager/edit_department.html', context)
|
||||
elif request.method == 'POST':
|
||||
try:
|
||||
data = json.loads(request.POST.get('data', ''))
|
||||
dept = department.objects.get(id=data['department_id'])
|
||||
dept.name=data['departmentName']
|
||||
dept.line_manager = employee.objects.get(id=data['lineManager']).employee
|
||||
dept.save()
|
||||
message = f"{data['departmentName']} has been saved."
|
||||
messageTitle = "Success!"
|
||||
messageStatus = 'text-bg-success'
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus, 'department_id': dept.id})
|
||||
return response
|
||||
except Exception as e:
|
||||
#logger.error(repr(e))
|
||||
print(repr(e))
|
||||
messageTitle = "Oops!"
|
||||
messageStatus = 'text-bg-danger'
|
||||
message = str(repr(e))
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
||||
return response
|
||||
|
||||
@login_required
|
||||
def add_department(request):
|
||||
try:
|
||||
user = employee.objects.get(employee__id=request.user.id)
|
||||
print(user)
|
||||
if request.method == 'POST':
|
||||
data = json.loads(request.POST.get('data', ''))
|
||||
department.objects.create(name=data['departmentName'], manager=employee.objects.get(id=data['lineManager']).employee)
|
||||
dept = department.objects.get(name=data['departmentName'], manager=employee.objects.get(id=data['lineManager']).employee)
|
||||
message = f"{data['departmentName']} has been added."
|
||||
messageTitle = "Success!"
|
||||
messageStatus = 'text-bg-success'
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus, 'department_id': dept.id})
|
||||
return response
|
||||
except Exception as e:
|
||||
#logger.error(repr(e))
|
||||
print(repr(e))
|
||||
messageTitle = "Oops!"
|
||||
messageStatus = 'text-bg-danger'
|
||||
message = str(repr(e))
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
||||
return response
|
||||
|
||||
# approve holidays
|
||||
|
||||
#
|
||||
|
||||
def company_editor(request):
|
||||
context = {
|
||||
'segment': 'company',
|
||||
"companies": company.objects.all()
|
||||
}
|
||||
return render(request, "manager/company.html", context)
|
||||
|
||||
def add_company(request):
|
||||
if request.method == 'GET':
|
||||
|
||||
context = {
|
||||
'segment': 'company',
|
||||
"departments": department.objects.all(),
|
||||
"managers": employee.objects.filter(groups__name='Manager'),
|
||||
}
|
||||
|
||||
return render(request, 'manager/add_company.html', context)
|
||||
if request.method == 'POST':
|
||||
def check_exists(name):
|
||||
try:
|
||||
test = company.objects.get(name = name)
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
try:
|
||||
data = json.loads(request.POST.get('data', ''))
|
||||
formData = data['formData']
|
||||
if check_exists(formData['name']) == False:
|
||||
comp = company.objects.create(
|
||||
name = formData['name'],
|
||||
address_street = formData['address_street'],
|
||||
address_city = formData['address_city'],
|
||||
address_country = formData['address_country'],
|
||||
address_postcode = formData['address_postcode']
|
||||
)
|
||||
if 'vat_number' in formData:
|
||||
comp.vat_number = formData['vat_number']
|
||||
if 'contact_number' in formData:
|
||||
comp.contact_number = formData['contact_number']
|
||||
if formData['departments'] != []:
|
||||
for value in formData['departments']:
|
||||
dept = department.objects.get(id = value)
|
||||
comp.departments.add(dept)
|
||||
comp.save()
|
||||
message = f"{formData['name']} has been added."
|
||||
messageTitle = "Success!"
|
||||
messageStatus = 'text-bg-success'
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
||||
return response
|
||||
else:
|
||||
raise Exception(f"A company with the name: {formData['name']} <br> Already exists")
|
||||
except Exception as e:
|
||||
#logger.error(repr(e))
|
||||
print(repr(e))
|
||||
messageTitle = "Oops!"
|
||||
messageStatus = 'text-bg-danger'
|
||||
message = str(e)
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
||||
return response
|
||||
|
||||
def edit_company(request):
|
||||
if request.method == 'GET':
|
||||
comp = company.objects.get(id=request.GET.get('company_id'))
|
||||
d = comp.departments.all()
|
||||
departments = []
|
||||
for dep in d:
|
||||
departments.append(f"{dep.id}")
|
||||
context = {
|
||||
'segment': 'company',
|
||||
'company': comp,
|
||||
"depts": departments,
|
||||
"departments": department.objects.all(),
|
||||
"managers": employee.objects.filter(groups__name='Manager'),
|
||||
}
|
||||
|
||||
return render(request, 'manager/edit_company.html', context)
|
||||
if request.method == 'POST':
|
||||
try:
|
||||
data = json.loads(request.POST.get('data', ''))
|
||||
formData = data['formData']
|
||||
comp = company.objects.get(id=request.get('company_id'))
|
||||
for key,value in formData.items():
|
||||
if 'department' in key:
|
||||
pass
|
||||
else:
|
||||
setattr(comp, key, value)
|
||||
if formData['departments'] != []:
|
||||
for value in formData['departments']:
|
||||
dept = department.objects.get(id = value)
|
||||
comp.departments.add(dept)
|
||||
comp.save()
|
||||
message = f"{formData['name']} has been added."
|
||||
messageTitle = "Success!"
|
||||
messageStatus = 'text-bg-success'
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
||||
return response
|
||||
except Exception as e:
|
||||
#logger.error(repr(e))
|
||||
print(repr(e))
|
||||
messageTitle = "Oops!"
|
||||
messageStatus = 'text-bg-danger'
|
||||
message = str(e)
|
||||
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
||||
return response
|
||||
Reference in New Issue
Block a user