ComptaClub/billing/forms.py

94 lines
3.5 KiB
Python

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", }
)
}