from django.template.loader import render_to_string from django.utils.translation import gettext as _ from common.utils import get_logger from common.utils.timezone import local_now_display from notifications.notifications import UserMessage logger = get_logger(__file__) class LDAPImportMessage(UserMessage): def __init__(self, user, extra_kwargs): super().__init__(user) self.orgs = extra_kwargs.pop('orgs', []) self.end_time = extra_kwargs.pop('end_time', '') self.start_time = extra_kwargs.pop('start_time', '') self.time_start_display = extra_kwargs.pop('time_start_display', '') self.new_users = extra_kwargs.pop('new_users', []) self.errors = extra_kwargs.pop('errors', []) self.cost_time = extra_kwargs.pop('cost_time', '') def get_html_msg(self) -> dict: subject = _('Notification of Synchronized LDAP User Task Results') context = { 'orgs': self.orgs, 'start_time': self.time_start_display, 'end_time': local_now_display(), 'cost_time': self.cost_time, 'users': self.new_users, 'errors': self.errors } message = render_to_string('ldap/_msg_import_ldap_user.html', context) return { 'subject': subject, 'message': message }