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