from django.core.mail import send_mail from django.conf import settings def send_notification_email(user, sujet, message): """ Fonction générique pour envoyer un email simple """ if not user.email: return send_mail( sujet, message, settings.DEFAULT_FROM_EMAIL, [user.email], fail_silently=False, ) def email_reservation_creee(reservation): user = reservation.employe.user message = f""" Bonjour {user.get_full_name()}, Votre réservation a été enregistrée avec succès. Salle : {reservation.salle} Date : {reservation.date_debut} Heure : {reservation.heure_debut} - {reservation.heure_fin} Motif : {reservation.motif_reservation} Merci. """ send_notification_email(user, "Confirmation de votre réservation", message) def email_reservation_directeur(reservation, directeur): message = f""" Bonjour {directeur.get_full_name()}, Une nouvelle réservation attend votre validation. Employé : {reservation.employe.user.get_full_name()} Salle : {reservation.salle} Date : Du {reservation.date_debut} au {reservation.date_fin} Heure : {reservation.heure_debut} - {reservation.heure_fin} Motif : {reservation.motif_reservation} Connectez-vous à la plateforme pour valider. https://support.cerfig.org/login/ Cordialement, SIRH """ send_notification_email(directeur, "Nouvelle réservation à valider", message) def email_reservation_zoom(reservation, admin): message = f""" Bonjour {admin.get_full_name()}, Une demande de lien Zoom a été faite. Employé : {reservation.employe.user.get_full_name()} Date : {reservation.date_debut} au {reservation.date_fin} Heure : {reservation.heure_debut} - {reservation.heure_fin} Motif : {reservation.motif_reservation} Veuillez créer le lien Zoom. https://support.cerfig.org/login/ Cordialement, SIRH """ send_notification_email(admin, "Création lien Zoom requise", message) def email_statut_reservation(reservation): user = reservation.employe.user message = f""" Bonjour {user.get_full_name()}, Le statut de votre réservation a été mis à jour. Salle : {reservation.salle} Date : {reservation.date_debut} Statut : {reservation.statut} Merci de vous connecter https://support.cerfig.org Cordialement, SIRH """ send_notification_email(user, "Mise à jour de votre réservation", message) def email_reservation_validee(reservation): user = reservation.employe.user message = f""" Bonjour {user.get_full_name()}, Votre réservation a été VALIDÉE. Salle : {reservation.salle} Date : {reservation.date_debut} https://support.cerfig.org/login/ Cordialement, SIRH """ send_notification_email(user, "Réservation validée", message) def email_reservation_refusee(reservation): user = reservation.employe.user message = f""" Bonjour {user.get_full_name()}, Votre réservation a été REFUSÉE. Salle : {reservation.salle} Date : {reservation.date_debut} https://support.cerfig.org/login/ Cordialement, SIRH """ send_notification_email(user, "Réservation refusée", message) def email_contrat_cree(contrat): user = contrat.employe.user message = f""" Bonjour {user.get_full_name()}, Un nouveau contrat a été créé pour vous. Date début : {contrat.date_debut} Date fin : {contrat.date_fin} Bienvenue ! Merci de vous connecter pour plus informations sur votre contrat https://support.cerfig.org Cordialement, SIRH """ send_notification_email(user, "Nouveau contrat", message) def email_statut_contrat(contrat): user = contrat.employe.user message = f""" Bonjour {user.get_full_name()}, Votre contrat a été modifier par les ressource humaine . veuillez vous connecter pour voir les nouvelles informations sur votre contrat https://support.cerfig.org/ Cordialement, SIRH """ send_notification_email(user, "Mise à jour du contrat", message) def email_affectation_projet(affectation): user = affectation.employe.user projet = affectation.projet message = f""" Bonjour {user.get_full_name()}, Votre affectation au projet a été mise à jour. Projet : {projet.nom} Description : {projet.description} Date début : {projet.date_debut} Date fin : {projet.date_fin} Rôle : {affectation.role} Cordialement, SIRH """ send_notification_email(user, "Affectation projet", message) def email_expiration_fichier(projet, fichier, chef_projet): message = f""" Bonjour {chef_projet.get_full_name()}, Un fichier est proche de son expiration. Projet : {projet.nom} Fichier : {fichier.nom} Date début : {fichier.date_debut} Date fin : {fichier.date_fin} https://support.cerfig.org/ Cordialement, SIRH """ send_notification_email(chef_projet, "Fichier proche expiration", message) def email_conge_cree(conge): user = conge.employe.user message = f""" Bonjour {user.get_full_name()}, Votre demande de congé a été enregistrée avec succès. Type de congé : {conge.type_conge} Date début : {conge.date_debut} Date fin : {conge.date_fin} Motif : {conge.motif} Votre demande est en attente de validation. https://support.cerfig.org/ Cordialement, SIRH """ send_notification_email(user, "Demande de congé enregistrée", message) def email_conge_responsable(conge, responsable): message = f""" Bonjour {responsable.get_full_name()}, Une demande de congé nécessite votre validation. Employé : {conge.employe.user.get_full_name()} Type : {conge.type_conge} Date : {conge.date_debut} au {conge.date_fin} Motif : {conge.motif} Merci de valider ou refuser. https://support.cerfig.org/ Cordialement, SIRH """ send_notification_email(responsable, "Validation congé (Niveau 1)", message) def email_conge_directeur(conge, directeur): message = f""" Bonjour {directeur.get_full_name()}, Une demande de congé a été validée par le responsable et attend votre validation finale. Employé : {conge.employe.user.get_full_name()} Type : {conge.type_conge} Date : {conge.date_debut} au {conge.date_fin} Merci de valider définitivement. https://support.cerfig.org/login/ Cordialement, SIRH """ send_notification_email(directeur, "Validation congé (Niveau 2)", message) def email_conge_valide(conge): user = conge.employe.user message = f""" Bonjour {user.get_full_name()}, Votre demande de congé a été VALIDÉE. Type : {conge.type_conge} Date : {conge.date_debut} au {conge.date_fin} Bon repos a vous https://support.cerfig.org Cordialement, SIRH """ send_notification_email(user, "Congé validé", message) def email_conge_refuse(conge): user = conge.employe.user message = f""" Bonjour {user.get_full_name()}, Votre demande de congé a été REFUSÉE. Type : {conge.type_conge} Date : {conge.date_debut} au {conge.date_fin} Motif : {conge.motif_refus or "Non précisé"} https://support.cerfig.org Cordialement, SIRH """ send_notification_email(user, "Congé refusé", message)