Enzo Yair

se cambio los nombres de usuarios y usuario movimiento

... ... @@ -3,13 +3,11 @@ from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
from rest_framework.decorators import action
from datetime import datetime
from .models import Edicto, Precio
from .serializer import EdictoSerializer, PrecioSerializer
from .filters import EdictoFilter, PrecioFilter
from .permissions import IsAdminOrAuthorized
from .utils import contador
class EdictoViewSet(mixins.CreateModelMixin,
... ... @@ -27,32 +25,6 @@ class EdictoViewSet(mixins.CreateModelMixin,
ordering = ('fecha_publicacion',)
lookup_field = 'uuid'
def perform_create(self, serializer):
edicto = self.request.data.get('cuerpo_edicto')
cantidad_palabras = contador(edicto)
usuario = self.request.user
serializer.save(cantidad_palabras=cantidad_palabras,
usuario=usuario,
usuario_movimiento=usuario,
)
@action(detail=True, methods=['put'])
def custom_update(self, request):
instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data)
serializer.is_valid(raise_exception=True)
edicto = request.data.get('cuerpo_edicto')
cantidad_palabras = contador(edicto)
usuario = self.request.user
serializer.save(cantidad_palabras=cantidad_palabras,
fecha_actualizacion=datetime.now(),
usuario_movimiento=usuario,
)
return Response(serializer.data, status=status.HTTP_200_OK)
class PrecioViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = PrecioSerializer
... ...
... ... @@ -7,7 +7,7 @@ from edicto.models import Edicto, Precio
class EdictoFilter(filters.FilterSet):
class Meta:
model = Edicto
fields = {'usuario': ['exact'],
fields = {'creado_por': ['exact'],
'estado': ['exact'],
'uuid': ['exact'],
}
... ...
# Generated by Django 4.1.9 on 2023-09-19 12:40
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('edicto', '0015_edicto_usuario_movi'),
]
operations = [
migrations.RenameField(
model_name='edicto',
old_name='usuario',
new_name='creado_por',
),
migrations.RenameField(
model_name='edicto',
old_name='usuario_movimiento',
new_name='modificado_por',
),
]
... ...
... ... @@ -26,7 +26,7 @@ class Precio (models.Model):
class Edicto(models.Model):
uuid = models.UUIDField(unique=True, editable=False, default=uuid4)
usuario = models.ForeignKey(Usuario, on_delete=models.CASCADE, verbose_name='Usuario')
creado_por = models.ForeignKey(Usuario, on_delete=models.CASCADE, verbose_name='Usuario')
cuerpo_edicto = models.TextField(blank=False, null=False)
archivo = models.FileField(upload_to="uploads/%Y/%m/%d/", null=False, blank=False)
dias_publicar = models.PositiveIntegerField(blank=False, null=False)
... ... @@ -38,7 +38,7 @@ class Edicto(models.Model):
observaciones = models.CharField(max_length=500, blank=True, null=True)
fecha_creacion = models.DateField(auto_now_add=True)
fecha_modificacion = models.DateTimeField(auto_now_add=True)
usuario_movimiento = models.ForeignKey(Usuario, on_delete=models.CASCADE, related_name='udate_edicto')
modificado_por = models.ForeignKey(Usuario, on_delete=models.CASCADE, related_name='udate_edicto')
class Meta:
verbose_name = 'Edicto'
... ...
... ... @@ -5,19 +5,19 @@ from .constants import EXTENSIONES_VALIDAS
from .models import Edicto, Precio
from usuario.serializers import UsuarioListaSerializer
from .utils import contador
class EdictoSerializer(serializers.ModelSerializer):
included_serializers = {
'usuario': UsuarioListaSerializer,
'usuario_movimiento': UsuarioListaSerializer,
'creado_por': UsuarioListaSerializer,
'modificado_por': UsuarioListaSerializer,
}
class Meta:
model = Edicto
fields = ('uuid',
'usuario',
'usuario_movimiento',
fields = ('creado_por',
'modificado_por',
'estado',
'cuerpo_edicto',
'cantidad_palabras',
... ... @@ -28,19 +28,24 @@ class EdictoSerializer(serializers.ModelSerializer):
'fecha_creacion',
'observaciones',
'fecha_publicacion',
'fecha_modificacion'
)
read_only_fields = ('usuario', 'usuario_movimiento',
read_only_fields = ('creado_por', 'modificado_por',
'fecha_publicacion', 'cantidad_palabras',
'fecha_creacion',
'fecha_modificacion',
)
def to_representation(self, instance):
data = super().to_representation(instance)
user = self.context['request'].user
if not user.is_staff:
data['fecha_publicacion'] = instance.fecha_publicacion
def validate(self, data):
edicto = data.get('cuerpo_edicto', '')
cantidad_palabras = contador(edicto)
data['cantidad_palabras'] = cantidad_palabras
request = self.context['request']
if request.method == 'POST':
data['creado_por'] = request.user
data['modificado_por'] = request.user
return data
@staticmethod
... ...