Coverage for vocabs/forms.py: 63%

86 statements  

« 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 

7 

8 

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

16 

17 

18class UploadFileForm(forms.Form): 

19 file = forms.FileField() 

20 

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 ) 

31 

32 

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 ) 

49 

50 

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 } 

81 

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 ) 

92 

93 

94class SkosConceptSchemeForm(forms.ModelForm): 

95 class Meta: 

96 model = SkosConceptScheme 

97 fields = "__all__" 

98 

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 ) 

109 

110 

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 ) 

127 

128 

129class SkosLabelForm(forms.ModelForm): 

130 class Meta: 

131 model = SkosLabel 

132 fields = "__all__" 

133 

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 ) 

144 

145 

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