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', 'first_name',
'last_name', 'last_name',
'status', 'status',
'accepted_send_at',
'declined_send_at',
'created_at', 'created_at',
'update_at', 'update_at',
) )

@ -6,9 +6,11 @@ from django.db.models.signals import post_save
from django.dispatch import receiver from django.dispatch import receiver
from django.contrib.auth.models import AbstractUser, UserManager from django.contrib.auth.models import AbstractUser, UserManager
from django.contrib.postgres import fields as pgfields from django.contrib.postgres import fields as pgfields
from django.utils.timezone import now
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from api.v1 import serializers from api.v1 import serializers
from apps.notification.utils import send_email
class User(AbstractUser): class User(AbstractUser):
@ -130,3 +132,47 @@ class AuthorRequest(models.Model):
verbose_name = 'Заявка не преподавателя' verbose_name = 'Заявка не преподавателя'
verbose_name_plural = 'Заявки не преподавателя' verbose_name_plural = 'Заявки не преподавателя'
ordering = ('-created_at',) 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