Enzo Yair

se cambio los nombres de usuarios y usuario movimiento

@@ -3,13 +3,11 @@ from django_filters.rest_framework import DjangoFilterBackend @@ -3,13 +3,11 @@ from django_filters.rest_framework import DjangoFilterBackend
3 from rest_framework.response import Response 3 from rest_framework.response import Response
4 from rest_framework.permissions import IsAuthenticated 4 from rest_framework.permissions import IsAuthenticated
5 from rest_framework.decorators import action 5 from rest_framework.decorators import action
6 -from datetime import datetime  
7 6
8 from .models import Edicto, Precio 7 from .models import Edicto, Precio
9 from .serializer import EdictoSerializer, PrecioSerializer 8 from .serializer import EdictoSerializer, PrecioSerializer
10 from .filters import EdictoFilter, PrecioFilter 9 from .filters import EdictoFilter, PrecioFilter
11 from .permissions import IsAdminOrAuthorized 10 from .permissions import IsAdminOrAuthorized
12 -from .utils import contador  
13 11
14 12
15 class EdictoViewSet(mixins.CreateModelMixin, 13 class EdictoViewSet(mixins.CreateModelMixin,
@@ -27,32 +25,6 @@ class EdictoViewSet(mixins.CreateModelMixin, @@ -27,32 +25,6 @@ class EdictoViewSet(mixins.CreateModelMixin,
27 ordering = ('fecha_publicacion',) 25 ordering = ('fecha_publicacion',)
28 lookup_field = 'uuid' 26 lookup_field = 'uuid'
29 27
30 - def perform_create(self, serializer):  
31 - edicto = self.request.data.get('cuerpo_edicto')  
32 - cantidad_palabras = contador(edicto)  
33 - usuario = self.request.user  
34 - serializer.save(cantidad_palabras=cantidad_palabras,  
35 - usuario=usuario,  
36 - usuario_movimiento=usuario,  
37 - )  
38 -  
39 - @action(detail=True, methods=['put'])  
40 - def custom_update(self, request):  
41 - instance = self.get_object()  
42 - serializer = self.get_serializer(instance, data=request.data)  
43 - serializer.is_valid(raise_exception=True)  
44 -  
45 - edicto = request.data.get('cuerpo_edicto')  
46 - cantidad_palabras = contador(edicto)  
47 - usuario = self.request.user  
48 -  
49 - serializer.save(cantidad_palabras=cantidad_palabras,  
50 - fecha_actualizacion=datetime.now(),  
51 - usuario_movimiento=usuario,  
52 - )  
53 -  
54 - return Response(serializer.data, status=status.HTTP_200_OK)  
55 -  
56 28
57 class PrecioViewSet(viewsets.ReadOnlyModelViewSet): 29 class PrecioViewSet(viewsets.ReadOnlyModelViewSet):
58 serializer_class = PrecioSerializer 30 serializer_class = PrecioSerializer
@@ -61,4 +33,4 @@ class PrecioViewSet(viewsets.ReadOnlyModelViewSet): @@ -61,4 +33,4 @@ class PrecioViewSet(viewsets.ReadOnlyModelViewSet):
61 filterset_class = PrecioFilter 33 filterset_class = PrecioFilter
62 ordering_fields = ('usuario', ) 34 ordering_fields = ('usuario', )
63 ordering = 'usuario' 35 ordering = 'usuario'
64 - queryset = Precio.objects.all() 36 + queryset = Precio.objects.all()
@@ -7,7 +7,7 @@ from edicto.models import Edicto, Precio @@ -7,7 +7,7 @@ from edicto.models import Edicto, Precio
7 class EdictoFilter(filters.FilterSet): 7 class EdictoFilter(filters.FilterSet):
8 class Meta: 8 class Meta:
9 model = Edicto 9 model = Edicto
10 - fields = {'usuario': ['exact'], 10 + fields = {'creado_por': ['exact'],
11 'estado': ['exact'], 11 'estado': ['exact'],
12 'uuid': ['exact'], 12 'uuid': ['exact'],
13 } 13 }
  1 +# Generated by Django 4.1.9 on 2023-09-19 12:40
  2 +
  3 +from django.db import migrations
  4 +
  5 +
  6 +class Migration(migrations.Migration):
  7 +
  8 + dependencies = [
  9 + ('edicto', '0015_edicto_usuario_movi'),
  10 + ]
  11 +
  12 + operations = [
  13 + migrations.RenameField(
  14 + model_name='edicto',
  15 + old_name='usuario',
  16 + new_name='creado_por',
  17 + ),
  18 + migrations.RenameField(
  19 + model_name='edicto',
  20 + old_name='usuario_movimiento',
  21 + new_name='modificado_por',
  22 + ),
  23 + ]
@@ -26,7 +26,7 @@ class Precio (models.Model): @@ -26,7 +26,7 @@ class Precio (models.Model):
26 26
27 class Edicto(models.Model): 27 class Edicto(models.Model):
28 uuid = models.UUIDField(unique=True, editable=False, default=uuid4) 28 uuid = models.UUIDField(unique=True, editable=False, default=uuid4)
29 - usuario = models.ForeignKey(Usuario, on_delete=models.CASCADE, verbose_name='Usuario') 29 + creado_por = models.ForeignKey(Usuario, on_delete=models.CASCADE, verbose_name='Usuario')
30 cuerpo_edicto = models.TextField(blank=False, null=False) 30 cuerpo_edicto = models.TextField(blank=False, null=False)
31 archivo = models.FileField(upload_to="uploads/%Y/%m/%d/", null=False, blank=False) 31 archivo = models.FileField(upload_to="uploads/%Y/%m/%d/", null=False, blank=False)
32 dias_publicar = models.PositiveIntegerField(blank=False, null=False) 32 dias_publicar = models.PositiveIntegerField(blank=False, null=False)
@@ -38,7 +38,7 @@ class Edicto(models.Model): @@ -38,7 +38,7 @@ class Edicto(models.Model):
38 observaciones = models.CharField(max_length=500, blank=True, null=True) 38 observaciones = models.CharField(max_length=500, blank=True, null=True)
39 fecha_creacion = models.DateField(auto_now_add=True) 39 fecha_creacion = models.DateField(auto_now_add=True)
40 fecha_modificacion = models.DateTimeField(auto_now_add=True) 40 fecha_modificacion = models.DateTimeField(auto_now_add=True)
41 - usuario_movimiento = models.ForeignKey(Usuario, on_delete=models.CASCADE, related_name='udate_edicto') 41 + modificado_por = models.ForeignKey(Usuario, on_delete=models.CASCADE, related_name='udate_edicto')
42 42
43 class Meta: 43 class Meta:
44 verbose_name = 'Edicto' 44 verbose_name = 'Edicto'
@@ -5,19 +5,19 @@ from .constants import EXTENSIONES_VALIDAS @@ -5,19 +5,19 @@ from .constants import EXTENSIONES_VALIDAS
5 5
6 from .models import Edicto, Precio 6 from .models import Edicto, Precio
7 from usuario.serializers import UsuarioListaSerializer 7 from usuario.serializers import UsuarioListaSerializer
  8 +from .utils import contador
8 9
9 10
10 class EdictoSerializer(serializers.ModelSerializer): 11 class EdictoSerializer(serializers.ModelSerializer):
11 included_serializers = { 12 included_serializers = {
12 - 'usuario': UsuarioListaSerializer,  
13 - 'usuario_movimiento': UsuarioListaSerializer, 13 + 'creado_por': UsuarioListaSerializer,
  14 + 'modificado_por': UsuarioListaSerializer,
14 } 15 }
15 16
16 class Meta: 17 class Meta:
17 model = Edicto 18 model = Edicto
18 - fields = ('uuid',  
19 - 'usuario',  
20 - 'usuario_movimiento', 19 + fields = ('creado_por',
  20 + 'modificado_por',
21 'estado', 21 'estado',
22 'cuerpo_edicto', 22 'cuerpo_edicto',
23 'cantidad_palabras', 23 'cantidad_palabras',
@@ -28,19 +28,24 @@ class EdictoSerializer(serializers.ModelSerializer): @@ -28,19 +28,24 @@ class EdictoSerializer(serializers.ModelSerializer):
28 'fecha_creacion', 28 'fecha_creacion',
29 'observaciones', 29 'observaciones',
30 'fecha_publicacion', 30 'fecha_publicacion',
  31 + 'fecha_modificacion'
31 32
32 ) 33 )
33 34
34 - read_only_fields = ('usuario', 'usuario_movimiento', 35 + read_only_fields = ('creado_por', 'modificado_por',
35 'fecha_publicacion', 'cantidad_palabras', 36 'fecha_publicacion', 'cantidad_palabras',
36 'fecha_creacion', 37 'fecha_creacion',
  38 + 'fecha_modificacion',
37 ) 39 )
38 40
39 - def to_representation(self, instance):  
40 - data = super().to_representation(instance)  
41 - user = self.context['request'].user  
42 - if not user.is_staff:  
43 - data['fecha_publicacion'] = instance.fecha_publicacion 41 + def validate(self, data):
  42 + edicto = data.get('cuerpo_edicto', '')
  43 + cantidad_palabras = contador(edicto)
  44 + data['cantidad_palabras'] = cantidad_palabras
  45 + request = self.context['request']
  46 + if request.method == 'POST':
  47 + data['creado_por'] = request.user
  48 + data['modificado_por'] = request.user
44 return data 49 return data
45 50
46 @staticmethod 51 @staticmethod
@@ -65,4 +70,4 @@ class PrecioSerializer(serializers.ModelSerializer): @@ -65,4 +70,4 @@ class PrecioSerializer(serializers.ModelSerializer):
65 70
66 included_serializers = { 71 included_serializers = {
67 'usuario': UsuarioListaSerializer 72 'usuario': UsuarioListaSerializer
68 - }  
  73 + }