def new_sample(request, experiment_id): try: experiment = Experiment.safe.get(request, experiment_id) except PermissionDenied: return return_response_error(request) except Experiment.DoesNotExist: return return_response_not_found(request) c = Context() c['experiment'] = experiment samples = Sample.objects.filter(experiment=experiment_id) c['sample_count'] = samples.count() + 1 if request.method == 'POST': form = SampleForm(request.POST) if form.is_valid(): sample = form.save(experiment_id, commit=False) sample.save_m2m() request.POST = {'status': "Sample Created."} return _redirect(experiment_id) c['status'] = "Errors exist in form." c["error"] = 'true' else: form = SampleForm(extra=1) c['form'] = form c['status'] = form.errors return HttpResponse(render_response_index(request, 'tardis_portal/experiment_sample.html', c))
def edit_sample(request, experiment_id, sample_id): try: experiment = Experiment.safe.get(request, experiment_id) except PermissionDenied: return return_response_error(request) except Experiment.DoesNotExist: return return_response_not_found(request) c = Context() c['experiment'] = experiment sample = Sample.objects.get(id=sample_id) c['sample_count'] = sample.name if request.POST: form = SampleForm(request.POST, instance=sample, extra=0) if form.is_valid(): full_sample = form.save(experiment_id, commit=False) full_sample.save_m2m() request.POST = {'status': "Sample Created."} return _redirect(experiment_id) c['status'] = "Errors exist in form." c["error"] = 'true' else: form = SampleForm(instance=sample, extra=0) c['form'] = form c['status'] = form.errors return HttpResponse(render_response_index(request, 'tardis_portal/experiment_sample.html', c))
def test_create_and_save_data(self): experiment = self._create_experiment() post = self._data_to_post( data=[ ("name", "Sample Name"), ("description", "Sample Description"), ("dataset-MAX_NUM_FORMS", ""), ("dataset-INITIAL_FORMS", "0"), ("dataset-TOTAL_FORMS", "2"), ("dataset-0-id", ""), ("dataset-0-name", "dataset 0 name"), ("dataset-0-description", "dataset 0 description"), ("dataset-0-immutable", "False"), ("dataset-1-id", ""), ("dataset-1-name", "dataset 1 name"), ("dataset-1-description", "dataset 1 description"), ("dataset-1-immutable", "False"), ("experiment", experiment.id), ] ) f = SampleForm(post) self.assertTrue(f.is_valid()) full_sample = f.save(experiment.id, False) full_sample.save_m2m() sample = Sample.objects.get(name="Sample Name", description="Sample Description") self.assertTrue(DatasetWrapper.objects.get(name="dataset 0 name", description="dataset 0 description")) self.assertTrue(models.Dataset.objects.get(description="dataset 0 description")) self.assertTrue(DatasetWrapper.objects.get(name="dataset 1 name", description="dataset 1 description")) self.assertTrue(models.Dataset.objects.get(description="dataset 1 description")) # Ensure that there's only 1 instance of DatasetWrappers and Datasets f2 = SampleForm(instance=sample) f2.save(experiment.id, False).save_m2m() self.assertEqual( 1, DatasetWrapper.objects.filter(name="dataset 0 name", description="dataset 0 description").count() ) self.assertEqual(1, models.Dataset.objects.filter(description="dataset 0 description").count()) self.assertEqual( 1, DatasetWrapper.objects.filter(name="dataset 1 name", description="dataset 1 description").count() ) self.assertEqual(1, models.Dataset.objects.filter(description="dataset 1 description").count())