Showing
4 changed files
with
19 additions
and
35 deletions
@@ -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, |
@@ -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') |
-
Please register or login to post a comment