ソースを参照

resource_local template added

ShariX Developer 2 日 前
コミット
082ffc27fe

+ 1 - 0
forms/resource_local.py

@@ -10,6 +10,7 @@ class ResourceLocalForm(forms.ModelForm):
         for field in iter(self.fields):
             if 'class' not in self.fields[field].widget.attrs:
                 self.fields[field].widget.attrs.update({'class': 'form-control'})
+                #self.fields[field].widget.attrs.update({'class': 'form-control'})
 
     class Meta:
         model = ResourceLocal

+ 15 - 0
templates/webservice_running/local/resource_local.html

@@ -6,9 +6,24 @@
 Локальная адаптация формы создания локального ресурса.
 </p>
 
+<form method="post" class="d-flex flex-column align-items-end">
+<h2>Model A Form</h2>
+
+{% csrf_token %}
+    {{ form_base.as_p }}
+
+
+    <h2>Model B Form</h2>
+    {{ form_local.as_p }}
+
+    <button type="submit">Submit Both</button>
+
+    </form>
+{% comment %}
 <form method="post" class="d-flex flex-column align-items-end">
             {% csrf_token %}
                 {% include 'webservice_running/include/form_local.html' %}
                     <button class="btn btn-primary" type="submit">Отправить</button>
 </form>
+{% endcomment %}
 {% endblock %}

+ 22 - 33
views/resource_local.py

@@ -8,6 +8,8 @@ from django_tables2 import SingleTableView
 from django.views.generic import DetailView
 
 from django.shortcuts import render
+from django.http import Http404
+from django.db.models import Q
 
 from webservice_running.tables import ResourcesLocalTable
 from sharix_admin.utils import group_required
@@ -40,13 +42,6 @@ from dbsynce.docs.verbose_names.resource import Resource as ResourceVerboseNames
 from webservice_running.docs.database.local import Local as HelpTextsLocal
 from webservice_running.docs.verbose_names.local import Local as VerboseNameLocal
 
-#def _get_form(request, formcls, prefix):
-def _get_form(request, formcls):
-    data = request.POST
-    #data = request.POST if prefix in request.POST else None
-    return formcls(data)
-    #return formcls(data, prefix=prefix)
-
 
 class ResourcesLocalListView(BaseView, UserPassesTestMixin, SingleTableView):
     table_class = ResourcesLocalTable
@@ -98,8 +93,8 @@ def change_resource_status(request):
         return JsonResponse({'status': 'error'})
 
 class ResourceLocalEditView(BaseLocalView, FormView):
-    resource_form = ResourceLocalForm
-    resource_local_form = ResourceLocalForm
+    form_base = ResourceForm
+    form_local = ResourceLocalForm
     template_name = "webservice_running/local/resource_local.html"
     success_url = reverse_lazy("webservice_running:resource_local_list")
     page_title = 'Изменить ресурс c локальными данными'
@@ -130,16 +125,7 @@ class ResourceLocalEditView(BaseLocalView, FormView):
             # Сохраняем новые изменения
             instance.save()
 
-            # Создаем необходимые объекты документов по requirements указанных в созданной company
-            # Используем bulk_create для создания всех объектов одновременно
-            doc_codes = parse_requirements(instance.requirements)
-            Documents.objects.bulk_create([
-                Documents(
-                    company=instance,
-                    user=self.request.user,
-                    doc_type=doc_code
-                ) for doc_code in doc_codes
-            ])
+        
 
         # Отправляем пользователю уведомление на страницу о успехе операции
         messages.success(
@@ -149,13 +135,18 @@ class ResourceLocalEditView(BaseLocalView, FormView):
 
 
         #return super().form_valid(form)  # Возвращаем успешный ответ
-        return super().form_valid(resource_form, resource_local_form)  # Возвращаем успешный ответ
+        return super().form_valid(self.form_base, self.form_local)  # Возвращаем успешный ответ
+
+
 
 
 class ResourceLocalCreate(BaseLocalView):
 
-    resource_form = ResourceForm
-    resource_local_form = ResourceLocalForm
+    form_base = ResourceForm
+    form_local = ResourceLocalForm
+
+    #resource_form = ResourceForm
+    #resource_local_form = ResourceLocalForm
     template_name = "webservice_running/local/resource_local.html"
     success_url = reverse_lazy("webservice_running:main_local")
     page_title = 'Добавить ресурс с локальными данными'
@@ -163,20 +154,18 @@ class ResourceLocalCreate(BaseLocalView):
 
     def get(self, request, *args, **kwargs):
         context = self.get_context_data(**kwargs)
-        context.update({'form_base': ResourceForm(prefix='form_base'), 'form_local': ResourceLocalForm(prefix='form_local')})
+        context.update({'form_base': self.form_base(prefix='form_base'), 'form_local': self.form_local(prefix='form_local')})
         return render(
             request,
             self.template_name,
             context,
         )
-        #return self.render_to_response(context)
 
     def post(self, request, *args, **kwargs):
-        form_base = _get_form(request, ResourceForm)
-        form_local = _get_form(request, ResourceLocalForm)
 
-        #if form_base.is_valid() and form_local.is_valid():
-        #if form_local.is_valid():
+        form_base = self.form_base(request.POST, prefix='form_base')
+        form_local = self.form_local(request.POST, prefix='form_local')
+
         if form_local.is_valid() and form_base.is_valid():
 
             instance=form_base.save(commit=False)
@@ -206,16 +195,16 @@ class ResourceLocalCreate(BaseLocalView):
             form_local.save()
             return redirect(self.success_url)
         else:
+            
+            context = self.get_context_data(**kwargs)
+            context.update({'form_base': self.form_base(prefix='form_base'), 'form_local': self.form_local(prefix='form_local')})
             messages.error(
-            self.request,
-            'Ошибка добавления, попробуйте снова!'
-            )
-
+                'Возникла ошибка, попробуйте снова!')
 
         
         context = self.get_context_data(**kwargs)
-        context.update({'form_base': form_base, 'form_local': form_local})
         
+        context.update({'form_base': self.form_base(prefix='form_base'), 'form_local': self.form_local(prefix='form_local')})
         return render(
             request,
             self.template_name,