Enzo Yair

feature/#31_modificar_modelo_edicto

@@ -21,6 +21,14 @@ class EdictoViewSet(mixins.CreateModelMixin, @@ -21,6 +21,14 @@ class EdictoViewSet(mixins.CreateModelMixin,
21 serializer_class = EdictoSerializer 21 serializer_class = EdictoSerializer
22 permission_classes = [IsAuthenticated, ] 22 permission_classes = [IsAuthenticated, ]
23 23
  24 + def perform_create(self, serializer):
  25 + edicto = self.request.data.get('cuerpo_edicto')
  26 + cantidad_palabras = contador(edicto)
  27 + serializer.save(cantidad_palabras=cantidad_palabras, usuario=self.request.user)
  28 +
  29 + def custom_get_method(self, request):
  30 +
  31 + instance = self.get_object()
24 @action(detail=True, methods=['put', 'patch']) 32 @action(detail=True, methods=['put', 'patch'])
25 def custom_update(self, request): 33 def custom_update(self, request):
26 edicto = request.data.get('cuerpo_edicto') 34 edicto = request.data.get('cuerpo_edicto')
@@ -31,35 +39,11 @@ class EdictoViewSet(mixins.CreateModelMixin, @@ -31,35 +39,11 @@ class EdictoViewSet(mixins.CreateModelMixin,
31 serializer.is_valid(raise_exception=True) 39 serializer.is_valid(raise_exception=True)
32 serializer.save(cantidad_palabras=cantidad_palabras, fecha_actualizacion=datetime.now()) 40 serializer.save(cantidad_palabras=cantidad_palabras, fecha_actualizacion=datetime.now())
33 41
34 - return Response(serializer.data, status=status.HTTP_200_OK)  
35 -  
36 - def perform_create(self, serializer):  
37 - edicto = self.request.data.get('cuerpo_edicto')  
38 - cantidad_palabras = contador(edicto)  
39 - serializer.save(cantidad_palabras=cantidad_palabras)  
40 -  
41 - def include_fecha_publicacion(self):  
42 - return self.request.user.is_staff  
43 -  
44 - def list(self, request, *args, **kwargs):  
45 - queryset = self.filter_queryset(self.get_queryset())  
46 - serializer = self.get_serializer(queryset, many=True) 42 + return Response(serializer.data, status=status.HTTP_200_OK
47 43
48 - for data in serializer.data:  
49 - if self.include_fecha_publicacion():  
50 - edicto = queryset.get(id=data['edicto_id'])  
51 - data['fecha_publicacion'] = edicto.fecha_publicacion  
52 44
53 - return Response(serializer.data, status=status.HTTP_200_OK)  
54 -  
55 - def retrieve(self, request, *args, **kwargs):  
56 - instance = self.get_object()  
57 - serializer = self.get_serializer(instance)  
58 45
59 - if self.include_fecha_publicacion():  
60 - serializer.data['fecha_publicacion'] = instance.fecha_publicacion  
61 46
62 - return Response(serializer.data, status=status.HTTP_200_OK)  
63 47
64 48
65 class PrecioViewSet(mixins.CreateModelMixin, 49 class PrecioViewSet(mixins.CreateModelMixin,
@@ -16,7 +16,7 @@ STATUS_CHOICE = [ @@ -16,7 +16,7 @@ STATUS_CHOICE = [
16 ] 16 ]
17 17
18 18
19 -EXTENSIONES_VALIDAS = ["pdf", "docx",] 19 +EXTENSIONES_VALIDAS = "pdf",
20 20
21 21
22 PESOS = 'peso_argentino' 22 PESOS = 'peso_argentino'
@@ -12,8 +12,8 @@ class EdictoSerializer(serializers.ModelSerializer): @@ -12,8 +12,8 @@ class EdictoSerializer(serializers.ModelSerializer):
12 12
13 class Meta: 13 class Meta:
14 model = Edicto 14 model = Edicto
15 - fields = ('usuario',  
16 - 'edicto_id', 15 + fields = ('edicto_id',
  16 + 'fecha_publicacion',
17 'cuerpo_edicto', 17 'cuerpo_edicto',
18 'estado', 18 'estado',
19 'cantidad_palabras', 19 'cantidad_palabras',
@@ -25,24 +25,24 @@ class EdictoSerializer(serializers.ModelSerializer): @@ -25,24 +25,24 @@ class EdictoSerializer(serializers.ModelSerializer):
25 'observaciones', 25 'observaciones',
26 ) 26 )
27 read_only_fields = ('cantidad_palabras', 'fecha_creacion') 27 read_only_fields = ('cantidad_palabras', 'fecha_creacion')
28 - included_serializers = {  
29 - 'usuario': 'usuario.serializers.UsuarioSerializer',  
30 - }  
31 28
32 def to_representation(self, instance): 29 def to_representation(self, instance):
33 data = super().to_representation(instance) 30 data = super().to_representation(instance)
34 user = self.context['request'].user 31 user = self.context['request'].user
35 32
36 - if user.is_staff: 33 + if self.context['view'].include_fecha_publicacion():
37 data['fecha_publicacion'] = instance.fecha_publicacion 34 data['fecha_publicacion'] = instance.fecha_publicacion
38 35
  36 + if user.is_staff:
  37 + data['user_id'] = user.id
  38 +
39 return data 39 return data
40 40
41 @staticmethod 41 @staticmethod
42 def validate_archivo(value): 42 def validate_archivo(value):
43 filename, extension = value.name.rsplit(".", 1) 43 filename, extension = value.name.rsplit(".", 1)
44 if extension.lower() not in EXTENSIONES_VALIDAS: 44 if extension.lower() not in EXTENSIONES_VALIDAS:
45 - raise serializers.ValidationError("Archivos permitidos: .pdf, .docx, .jpg, .png") 45 + raise serializers.ValidationError("Archivos permitidos: .pdf")
46 return value 46 return value
47 47
48 48
@@ -64,7 +64,7 @@ class PrecioSerializer(serializers.ModelSerializer): @@ -64,7 +64,7 @@ class PrecioSerializer(serializers.ModelSerializer):
64 user = request.user if request else None 64 user = request.user if request else None
65 if not user or user.is_anonymous: 65 if not user or user.is_anonymous:
66 raise serializers.ValidationError("El usuario debe estar autenticado.") 66 raise serializers.ValidationError("El usuario debe estar autenticado.")
67 - if not user.es_staff: 67 + if not user.is_staff:
68 raise serializers.ValidationError("El usuario no es parte del personal designado.") 68 raise serializers.ValidationError("El usuario no es parte del personal designado.")
69 69
70 return data 70 return data
@@ -162,7 +162,7 @@ REST_FRAMEWORK = { @@ -162,7 +162,7 @@ REST_FRAMEWORK = {
162 'NON_FIELD_ERRORS_KEY': 'error_messages' 162 'NON_FIELD_ERRORS_KEY': 'error_messages'
163 } 163 }
164 164
165 -ACTIVAR_HERRAMIENTAS_DEBUGGING = env.bool('ACTIVAR_HERRAMIENTAS_DEBUGGING', default=False) 165 +ACTIVAR_HERRAMIENTAS_DEBUGGING = env.bool('ACTIVAR_HERRAMIENTAS_DEBUGGING', default=True)
166 if ACTIVAR_HERRAMIENTAS_DEBUGGING: 166 if ACTIVAR_HERRAMIENTAS_DEBUGGING:
167 INTERNAL_IPS = ['127.0.0.1'] 167 INTERNAL_IPS = ['127.0.0.1']
168 INSTALLED_APPS += ('debug_toolbar', 'django_extensions') 168 INSTALLED_APPS += ('debug_toolbar', 'django_extensions')