mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-26 06:32:26 +00:00
Merge branch 'fix_send_mail' into 'dev'
Fix l'envoie de mail, en postsave maintenant (plus propre) See merge request federez/re2o!281
This commit is contained in:
commit
c917f0b7ab
6 changed files with 37 additions and 17 deletions
20
cotisations/migrations/0034_auto_20180831_1532.py
Normal file
20
cotisations/migrations/0034_auto_20180831_1532.py
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.7 on 2018-08-31 13:32
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('cotisations', '0033_auto_20180818_1319'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='facture',
|
||||||
|
name='valid',
|
||||||
|
field=models.BooleanField(default=False, verbose_name='validated'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -50,7 +50,7 @@ from machines.models import regen
|
||||||
from re2o.field_permissions import FieldPermissionModelMixin
|
from re2o.field_permissions import FieldPermissionModelMixin
|
||||||
from re2o.mixins import AclMixin, RevMixin
|
from re2o.mixins import AclMixin, RevMixin
|
||||||
|
|
||||||
from cotisations.utils import find_payment_method
|
from cotisations.utils import find_payment_method, send_mail_invoice
|
||||||
from cotisations.validators import check_no_balance
|
from cotisations.validators import check_no_balance
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ class Facture(BaseInvoice):
|
||||||
)
|
)
|
||||||
# TODO : change name to validity for clarity
|
# TODO : change name to validity for clarity
|
||||||
valid = models.BooleanField(
|
valid = models.BooleanField(
|
||||||
default=True,
|
default=False,
|
||||||
verbose_name=_("validated")
|
verbose_name=_("validated")
|
||||||
)
|
)
|
||||||
# TODO : changed name to controlled for clarity
|
# TODO : changed name to controlled for clarity
|
||||||
|
@ -231,20 +231,26 @@ class Facture(BaseInvoice):
|
||||||
self.field_permissions = {
|
self.field_permissions = {
|
||||||
'control': self.can_change_control,
|
'control': self.can_change_control,
|
||||||
}
|
}
|
||||||
|
self.__original_valid = self.valid
|
||||||
|
|
||||||
|
def save(self, *args, **kwargs):
|
||||||
|
super(Facture, self).save(*args, **kwargs)
|
||||||
|
if not self.__original_valid and self.valid:
|
||||||
|
send_mail_invoice(self)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.user) + ' ' + str(self.date)
|
return str(self.user) + ' ' + str(self.date)
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save, sender=Facture)
|
@receiver(post_save, sender=Facture)
|
||||||
def facture_post_save(**kwargs):
|
def facture_post_save(**kwargs):
|
||||||
"""
|
"""
|
||||||
Synchronise the LDAP user after an invoice has been saved.
|
Synchronise the LDAP user after an invoice has been saved.
|
||||||
"""
|
"""
|
||||||
facture = kwargs['instance']
|
facture = kwargs['instance']
|
||||||
|
if facture.valid:
|
||||||
user = facture.user
|
user = facture.user
|
||||||
user.set_active()
|
user.set_active()
|
||||||
user.ldap_sync(base=True, access_refresh=True, mac_refresh=False)
|
user.ldap_sync(base=False, access_refresh=True, mac_refresh=False)
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_delete, sender=Facture)
|
@receiver(post_delete, sender=Facture)
|
||||||
|
@ -702,6 +708,10 @@ class Paiement(RevMixin, AclMixin, models.Model):
|
||||||
if payment_method is not None and use_payment_method:
|
if payment_method is not None and use_payment_method:
|
||||||
return payment_method.end_payment(invoice, request)
|
return payment_method.end_payment(invoice, request)
|
||||||
|
|
||||||
|
## So make this invoice valid, trigger send mail
|
||||||
|
invoice.valid = True
|
||||||
|
invoice.save()
|
||||||
|
|
||||||
# In case a cotisation was bought, inform the user, the
|
# In case a cotisation was bought, inform the user, the
|
||||||
# cotisation time has been extended too
|
# cotisation time has been extended too
|
||||||
if any(sell.type_cotisation for sell in invoice.vente_set.all()):
|
if any(sell.type_cotisation for sell in invoice.vente_set.all()):
|
||||||
|
|
|
@ -74,8 +74,6 @@ class BalancePayment(PaymentMethodMixin, models.Model):
|
||||||
user = invoice.user
|
user = invoice.user
|
||||||
total_price = invoice.prix_total()
|
total_price = invoice.prix_total()
|
||||||
if float(user.solde) - float(total_price) < self.minimum_balance:
|
if float(user.solde) - float(total_price) < self.minimum_balance:
|
||||||
invoice.valid = False
|
|
||||||
invoice.save()
|
|
||||||
messages.error(
|
messages.error(
|
||||||
request,
|
request,
|
||||||
_("Your balance is too low for this operation.")
|
_("Your balance is too low for this operation.")
|
||||||
|
|
|
@ -46,8 +46,6 @@ class ChequePayment(PaymentMethodMixin, models.Model):
|
||||||
"""Invalidates the invoice then redirect the user towards a view asking
|
"""Invalidates the invoice then redirect the user towards a view asking
|
||||||
for informations to add to the invoice before validating it.
|
for informations to add to the invoice before validating it.
|
||||||
"""
|
"""
|
||||||
invoice.valid = False
|
|
||||||
invoice.save()
|
|
||||||
return redirect(reverse(
|
return redirect(reverse(
|
||||||
'cotisations:cheque:validate',
|
'cotisations:cheque:validate',
|
||||||
kwargs={'invoice_pk': invoice.pk}
|
kwargs={'invoice_pk': invoice.pk}
|
||||||
|
|
|
@ -81,8 +81,6 @@ class ComnpayPayment(PaymentMethodMixin, models.Model):
|
||||||
a facture id, the price and the secret transaction data stored in
|
a facture id, the price and the secret transaction data stored in
|
||||||
the preferences.
|
the preferences.
|
||||||
"""
|
"""
|
||||||
invoice.valid = False
|
|
||||||
invoice.save()
|
|
||||||
host = request.get_host()
|
host = request.get_host()
|
||||||
p = Transaction(
|
p = Transaction(
|
||||||
str(self.payment_credential),
|
str(self.payment_credential),
|
||||||
|
|
|
@ -81,7 +81,7 @@ from .forms import (
|
||||||
)
|
)
|
||||||
from .tex import render_invoice
|
from .tex import render_invoice
|
||||||
from .payment_methods.forms import payment_method_factory
|
from .payment_methods.forms import payment_method_factory
|
||||||
from .utils import find_payment_method, send_mail_invoice
|
from .utils import find_payment_method
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@ -148,8 +148,6 @@ def new_facture(request, user, userid):
|
||||||
p.facture = new_invoice_instance
|
p.facture = new_invoice_instance
|
||||||
p.save()
|
p.save()
|
||||||
|
|
||||||
send_mail_invoice(new_invoice_instance)
|
|
||||||
|
|
||||||
return new_invoice_instance.paiement.end_payment(
|
return new_invoice_instance.paiement.end_payment(
|
||||||
new_invoice_instance,
|
new_invoice_instance,
|
||||||
request
|
request
|
||||||
|
@ -848,8 +846,6 @@ def credit_solde(request, user, **_kwargs):
|
||||||
number=1
|
number=1
|
||||||
)
|
)
|
||||||
|
|
||||||
send_mail_invoice(invoice)
|
|
||||||
|
|
||||||
return invoice.paiement.end_payment(invoice, request)
|
return invoice.paiement.end_payment(invoice, request)
|
||||||
p = get_object_or_404(Paiement, is_balance=True)
|
p = get_object_or_404(Paiement, is_balance=True)
|
||||||
return form({
|
return form({
|
||||||
|
|
Loading…
Reference in a new issue