epok-toolkit 1.11.2__py3-none-any.whl → 1.12.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of epok-toolkit might be problematic. Click here for more details.

@@ -1,5 +1,6 @@
1
+ from .cache import *
1
2
  from .fields import *
2
3
  from .manager import *
4
+ from .models import *
3
5
  from .response import *
4
- from .cache import *
5
- from .viewsets import *
6
+ from .viewsets import *
@@ -0,0 +1,42 @@
1
+ from uuid import uuid4
2
+ from django.conf import settings
3
+ from django.db import models
4
+
5
+
6
+
7
+ class UUID4Mixin(models.Model):
8
+ id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
9
+
10
+ class Meta:
11
+ abstract = True
12
+
13
+
14
+
15
+ class TimeStampMixin(models.Model):
16
+ created_at = models.DateTimeField(auto_now_add=True)
17
+ updated_at = models.DateTimeField(auto_now=True)
18
+
19
+ class Meta:
20
+ abstract = True
21
+
22
+
23
+
24
+ class SoftDeleteMixin(models.Model):
25
+ is_deleted = models.BooleanField(default=False)
26
+
27
+ class Meta:
28
+ abstract = True
29
+ indexes = [
30
+ models.Index(fields=['is_deleted']),
31
+ ]
32
+
33
+
34
+
35
+ class CreatorsMixin(models.Model):
36
+ created_by = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True,
37
+ on_delete=models.CASCADE, related_name='%(class)s_created')
38
+ updated_by = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True,
39
+ on_delete=models.CASCADE, related_name='%(class)s_updated')
40
+
41
+ class Meta:
42
+ abstract = True
@@ -1,7 +1,7 @@
1
1
  # core/viewsets.py
2
2
  from rest_framework import viewsets
3
3
  from rest_framework.pagination import PageNumberPagination
4
- from rest_framework.permissions import AllowAny
4
+ from rest_framework.permissions import IsAuthenticated
5
5
 
6
6
  class DefaultPagination(PageNumberPagination):
7
7
  """
@@ -23,7 +23,9 @@ class BaseOptimizedViewSet(viewsets.ModelViewSet):
23
23
  serializer_class = full_serializer_class
24
24
  extensions_auto_optimize = True
25
25
 
26
- permission_classes = [AllowAny]
26
+ permission_classes = [IsAuthenticated]
27
+
28
+ pagination_class = DefaultPagination
27
29
 
28
30
  filterset_fields = []
29
31
  search_fields = []
@@ -36,10 +38,14 @@ class BaseOptimizedViewSet(viewsets.ModelViewSet):
36
38
  manager = model_cls._default_manager
37
39
 
38
40
  if hasattr(manager, 'simple') and self.action == 'list':
39
- return manager.simple()
41
+ qs = manager.simple()
40
42
  elif hasattr(manager, 'full'):
41
- return manager.full()
42
-
43
+ qs = manager.full()
44
+
45
+ if hasattr(manager, 'created_by'):
46
+ return qs.filter(created_by=self.request.user)
47
+
48
+ return qs
43
49
 
44
50
  def get_serializer_class(self):
45
51
 
@@ -54,3 +60,12 @@ class BaseOptimizedViewSet(viewsets.ModelViewSet):
54
60
  return self.full_serializer_class
55
61
  case _:
56
62
  return super().get_serializer_class()
63
+
64
+
65
+ def perform_create(self, serializer):
66
+ if hasattr(serializer, 'created_by') and hasattr(serializer, 'updated_by'):
67
+ serializer.save(created_by=self.request.user, updated_by=self.request.user)
68
+
69
+ def perform_update(self, serializer):
70
+ if hasattr(serializer, 'updated_by'):
71
+ serializer.save(updated_by=self.request.user)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: epok-toolkit
3
- Version: 1.11.2
3
+ Version: 1.12.1
4
4
  Summary: Una herramienta para la gestión de tareas y procesos en Django con Celery.
5
5
  Author-email: Fernando Leon Franco <fernanlee2131@gmail.com>
6
6
  License: MIT
@@ -1,12 +1,13 @@
1
1
  epok_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  epok_toolkit/apps.py,sha256=O3q3CcucJOHjlYIS0VgbKsbtim2hpng_FxpKEG_MlWs,486
3
3
  epok_toolkit/default_settings.py,sha256=GdDpwMPzRYNDTDK0zcQKUwgiGYVVhj1Pi1NGAxTE1Io,890
4
- epok_toolkit/django/__init__.py,sha256=k8Fs3tI_DAJPmhZ_fIcWwZWPog3KgYyg4-a2cJWwDYc,113
4
+ epok_toolkit/django/__init__.py,sha256=noq8F7jlKE_9ikkOt4VnoYHspxm6zGJ-_N2qF_MvLX4,136
5
5
  epok_toolkit/django/cache.py,sha256=R179_Hrlw1k0tsry9EN0zGl4-Of02L-VzE-xqFuXjaU,4107
6
6
  epok_toolkit/django/fields.py,sha256=-ajP5qx-4bt9Qz9yW48gTlinTxD1xWPKOEkslqx8cSM,1089
7
7
  epok_toolkit/django/manager.py,sha256=3MZcA9wQY4E1KD8XlgZQbzf4wlF9vA8Pntl_gKDWfpA,1350
8
+ epok_toolkit/django/models.py,sha256=E1zj2KetRGszksQvLk3HN5kWkYkEYzJRRmAUOaLJmw8,1090
8
9
  epok_toolkit/django/response.py,sha256=O8OHBaKgUQjBeYLLbgTTs669l_4D6swUgAOwswjc-88,1716
9
- epok_toolkit/django/viewsets.py,sha256=zoWiPcIkrlmmjz695XjiIPOtNx1RvOChLva7RnrahI0,1635
10
+ epok_toolkit/django/viewsets.py,sha256=bwfD4nj6acdDt67l1DiV3jy1eev8whI8rkFnvd6d87k,2183
10
11
  epok_toolkit/django/utils/__init__.py,sha256=zDuoqm_eksZQpL-Bvd_q2KGMtSXfprBjf4TScZiwV6k,25
11
12
  epok_toolkit/django/utils/magic_link.py,sha256=GiDuy0kAGdYohGPlBL7rwpKPMpXuB1wJa1k5LTAOm4w,889
12
13
  epok_toolkit/email/__init__.py,sha256=pyJwysyVoq6DuYAG72fulsKFoOuAfjw3aBH7FhmYGHc,35
@@ -24,8 +25,8 @@ epok_toolkit/pdf/fuentes/Kollektif-Italic.ttf,sha256=1CXPyw43il9u0tQ_7aRzsEaVtg3
24
25
  epok_toolkit/pdf/fuentes/Kollektif.ttf,sha256=7wTLkVVNUm1giLjIZcWRUH5r2r3o0GjdKic4V1A-pNQ,51128
25
26
  epok_toolkit/pdf/plantillas/Ticket_congrats.png,sha256=OSQhVR0j_nLHE6kSJ33BTR-77HM1fNAfJBe2EuX6wVk,157141
26
27
  epok_toolkit/pdf/plantillas/Ticket_congrats2.png,sha256=1RBogBdo-8WSMpD3H73HoLgJtr5EC5oVKfOCIWOxPSo,373605
27
- epok_toolkit-1.11.2.dist-info/licenses/LICENSE,sha256=iLDbGXdLSIOT5OsxzHCvtmxHtonE21GiFlS3LNkug4A,128
28
- epok_toolkit-1.11.2.dist-info/METADATA,sha256=p1bniBsDkpw5eo9VrBM3iVn73fZkkNGgdH0Onu0dJPQ,2217
29
- epok_toolkit-1.11.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
30
- epok_toolkit-1.11.2.dist-info/top_level.txt,sha256=Wo72AqIFcfWwBGM5F5iGFw9PrO3WBnTSprFZIJk_pNg,13
31
- epok_toolkit-1.11.2.dist-info/RECORD,,
28
+ epok_toolkit-1.12.1.dist-info/licenses/LICENSE,sha256=iLDbGXdLSIOT5OsxzHCvtmxHtonE21GiFlS3LNkug4A,128
29
+ epok_toolkit-1.12.1.dist-info/METADATA,sha256=EQuNh95_THrbTxyH4Ytl39nnUSjoPz9B0Qn4C2_KoN8,2217
30
+ epok_toolkit-1.12.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
+ epok_toolkit-1.12.1.dist-info/top_level.txt,sha256=Wo72AqIFcfWwBGM5F5iGFw9PrO3WBnTSprFZIJk_pNg,13
32
+ epok_toolkit-1.12.1.dist-info/RECORD,,