diff --git a/abonapp/forms.py b/abonapp/forms.py index 4d3e3e0..cb32d01 100644 --- a/abonapp/forms.py +++ b/abonapp/forms.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +from datetime import datetime from django.utils.translation import ugettext as _ from django import forms from django.contrib.auth.hashers import make_password @@ -96,3 +97,18 @@ class AbonGroupForm(forms.ModelForm): 'title': forms.TextInput(attrs={'class': 'form-control'}), 'profiles': forms.TextInput(attrs={'class': 'form-control'}) } + + +class PassportForm(forms.ModelForm): + class Meta: + model = models.PassportInfo + exclude = ['abon'] + widgets = { + 'series': forms.TextInput(attrs={'class': 'form-control', 'required': '', 'pattern': '^\d{4}$'}), + 'number': forms.TextInput(attrs={'class': 'form-control', 'required': '', 'pattern': '^\d{6}$'}), + 'distributor': forms.TextInput(attrs={'class': 'form-control', 'required': ''}), + 'date_of_acceptance': forms.DateInput(attrs={'class': 'form-control', 'required': ''}) + } + initials = { + 'date_of_acceptance': datetime(year=2014, month=6, day=1) + } diff --git a/abonapp/models.py b/abonapp/models.py index 0ac7d09..2a9ae6c 100644 --- a/abonapp/models.py +++ b/abonapp/models.py @@ -335,6 +335,17 @@ class Abon(UserProfile): return AbonStruct(self.pk, user_ip, agent_trf, bool(self.is_active)) +class PassportInfo(models.Model): + series = models.CharField(max_length=4, validators=[validators.integer_validator]) + number = models.CharField(max_length=6, validators=[validators.integer_validator]) + distributor = models.CharField(max_length=64) + date_of_acceptance = models.DateField() + abon = models.OneToOneField(Abon, on_delete=models.SET_NULL, blank=True, null=True) + + def __unicode__(self): + return "%s %s" % (self.series, self.number) + + class InvoiceForPayment(models.Model): abon = models.ForeignKey(Abon) status = models.BooleanField(default=False)