Coverage for browsing/filters.py: 100%
202 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
1import django_filters
2from burials.models import (
3 BurialSite,
4 BurialGroup,
5 Burial,
6 Urn,
7 UrnCover,
8 GraveGood,
9 GraveGoodOther,
10 DeadBodyRemains,
11 AnimalRemains,
12)
13from vocabs.models import (
14 SkosConcept,
15)
16from places.models import (
17 Place,
18)
20# To do: django_filters.MethodFilter are commented because raising errors after version upgrade
21# test and remove if not needed anymore
23django_filters.filters.LOOKUP_TYPES = [
24 ("", "---------"),
25 ("exact", "Is equal to"),
26 ("iexact", "Is equal to (case insensitive)"),
27 ("not_exact", "Is not equal to"),
28 ("lt", "Lesser than/before"),
29 ("gt", "Greater than/after"),
30 ("gte", "Greater than or equal to"),
31 ("lte", "Lesser than or equal to"),
32 ("startswith", "Starts with"),
33 ("endswith", "Ends with"),
34 ("contains", "Contains"),
35 ("icontains", "Contains (case insensitive)"),
36 ("not_contains", "Does not contain"),
37]
39YESNO = ((True, "Yes"), (False, "No"))
41FULLYPARTLYEXCAVATED = (
42 ("fully excavated", "fully excavated"),
43 ("partly excavated", "partly excavated"),
44)
47class BurialSiteListFilter(django_filters.FilterSet):
48 name = django_filters.CharFilter(
49 lookup_expr="icontains", label="Burial Site name", help_text=False
50 )
51 alternative_name = django_filters.CharFilter(
52 lookup_expr="icontains", help_text=False, label="Alternative name"
53 )
54 location = django_filters.ModelMultipleChoiceFilter(
55 queryset=Place.objects.all(), help_text=False
56 )
57 topography = django_filters.ModelMultipleChoiceFilter(
58 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="topography"),
59 help_text=False,
60 )
61 distance_to_next_settlement = django_filters.ModelMultipleChoiceFilter(
62 queryset=SkosConcept.objects.filter(scheme__dc_title__icontains="distance"),
63 help_text=False,
64 )
65 type_of_burial_site = django_filters.ModelMultipleChoiceFilter(
66 queryset=SkosConcept.objects.filter(
67 scheme__dc_title__iexact="type of burial site"
68 ),
69 help_text=False,
70 )
71 dating = django_filters.ModelMultipleChoiceFilter(
72 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="dating"),
73 help_text=False,
74 )
76 class Meta:
77 model = BurialSite
78 fields = "__all__"
81class BurialGroupListFilter(django_filters.FilterSet):
82 burial_group_id = django_filters.CharFilter(
83 lookup_expr="icontains", help_text=False, label="Burial group number"
84 )
85 burial_site__name = django_filters.CharFilter(
86 lookup_expr="icontains", help_text=False, label="Burial site name"
87 )
88 burial_group_type = django_filters.ModelMultipleChoiceFilter(
89 queryset=SkosConcept.objects.filter(
90 scheme__dc_title__iexact="Burial group type"
91 ),
92 help_text=False,
93 )
94 material = django_filters.ModelMultipleChoiceFilter(
95 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Material"),
96 help_text=False,
97 )
98 length = django_filters.CharFilter(
99 lookup_expr="exact",
100 help_text=False,
101 )
102 width = django_filters.CharFilter(
103 lookup_expr="exact",
104 help_text=False,
105 )
106 diameter = django_filters.CharFilter(
107 lookup_expr="exact",
108 help_text=False,
109 )
110 height = django_filters.CharFilter(
111 lookup_expr="exact",
112 help_text=False,
113 )
115 class Meta:
116 model = BurialGroup
117 fields = ["id", "burial_group_id", "burial_site__name"]
120class BurialListFilter(django_filters.FilterSet):
121 burial_id = django_filters.CharFilter(
122 lookup_expr="exact",
123 help_text=False,
124 )
125 burial_group = django_filters.CharFilter(
126 lookup_expr="icontains", help_text=False, label="Burial group"
127 )
128 burial_site__name = django_filters.CharFilter(
129 lookup_expr="icontains", help_text=False, label="Burial site name"
130 )
131 C14_dendro = django_filters.ChoiceFilter(
132 null_label="Unknown",
133 help_text=False,
134 label="Absolute dating (C14/Dendro)",
135 choices=YESNO,
136 )
137 absolute_age = django_filters.CharFilter(
138 lookup_expr="icontains", help_text=False, label="Absolute age"
139 )
140 burial_type = django_filters.ModelMultipleChoiceFilter(
141 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Burial type"),
142 help_text=False,
143 )
144 # i don't know what this is? there is no field 'individuals' in models
145 # individuals = django_filters.ChoiceFilter(
146 # choices=YESNO, help_text=False,
147 # )
148 secondary_burial = django_filters.ChoiceFilter(
149 null_label="Unknown", help_text=False, choices=YESNO
150 )
151 displaced = django_filters.ChoiceFilter(
152 null_label="Unknown", help_text=False, choices=YESNO
153 )
154 extraordinary_burial = django_filters.ChoiceFilter(
155 null_label="Unknown", help_text=False, choices=YESNO
156 )
157 construction = django_filters.ModelMultipleChoiceFilter(
158 queryset=SkosConcept.objects.filter(
159 scheme__dc_title__iexact="Burial construction"
160 ),
161 help_text=False,
162 )
163 arrangement = django_filters.ModelMultipleChoiceFilter(
164 queryset=SkosConcept.objects.filter(
165 scheme__dc_title__iexact="Burial arrangement"
166 ),
167 help_text=False,
168 )
169 cover = django_filters.ChoiceFilter(
170 null_label="Unknown", help_text=False, choices=YESNO
171 )
172 cover_type = django_filters.ModelMultipleChoiceFilter(
173 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Cover type"),
174 help_text=False,
175 )
176 grave_pit_form = django_filters.ModelMultipleChoiceFilter(
177 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Grave pit form"),
178 help_text=False,
179 )
180 grave_pit_orientation = django_filters.ModelMultipleChoiceFilter(
181 queryset=SkosConcept.objects.filter(
182 scheme__dc_title__iexact="Grave pit orientation"
183 ),
184 help_text=False,
185 )
186 length = django_filters.CharFilter(
187 lookup_expr="exact",
188 help_text=False,
189 )
190 width = django_filters.CharFilter(
191 lookup_expr="exact",
192 help_text=False,
193 )
194 diameter = django_filters.CharFilter(
195 lookup_expr="exact",
196 help_text=False,
197 )
198 height = django_filters.CharFilter(
199 lookup_expr="exact",
200 help_text=False,
201 )
203 class Meta:
204 model = Burial
205 fields = ["id", "burial_id", "burial_site__name"]
208class UrnCoverListFilter(django_filters.FilterSet):
209 cover_id = django_filters.CharFilter(
210 lookup_expr="exact",
211 help_text=False,
212 )
213 urn__urn_id = django_filters.CharFilter(
214 lookup_expr="exact", help_text=False, label="Urn Inventory Number"
215 )
216 upside_down = django_filters.ChoiceFilter(
217 null_label="Unknown", help_text=False, choices=YESNO
218 )
219 fragment = django_filters.ChoiceFilter(
220 null_label="Unknown", help_text=False, choices=YESNO
221 )
222 basic_shape = django_filters.ModelMultipleChoiceFilter(
223 queryset=SkosConcept.objects.filter(
224 scheme__dc_title__iexact="Basic shape of urn cover"
225 ),
226 help_text=False,
227 )
228 urn__burial__burial_site__name = django_filters.CharFilter(
229 lookup_expr="icontains", help_text=False, label="Burial site"
230 )
231 urn__burial__burial_id = django_filters.CharFilter(
232 lookup_expr="exact", help_text=False, label="Burial number"
233 )
235 class Meta:
236 model = UrnCover
237 fields = ["id", "cover_id"]
240class UrnListFilter(django_filters.FilterSet):
241 burial__burial_site__name = django_filters.CharFilter(
242 lookup_expr="icontains", help_text=False, label="Burial site"
243 )
244 burial__burial_id = django_filters.CharFilter(
245 lookup_expr="exact", help_text=False, label="Burial number"
246 )
247 burial__burial_type__pref_label = django_filters.CharFilter(
248 lookup_expr="icontains", help_text=False, label="Burial type"
249 )
250 # burial__burial_type__pref_label = django_filters.ModelMultipleChoiceFilter(
251 # queryset=SkosConcept.objects.filter(scheme__dc_title__iexact='Burial type'),
252 # help_text=False,
253 # label="Burial type"
254 # )
255 basic_shape = django_filters.ModelMultipleChoiceFilter(
256 queryset=SkosConcept.objects.filter(
257 scheme__dc_title__iexact="Basic shape of urn"
258 ),
259 help_text=False,
260 )
261 urn_id = django_filters.CharFilter(
262 lookup_expr="iexact", help_text=False, label="Urn Inventory Number"
263 )
264 urn_type = django_filters.CharFilter(
265 lookup_expr="icontains", help_text=False, label="Urn type"
266 )
267 variation = django_filters.CharFilter(
268 lookup_expr="icontains", help_text=False, label="Variation"
269 )
270 urncover_exists = django_filters.ChoiceFilter(
271 null_label="Unknown", help_text=False, choices=YESNO, label="Urn cover exists"
272 )
274 class Meta:
275 model = Urn
276 fields = ["id", "urn_id"]
279class GraveGoodListFilter(django_filters.FilterSet):
280 burial__burial_site__name = django_filters.CharFilter(
281 lookup_expr="icontains", help_text=False, label="Burial site"
282 )
283 burial__burial_id = django_filters.CharFilter(
284 lookup_expr="exact", help_text=False, label="Burial number"
285 )
286 urn__urn_id = django_filters.CharFilter(
287 lookup_expr="exact", help_text=False, label="Urn Inventory Number"
288 )
289 name = django_filters.ModelMultipleChoiceFilter(
290 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="GraveGoodObject"),
291 help_text=False,
292 label="Type",
293 )
294 material = django_filters.ModelMultipleChoiceFilter(
295 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Material"),
296 help_text=False,
297 )
298 condition = django_filters.ModelMultipleChoiceFilter(
299 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Condition"),
300 help_text=False,
301 )
302 position = django_filters.ModelMultipleChoiceFilter(
303 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Position"),
304 help_text=False,
305 )
306 amount = django_filters.NumberFilter(
307 lookup_expr="exact", help_text=False, label="amount_countable"
308 )
309 secondary_depostition = django_filters.ChoiceFilter(
310 null_label="Unknown",
311 help_text=False,
312 choices=YESNO,
313 label="Secondary deposition",
314 )
316 class Meta:
317 model = GraveGood
318 fields = ["id", "name"]
321class GraveGoodOtherListFilter(django_filters.FilterSet):
322 burial__burial_site__name = django_filters.CharFilter(
323 lookup_expr="icontains", help_text=False, label="Burial site"
324 )
325 burial__burial_id = django_filters.CharFilter(
326 lookup_expr="exact", help_text=False, label="Burial number"
327 )
328 urn__urn_id = django_filters.CharFilter(
329 lookup_expr="exact", help_text=False, label="Urn Inventory Number"
330 )
331 food = django_filters.ChoiceFilter(
332 null_label="Unknown", help_text=False, choices=YESNO
333 )
334 other_organic_grave_good = django_filters.ChoiceFilter(
335 null_label="Unknown", help_text=False, choices=YESNO
336 )
337 position = django_filters.ModelMultipleChoiceFilter(
338 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Position"),
339 help_text=False,
340 )
341 secondary_depostition = django_filters.ChoiceFilter(
342 null_label="Unknown",
343 help_text=False,
344 choices=YESNO,
345 label="Secondary deposition",
346 )
348 class Meta:
349 model = GraveGoodOther
350 fields = [
351 "id",
352 ]
355class DeadBodyRemainsListFilter(django_filters.FilterSet):
356 burial__burial_site__name = django_filters.CharFilter(
357 lookup_expr="icontains", help_text=False, label="Burial site"
358 )
359 burial__burial_id = django_filters.CharFilter(
360 lookup_expr="exact", help_text=False, label="Burial number"
361 )
362 urn__urn_id = django_filters.CharFilter(
363 lookup_expr="exact", help_text=False, label="Urn Inventory Number"
364 )
365 age = django_filters.ModelMultipleChoiceFilter(
366 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Age"),
367 help_text=False,
368 )
369 gender = django_filters.ModelMultipleChoiceFilter(
370 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Gender"),
371 help_text=False,
372 )
373 temperature = django_filters.ModelMultipleChoiceFilter(
374 queryset=SkosConcept.objects.filter(
375 scheme__dc_title__iexact="Cremation temperature"
376 ),
377 help_text=False,
378 )
379 weight = django_filters.CharFilter(
380 lookup_expr="icontains", help_text=False, label="Weight"
381 )
382 pathology = django_filters.CharFilter(
383 lookup_expr="icontains", help_text=False, label="Pathology"
384 )
385 total_weight = django_filters.CharFilter(
386 lookup_expr="iexact", help_text=False, label="Total weight"
387 )
388 amount_countable = django_filters.NumberFilter(lookup_expr="exact", help_text=False)
389 position = django_filters.ModelMultipleChoiceFilter(
390 queryset=SkosConcept.objects.filter(
391 scheme__dc_title__iexact="Position of the cremated remains"
392 ),
393 help_text=False,
394 )
395 secondary_depostition = django_filters.ChoiceFilter(
396 null_label="Unknown",
397 help_text=False,
398 choices=YESNO,
399 label="Secondary deposition",
400 )
402 class Meta:
403 model = DeadBodyRemains
404 fields = ["id", "age"]
407class AnimalRemainsListFilter(django_filters.FilterSet):
408 burial__burial_site__name = django_filters.CharFilter(
409 lookup_expr="icontains", help_text=False, label="Burial site"
410 )
411 burial__burial_id = django_filters.CharFilter(
412 lookup_expr="exact", help_text=False, label="Burial number"
413 )
414 urn__urn_id = django_filters.CharFilter(
415 lookup_expr="exact", help_text=False, label="Urn Inventory Number"
416 )
417 species = django_filters.ModelMultipleChoiceFilter(
418 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Species"),
419 help_text=False,
420 )
421 age = django_filters.CharFilter(
422 lookup_expr="icontains", help_text=False, label="Age"
423 )
424 sex = django_filters.CharFilter(
425 lookup_expr="icontains", help_text=False, label="Sex"
426 )
427 weight = django_filters.CharFilter(
428 lookup_expr="icontains", help_text=False, label="Weight"
429 )
430 position = django_filters.ModelMultipleChoiceFilter(
431 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Position"),
432 help_text=False,
433 )
434 amount_countable = django_filters.NumberFilter(lookup_expr="exact", help_text=False)
435 secondary_depostition = django_filters.ChoiceFilter(
436 null_label="Unknown",
437 help_text=False,
438 choices=YESNO,
439 label="Secondary deposition",
440 )
442 class Meta:
443 model = AnimalRemains
444 fields = ["id", "species"]
447class MainListFilter(django_filters.FilterSet):
448 burial_id = django_filters.CharFilter(
449 lookup_expr="exact",
450 help_text=False,
451 )
452 burial_group = django_filters.CharFilter(
453 lookup_expr="icontains", help_text=False, label="Burial group"
454 )
455 # BurialSite search fields
456 burial_site__name = django_filters.CharFilter(
457 lookup_expr="icontains", help_text=False, label="Burial site name"
458 )
459 burial_site__alternative_name = django_filters.CharFilter(
460 lookup_expr="icontains", help_text=False, label="Burial site alternative name"
461 )
462 burial_site__location = django_filters.ModelMultipleChoiceFilter(
463 queryset=Place.objects.all(), help_text=False
464 )
465 burial_site__topography = django_filters.ModelMultipleChoiceFilter(
466 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Topography"),
467 help_text=False,
468 )
469 burial_site__excavation = django_filters.ChoiceFilter(
470 help_text=False, label="Excavation", choices=FULLYPARTLYEXCAVATED
471 )
472 burial_site__distance_to_next_settlement = django_filters.ModelMultipleChoiceFilter(
473 queryset=SkosConcept.objects.filter(
474 scheme__dc_title__iexact="Distance to next settlement"
475 ),
476 help_text=False,
477 )
478 burial_site__type_of_burial_site = django_filters.ModelMultipleChoiceFilter(
479 queryset=SkosConcept.objects.filter(
480 scheme__dc_title__iexact="Type of burial site"
481 ),
482 help_text=False,
483 label="Type of burial site",
484 )
485 burial_site__disturbance = django_filters.CharFilter(
486 lookup_expr="icontains", help_text=False
487 )
488 burial_site__total_graves = django_filters.CharFilter(
489 lookup_expr="exact",
490 help_text=False,
491 label=BurialSite._meta.get_field("total_graves").verbose_name,
492 )
493 burial_site__dating = django_filters.ModelMultipleChoiceFilter(
494 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Dating"),
495 help_text=False,
496 )
497 burial_site__absolute_dating = django_filters.CharFilter(
498 lookup_expr="icontains", help_text=False
499 )
500 # Burial search fields
501 C14_dendro = django_filters.ChoiceFilter(
502 null_label="Unknown",
503 help_text=False,
504 label="Absolute dating (C14/Dendro)",
505 choices=YESNO,
506 )
507 absolute_age = django_filters.CharFilter(
508 lookup_expr="icontains", help_text=False, label="Absolute age"
509 )
510 burial_type = django_filters.ModelMultipleChoiceFilter(
511 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Burial type"),
512 help_text=False,
513 )
514 # i don't know what this is? there is no field 'individuals' in models
515 # individuals = django_filters.ChoiceFilter(
516 # choices=YESNO, help_text=False,
517 # )
518 secondary_burial = django_filters.ChoiceFilter(
519 null_label="Unknown", help_text=False, choices=YESNO
520 )
521 displaced = django_filters.ChoiceFilter(
522 null_label="Unknown", help_text=False, choices=YESNO
523 )
524 extraordinary_burial = django_filters.ChoiceFilter(
525 null_label="Unknown", help_text=False, choices=YESNO
526 )
527 construction = django_filters.ModelMultipleChoiceFilter(
528 queryset=SkosConcept.objects.filter(
529 scheme__dc_title__iexact="Burial construction"
530 ),
531 help_text=False,
532 )
533 arrangement = django_filters.ModelMultipleChoiceFilter(
534 queryset=SkosConcept.objects.filter(
535 scheme__dc_title__iexact="Burial arrangement"
536 ),
537 help_text=False,
538 )
539 cover = django_filters.ChoiceFilter(
540 null_label="Unknown", help_text=False, choices=YESNO
541 )
542 cover_type = django_filters.ModelMultipleChoiceFilter(
543 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Cover type"),
544 help_text=False,
545 )
546 grave_pit_form = django_filters.ModelMultipleChoiceFilter(
547 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Grave pit form"),
548 help_text=False,
549 )
550 grave_pit_orientation = django_filters.ModelMultipleChoiceFilter(
551 queryset=SkosConcept.objects.filter(
552 scheme__dc_title__iexact="Grave pit orientation"
553 ),
554 help_text=False,
555 )
556 length = django_filters.CharFilter(
557 lookup_expr="exact",
558 help_text=False,
559 )
560 width = django_filters.CharFilter(
561 lookup_expr="exact",
562 help_text=False,
563 )
564 diameter = django_filters.CharFilter(
565 lookup_expr="exact",
566 help_text=False,
567 )
568 height = django_filters.CharFilter(
569 lookup_expr="exact",
570 help_text=False,
571 )
572 filling_objects = django_filters.ModelMultipleChoiceFilter(
573 queryset=SkosConcept.objects.filter(
574 scheme__dc_title__iexact="Burial Filling Objects"
575 ),
576 help_text=False,
577 )
578 intentionally_deposited = django_filters.ChoiceFilter(
579 null_label="Unknown", help_text=False, choices=YESNO
580 )
581 filling = django_filters.ModelMultipleChoiceFilter(
582 queryset=SkosConcept.objects.filter(
583 scheme__dc_title__iexact="Burial Filling Type"
584 ),
585 help_text=False,
586 )
587 post_holes = django_filters.CharFilter(
588 lookup_expr="icontains", help_text=False, label="Post holes"
589 )
590 surface_identification_mark = django_filters.CharFilter(
591 lookup_expr="icontains", help_text=False, label="Surface Identification Mark"
592 )
593 erdgraebchen = django_filters.CharFilter(
594 lookup_expr="icontains", help_text=False, label="Erdgraebchen"
595 )
596 other_features = django_filters.CharFilter(
597 lookup_expr="icontains", help_text=False, label="Other features"
598 )
599 # Urn search fields
600 urn__basic_shape = django_filters.ModelMultipleChoiceFilter(
601 queryset=SkosConcept.objects.filter(
602 scheme__dc_title__iexact="Basic shape of urn"
603 ),
604 help_text=False,
605 label="Basic shape of urn",
606 )
607 urn__urn_type = django_filters.CharFilter(
608 lookup_expr="icontains", help_text=False, label="Urn type"
609 )
610 urn__variation = django_filters.CharFilter(
611 lookup_expr="icontains", help_text=False, label="Urn variation"
612 )
613 urn__urn_id = django_filters.CharFilter(
614 lookup_expr="icontains",
615 help_text=False,
616 label=Urn._meta.get_field("urn_id").verbose_name,
617 )
618 urn__urncover_exists = django_filters.ChoiceFilter(
619 null_label="Unknown", help_text=False, choices=YESNO, label="Urn cover exists?"
620 )
621 # UrnCover search fields
622 urn__urncover__basic_shape = django_filters.ModelMultipleChoiceFilter(
623 queryset=SkosConcept.objects.filter(
624 scheme__dc_title__iexact="Basic shape of urn cover"
625 ),
626 help_text=False,
627 label="Basic shape of urn cover",
628 )
629 urn__urncover__upside_down = django_filters.ChoiceFilter(
630 null_label="Unknown",
631 help_text=False,
632 choices=YESNO,
633 label="Urn cover upside down",
634 )
635 urn__urncover__fragment = django_filters.ChoiceFilter(
636 null_label="Unknown", help_text=False, choices=YESNO, label="Fragment"
637 )
638 urn__urncover__cover_id = django_filters.CharFilter(
639 lookup_expr="icontains",
640 help_text=False,
641 label=UrnCover._meta.get_field("cover_id").verbose_name,
642 )
643 # GraveGood search fields
644 gravegood__name = django_filters.ModelMultipleChoiceFilter(
645 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="GraveGoodObject"),
646 help_text=False,
647 label="Grave Good type",
648 )
649 gravegood__material = django_filters.ModelMultipleChoiceFilter(
650 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Material"),
651 help_text=False,
652 label="Grave Good material",
653 )
654 gravegood__condition = django_filters.ModelMultipleChoiceFilter(
655 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Condition"),
656 help_text=False,
657 label="Grave Good condition",
658 )
659 gravegood__position = django_filters.ModelMultipleChoiceFilter(
660 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Position"),
661 help_text=False,
662 label="Grave Good position",
663 )
664 gravegood__amount_countable = django_filters.NumberFilter(
665 lookup_expr="exact", help_text=False, distinct=True, label="Grave Good amount"
666 )
667 # GraveGoodOther search fields
668 gravegoodother__food = django_filters.ChoiceFilter(
669 null_label="Unknown", help_text=False, choices=YESNO, label="Food"
670 )
671 gravegoodother__other_organic_grave_good = django_filters.ChoiceFilter(
672 null_label="Unknown",
673 help_text=False,
674 choices=YESNO,
675 label="Other organic grave good",
676 )
677 gravegoodother__position = django_filters.ModelMultipleChoiceFilter(
678 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Position"),
679 help_text=False,
680 label="Organic Grave Good position",
681 )
682 gravegoodother__amount_countable = django_filters.NumberFilter(
683 lookup_expr="exact",
684 help_text=False,
685 distinct=True,
686 label="Organic Grave Good amount",
687 )
688 # DeadBodyRemains search fields
689 deadbodyremains__age = django_filters.ModelMultipleChoiceFilter(
690 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Age"),
691 help_text=False,
692 label="Anthropology age",
693 )
694 deadbodyremains__gender = django_filters.ModelMultipleChoiceFilter(
695 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Gender"),
696 help_text=False,
697 label="Anthropology gender",
698 )
699 deadbodyremains__temperature = django_filters.ModelMultipleChoiceFilter(
700 queryset=SkosConcept.objects.filter(
701 scheme__dc_title__iexact="Cremation temperature"
702 ),
703 help_text=False,
704 label="Cremation temperature",
705 )
706 deadbodyremains__position = django_filters.ModelMultipleChoiceFilter(
707 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Position"),
708 help_text=False,
709 label="Anthropology position",
710 )
711 deadbodyremains__weight = django_filters.CharFilter(
712 lookup_expr="exact", help_text=False, label="Anthropology weight in gram"
713 )
714 deadbodyremains__pathology = django_filters.CharFilter(
715 lookup_expr="icontains", help_text=False, label="Pathology"
716 )
717 deadbodyremains__total_weight = django_filters.CharFilter(
718 lookup_expr="exact",
719 help_text=False,
720 label=DeadBodyRemains._meta.get_field("total_weight").verbose_name,
721 )
722 deadbodyremains__amount_countable = django_filters.NumberFilter(
723 lookup_expr="exact", help_text=False, distinct=True, label="Anthropology amount"
724 )
725 # AnimalRemains search fields
726 animalremains__species = django_filters.ModelMultipleChoiceFilter(
727 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Species"),
728 help_text=False,
729 label="Species",
730 )
731 animalremains__age = django_filters.CharFilter(
732 lookup_expr="icontains", help_text=False, label="Animal remains age"
733 )
734 animalremains__sex = django_filters.CharFilter(
735 lookup_expr="icontains", help_text=False, label="Animal remains sex"
736 )
737 animalremains__weight = django_filters.CharFilter(
738 lookup_expr="exact", help_text=False, label="Animal remains weight"
739 )
740 animalremains__position = django_filters.ModelMultipleChoiceFilter(
741 queryset=SkosConcept.objects.filter(scheme__dc_title__iexact="Position"),
742 help_text=False,
743 label="Animal remains position",
744 )
745 animalremains__amount_countable = django_filters.NumberFilter(
746 lookup_expr="exact",
747 help_text=False,
748 distinct=True,
749 label="Animal Remains amount",
750 )
752 class Meta:
753 model = Burial
754 fields = ["id", "burial_id", "burial_site__name"]