import csv import math import datetime from django import forms from datetime import date from .models import Client, Contract, Prestation from django_select2.forms import Select2MultipleWidget, ModelSelect2Widget class ClientForm(forms.ModelForm): class Meta: model = Client fields = ("name", "address", "postal_code", "city", "contact", "company_number") widgets = { "name": forms.TextInput( attrs={"class": "form-control", "placeholder": "Nom du client"} ), "address": forms.TextInput( attrs={"class": "form-control col-sm-6 col-md-6 col-lg-6 col-xl-6", "placeholder": "Rue et numéro"} ), "postal_code": forms.TextInput( attrs={"class": "form-control col-md-2 col-lg-2 col-xl-2", "placeholder": "Code postal"} ), "city": forms.TextInput( attrs={"class": "form-control col-md-4 col-lg-4 col-xl-4", "placeholder": "Ville"} ), "contact": forms.TextInput( attrs={"class": "form-control", "placeholder": "Nom du contact client"} ), "is_company": forms.TextInput( attrs={"class": "form-control", "placeholder": "Routine's long name"} ), "company_number": forms.TextInput( attrs={"class": "form-control", "placeholder": "Numéro BCE"} ) } class ContractForm(forms.ModelForm): class Meta: model = Contract fields = ("title", "client", "advance", "reference", "is_finished", "is_paid", "description") widgets = { "title": forms.TextInput( attrs={"class": "form-control", "placeholder": "Titre de la facture"} ), "client": ModelSelect2Widget( search_fields=["title__icontains", "contact__icontains", "city__icontains"], max_results=10, attrs={"data-minimum-input-length": 0, "class": "form-control"}, ), "advance": forms.TextInput( attrs={"class": "form-control", } ), "reference": forms.TextInput( attrs={"class": "form-control", } ), "is_finished": forms.CheckboxInput( attrs={"class": "form-control", } ), "is_paid": forms.CheckboxInput( attrs={"class": "form-control", } ), "description": forms.Textarea( attrs={"class": "form-control", "placeholder": "Description du contract."} ) } class PrestationForm(forms.ModelForm): class Meta: model = Prestation fields = ("contract", "date", "label", "unit", "unit_price") widgets = { "contract": ModelSelect2Widget( search_fields=["contract__icontains",], max_results=10, attrs={"data-minimum-input-length": 0, "class": "form-control"}, ), "date": forms.DateInput( attrs={ "class": "form-control datepicker", "value": date.today().strftime("%Y-%m-%d"), } ), "label": forms.TextInput( attrs={"class": "form-control", } ), "unit": forms.TextInput( attrs={"class": "form-control", } ), "unit_price": forms.TextInput( attrs={"class": "form-control", } ) }