mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 01:12:08 +01:00 
			
		
		
		
	Send mail to users when the note balance is negative
This commit is contained in:
		@@ -131,15 +131,22 @@ class Profile(models.Model):
 | 
			
		||||
        return reverse('user_detail', args=(self.pk,))
 | 
			
		||||
 | 
			
		||||
    def send_email_validation_link(self):
 | 
			
		||||
        subject = _("Activate your Note Kfet account")
 | 
			
		||||
        message = loader.render_to_string('registration/mails/email_validation_email.html',
 | 
			
		||||
        subject = "[Note Kfet]" + _("Activate your Note Kfet account")
 | 
			
		||||
        message = loader.render_to_string('registration/mails/email_validation_email.txt',
 | 
			
		||||
                                          {
 | 
			
		||||
                                              'user': self.user,
 | 
			
		||||
                                              'domain': os.getenv("NOTE_URL", "note.example.com"),
 | 
			
		||||
                                              'token': email_validation_token.make_token(self.user),
 | 
			
		||||
                                              'uid': urlsafe_base64_encode(force_bytes(self.user.pk)),
 | 
			
		||||
                                          })
 | 
			
		||||
        self.user.email_user(subject, message)
 | 
			
		||||
        html = loader.render_to_string('registration/mails/email_validation_email.txt',
 | 
			
		||||
                                          {
 | 
			
		||||
                                              'user': self.user,
 | 
			
		||||
                                              'domain': os.getenv("NOTE_URL", "note.example.com"),
 | 
			
		||||
                                              'token': email_validation_token.make_token(self.user),
 | 
			
		||||
                                              'uid': urlsafe_base64_encode(force_bytes(self.user.pk)),
 | 
			
		||||
                                          })
 | 
			
		||||
        self.user.email_user(subject, message, html_message=html)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Club(models.Model):
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ from django.conf import settings
 | 
			
		||||
from django.core.exceptions import ValidationError
 | 
			
		||||
from django.core.validators import RegexValidator
 | 
			
		||||
from django.db import models
 | 
			
		||||
from django.template.loader import render_to_string
 | 
			
		||||
from django.utils import timezone
 | 
			
		||||
from django.utils.translation import gettext_lazy as _
 | 
			
		||||
from polymorphic.models import PolymorphicModel
 | 
			
		||||
@@ -67,6 +68,13 @@ class Note(PolymorphicModel):
 | 
			
		||||
 | 
			
		||||
    pretty.short_description = _('Note')
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def last_negative_duration(self):
 | 
			
		||||
        if self.balance >= 0 or self.last_negative is None:
 | 
			
		||||
            return None
 | 
			
		||||
        delta = timezone.now() - self.last_negative
 | 
			
		||||
        return "{:d} jours".format(delta.days)
 | 
			
		||||
 | 
			
		||||
    def save(self, *args, **kwargs):
 | 
			
		||||
        """
 | 
			
		||||
        Save note with it's alias (called in polymorphic children)
 | 
			
		||||
@@ -128,6 +136,21 @@ class NoteUser(Note):
 | 
			
		||||
    def pretty(self):
 | 
			
		||||
        return _("%(user)s's note") % {'user': str(self.user)}
 | 
			
		||||
 | 
			
		||||
    def save(self, *args, **kwargs):
 | 
			
		||||
        if self.pk and self.balance < 0:
 | 
			
		||||
            old_note = NoteUser.objects.get(pk=self.pk)
 | 
			
		||||
            if old_note.balance >= 0:
 | 
			
		||||
                # Passage en négatif
 | 
			
		||||
                self.last_negative = timezone.now()
 | 
			
		||||
                self.send_mail_negative_balance()
 | 
			
		||||
        super().save(*args, **kwargs)
 | 
			
		||||
 | 
			
		||||
    def send_mail_negative_balance(self):
 | 
			
		||||
        plain_text = render_to_string("note/mails/negative_balance.txt", dict(note=self))
 | 
			
		||||
        html = render_to_string("note/mails/negative_balance.html", dict(note=self))
 | 
			
		||||
        self.user.email_user("[Note Kfet] Passage en négatif (compte n°{:d})"
 | 
			
		||||
                             .format(self.user.pk), plain_text, html_message=html)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class NoteClub(Note):
 | 
			
		||||
    """
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ from django.utils import timezone
 | 
			
		||||
from django.utils.translation import gettext_lazy as _
 | 
			
		||||
from polymorphic.models import PolymorphicModel
 | 
			
		||||
 | 
			
		||||
from .notes import Note, NoteClub, NoteSpecial
 | 
			
		||||
from .notes import Note, NoteClub, NoteSpecial, NoteUser
 | 
			
		||||
from ..templatetags.pretty_money import pretty_money
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
 
 | 
			
		||||
 Submodule apps/scripts updated: dce51ad261...4b37f8286f
									
								
							
		Reference in New Issue
	
	Block a user