Coverage for apis_core/generic/abc.py: 54%
37 statements
« prev ^ index » next coverage.py v7.6.1, created at 2024-09-16 07:42 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2024-09-16 07:42 +0000
1from django.contrib.contenttypes.models import ContentType
2from django.urls import reverse
4from apis_core.generic.helpers import permission_fullname
7class GenericModel:
8 @classmethod
9 def get_listview_url(cls):
10 ct = ContentType.objects.get_for_model(cls)
11 return reverse("apis_core:generic:list", args=[ct])
13 @classmethod
14 def get_createview_url(cls):
15 ct = ContentType.objects.get_for_model(cls)
16 return reverse("apis_core:generic:create", args=[ct])
18 def get_edit_url(self):
19 ct = ContentType.objects.get_for_model(self)
20 return reverse("apis_core:generic:update", args=[ct, self.id])
22 def get_absolute_url(self):
23 ct = ContentType.objects.get_for_model(self)
24 return reverse("apis_core:generic:detail", args=[ct, self.id])
26 def get_delete_url(self):
27 ct = ContentType.objects.get_for_model(self)
28 return reverse("apis_core:generic:delete", args=[ct, self.id])
30 def get_create_success_url(self):
31 return self.get_absolute_url()
33 def get_update_success_url(self):
34 return self.get_edit_url()
36 def get_api_detail_endpoint(self):
37 ct = ContentType.objects.get_for_model(self)
38 return reverse("apis_core:generic:genericmodelapi-detail", args=[ct, self.id])
40 @classmethod
41 def get_change_permission(self):
42 return permission_fullname("change", self)
44 @classmethod
45 def get_add_permission(self):
46 return permission_fullname("add", self)
48 @classmethod
49 def get_delete_permission(self):
50 return permission_fullname("delete", self)