From c89f5a04ea7d4e53652ea0ba57e207fd13820ea3 Mon Sep 17 00:00:00 2001
From: Bryan Brancotte <bryan.brancotte@pasteur.fr>
Date: Thu, 17 Apr 2025 16:41:33 +0200
Subject: [PATCH] compatibility with form_host and crispy

---
 src/InSillyCloWeb/assemblies/forms.py | 3 ---
 src/InSillyCloWeb/assemblies/views.py | 8 ++++++++
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/InSillyCloWeb/assemblies/forms.py b/src/InSillyCloWeb/assemblies/forms.py
index 98ebeb3..1d1adc2 100644
--- a/src/InSillyCloWeb/assemblies/forms.py
+++ b/src/InSillyCloWeb/assemblies/forms.py
@@ -60,9 +60,6 @@ class PCRModelForm(forms.ModelForm):
         model = SimulatorJob
         fields = ('pcr_pairs_str',)
 
-    helper = FormHelper()
-    helper.form_tag = False
-
     primers_file = forms.FileField(
         required=False,
         label=_('Primers file'),
diff --git a/src/InSillyCloWeb/assemblies/views.py b/src/InSillyCloWeb/assemblies/views.py
index 872f4b9..cdc61fb 100644
--- a/src/InSillyCloWeb/assemblies/views.py
+++ b/src/InSillyCloWeb/assemblies/views.py
@@ -3,6 +3,7 @@ from abc import ABC, abstractmethod
 from io import BytesIO
 from typing import Tuple
 
+import crispy_forms.helper
 from django.contrib import messages
 from django.http import HttpResponse
 from django.shortcuts import render, redirect
@@ -126,6 +127,13 @@ class SimulatorJobEdit(
     slug_url_kwarg = 'uuid'
     template_name = "assemblies/form_host.html"
 
+    def get_form(self, form_class=None):
+        form = super().get_form()
+        if not hasattr(form, 'helper'):
+            form.helper = crispy_forms.helper.FormHelper()
+            form.helper.form_tag = False
+        return form
+
     def form_valid(self, form):
         self.object.run_simulator()
         return super().form_valid(form)
-- 
GitLab