def projectchunk_add(request, project_id): project = get_object_or_404(Project, pk=project_id) project_chunk = ProjectChunk() project_chunk.project = project if request.method == 'POST': form = ProjectChunkForm(request.POST, instance=project_chunk) if form.is_valid(): mc = form.cleaned_data['machine_category'] conflicting = ProjectChunk.objects.filter( project=project,machine_category=mc) if conflicting.count() >= 1: form._errors["machine_category"] = util.ErrorList(["Cap already exists with this machine category"]) else: project_chunk = form.save() new_cap = project_chunk.cap log(request.user, project, 2, 'Added cap of %s' % (new_cap)) return HttpResponseRedirect(project.get_absolute_url()) else: form = ProjectChunkForm(instance=project_chunk) return render_to_response('pbsmoab/projectchunk_form.html', locals(), context_instance=RequestContext(request))
def projectchunk_edit(request, projectchunk_id): project_chunk = get_object_or_404(ProjectChunk, pk=projectchunk_id) old_cap = project_chunk.cap old_mc = project_chunk.machine_category if request.method == 'POST': form = ProjectChunkForm(request.POST, instance=project_chunk) if form.is_valid(): mc = form.cleaned_data['machine_category'] if old_mc.pk != mc.pk: form._errors["machine_category"] = util.ErrorList(["Please don't change the machine category; it confuses me"]) else: project_chunk = form.save() new_cap = project_chunk.cap if old_cap != new_cap: log(request.user, project_chunk.project, 2, 'Changed cap from %s to %s' % (old_cap, new_cap)) return HttpResponseRedirect(project_chunk.project.get_absolute_url()) else: form = ProjectChunkForm(instance=project_chunk) return render_to_response('pbsmoab/projectchunk_form.html', locals(), context_instance=RequestContext(request))