Coverage for vocabs/forms.py: 63%
86 statements
« prev ^ index » next coverage.py v7.6.0, created at 2024-07-27 11:19 +0000
« prev ^ index » next coverage.py v7.6.0, created at 2024-07-27 11:19 +0000
1from dal import autocomplete
2from django import forms
3from crispy_forms.helper import FormHelper
4from crispy_forms.layout import Submit, Layout
5from crispy_forms.bootstrap import Accordion, AccordionGroup
6from .models import SkosConcept, SkosConceptScheme, SkosLabel
9class GenericFilterFormHelper(FormHelper):
10 def __init__(self, *args, **kwargs):
11 super(GenericFilterFormHelper, self).__init__(*args, **kwargs)
12 self.helper = FormHelper()
13 self.form_class = "genericFilterForm"
14 self.form_method = "GET"
15 self.add_input(Submit("Filter", "search"))
18class UploadFileForm(forms.Form):
19 file = forms.FileField()
21 def __init__(self, *args, **kwargs):
22 super(UploadFileForm, self).__init__(*args, **kwargs)
23 self.helper = FormHelper()
24 self.helper.form_tag = True
25 self.helper.form_class = "form-horizontal"
26 self.helper.label_class = "col-md-3"
27 self.helper.field_class = "col-md-9"
28 self.helper.add_input(
29 Submit("submit", "import"),
30 )
33class SkosConceptFormHelper(FormHelper):
34 def __init__(self, *args, **kwargs):
35 super(SkosConceptFormHelper, self).__init__(*args, **kwargs)
36 self.helper = FormHelper()
37 self.form_class = "genericFilterForm"
38 self.form_method = "GET"
39 self.helper.form_tag = False
40 self.add_input(Submit("Filter", "Search"))
41 self.layout = Layout(
42 Accordion(
43 AccordionGroup(
44 "Basic search options", "pref_label", css_id="basic_search_fields"
45 ),
46 AccordionGroup("Advanced search", "scheme", css_id="more"),
47 )
48 )
51class SkosConceptForm(forms.ModelForm):
52 class Meta:
53 model = SkosConcept
54 fields = "__all__"
55 widgets = {
56 "label": autocomplete.ModelSelect2Multiple(
57 url="vocabs-ac:skoslabel-autocomplete"
58 ),
59 "skos_broader": autocomplete.ModelSelect2Multiple(
60 url="vocabs-ac:skosconcept-autocomplete"
61 ),
62 "skos_narrower": autocomplete.ModelSelect2Multiple(
63 url="vocabs-ac:skosconcept-autocomplete"
64 ),
65 "skos_related": autocomplete.ModelSelect2Multiple(
66 url="vocabs-ac:skosconcept-autocomplete"
67 ),
68 "skos_broadmatch": autocomplete.ModelSelect2Multiple(
69 url="vocabs-ac:skosconcept-autocomplete"
70 ),
71 "skos_exactmatch": autocomplete.ModelSelect2Multiple(
72 url="vocabs-ac:skosconcept-autocomplete"
73 ),
74 "skos_closematch": autocomplete.ModelSelect2Multiple(
75 url="vocabs-ac:skosconcept-autocomplete"
76 ),
77 "scheme": autocomplete.ModelSelect2Multiple(
78 url="vocabs-ac:skosconceptscheme-autocomplete"
79 ),
80 }
82 def __init__(self, *args, **kwargs):
83 super(SkosConceptForm, self).__init__(*args, **kwargs)
84 self.helper = FormHelper()
85 self.helper.form_tag = True
86 self.helper.form_class = "form-horizontal"
87 self.helper.label_class = "col-md-3"
88 self.helper.field_class = "col-md-9"
89 self.helper.add_input(
90 Submit("submit", "save"),
91 )
94class SkosConceptSchemeForm(forms.ModelForm):
95 class Meta:
96 model = SkosConceptScheme
97 fields = "__all__"
99 def __init__(self, *args, **kwargs):
100 super(SkosConceptSchemeForm, self).__init__(*args, **kwargs)
101 self.helper = FormHelper()
102 self.helper.form_tag = True
103 self.helper.form_class = "form-horizontal"
104 self.helper.label_class = "col-md-3"
105 self.helper.field_class = "col-md-9"
106 self.helper.add_input(
107 Submit("submit", "save"),
108 )
111class SkosConceptSchemeFormHelper(FormHelper):
112 def __init__(self, *args, **kwargs):
113 super(SkosConceptSchemeFormHelper, self).__init__(*args, **kwargs)
114 self.helper = FormHelper()
115 self.form_class = "genericFilterForm"
116 self.form_method = "GET"
117 self.helper.form_tag = False
118 self.add_input(Submit("Filter", "Search"))
119 self.layout = Layout(
120 Accordion(
121 AccordionGroup(
122 "Basic search options", "dc_title", css_id="basic_search_fields"
123 ),
124 AccordionGroup("Advanced search", "dct_creator", css_id="more"),
125 )
126 )
129class SkosLabelForm(forms.ModelForm):
130 class Meta:
131 model = SkosLabel
132 fields = "__all__"
134 def __init__(self, *args, **kwargs):
135 super(SkosLabelForm, self).__init__(*args, **kwargs)
136 self.helper = FormHelper()
137 self.helper.form_tag = True
138 self.helper.form_class = "form-horizontal"
139 self.helper.label_class = "col-md-3"
140 self.helper.field_class = "col-md-9"
141 self.helper.add_input(
142 Submit("submit", "save"),
143 )
146class SkosLabelFormHelper(FormHelper):
147 def __init__(self, *args, **kwargs):
148 super(SkosLabelFormHelper, self).__init__(*args, **kwargs)
149 self.helper = FormHelper()
150 self.form_class = "genericFilterForm"
151 self.form_method = "GET"
152 self.helper.form_tag = False
153 self.add_input(Submit("Filter", "Search"))