mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-22 19:33:11 +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.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
|
||||
|
||||
|
||||
|
@ -137,7 +137,7 @@ class Facture(BaseInvoice):
|
|||
)
|
||||
# TODO : change name to validity for clarity
|
||||
valid = models.BooleanField(
|
||||
default=True,
|
||||
default=False,
|
||||
verbose_name=_("validated")
|
||||
)
|
||||
# TODO : changed name to controlled for clarity
|
||||
|
@ -231,20 +231,26 @@ class Facture(BaseInvoice):
|
|||
self.field_permissions = {
|
||||
'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):
|
||||
return str(self.user) + ' ' + str(self.date)
|
||||
|
||||
|
||||
@receiver(post_save, sender=Facture)
|
||||
def facture_post_save(**kwargs):
|
||||
"""
|
||||
Synchronise the LDAP user after an invoice has been saved.
|
||||
"""
|
||||
facture = kwargs['instance']
|
||||
if facture.valid:
|
||||
user = facture.user
|
||||
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)
|
||||
|
@ -702,6 +708,10 @@ class Paiement(RevMixin, AclMixin, models.Model):
|
|||
if payment_method is not None and use_payment_method:
|
||||
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
|
||||
# cotisation time has been extended too
|
||||
if any(sell.type_cotisation for sell in invoice.vente_set.all()):
|
||||
|
|
|
@ -74,8 +74,6 @@ class BalancePayment(PaymentMethodMixin, models.Model):
|
|||
user = invoice.user
|
||||
total_price = invoice.prix_total()
|
||||
if float(user.solde) - float(total_price) < self.minimum_balance:
|
||||
invoice.valid = False
|
||||
invoice.save()
|
||||
messages.error(
|
||||
request,
|
||||
_("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
|
||||
for informations to add to the invoice before validating it.
|
||||
"""
|
||||
invoice.valid = False
|
||||
invoice.save()
|
||||
return redirect(reverse(
|
||||
'cotisations:cheque:validate',
|
||||
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
|
||||
the preferences.
|
||||
"""
|
||||
invoice.valid = False
|
||||
invoice.save()
|
||||
host = request.get_host()
|
||||
p = Transaction(
|
||||
str(self.payment_credential),
|
||||
|
|
|
@ -81,7 +81,7 @@ from .forms import (
|
|||
)
|
||||
from .tex import render_invoice
|
||||
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
|
||||
|
@ -148,8 +148,6 @@ def new_facture(request, user, userid):
|
|||
p.facture = new_invoice_instance
|
||||
p.save()
|
||||
|
||||
send_mail_invoice(new_invoice_instance)
|
||||
|
||||
return new_invoice_instance.paiement.end_payment(
|
||||
new_invoice_instance,
|
||||
request
|
||||
|
@ -848,8 +846,6 @@ def credit_solde(request, user, **_kwargs):
|
|||
number=1
|
||||
)
|
||||
|
||||
send_mail_invoice(invoice)
|
||||
|
||||
return invoice.paiement.end_payment(invoice, request)
|
||||
p = get_object_or_404(Paiement, is_balance=True)
|
||||
return form({
|
||||
|
|
Loading…
Reference in a new issue