Coverage for vocabs/dal_views.py: 31%
52 statements
« prev ^ index » next coverage.py v7.5.3, created at 2024-06-10 15:48 +0000
« prev ^ index » next coverage.py v7.5.3, created at 2024-06-10 15:48 +0000
1from dal import autocomplete
2from .models import SkosLabel, SkosConcept, SkosConceptScheme
3from django.db.models import Q
6class SKOSConstraintACNoHierarchy(autocomplete.Select2QuerySetView):
8 def get_queryset(self):
9 scheme = self.request.GET.get("scheme")
10 try:
11 selected_scheme = SkosConceptScheme.objects.get(dc_title=scheme)
12 qs = SkosConcept.objects.filter(scheme=selected_scheme)
13 except: # noqa
14 qs = SkosConcept.objects.all()
16 if self.q:
17 qs = qs.filter(Q(pref_label__icontains=self.q))
19 return qs
22class SKOSConstraintAC(autocomplete.Select2QuerySetView):
23 def get_result_label(self, item):
24 if len(item.skos_broader.all()) > 0:
25 return "{} >> {}".format(item.skos_broader.all()[0], item.pref_label)
26 else:
27 return "{}".format(item.pref_label)
29 def get_queryset(self):
30 scheme = self.request.GET.get("scheme")
31 try:
32 selected_scheme = SkosConceptScheme.objects.get(dc_title=scheme)
33 qs = SkosConcept.objects.filter(scheme=selected_scheme)
34 except: # noqa
35 qs = SkosConcept.objects.all()
37 if self.q:
38 qs = qs.filter(
39 Q(pref_label__icontains=self.q)
40 | Q(skos_broader__pref_label__icontains=self.q) # noqa:
41 )
43 return qs
46class SkosLabelAC(autocomplete.Select2QuerySetView):
47 def get_queryset(self):
48 qs = SkosLabel.objects.all()
50 if self.q:
51 qs = qs.filter(label__icontains=self.q)
53 return qs
56class SkosConceptAC(autocomplete.Select2QuerySetView):
58 def get_queryset(self):
59 qs = SkosConcept.objects.all()
60 if self.q:
61 qs = qs.filter(pref_label__icontains=self.q)
63 return qs
66class SkosConceptPrefLabalAC(autocomplete.Select2ListView):
68 def get_list(self):
69 concepts = SkosConcept.objects.filter(pref_label__icontains=self.q)
70 pref_labels = set([x.pref_label for x in concepts])
71 return pref_labels
74class SkosConceptSchemeAC(autocomplete.Select2QuerySetView):
75 def get_queryset(self):
76 qs = SkosConceptScheme.objects.all()
78 if self.q:
79 qs = qs.filter(dc_title__icontains=self.q)
81 return qs