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