FOSSDB/FOSSDB_web/apps/fossdb/forms.py
2023-04-09 13:20:45 +03:00

58 lines
1.4 KiB
Python

from django import forms
from .models import (HostingPlatform, License, ProgrammingLanguage, Project,
ProjectHostingPlatform, ProjectProgrammingLanguage)
class ProjectForm(forms.ModelForm):
class Meta:
model = Project
fields = ["name", "description", "licenses"]
widgets = {
"name": forms.TextInput(attrs={
"class": "form-control",
"placeholder": "Project name",
}),
"description": forms.Textarea(attrs={
"class": "form-control",
"placeholder": "Description",
}),
"licenses": forms.CheckboxSelectMultiple(),
}
class ProgrammingLanguageForm(forms.ModelForm):
percentage = forms.IntegerField(min_value=0, max_value=100)
class Meta:
model = ProgrammingLanguage
fields = ["language", "percentage"]
ProjectProgrammingLanguageFormSet = forms.inlineformset_factory(
Project,
ProjectProgrammingLanguage,
form=ProgrammingLanguageForm,
extra=1,
can_delete=True,
)
class HostingPlatformForm(forms.ModelForm):
url = forms.URLField()
class Meta:
model = HostingPlatform
fields = ["hosting_platform", "url"]
ProjectHostingPlatformFormSet = forms.inlineformset_factory(
Project,
ProjectHostingPlatform,
form=HostingPlatformForm,
extra=1,
can_delete=False
)