123 lines
4.8 KiB
Python
Executable File
123 lines
4.8 KiB
Python
Executable File
from django.shortcuts import render
|
|
from django.template.loader import render_to_string
|
|
from django.http import HttpResponse, StreamingHttpResponse, JsonResponse
|
|
from django.core.mail import EmailMessage
|
|
from django.conf import settings
|
|
import logging
|
|
import json
|
|
from hrm.models import *
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
def sendMail(subject, message, to_email, employee, absence_days, file):
|
|
logger.info('Sending Mail')
|
|
subject = subject
|
|
emailMessage = render_to_string('email/email_base.html', {'title': subject, 'message': message, 'employee': employee, "absence_days": absence_days})
|
|
from_mail = settings.DEFAULT_FROM_EMAIL
|
|
msg = EmailMessage(subject, emailMessage, from_mail, [to_email])
|
|
if file:
|
|
if type(file) == list:
|
|
for f in file:
|
|
msg.attach_file(f)
|
|
else:
|
|
msg.attach_file(file)
|
|
msg.content_subtype='html'
|
|
msg.send()
|
|
|
|
def get_existing_holidays(request):
|
|
try:
|
|
employee_id = request.GET.get('employee_id')
|
|
emp = employee.objects.get(id=employee_id)
|
|
dept_emp = employee.objects.filter(department__name=emp.department)
|
|
existing = []
|
|
for e in dept_emp:
|
|
ext = absence_days.objects.filter(taken_by=e)
|
|
for ex in ext:
|
|
name = f"{ex.taken_by.employee.first_name} {ex.taken_by.employee.last_name}"
|
|
existing.append({"title": name, "start": str(ex.date_from), "end":str(ex.date_to)})
|
|
response = JsonResponse(existing, safe=False)
|
|
return response
|
|
except Exception as e:
|
|
logger.error(repr(e))
|
|
messageTitle = "Oops!"
|
|
messageStatus = 'text-bg-danger'
|
|
message = str(repr(e))
|
|
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
|
return response
|
|
|
|
def toggle_link(request):
|
|
try:
|
|
data = json.loads(request.POST.get('data', ''))
|
|
print(f"link_id={data['link_id']}")
|
|
link = homepage_links.objects.get(id=data['link_id'])
|
|
if data['checked'] == True:
|
|
link.enabled=True
|
|
elif data['checked'] == False:
|
|
link.enabled=False
|
|
link.save()
|
|
messageTitle = "Success"
|
|
messageStatus = 'text-bg-success'
|
|
message = f"{link.name} has been toggled"
|
|
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
|
return response
|
|
except Exception as e:
|
|
logger.error(repr(e))
|
|
messageTitle = "Oops!"
|
|
messageStatus = 'text-bg-danger'
|
|
message = str(repr(e))
|
|
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
|
return response
|
|
|
|
def get_links(request):
|
|
try:
|
|
links=[]
|
|
for link in homepage_links.objects.all():
|
|
links.append({'id': link.id, 'name': link.name, 'link': link.link, 'enabled': link.enabled})
|
|
response = JsonResponse({'links':links})
|
|
return response
|
|
except Exception as e:
|
|
logger.error(repr(e))
|
|
messageTitle = "Oops!"
|
|
messageStatus = 'text-bg-danger'
|
|
message = str(repr(e))
|
|
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
|
return response
|
|
|
|
def add_homepage_link(request):
|
|
try:
|
|
data = json.loads(request.POST.get('data', ''))
|
|
link = homepage_links.objects.create(
|
|
name=data['name'],
|
|
link=data['link'],
|
|
enabled=data['enabled']
|
|
)
|
|
messageTitle = "Success"
|
|
messageStatus = 'text-bg-success'
|
|
message = f"{link.name} has been created"
|
|
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
|
return response
|
|
except Exception as e:
|
|
logger.error(repr(e))
|
|
messageTitle = "Oops!"
|
|
messageStatus = 'text-bg-danger'
|
|
message = str(repr(e))
|
|
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
|
return response
|
|
|
|
def delete_link(request):
|
|
try:
|
|
data = json.loads(request.POST.get('data', ''))
|
|
link = homepage_links.objects.get(id = data['link_id'])
|
|
link.delete()
|
|
messageTitle = "Success"
|
|
messageStatus = 'text-bg-warning'
|
|
message = f"{link.name} has been deleted"
|
|
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
|
return response
|
|
except Exception as e:
|
|
logger.error(repr(e))
|
|
messageTitle = "Oops!"
|
|
messageStatus = 'text-bg-danger'
|
|
message = str(repr(e))
|
|
response = JsonResponse({'messageTitle':messageTitle, 'message': message, 'messageStatus':messageStatus})
|
|
return response |