Bläddra i källkod

resource local edit page added

ShariX Developer 1 dag sedan
förälder
incheckning
2d6ad668a8

+ 0 - 1
forms/resource_local.py

@@ -10,7 +10,6 @@ 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

+ 2 - 2
templates/webservice_running/local/resource_local.html

@@ -7,13 +7,13 @@
 </p>
 
 <form method="post" class="d-flex flex-column align-items-end">
-<h2>Model A Form</h2>
+<h2>Обязательная информация Сервиса</h2>
 
 {% csrf_token %}
     {{ form_base.as_p }}
 
 
-    <h2>Model B Form</h2>
+    <h2>Локальная информация Сервиса</h2>
     {{ form_local.as_p }}
 
     <button type="submit">Submit Both</button>

+ 32 - 38
views/resource_local.py

@@ -6,10 +6,14 @@ from django.http import JsonResponse
 from django.utils.translation import gettext as _
 from django_tables2 import SingleTableView
 from django.views.generic import DetailView
+from django.views.generic import UpdateView
+
 
 from django.shortcuts import render
 from django.http import Http404
 from django.db.models import Q
+from django.shortcuts import get_object_or_404, redirect
+
 
 from webservice_running.tables import ResourcesLocalTable
 from sharix_admin.utils import group_required
@@ -92,51 +96,41 @@ def change_resource_status(request):
     else:
         return JsonResponse({'status': 'error'})
 
-class ResourceLocalEditView(BaseLocalView, FormView):
-    form_base = ResourceForm
-    form_local = ResourceLocalForm
-    template_name = "webservice_running/local/resource_local.html"
-    success_url = reverse_lazy("webservice_running:resource_local_list")
+#class ResourceLocalEditView(BaseLocalView, FormView):
+class ResourceLocalEditView(BaseView, UpdateView):
+    #form_base = ResourceForm
+    #form_local = ResourceLocalForm
+    form_class = ResourceLocalForm
+    model = ResourceLocal
+    template_name = "webservice_running/local/resource_local_edit.html"
+    success_url = reverse_lazy("webservice_running:resources_local")
     page_title = 'Изменить ресурс c локальными данными'
     page_name = 'resource_local_edit'
 
     # Проверяем состояит ли текущий пользователь в группе PARTNER-ADMIN
-    def test_func(self):
-        return "PARTNER-ADMIN" in self.user_groups
+    def get_form_kwargs(self):
+        kwargs = super().get_form_kwargs()
+        kwargs['instance'] = get_object_or_404(ResourceLocal, id=self.object.id)
+        return kwargs
 
     def form_valid(self, form):
         with transaction.atomic():
-            # Сохраняем форму, чтобы получить объект ресурса
-            instance = form.save(commit=False)
-
-            # Присваиваем полю repr идентификатор текущего пользователя
-            instance.repr = self.request.user
-
-            # Создаем новую запись в БД, чтобы иметь доступ к ID
-            instance.save()
-
-            # Создание тикета на активацию ресурса.
-            # Создаем объект тикета и присваиваем его полю ticket_status
-            instance.ticket_status = create_ticket_resource_activation_by_metaservice_supervisor(self.request.user, instance)
-
-            # Создание тикета на утверждение прав пользователя
-            # create_ticket_role_activation_partner_admin(self.request.user, instance)
-
-            # Сохраняем новые изменения
-            instance.save()
-
-        
-
-        # Отправляем пользователю уведомление на страницу о успехе операции
-        messages.success(
-            self.request,
-            'Ваша заявка на становление партнером успешно отправлена и теперь проходит проверку!'
-        )
-
-
-        #return super().form_valid(form)  # Возвращаем успешный ответ
-        return super().form_valid(self.form_base, self.form_local)  # Возвращаем успешный ответ
-
+            # Сохраняем изменения
+            form.save()
+
+            # Получаем текущий объект компании и деактивируем ее
+            current_local_resource = form.instance
+            #current_local.deactivate()
+            current_local_resource.resource.deactivate()
+
+            # Выполняем пересоздание тикета на активацию партнера
+            #TODO - тикет для партнера?
+            current_local_resource.resource.ticket_status.archive()
+            current_local_resource.resource.ticket_status = create_ticket_resource_activation_by_metaservice_supervisor(self.request.user, current_local_resource.resource)
+
+        # Отправляем полAьзователю уведомление на страницу об успехе операции
+        messages.success(self.request, 'Данные успешно изменены и теперь проходят проверку!')
+        return super().form_valid(form)