Coverage for vocabs/dal_views.py: 27%
75 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 .models import SkosLabel, SkosConcept, SkosConceptScheme
3from django.db.models import Q
6class SpecificConcepts(autocomplete.Select2QuerySetView):
7 def get_result_label(self, item):
8 return "{}".format(item.label)
10 def get_queryset(self):
11 try:
12 scheme = self.kwargs["scheme"]
13 selected_scheme = SkosConceptScheme.objects.filter(
14 dc_title__icontains=scheme
15 )
16 except KeyError:
17 selected_scheme = None
18 if selected_scheme:
19 qs = SkosConcept.objects.filter(scheme__in=selected_scheme)
20 else:
21 qs = SkosConcept.objects.all()
23 if self.q:
24 direct_match = qs.filter(pref_label__icontains=self.q)
25 plus_narrower = direct_match | qs.filter(broader_concept__in=direct_match)
26 return plus_narrower
28 return []
31class SKOSConstraintACNoHierarchy(autocomplete.Select2QuerySetView):
32 def get_queryset(self):
33 scheme = self.request.GET.get("scheme")
34 try:
35 selected_scheme = SkosConceptScheme.objects.get(dc_title=scheme)
36 qs = SkosConcept.objects.filter(scheme=selected_scheme)
37 except: # noqa: E722
38 qs = SkosConcept.objects.all()
40 if self.q:
41 qs = qs.filter(Q(pref_label__icontains=self.q))
43 return qs
46class SKOSConstraintAC(autocomplete.Select2QuerySetView):
47 def get_result_label(self, item):
48 if len(item.skos_broader.all()) > 0:
49 return "{} >> {}".format(item.skos_broader.all()[0], item.pref_label)
50 else:
51 return "{}".format(item.pref_label)
53 def get_queryset(self):
54 scheme = self.request.GET.get("scheme")
55 try:
56 selected_scheme = SkosConceptScheme.objects.get(dc_title=scheme)
57 qs = SkosConcept.objects.filter(scheme=selected_scheme)
58 except: # noqa: E722
59 qs = SkosConcept.objects.all()
61 if self.q:
62 direct_match = qs.filter(pref_label__icontains=self.q)
63 plus_narrower = direct_match | qs.filter(broader_concept__in=direct_match)
64 return plus_narrower
65 else:
66 return qs
69class SkosLabelAC(autocomplete.Select2QuerySetView):
70 def get_queryset(self):
71 qs = SkosLabel.objects.all()
73 if self.q:
74 qs = qs.filter(label__icontains=self.q)
75 return qs
78class SkosConceptAC(autocomplete.Select2QuerySetView):
79 def get_result_label(self, item):
80 return "{}".format(item.label)
82 def get_queryset(self):
83 qs = SkosConcept.objects.all()
84 if self.q:
85 direct_match = qs.filter(pref_label__icontains=self.q)
86 plus_narrower = qs.filter(broader_concept__in=direct_match) | direct_match
87 return plus_narrower
88 else:
89 return qs
92class SkosConceptPrefLabalAC(autocomplete.Select2ListView):
93 def get_list(self):
94 concepts = SkosConcept.objects.filter(pref_label__icontains=self.q)
95 pref_labels = set([x.pref_label for x in concepts])
96 return pref_labels
99class SkosConceptSchemeAC(autocomplete.Select2QuerySetView):
100 def get_queryset(self):
101 qs = SkosConceptScheme.objects.all()
103 if self.q:
104 qs = qs.filter(dc_title__icontains=self.q)
106 return qs