Coverage for apis_core / entities / abc.py: 45%

29 statements  

« prev     ^ index     » next       coverage.py v7.14.0, created at 2026-05-27 05:15 +0000

1import functools 

2 

3from django.urls import reverse 

4 

5from apis_core.generic.abc import GenericModel 

6 

7 

8class Entity(GenericModel): 

9 class Meta: 

10 abstract = True 

11 

12 @property 

13 def get_canonical_url(self): 

14 return reverse("apis_core:canonical-entity", args=[self.pk]) 

15 

16 @functools.cached_property 

17 def get_prev_id(self): 

18 prev_instance = ( 

19 type(self).objects.filter(id__lt=self.id).order_by("-id").only("id").first() 

20 ) 

21 if prev_instance is not None: 

22 return prev_instance.id 

23 return False 

24 

25 @functools.cached_property 

26 def get_next_id(self): 

27 next_instance = ( 

28 type(self).objects.filter(id__gt=self.id).order_by("id").only("id").first() 

29 ) 

30 if next_instance is not None: 

31 return next_instance.id 

32 return False 

33 

34 def import_data(self, data): 

35 super().import_data(data) 

36 if "same_as" in data: 

37 self._uris = data["same_as"] 

38 self.save() 

39 if "relations" in data: 

40 self.create_relations_to_uris = data["relations"] 

41 self.save()