From 82f7f9f7aed405a86a254d547b3fb0d228fde5e3 Mon Sep 17 00:00:00 2001 From: Bryan Brancotte <bryan.brancotte@pasteur.fr> Date: Fri, 18 Apr 2025 17:16:30 +0200 Subject: [PATCH] bugfix when removing primers file --- src/InSillyCloWeb/assemblies/forms.py | 18 +++++++++--------- src/InSillyCloWeb/assemblies/models.py | 8 ++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/InSillyCloWeb/assemblies/forms.py b/src/InSillyCloWeb/assemblies/forms.py index 1197eb8..e7af71e 100644 --- a/src/InSillyCloWeb/assemblies/forms.py +++ b/src/InSillyCloWeb/assemblies/forms.py @@ -81,15 +81,15 @@ class PCRModelForm(forms.ModelForm): # # super().__init__(initial=initial,instance=instance,*args, **kwargs) - def save(self, commit=True): - instance: SimulatorJob = super().save(commit=commit) - if not commit or self.cleaned_data['primers_file'] is None: - return instance - output_fp = instance.job_dir / insillyclo.main.DEFAULT_PCR_FILENAME - with open(output_fp, 'wb') as fh: - for chunk in self.cleaned_data['primers_file'].chunks(): - fh.write(chunk) - return instance + # def save(self, commit=True): + # instance: SimulatorJob = super().save(commit=commit) + # if not commit or self.cleaned_data['primers_file'] is None: + # return instance + # output_fp = instance.job_dir / insillyclo.main.DEFAULT_PCR_FILENAME + # with open(output_fp, 'wb') as fh: + # for chunk in self.cleaned_data['primers_file'].chunks(): + # fh.write(chunk) + # return instance RestrictionEnzymeModelForm = modelform_factory( diff --git a/src/InSillyCloWeb/assemblies/models.py b/src/InSillyCloWeb/assemblies/models.py index 066d64b..69d436e 100644 --- a/src/InSillyCloWeb/assemblies/models.py +++ b/src/InSillyCloWeb/assemblies/models.py @@ -381,6 +381,10 @@ class SimulatorJob(models.Model): shutil.copyfileobj(source, dest) def run_insillyclo(self, request): + if self.primers_file.name: + primers_file = pathlib.Path(self.primers_file.name) + else: + primers_file = None return insillyclo.simulator.compute_all( observer=InSillyCloDjangoMessageObserver( request=request, @@ -393,8 +397,8 @@ class SimulatorJob(models.Model): gb_plasmids=self.genbank_dir.glob('**/*.gb'), output_dir=self.results_dir, data_source=insillyclo.data_source.DataSourceHardCodedImplementation(), - primers_file=self.primer_file, - primer_id_pairs=list(self.pcr_pairs), + primers_file=primers_file, + primer_id_pairs=list(self.pcr_pairs) if primers_file else None, ) @property -- GitLab