diff --git a/config/api_router.py b/config/api_router.py index 2889ac1..7f2efaa 100644 --- a/config/api_router.py +++ b/config/api_router.py @@ -1,8 +1,7 @@ from django.conf import settings -from rest_framework.routers import DefaultRouter, SimpleRouter - -from reference.api.v1.views import ReferenceViewSet from markup_doc.api.v1.views import ArticleViewSet +from reference.api.v1.views import ReferenceViewSet +from rest_framework.routers import DefaultRouter, SimpleRouter if settings.DEBUG: router = DefaultRouter() @@ -12,4 +11,4 @@ router.register("reference", ReferenceViewSet, basename="reference") router.register("first_block", ArticleViewSet, basename="first_block") -urlpatterns = router.urls \ No newline at end of file +urlpatterns = router.urls diff --git a/config/settings/base.py b/config/settings/base.py index a2ebbb9..3a02f4b 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -70,6 +70,7 @@ ] THIRD_PARTY_APPS = [ + "rest_framework", "compressor", "wagtailautocomplete", ] diff --git a/markup_doc/api/v1/views.py b/markup_doc/api/v1/views.py index 66938bf..bc33d8e 100755 --- a/markup_doc/api/v1/views.py +++ b/markup_doc/api/v1/views.py @@ -1,19 +1,17 @@ -from django.shortcuts import render +import json + from django.http import JsonResponse +from rest_framework.mixins import CreateModelMixin from rest_framework.permissions import IsAuthenticated from rest_framework.viewsets import GenericViewSet -from rest_framework.mixins import CreateModelMixin -from rest_framework.response import Response + from markup_doc.api.v1.serializers import ArticleDocxSerializer from markup_doc.marker import mark_article -import json - -# Create your views here. class ArticleViewSet( - GenericViewSet, # generic view functionality - CreateModelMixin, # handles POSTs + GenericViewSet, + CreateModelMixin ): serializer_class = ArticleDocxSerializer permission_classes = [IsAuthenticated] @@ -27,17 +25,15 @@ def create(self, request, *args, **kwargs): def api_article(self, request): try: data = json.loads(request.body) - post_text = data.get('text') # Obtiene el parámetro - post_metadata = data.get('metadata') # Obtiene el parámetro + post_text = data.get("text") + post_metadata = data.get("metadata") resp_data = mark_article(post_text, post_metadata) response_data = { - 'message': resp_data, + "message": resp_data, } except json.JSONDecodeError: - response_data = { - 'error': 'Error processing' - } + response_data = {"error": "Error processing"} - return JsonResponse(response_data) \ No newline at end of file + return JsonResponse(response_data) diff --git a/reference/api/v1/views.py b/reference/api/v1/views.py index 20334a6..8f3afff 100755 --- a/reference/api/v1/views.py +++ b/reference/api/v1/views.py @@ -1,22 +1,18 @@ -from django.shortcuts import render +import json + from django.http import JsonResponse +from rest_framework.mixins import CreateModelMixin from rest_framework.permissions import IsAuthenticated from rest_framework.viewsets import GenericViewSet -from rest_framework.mixins import CreateModelMixin -from rest_framework.response import Response + from reference.api.v1.serializers import ReferenceSerializer -from reference.marker import mark_references from reference.data_utils import get_reference +from reference.models import Reference, ReferenceStatus -import json - -from reference.models import Reference, ElementCitation, ReferenceStatus - -# Create your views here. class ReferenceViewSet( - GenericViewSet, # generic view functionality - CreateModelMixin, # handles POSTs + GenericViewSet, + CreateModelMixin ): serializer_class = ReferenceSerializer permission_classes = [IsAuthenticated] @@ -25,14 +21,13 @@ class ReferenceViewSet( ] def create(self, request, *args, **kwargs): - # Redirigir a la función api_reference() return self.api_reference(request) def api_reference(self, request): try: data = json.loads(request.body) - post_reference = data.get('reference') # Obtiene el parámetro - post_type = data.get('type') # Obtiene el parámetro + post_reference = data.get("reference") + post_type = data.get("type") try: reference = Reference.objects.get(mixed_citation=post_reference) @@ -46,18 +41,16 @@ def api_reference(self, request): get_reference(new_reference.id) reference = Reference.objects.get(mixed_citation=post_reference) - - if post_type == 'xml': + + if post_type == "xml": reference_data = reference.element_citation.first().marked_xml else: reference_data = reference.element_citation.first().marked response_data = { - 'message': f'reference: {reference_data}', + "message": f"reference: {reference_data}", } except json.JSONDecodeError: - response_data = { - 'error': 'Error processing' - } + response_data = {"error": "Error processing"} - return JsonResponse(response_data) \ No newline at end of file + return JsonResponse(response_data) diff --git a/reference/models.py b/reference/models.py index 404c9e5..afa3f0d 100755 --- a/reference/models.py +++ b/reference/models.py @@ -21,7 +21,7 @@ class ReferenceStatus(models.IntegerChoices): class Reference(CommonControlField, ClusterableModel): mixed_citation = models.TextField(_("Mixed Citation"), null=False, blank=True) - estatus = models.IntegerField( + status = models.IntegerField( _("Reference status"), choices=ReferenceStatus.choices, blank=True, @@ -47,11 +47,11 @@ class ElementCitation(Orderable): marked_xml = models.TextField(_("Marked XML"), blank=True) score = models.IntegerField( - null=True, + null=True, blank=True, validators=[ - MinValueValidator(1), # Mínimo 1 - MaxValueValidator(10) # Máximo 10 + MinValueValidator(1), + MaxValueValidator(10) ], help_text=_("Rating from 1 to 10") )