Skip to content

Commit 938b81e

Browse files
Merge pull request #14 from eduranm/ref_admin
Área administrativa para reference
2 parents fc018c3 + 38049b3 commit 938b81e

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed

reference/tasks.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from config import celery_app
2+
from reference.marker import mark_references
3+
from reference.models import Reference, ElementCitation
4+
import json
5+
6+
@celery_app.task()
7+
def get_reference(obj_id):
8+
obj_reference = Reference.objects.get(id=obj_id)
9+
marked = mark_references(obj_reference.mixed_citation)
10+
for item in marked:
11+
for i in item['choices']:
12+
ElementCitation.objects.create(
13+
reference=obj_reference,
14+
marked=i
15+
)
16+
obj_reference.estatus = 2
17+
obj_reference.save()

reference/wagtail_hooks.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
from django.http import HttpResponseRedirect
2+
from django.utils.translation import gettext as _
3+
from wagtail_modeladmin.options import (
4+
ModelAdmin,
5+
ModelAdminGroup,
6+
modeladmin_register,
7+
)
8+
from wagtail_modeladmin.views import CreateView
9+
from wagtail.admin.menu import MenuItem
10+
11+
from reference.tasks import get_reference
12+
13+
from reference.models import (
14+
Reference
15+
)
16+
17+
class ReferenceCreateView(CreateView):
18+
def form_valid(self, form):
19+
20+
# Obtener el contenido de mixed_citation del formulario
21+
mixed_citation_text = form.cleaned_data['mixed_citation'].strip()
22+
lineas = mixed_citation_text.split("\n") # Dividir por saltos de línea
23+
24+
# Crear un nuevo objeto Reference por cada línea válida
25+
for linea in lineas:
26+
linea = linea.strip() # Eliminar espacios adicionales en cada línea
27+
if linea: # Evitar procesar líneas vacías
28+
new_reference = Reference.objects.create(
29+
mixed_citation=linea,
30+
estatus=1, # Estatus predeterminado
31+
creator=self.request.user, # Usuario asociado
32+
)
33+
get_reference.delay(new_reference.id)
34+
print(f"Creado Reference: {new_reference.mixed_citation}")
35+
36+
# Redirigir después de la creación de los objetos
37+
return HttpResponseRedirect(self.get_success_url())
38+
39+
40+
41+
class ReferenceAdmin(ModelAdmin):
42+
model = Reference
43+
create_view_class = ReferenceCreateView
44+
#edit_view_class = ArticleDocxEditView
45+
menu_label = _("Reference")
46+
menu_icon = "folder"
47+
menu_order = 1
48+
add_to_settings_menu = False # or True to add your model to the Settings sub-menu
49+
exclude_from_explorer = (
50+
False # or True to exclude pages of this type from Wagtail's explorer view
51+
)
52+
list_per_page = 20
53+
54+
55+
modeladmin_register(ReferenceAdmin)

0 commit comments

Comments
 (0)