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

1from dal import autocomplete 

2from .models import SkosLabel, SkosConcept, SkosConceptScheme 

3from django.db.models import Q 

4 

5 

6class SKOSConstraintACNoHierarchy(autocomplete.Select2QuerySetView): 

7 

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

15 

16 if self.q: 

17 qs = qs.filter(Q(pref_label__icontains=self.q)) 

18 

19 return qs 

20 

21 

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) 

28 

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

36 

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 ) 

42 

43 return qs 

44 

45 

46class SkosLabelAC(autocomplete.Select2QuerySetView): 

47 def get_queryset(self): 

48 qs = SkosLabel.objects.all() 

49 

50 if self.q: 

51 qs = qs.filter(label__icontains=self.q) 

52 

53 return qs 

54 

55 

56class SkosConceptAC(autocomplete.Select2QuerySetView): 

57 

58 def get_queryset(self): 

59 qs = SkosConcept.objects.all() 

60 if self.q: 

61 qs = qs.filter(pref_label__icontains=self.q) 

62 

63 return qs 

64 

65 

66class SkosConceptPrefLabalAC(autocomplete.Select2ListView): 

67 

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 

72 

73 

74class SkosConceptSchemeAC(autocomplete.Select2QuerySetView): 

75 def get_queryset(self): 

76 qs = SkosConceptScheme.objects.all() 

77 

78 if self.q: 

79 qs = qs.filter(dc_title__icontains=self.q) 

80 

81 return qs