LIL-292, LIL-293, LIL-304

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent dfe7f80d93
commit 3beebb7724
  1. 13
      apps/notification/templates/notification/email/accept_author.html
  2. 8
      apps/notification/templates/notification/email/decline_author.html
  3. 2
      apps/user/admin.py
  4. 46
      apps/user/models.py

@ -0,0 +1,13 @@
{% extends "notification/email/_base.html" %}
{% block content %}
<p style="margin: 0 0 20px">Поздравляем! Вам одобрено назначение преподавателем!</p>
<div style="margin-bottom: 10px;">
<p>Теперь вы можете публиковать курсы.</p>
{% if password and email %}
<p><strong>Параметры входа:</strong></p>
<p><strong>email:</strong> {{ email }}</p>
<p><strong>пароль:</strong> {{ password }}</p>
{% endif %}
</div>
{% endblock content %}

@ -0,0 +1,8 @@
{% extends "notification/email/_base.html" %}
{% block content %}
<p style="margin: 0 0 20px">К сожалению вам отказано в назначении преподавателем!</p>
<div style="margin-bottom: 10px;">
<p>{{ cause }}</p>
</div>
{% endblock content %}

@ -28,6 +28,8 @@ class AuthorRequestAdmin(admin.ModelAdmin):
'first_name',
'last_name',
'status',
'accepted_send_at',
'declined_send_at',
'created_at',
'update_at',
)

@ -6,9 +6,11 @@ from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth.models import AbstractUser, UserManager
from django.contrib.postgres import fields as pgfields
from django.utils.timezone import now
from django.utils.translation import gettext_lazy as _
from api.v1 import serializers
from apps.notification.utils import send_email
class User(AbstractUser):
@ -130,3 +132,47 @@ class AuthorRequest(models.Model):
verbose_name = 'Заявка не преподавателя'
verbose_name_plural = 'Заявки не преподавателя'
ordering = ('-created_at',)
@receiver(post_save, sender=AuthorRequest)
def handle_authorrequest_update(sender, instance=None, created=False, update_fields=[], **kwargs):
if not created:
if instance.status == AuthorRequest.DECLINED and not instance.declined_send_at:
send_email.delay(
'Отказ заявки на преподавателя',
instance.email,
'notification/email/decline_author.html',
cause=instance.cause,
)
instance.declined_send_at = now()
instance.save()
elif instance.status == AuthorRequest.ACCEPTED and not instance.accepted_send_at:
email = None
password = None
try:
user = User.objects.get(email=instance.email)
except User.DoesNotExist:
email = instance.email
password = User.objects.make_random_password()
user = User.objects.create(
first_name=instance.first_name,
last_name=instance.last_name,
username=instance.email,
email=instance.email,
about=instance.about,
facebook=instance.facebook,
is_active=True,
is_email_proved=True,
)
user.set_password(password)
user.role = User.AUTHOR_ROLE
user.save()
send_email.delay(
'Заявка на преподавателя одобрена',
instance.email,
'notification/email/accept_author.html',
email=email,
password=password,
)
instance.accepted_send_at = now()
instance.save()

Loading…
Cancel
Save