forked from DGNum/gestioCOF
65 lines
2.3 KiB
Python
65 lines
2.3 KiB
Python
import os.path
|
|
|
|
from django.utils import timezone
|
|
from django.db import models
|
|
|
|
from gestion.models import Profile
|
|
|
|
|
|
class BdsProfile(models.Model):
|
|
profile = models.OneToOneField(Profile,
|
|
related_name='bds',
|
|
on_delete=models.CASCADE)
|
|
|
|
def issue_file_name(sportif, filename):
|
|
fn, extension = os.path.splitext(filename)
|
|
year = timezone.now().year
|
|
return "certifs/{!s}-{:d}{:s}".format(sportif, year, extension)
|
|
|
|
COTIZ_DURATION_CHOICES = (
|
|
('ANN', 'Année'),
|
|
('SE1', 'Premier semestre'),
|
|
('SE2', 'Deuxième semestre'),
|
|
)
|
|
|
|
PAYMENT_METHOD_CHOICES = (
|
|
('CASH', 'Liquide'),
|
|
('BANK', 'Transfer bancaire'),
|
|
('CHEQUE', 'Cheque'),
|
|
('OTHER', 'Autre'),
|
|
)
|
|
|
|
ASPSL_number = models.CharField("Numéro AS PSL",
|
|
max_length=50,
|
|
blank=True,
|
|
null=True)
|
|
FFSU_number = models.CharField("Numéro FFSU",
|
|
max_length=50,
|
|
blank=True,
|
|
null=True)
|
|
|
|
have_certificate = models.BooleanField("Certificat médical",
|
|
default=False)
|
|
certificate_file = models.FileField("Fichier de certificat médical",
|
|
upload_to=issue_file_name,
|
|
blank=True)
|
|
|
|
cotisation_period = models.CharField("Inscription",
|
|
default="ANN",
|
|
choices=COTIZ_DURATION_CHOICES,
|
|
max_length=3)
|
|
registration_date = models.DateField(auto_now_add=True,
|
|
verbose_name="Date d'inscription")
|
|
|
|
payment_method = models.CharField('Methode de paiement',
|
|
default='CASH',
|
|
choices=PAYMENT_METHOD_CHOICES,
|
|
max_length=6)
|
|
|
|
class Meta:
|
|
verbose_name = "Profil BDS"
|
|
verbose_name_plural = "Profils BDS"
|
|
permissions = [
|
|
("member", "Is a BDS member"),
|
|
("buro", "Is part of the BDS staff")
|
|
]
|