From 00bf98b1153d526105f80f2c692ccc5e6d8ad73c Mon Sep 17 00:00:00 2001
From: Bryan Brancotte <bryan.brancotte@pasteur.fr>
Date: Thu, 17 Apr 2025 16:42:33 +0200
Subject: [PATCH] edition of restriction enzyme

---
 src/InSillyCloWeb/assemblies/forms.py | 8 +++++++-
 src/InSillyCloWeb/assemblies/urls.py  | 5 +++++
 src/InSillyCloWeb/assemblies/views.py | 9 +++++++++
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/InSillyCloWeb/assemblies/forms.py b/src/InSillyCloWeb/assemblies/forms.py
index 1d1adc2..4234dae 100644
--- a/src/InSillyCloWeb/assemblies/forms.py
+++ b/src/InSillyCloWeb/assemblies/forms.py
@@ -2,7 +2,7 @@ import insillyclo.main
 from crispy_forms import layout
 from crispy_forms.helper import FormHelper
 from django import forms
-from django.forms import modelformset_factory
+from django.forms import modelformset_factory, modelform_factory
 from django.utils.safestring import mark_safe
 from django.utils.translation import gettext as _
 
@@ -77,6 +77,12 @@ class PCRModelForm(forms.ModelForm):
         return instance
 
 
+RestrictionEnzymeModelForm = modelform_factory(
+    model=SimulatorJob,
+    fields=('restriction_enzyme_gel',),
+)
+
+
 class AssemblyForm(forms.ModelForm):
     class Meta:
         model = Assembly
diff --git a/src/InSillyCloWeb/assemblies/urls.py b/src/InSillyCloWeb/assemblies/urls.py
index 66a9f4d..8ef6778 100644
--- a/src/InSillyCloWeb/assemblies/urls.py
+++ b/src/InSillyCloWeb/assemblies/urls.py
@@ -69,6 +69,11 @@ urlpatterns = [
     path('assembly-simulator/create/', simulator_wizard, name='simulator-create'),
     path('assembly-simulator/<slug:uuid>/', views.JobSimulatorResult.as_view(), name='simulator-detail'),
     path('assembly-simulator/<slug:uuid>/pcr-edit/', views.JobPCREdit.as_view(), name='simulator-pcr-edit'),
+    path(
+        'assembly-simulator/<slug:uuid>/enzyme-edit/',
+        views.JobRestrictionEnzymeEdit.as_view(),
+        name='simulator-enzyme-edit',
+    ),
     path('assembly/<int:pk>/download/', views.AssemblyDetailDownloadView.as_view(), name='assembly-download'),
     path('assembly/<int:pk>/delete/', views.AssemblyDeleteView.as_view(), name='assembly-delete'),
     path('fragment', views.show_fragment, name='fragment'),
diff --git a/src/InSillyCloWeb/assemblies/views.py b/src/InSillyCloWeb/assemblies/views.py
index cdc61fb..641be61 100644
--- a/src/InSillyCloWeb/assemblies/views.py
+++ b/src/InSillyCloWeb/assemblies/views.py
@@ -155,3 +155,12 @@ class JobPCREdit(
 
     def get_title(self):
         return _("PCR primers to use for gel simulation")
+
+
+class JobRestrictionEnzymeEdit(
+    SimulatorJobEdit,
+):
+    form_class = forms.RestrictionEnzymeModelForm
+
+    def get_title(self):
+        return _("Restriction enzyme to use for gel simulation")
-- 
GitLab