def send_notification_email(self, token): email = Email( [token.email, ], html_template='emails/subscription/journal/new_subscription_content.html', subject_template='emails/subscription/journal/new_subscription_subject.html', extra_context={'token': token}) email.send()
def send_notification_email_after_issue_submission_approval( sender, issue_submission, transition_name, request, **kwargs): if not issue_submission.is_validated: return emails = [ issue_submission.contact.email, ] extra_context = { 'issue': issue_submission, 'journal': issue_submission.journal } comment = issue_submission.status_tracks.last().comment if comment: extra_context['comment'] = comment email = Email( emails, from_email=settings.PUBLISHER_EMAIL, html_template='emails/editor/issue_submission_validated_content.html', subject_template= 'emails/editor/issue_submission_validated_subject.html', extra_context=extra_context) email.send()
def send_notification_email(self, token): email = Email( [token.email, ], html_template='emails/organisation/new_member_content.html', subject_template='emails/organisation/new_member_subject.html', extra_context={'token': token}) email.send()
def send_mail(self, subject_template_name, email_template_name, context, from_email, to_email, **kwargs): """ Overrides the builtin `PasswordResetForm.send_mail` method to use the `core.email.Email` tool. """ email = Email( to_email, html_template=email_template_name, subject_template=subject_template_name, extra_context=context ) email.send()
def send_notification_email(self, token): email = Email( [ token.email, ], html_template= 'emails/subscription/journal/new_subscription_content.html', subject_template= 'emails/subscription/journal/new_subscription_subject.html', extra_context={'token': token}) email.send()
def send_mail(self, subject_template_name, email_template_name, context, from_email, to_email, **kwargs): """ Overrides the builtin `PasswordResetForm.send_mail` method to use the `core.email.Email` tool. """ email = Email(to_email, html_template=email_template_name, subject_template=subject_template_name, extra_context=context) email.send()
def send_production_team_email(sender, issue_submission, transition_name, request, **kwargs): if not issue_submission.is_submitted: return production_team_group = get_production_team_group(issue_submission.journal) if production_team_group is None: return emails = list(production_team_group.user_set.values_list('email', flat=True)) if not emails: return email = Email( emails, html_template='emails/editor/new_issue_submission_content.html', subject_template='emails/editor/new_issue_submission_subject.html', extra_context={'issue': issue_submission}) email.send()
def send_production_team_email(sender, instance, name, source, target, **kwargs): if not instance.is_submitted: return production_team = get_production_team_group() if production_team is None: return emails = production_team.user_set.values_list('email', flat=True) if not emails: return email = Email( emails, html_template='userspace/journal/editor/emails/new_issue_submission_content.html', subject_template='userspace/journal/editor/emails/new_issue_submission_subject.html', extra_context={'issue': instance}) email.send()
def _handle_issuesubmission_files_removal(): now_dt = tz.now() # First, fetches the issue submissions whose files must be deleted. for issue in IssueSubmission.objects.archived_expired(): for fversion in issue.files_versions.all(): [rf.delete() for rf in fversion.submissions.all()] issue.archived = True issue.save() # Fetches the production team group production_team = get_production_team_group() if production_team is None: logger.error( """Cannot send issue submission removal notification email. There is NO production team """) return # Now fetches the issue submissions that will soon be deleted. The production team must be # informed that the deletion will occur in a few days. email_limit_dt = now_dt - dt.timedelta( days=editor_settings.ARCHIVE_DAY_OFFSET - 5) email_limit_dt_range = [ email_limit_dt.replace(hour=0, minute=0, second=0, microsecond=0), email_limit_dt.replace(hour=23, minute=59, second=59, microsecond=999999), ] issue_submissions_to_email = IssueSubmission.objects.filter( status=IssueSubmission.VALID, date_modified__range=email_limit_dt_range) if issue_submissions_to_email.exists(): emails = production_team.user_set.values_list('email', flat=True) if not emails: return email = Email( list(emails), html_template='emails/editor/issue_files_deletion_content.html', subject_template='emails/editor/issue_files_deletion_subject.html', extra_context={'issue_submissions': issue_submissions_to_email}) email.send()
def send_notification_email_after_issue_submission_refusal( sender, issue_submission, transition_name, request, **kwargs): if not issue_submission.is_draft: return extra_context = {'issue': issue_submission} emails = [issue_submission.contact.email, ] comment = issue_submission.status_tracks.last().comment if comment: extra_context['comment'] = comment email = Email( emails, from_email=settings.PUBLISHER_EMAIL, html_template='emails/editor/issue_submission_refused_content.html', subject_template='emails/editor/issue_submission_refused_subject.html', extra_context=extra_context) email.send()
def _handle_issuesubmission_files_removal(): now_dt = tz.now() # First, fetches the issue submissions whose files must be deleted. deletion_limit_dt = now_dt - dt.timedelta(days=editor_settings.ARCHIVE_DAY_OFFSET) deletion_limit_dt_range = [ deletion_limit_dt.replace(hour=0, minute=0, second=0, microsecond=0), deletion_limit_dt.replace(hour=23, minute=59, second=59, microsecond=999999), ] issue_submissions_to_remove = IssueSubmission.objects.filter( status=IssueSubmission.VALID, date_modified__range=deletion_limit_dt_range) for issue in issue_submissions_to_remove: for fversion in issue.files_versions.all(): [rf.delete() for rf in fversion.submissions.all()] issue.archived = True issue.save() # Fetches the production team group production_team = get_production_team_group() if production_team is None: return # Now fetches the issue submissions that will soon be deleted. The production team must be # informed that the deletion will occur in a few days. email_limit_dt = now_dt - dt.timedelta(days=editor_settings.ARCHIVE_DAY_OFFSET - 5) email_limit_dt_range = [ email_limit_dt.replace(hour=0, minute=0, second=0, microsecond=0), email_limit_dt.replace(hour=23, minute=59, second=59, microsecond=999999), ] issue_submissions_to_email = IssueSubmission.objects.filter( status=IssueSubmission.VALID, date_modified__range=email_limit_dt_range) if issue_submissions_to_email.exists(): emails = production_team.user_set.values_list('email', flat=True) if not emails: return email = Email( list(emails), html_template='emails/editor/issue_files_deletion_content.html', subject_template='emails/editor/issue_files_deletion_subject.html', extra_context={'issue_submissions': issue_submissions_to_email}) email.send()
def send_production_team_email(sender, issue_submission, transition_name, request, **kwargs): if not issue_submission.is_submitted: return production_team_group = get_production_team_group(issue_submission.journal) if production_team_group is None: return emails = list( production_team_group.user_set.values_list('email', flat=True)) if not emails: return email = Email( emails, html_template='emails/editor/new_issue_submission_content.html', subject_template='emails/editor/new_issue_submission_subject.html', extra_context={'issue': issue_submission}) email.send()