def editClusterInclusion(request, dss_id, cluster_id): dss = get_object_or_404(models.DataSetSpecification, id=dss_id) cluster = get_object_or_404(models.DataSetSpecification, id=cluster_id) if not (user_can_edit(request.user, dss) and user_can_view(request.user, cluster)): raise PermissionDenied inclusion = get_object_or_404(models.DSSClusterInclusion, child=cluster, dss=dss) if request.method == 'POST': form = forms.EditClusterInclusionForm( request.POST, instance=inclusion) # , user=request.user) if form.is_valid(): with reversion.revisions.create_revision(): form.save() dss.save() reversion.set_comment('Edited cluster inclusion') return HttpResponseRedirect( reverse("aristotle_mdr:item", args=[dss.id])) else: form = forms.EditClusterInclusionForm( instance=inclusion) # , user=request.user) return render(request, "aristotle_dse/actions/edit_inclusion.html", { "item": inclusion, "form": form, })
def editInclusionDetails(request, dss_id, inc_type, cluster_id): dss = get_object_or_404(models.DataSetSpecification, id=dss_id) if inc_type not in ['cluster', 'data_element']: raise Http404 item = get_object_or_404(models.DataSetSpecification, pk=dss_id) if not user_can_edit(request.user, item): if request.user.is_anonymous: return redirect( reverse('friendly_login') + '?next=%s' % request.path) else: raise PermissionDenied item_type, field_name = { 'cluster': (models.DataSetSpecification, 'child'), 'data_element': (aristotle_models.DataElement, 'data_element'), }.get(inc_type) cluster = get_object_or_404(item_type, id=cluster_id) if not (user_can_edit(request.user, dss) and user_can_view(request.user, cluster_id)): raise PermissionDenied inclusion = get_object_or_404(models.DSSClusterInclusion, child=cluster, dss=dss) if request.method == 'POST': form = forms.EditClusterInclusionForm( request.POST, instance=inclusion) # , user=request.user) if form.is_valid(): with reversion.revisions.create_revision(): form.save() dss.save() reversion.set_comment('Edited inclusion details') return HttpResponseRedirect( reverse("aristotle_mdr:item", args=[dss.id])) else: form = forms.EditClusterInclusionForm( instance=inclusion) # , user=request.user) return render(request, "aristotle_dse/actions/edit_inclusion.html", { "item": inclusion, "form": form, "include_type": inc_type, })