Martín Miranda

Merge branch 'fix/edicto_campo_usuario' into 'develop'

Fix/edicto campo usuario



See merge request !45
@@ -24,24 +24,32 @@ class EdictoViewSet(mixins.CreateModelMixin, @@ -24,24 +24,32 @@ class EdictoViewSet(mixins.CreateModelMixin,
24 filterset_class = EdictoFilter 24 filterset_class = EdictoFilter
25 queryset = Edicto.objects.all() 25 queryset = Edicto.objects.all()
26 ordering_fields = ('fecha_creacion', 'id') 26 ordering_fields = ('fecha_creacion', 'id')
27 - ordering = ('fecha_publicacion', 'id',) 27 + ordering = ('fecha_publicacion',)
28 lookup_field = 'uuid' 28 lookup_field = 'uuid'
29 29
30 def perform_create(self, serializer): 30 def perform_create(self, serializer):
31 edicto = self.request.data.get('cuerpo_edicto') 31 edicto = self.request.data.get('cuerpo_edicto')
32 cantidad_palabras = contador(edicto) 32 cantidad_palabras = contador(edicto)
33 usuario = self.request.user 33 usuario = self.request.user
34 - serializer.save(cantidad_palabras=cantidad_palabras, usuario=usuario) 34 + serializer.save(cantidad_palabras=cantidad_palabras,
  35 + usuario=usuario,
  36 + usuario_movimiento=usuario,
  37 + )
35 38
36 - @action(detail=True, methods=['put', 'patch']) 39 + @action(detail=True, methods=['put'])
37 def custom_update(self, request): 40 def custom_update(self, request):
38 - edicto = request.data.get('cuerpo_edicto')  
39 - cantidad_palabras = contador(edicto)  
40 -  
41 instance = self.get_object() 41 instance = self.get_object()
42 serializer = self.get_serializer(instance, data=request.data) 42 serializer = self.get_serializer(instance, data=request.data)
43 serializer.is_valid(raise_exception=True) 43 serializer.is_valid(raise_exception=True)
44 - serializer.save(cantidad_palabras=cantidad_palabras, fecha_actualizacion=datetime.now()) 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 + )
45 53
46 return Response(serializer.data, status=status.HTTP_200_OK) 54 return Response(serializer.data, status=status.HTTP_200_OK)
47 55
  1 +# Generated by Django 4.1.9 on 2023-09-12 21:23
  2 +
  3 +from django.conf import settings
  4 +from django.db import migrations, models
  5 +import django.db.models.deletion
  6 +
  7 +
  8 +class Migration(migrations.Migration):
  9 +
  10 + dependencies = [
  11 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  12 + ('edicto', '0013_alter_edicto_estado'),
  13 + ]
  14 +
  15 + operations = [
  16 + migrations.AddField(
  17 + model_name='edicto',
  18 + name='usuario_movimiento',
  19 + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='udate_edicto', to=settings.AUTH_USER_MODEL),
  20 + ),
  21 + ]
  1 +# Generated by Django 4.1.9 on 2023-09-12 21:24
  2 +from django.conf import settings
  3 +from django.db import migrations, models
  4 +import django.db.models.deletion
  5 +
  6 +
  7 +def migrar_edicto_usuario_movi(apps, schema):
  8 + Edictos = apps.get_model('edicto', 'Edicto')
  9 + user_move = 1
  10 + for edicto in Edictos.objects.all():
  11 + edicto.usuario_movimiento = user_move
  12 + edicto.save()
  13 + user_move = user_move+1
  14 +
  15 +
  16 +class Migration(migrations.Migration):
  17 +
  18 + dependencies = [
  19 + ('edicto', '0014_edicto_usuario_movimiento'),
  20 + ]
  21 +
  22 + operations = [
  23 + migrations.RunPython(migrar_edicto_usuario_movi, reverse_code=migrations.RunPython.noop),
  24 + migrations.AlterField(
  25 + model_name='edicto',
  26 + name='usuario_movimiento',
  27 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='udate_edicto', to=settings.AUTH_USER_MODEL)
  28 + ),
  29 + ]
@@ -38,6 +38,7 @@ class Edicto(models.Model): @@ -38,6 +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 42
42 class Meta: 43 class Meta:
43 verbose_name = 'Edicto' 44 verbose_name = 'Edicto'
@@ -10,12 +10,14 @@ from usuario.serializers import UsuarioListaSerializer @@ -10,12 +10,14 @@ from usuario.serializers import UsuarioListaSerializer
10 class EdictoSerializer(serializers.ModelSerializer): 10 class EdictoSerializer(serializers.ModelSerializer):
11 included_serializers = { 11 included_serializers = {
12 'usuario': UsuarioListaSerializer, 12 'usuario': UsuarioListaSerializer,
  13 + 'usuario_movimiento': UsuarioListaSerializer,
13 } 14 }
14 15
15 class Meta: 16 class Meta:
16 model = Edicto 17 model = Edicto
17 fields = ('uuid', 18 fields = ('uuid',
18 'usuario', 19 'usuario',
  20 + 'usuario_movimiento',
19 'estado', 21 'estado',
20 'cuerpo_edicto', 22 'cuerpo_edicto',
21 'cantidad_palabras', 23 'cantidad_palabras',
@@ -29,7 +31,10 @@ class EdictoSerializer(serializers.ModelSerializer): @@ -29,7 +31,10 @@ class EdictoSerializer(serializers.ModelSerializer):
29 31
30 ) 32 )
31 33
32 - read_only_fields = ('usuario', 'fecha_publicacion', 'cantidad_palabras', 'fecha_creacion') 34 + read_only_fields = ('usuario', 'usuario_movimiento',
  35 + 'fecha_publicacion', 'cantidad_palabras',
  36 + 'fecha_creacion',
  37 + )
33 38
34 def to_representation(self, instance): 39 def to_representation(self, instance):
35 data = super().to_representation(instance) 40 data = super().to_representation(instance)