from django.db import models from django.utils import timezone from django.utils.translation import ugettext_lazy as _ from datetime import datetime class BaseMember(models.Model): ''' Base model for member. ''' first_name = models.CharField(_("First name"), max_length=127) last_name = models.CharField(_("Last name"), max_length=127) email = models.EmailField(_("Email")) POR = models.CharField(_("Place of residence"), max_length=255) # place of residence AYY = models.BooleanField(_("AYY"), default=False) jas = models.BooleanField(_("JAS"), default=False) class Meta: abstract = True class Request(BaseMember): ''' Member request model represents one member request. ''' submitted = models.DateTimeField(default=timezone.now) class Payment(models.Model): ''' Payment model representing one payment event ''' date = models.DateTimeField(default=datetime.now()) source = models.CharField(choices=[ ('AYY', _('AYY')), ('cash', _('Cash')), ('bank_transfer', _('Bank transfer')), ], max_length=255) member = models.ForeignKey('Member', on_delete=models.SET_NULL, blank=True, null=True) class Member(BaseMember): ''' Member model represets one member on the registry. ''' created = models.DateTimeField(default=timezone.now) def __str__(self): return "{} {}, {}".format(self.last_name, self.first_name, self.email)