Enzo Yair

correcion de api, models, y admin

... ... @@ -12,12 +12,9 @@ class PrecioAdmin(admin.ModelAdmin):
precios_activos = Precio.objects.filter(vigencia_hasta__gte=timezone.now().date())
if not change:
today = timezone.now().date()
if obj.vigencia_desde <= today:
if not precios_activos.exists():
if obj.vigencia_desde <= today and not precios_activos.exists():
obj.save()
else:
raise ValidationError("Ya existe un precio activo.")
else:
raise ValidationError("La fecha de inicio no es válida.")
else:
obj.save()
... ...
... ... @@ -57,12 +57,7 @@ class PrecioViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Precio.objects.all()
class PagoViewSets(mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.ListModelMixin,
viewsets.GenericViewSet):
class PagoViewSets(viewsets.ModelViewSet):
serializer_class = PagoSerializer
permission_classes = [IsAuthenticated, IsAdminOrAuthorized]
queryset = ComprobantePago.objects.all()
... ... @@ -70,17 +65,16 @@ class PagoViewSets(mixins.CreateModelMixin,
def perform_create(self, serializer):
try:
edicto = Edicto.objects.get(estado='pendiente_de_pago')
precio = Precio.objects.latest('id')
monto = calculadora(edicto, precio)
if edicto.usuario != self.request.user:
raise UsuarioNoAutorizado
serializer.validated_data['monto'] = monto
serializer.validated_data['edicto'] = edicto
precio = Precio.objects.latest('id')
monto = calculadora(edicto, precio)
serializer.validated_data.update({'monto': monto, 'edicto': edicto})
serializer.save()
except Edicto.DoesNotExist:
raise EdictoNoEncontrado
except Precio.DoesNotExist:
raise PrecioNoEncontrado
except (Edicto.DoesNotExist, Precio.DoesNotExist):
raise EdictoOPrecioNoEncontrado
class ComprobanteViewSets(mixins.CreateModelMixin,
... ...
... ... @@ -42,7 +42,7 @@ class Edicto(models.Model):
verbose_name_plural = 'Edictos'
def __str__(self):
return f"{self.cuerpo_edicto} Edicto"
return f"{self.usuario} - Edicto"
class ComprobantePago(models.Model):
... ... @@ -57,4 +57,4 @@ class ComprobantePago(models.Model):
verbose_name_plural = 'ComprobantesPagos'
def __str__(self):
return f"{self.numero_comprobante} comprobante pago de {self.edicto.cuerpo_edicto}"
return f"{self.numero_comprobante} comprobante pago de {self.edicto.usuario}"
... ...