diff --git a/src/InSillyCloWeb/assemblies/urls.py b/src/InSillyCloWeb/assemblies/urls.py index ea702e2330cdc9932429155e93ea729ea9998a76..66a9f4dcfdd09b69e31578f11448a46f7b9dd2db 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 3789e53cc8856e209c99d717ea66348ddf0b3c8f..872f4b9f8bcc0f11ef7419974d8c0a699cec13c0 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")