"""File containing Members application views.""" from django.shortcuts import render from django.contrib.auth.decorators import permission_required from django.views.decorators.http import require_http_methods from django.views.decorators.csrf import ensure_csrf_cookie from django.http import HttpResponse, HttpResponseRedirect from django.core.mail import send_mail from django.conf import settings from django.utils.translation import ugettext as _ from django.forms.models import model_to_dict # Email validation from django.db.models.signals import post_save from django.dispatch import receiver from django.utils.http import urlsafe_base64_encode from django.utils.encoding import force_bytes import json import requests import logging import html import csv import pickle from smtplib import SMTPAuthenticationError from members.models import Member, Request, Payment from members.forms import MemberForm, PaymentForm, ApplicationForm, CSVValidationError from members.views.utils import send_mail_wrapper @receiver(post_save, sender=Member) def email_on_accept(sender, instance, created, **kwargs): """Send email to accepted member.""" if not settings.ENABLE_AUTOMATIC_EMAILS: return try: if created: subject = _('Aalto-yliopiston Sähköinsinöörikillan jäsenhakemuksesi on hyväksytty') message = (_('Moikka ja onnittelut') + ',\r\n\r\n' + _('olet nyt virallisesti Aalto-yliopiston Sähköinsinöörikillan jäsen!') + '\r\n') send_mail_wrapper(subject, message, instance.email) except SMTPAuthenticationError: logging.error('Failed to send email to accepted member!')