def create_experiment(request, template_name='tardis_portal/create_experiment.html'): """Create a new experiment view. :param request: a HTTP Request instance :type request: :class:`django.http.HttpRequest` :param template_name: the path of the template to render :type template_name: string :rtype: :class:`django.http.HttpResponse` """ c = { 'subtitle': 'Create Experiment', 'user_id': request.user.id, } if request.method == 'POST': form = ExperimentForm(request.POST) if form.is_valid(): full_experiment = form.save(commit=False) # group/owner assignment stuff, soon to be replaced experiment = full_experiment['experiment'] experiment.created_by = request.user full_experiment.save_m2m() # add defaul ACL acl = ObjectACL(content_object=experiment, pluginId=django_user, entityId=str(request.user.id), canRead=True, canWrite=True, canDelete=True, isOwner=True, aclOwnershipType=ObjectACL.OWNER_OWNED) acl.save() request.POST = {'status': "Experiment Created."} return HttpResponseSeeAlso(reverse('tardis_portal.view_experiment', args=[str(experiment.id)]) + "#created") c['status'] = "Errors exist in form." c["error"] = 'true' else: form = ExperimentForm(extra=1) c['form'] = form c['default_institution'] = settings.DEFAULT_INSTITUTION return HttpResponse(render_response_index(request, template_name, c))
def create_experiment(request, template_name='tardis_portal/create_experiment.html'): """Create a new experiment view. :param request: a HTTP Request instance :type request: :class:`django.http.HttpRequest` :param template_name: the path of the template to render :type template_name: string :rtype: :class:`django.http.HttpResponse` """ c = { 'subtitle': 'Create Experiment', 'user_id': request.user.id, } if request.method == 'POST': form = ExperimentForm(request.POST) if form.is_valid(): full_experiment = form.save(commit=False) # group/owner assignment stuff, soon to be replaced experiment = full_experiment['experiment'] experiment.created_by = request.user full_experiment.save_m2m() # add defaul ACL acl = ObjectACL(content_object=experiment, pluginId=django_user, entityId=str(request.user.id), canRead=True, canWrite=True, canDelete=True, isOwner=True, aclOwnershipType=ObjectACL.OWNER_OWNED) acl.save() request.POST = {'status': "Experiment Created."} return HttpResponseSeeAlso( reverse('tardis_portal.view_experiment', args=[str(experiment.id)]) + "#created") c['status'] = "Errors exist in form." c["error"] = 'true' else: form = ExperimentForm(extra=1) c['form'] = form c['default_institution'] = settings.DEFAULT_INSTITUTION return HttpResponse(render_response_index(request, template_name, c))
def edit_experiment(request, experiment_id, template="tardis_portal/create_experiment.html"): """Edit an existing experiment. :param request: a HTTP Request instance :type request: :class:`django.http.HttpRequest` :param experiment_id: the ID of the experiment to be edited :type experiment_id: str | int :param template: the path of the template to render :type template: str | int :rtype: :class:`django.http.HttpResponse` """ experiment = Experiment.objects.get(id=experiment_id) c = { 'subtitle': 'Edit Experiment', 'experiment_id': experiment_id, } if request.method == 'POST': form = ExperimentForm(data=request.POST, instance=experiment, extra=0) if form.is_valid(): full_experiment = form.save(commit=False) experiment = full_experiment['experiment'] experiment.created_by = request.user full_experiment.save_m2m() request.POST = {'status': "Experiment Saved."} return HttpResponseSeeAlso( reverse('tardis_portal.view_experiment', args=[str(experiment.id)]) + "#saved") c['status'] = "Errors exist in form." c["error"] = 'true' else: form = ExperimentForm(instance=experiment, extra=0) c['form'] = form return HttpResponse(render_response_index(request, template, c))
def edit_experiment(request, experiment_id, template="tardis_portal/create_experiment.html"): """Edit an existing experiment. :param request: a HTTP Request instance :type request: :class:`django.http.HttpRequest` :param experiment_id: the ID of the experiment to be edited :type experiment_id: str | int :param template: the path of the template to render :type template: str | int :rtype: :class:`django.http.HttpResponse` """ experiment = Experiment.objects.get(id=experiment_id) c = {'subtitle': 'Edit Experiment', 'experiment_id': experiment_id, } if request.method == 'POST': form = ExperimentForm(data=request.POST, instance=experiment, extra=0) if form.is_valid(): full_experiment = form.save(commit=False) experiment = full_experiment['experiment'] experiment.created_by = request.user full_experiment.save_m2m() request.POST = {'status': "Experiment Saved."} return HttpResponseSeeAlso(reverse('tardis_portal.view_experiment', args=[str(experiment.id)]) + "#saved") c['status'] = "Errors exist in form." c["error"] = 'true' else: form = ExperimentForm(instance=experiment, extra=0) c['form'] = form return HttpResponse(render_response_index(request, template, c))