#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (C) 2014 Étienne Loks # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # See the file COPYING for details. import datetime from django import forms from django.core import validators from django.utils.translation import ugettext_lazy as _ from ishtar_common.models import Person from archaeological_files import models from ishtar_common.forms import get_now from ishtar_common.forms_common import get_town_field from ishtar_common import widgets class FileFormGeneral(forms.Form): form_label = _("General") associated_models = {'file_type':models.FileType} file_type = forms.ChoiceField(label=_("File type"), choices=[]) year = forms.IntegerField(label=_("Year"), initial=lambda:datetime.datetime.now().year, validators=[validators.MinValueValidator(1900), validators.MaxValueValidator(2100)]) creation_date = forms.DateField(label=_(u"Creation date"), initial=get_now, widget=widgets.JQueryDate) reception_date = forms.DateField(label=_(u"Reception date"), initial=get_now, widget=widgets.JQueryDate) def __init__(self, *args, **kwargs): super(FileFormGeneral, self).__init__(*args, **kwargs) self.fields['file_type'].choices = models.FileType.get_types() self.fields['file_type'].help_text = models.FileType.get_help() class FileFormPreventiveType(forms.Form): form_label = u"Saisine" associated_models = {'saisine_type':models.SaisineType, 'permit_type':models.PermitType} permit_type = forms.ChoiceField(label=_(u"Permit type"), required=False, choices=[]) saisine_type = forms.ChoiceField(label=_(u"Saisine type"), choices=[]) def __init__(self, *args, **kwargs): super(FileFormPreventiveType, self).__init__(*args, **kwargs) self.fields['saisine_type'].choices = models.SaisineType.get_types() self.fields['saisine_type'].help_text = models.SaisineType.get_help() self.fields['permit_type'].choices = models.PermitType.get_types( default='NP') self.fields['permit_type'].help_text = models.PermitType.get_help() class FileFormPlanning(forms.Form): form_label = _(u"Planning") associated_models = {'town':models.Town} name = forms.CharField(label=_(u"Planning name"), required=False, max_length=100) main_town = get_town_field(required=False) locality = forms.CharField(label=_(u"Locality"), max_length=100, required=False) address = forms.CharField(label=_(u"Address (number/street)"), widget=forms.Textarea, required=False) postal_code = forms.CharField(label=_(u"Postal code"), max_length=10, required=False) total_surface = forms.IntegerField(required=False, widget=widgets.AreaWidget, label=_(u"Total surface (m²)"), validators=[validators.MinValueValidator(0), validators.MaxValueValidator(999999999)]) total_developed_surface = forms.IntegerField(widget=widgets.AreaWidget, label=_(u"Total developed surface (m²)"), required=False, validators=[validators.MinValueValidator(0), validators.MaxValueValidator(999999999)])