From 6866b7b2b3cf5db066dd84d7b054259959aef8a4 Mon Sep 17 00:00:00 2001
From: lois <lois@procolix.eu>
Date: Thu, 27 Mar 2025 16:59:29 +0100
Subject: [PATCH] Show if deployment succeeded

---
 .../panel/templates/configuration_form.html   | 19 ++++++++++++++++++-
 panel/src/panel/views.py                      | 10 ++++++++--
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/panel/src/panel/templates/configuration_form.html b/panel/src/panel/templates/configuration_form.html
index ffc78e3d..7e7b5ace 100644
--- a/panel/src/panel/templates/configuration_form.html
+++ b/panel/src/panel/templates/configuration_form.html
@@ -9,7 +9,8 @@
           hx-trigger="click"
           hx-indicator="#spinner-container"
           hx-disabled-elt="this"
-          hx-swap="none"
+          hx-target="#deployment-result"
+          hx-swap="innerHTML"
           name="deploy">
       Deploy
   </button>
@@ -19,5 +20,21 @@
   <div id="spinner-container" class="htmx-indicator">
     <span class="loader"></span>
   </div>
+
+  <p id="deployment-result">
+    {% if deployment_status %}
+      <ul>
+        <li>
+            <input type="checkbox" id="peertube"> Peertube
+        </li>
+        <li>
+            <input type="checkbox" id="mastodon"> Mastodon
+        </li>
+        <li>
+            <input type="checkbox" id="pixelfed"> Pixelfed
+        </li>
+      </ul>
+    {% endif %}
+  </p>
 </form>
 {% endblock %}
diff --git a/panel/src/panel/views.py b/panel/src/panel/views.py
index 2a1d4118..93944ce5 100644
--- a/panel/src/panel/views.py
+++ b/panel/src/panel/views.py
@@ -8,6 +8,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin
 from django.contrib.auth.models import User
 from django.views.generic import TemplateView, DetailView
 from django.views.generic.edit import FormView
+from django.http import HttpResponse
 
 from panel import models, settings
 from panel import models
@@ -98,9 +99,13 @@ class DeploymentStatus(ConfigurationForm):
 
         # Check for deploy button
         if "deploy" in self.request.POST.keys():
-            self.deployment(obj)
+            deployment_result = self.deployment(obj)
+            if deployment_result.returncode == 0:
+                deployment_status = "Deployment Succeeded"
+            else:
+                deployment_status = "Deployment Failed"
 
-        return super().form_valid(form)
+        return HttpResponse(deployment_status)
 
     def deployment(self, obj):
         submission = obj.parsed_value.model_dump_json()
@@ -135,4 +140,5 @@ class DeploymentStatus(ConfigurationForm):
             cwd=settings.repo_dir,
             env=env,
         )
+        print(deployment_result.returncode)
         return deployment_result
\ No newline at end of file