From 33b15bae497c3501c35b55db9fd372748a22e4e2 Mon Sep 17 00:00:00 2001 From: Bryan Brancotte <bryan.brancotte@pasteur.fr> Date: Thu, 17 Apr 2025 16:34:50 +0200 Subject: [PATCH] generic job update view --- src/InSillyCloWeb/assemblies/urls.py | 2 +- src/InSillyCloWeb/assemblies/views.py | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/InSillyCloWeb/assemblies/urls.py b/src/InSillyCloWeb/assemblies/urls.py index ea702e2..66a9f4d 100644 --- a/src/InSillyCloWeb/assemblies/urls.py +++ b/src/InSillyCloWeb/assemblies/urls.py @@ -68,7 +68,7 @@ urlpatterns = [ path('assembly-simulator/create/<str:step>/', simulator_wizard, name='simulator-create-step'), path('assembly-simulator/create/', simulator_wizard, name='simulator-create'), path('assembly-simulator/<slug:uuid>/', views.JobSimulatorResult.as_view(), name='simulator-detail'), - path('assembly-simulator-job/<slug:uuid>/pcr/', views.JobPCREdit.as_view(), name='simulator-pcr-edit'), + path('assembly-simulator/<slug:uuid>/pcr-edit/', views.JobPCREdit.as_view(), name='simulator-pcr-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 3789e53..872f4b9 100644 --- a/src/InSillyCloWeb/assemblies/views.py +++ b/src/InSillyCloWeb/assemblies/views.py @@ -1,4 +1,5 @@ import traceback +from abc import ABC, abstractmethod from io import BytesIO from typing import Tuple @@ -116,14 +117,13 @@ class JobSimulatorResult(DetailView): slug_url_kwarg = 'uuid' -class JobPCREdit( +class SimulatorJobEdit( + ABC, UpdateView, ): model = models.SimulatorJob - form_class = forms.PCRModelForm slug_field = 'uuid' slug_url_kwarg = 'uuid' - success_url = reverse_lazy("assemblies:home") template_name = "assemblies/form_host.html" def form_valid(self, form): @@ -132,5 +132,18 @@ class JobPCREdit( def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - context["title"] = _("PCR primers to use for gel simulation") + context["title"] = self.get_title() return context + + @abstractmethod + def get_title(self): + pass + + +class JobPCREdit( + SimulatorJobEdit, +): + form_class = forms.PCRModelForm + + def get_title(self): + return _("PCR primers to use for gel simulation") -- GitLab