mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-22 23:13:46 +00:00
Replace null by 0 in default value of duration_*
This commit is contained in:
parent
bf298492f3
commit
89c805f61b
3 changed files with 59 additions and 14 deletions
50
cotisations/migrations/0048_auto_20201017_0018.py
Normal file
50
cotisations/migrations/0048_auto_20201017_0018.py
Normal file
|
@ -0,0 +1,50 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.29 on 2020-10-16 22:18
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cotisations', '0047_article_need_membership_init'),
|
||||
]
|
||||
|
||||
|
||||
def set_value_to_0(apps, schema_editor):
|
||||
ventes = apps.get_model("cotisations", "Vente")
|
||||
ventes.filter(duration_connection__isnull=True).update(duration_connection=0)
|
||||
ventes.filter(duration_days_connection__isnull=True).update(duration_days_connection=0)
|
||||
ventes.filter(duration_membership__isnull=True).update(duration_membership=0)
|
||||
ventes.filter(duration_days_membership__isnull=True).update(duration_days_membership=0)
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(set_value_to_0),
|
||||
migrations.AlterField(
|
||||
model_name='article',
|
||||
name='need_membership',
|
||||
field=models.BooleanField(default=True, verbose_name='need membership to be purchased'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='vente',
|
||||
name='duration_connection',
|
||||
field=models.PositiveIntegerField(default=0, verbose_name='duration of the connection (in months)'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='vente',
|
||||
name='duration_days_connection',
|
||||
field=models.PositiveIntegerField(default=0, validators=[django.core.validators.MinValueValidator(0)], verbose_name='duration of the connection (in days, will be added to duration in months)'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='vente',
|
||||
name='duration_days_membership',
|
||||
field=models.PositiveIntegerField(default=0, validators=[django.core.validators.MinValueValidator(0)], verbose_name='duration of the membership (in days, will be added to duration in months)'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='vente',
|
||||
name='duration_membership',
|
||||
field=models.PositiveIntegerField(default=0, verbose_name='duration of the membership (in months)'),
|
||||
),
|
||||
]
|
|
@ -283,8 +283,8 @@ class Facture(BaseInvoice):
|
|||
"""Returns every subscription associated with this invoice."""
|
||||
return Cotisation.objects.filter(
|
||||
vente__in=self.vente_set.filter(
|
||||
~(Q(duration_membership__isnull=True) | Q(duration_membership=0)) |\
|
||||
~(Q(duration_days_membership__isnull=True) | Q(duration_days_membership=0))
|
||||
~(Q(duration_membership=0)) |\
|
||||
~(Q(duration_days_membership=0))
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -453,20 +453,18 @@ class Vente(RevMixin, AclMixin, models.Model):
|
|||
prix = models.DecimalField(max_digits=5, decimal_places=2, verbose_name=_("price"))
|
||||
# TODO : this field is not needed if you use Article ForeignKey
|
||||
duration_connection = models.PositiveIntegerField(
|
||||
blank=True, null=True, verbose_name=_("duration of the connection (in months)")
|
||||
default=0, verbose_name=_("duration of the connection (in months)")
|
||||
)
|
||||
duration_days_connection = models.PositiveIntegerField(
|
||||
blank=True,
|
||||
null=True,
|
||||
default=0,
|
||||
validators=[MinValueValidator(0)],
|
||||
verbose_name=_("duration of the connection (in days, will be added to duration in months)"),
|
||||
)
|
||||
duration_membership = models.PositiveIntegerField(
|
||||
blank=True, null=True, verbose_name=_("duration of the membership (in months)")
|
||||
default=0, verbose_name=_("duration of the membership (in months)")
|
||||
)
|
||||
duration_days_membership = models.PositiveIntegerField(
|
||||
blank=True,
|
||||
null=True,
|
||||
default=0,
|
||||
validators=[MinValueValidator(0)],
|
||||
verbose_name=_("duration of the membership (in days, will be added to duration in months)"),
|
||||
)
|
||||
|
|
|
@ -931,16 +931,13 @@ class User(
|
|||
|
||||
"""
|
||||
if self.state == self.STATE_NOT_YET_ACTIVE:
|
||||
# Look for ventes with non 0 and non null subscription duration in the invoices set
|
||||
not_null = self.facture_set.filter(valid=True).exclude(Q(vente__duration_membership__isnull=True)).exists()
|
||||
# Look for ventes with non 0 subscription duration in the invoices set
|
||||
not_zero = self.facture_set.filter(valid=True).exclude(Q(vente__duration_membership=0)).exists()
|
||||
days_not_null = self.facture_set.filter(valid=True).exclude(Q(vente__duration_days_membership__isnull=True)).exists()
|
||||
days_not_zero = self.facture_set.filter(valid=True).exclude(Q(vente__duration_days_membership=0)).exists()
|
||||
# if any vente is found, activate the user
|
||||
if(not_null or not_zero or days_not_null or days_not_zero \
|
||||
if(not_zero or days_not_zero\
|
||||
or OptionalUser.get_cached_value("all_users_active")):
|
||||
self.state = self.STATE_ACTIVE
|
||||
self.save()
|
||||
self.save()
|
||||
if self.state == self.STATE_ARCHIVE or self.state == self.STATE_FULL_ARCHIVE:
|
||||
self.state = self.STATE_ACTIVE
|
||||
self.unarchive()
|
||||
|
|
Loading…
Reference in a new issue