def application_apply_project(request): application_form = forms.NewProjectApplicationForm mcs = MachineCategory.objects.all() application = ProjectApplication() application.save() application.machine_categories = mcs applicant = request.user institute = applicant.institute if request.method == 'POST': form = application_form(request.POST, instance = application) if form.is_valid(): application = form.save(commit=False) mc = MachineCategory.objects.get_default() if mc: mcs = [] mcs.append(mc) application.machine_categories = mcs application.applicant = applicant application.make_leader = True application.needs_account = True application.state = ProjectApplication.WAITING_FOR_DELEGATE group = Group.objects.get(name = "monashcampusclusterapprovals") application.institute = Institute.objects.get(group = group.id) application.pid = util.getDefaultProjectPid() application.save() application_request_email(application, send_to = "delegate") emails.send_user_request_email("common", application, "apply for a new project", request.POST.get("name")) messages.info(request, "Thanks %s, your new project application is pending for institution delegates approving" %(applicant.username)) return HttpResponseRedirect(reverse('index')) return HttpResponseBadRequest("<h1>Bad Post</h1>") else: return HttpResponseBadRequest("<h1>Bad Request</h1>") form = application_form(instance=application, initial={'institute': institute}) return render_to_response('kgapplications/request_new_project.html', {'form': form, 'application': application}, context_instance=RequestContext(request))
def add_edit_project(request, project_id=None): if project_id is None: project = None old_pid = None flag = 1 else: project = get_object_or_404(Project, id=project_id) old_pid = project.pid flag = 2 if util.is_admin(request): # JH add initial pid initial_pid = cutil.getDefaultProjectPid() form = ProjectForm(instance=project, data=request.POST or None, pid_initial=initial_pid) else: if not project.can_edit(request): return HttpResponseForbidden('<h1>Access Denied</h1>') form = UserProjectForm(instance=project, data=request.POST or None) if request.method == 'POST': if form.is_valid(): project = form.save(commit=False) if project_id is not None: # if project is being edited, project_id cannot change. project.pid = old_pid elif not project.pid: # if project was being created, did the user give a project_id # we should use? If not, then we have to generate one # ourselves. project.pid = get_new_pid(project.institute) project.save() approved_by = request.user project.activate(approved_by) form.save_m2m() if flag == 1: messages.success(request, "Project '%s' created succesfully" % project) else: messages.success(request, "Project '%s' edited succesfully" % project) return HttpResponseRedirect(project.get_absolute_url()) return render_to_response('karaage/projects/project_form.html', locals(), context_instance=RequestContext(request))
def add_edit_project(request, project_id=None): if project_id is None: project = None old_pid = None flag = 1 else: project = get_object_or_404(Project, id=project_id) old_pid = project.pid flag = 2 if util.is_admin(request): # JH add initial pid initial_pid = cutil.getDefaultProjectPid() form = ProjectForm(instance=project, data=request.POST or None, pid_initial = initial_pid) else: if not project.can_edit(request): return HttpResponseForbidden('<h1>Access Denied</h1>') form = UserProjectForm(instance=project, data=request.POST or None) if request.method == 'POST': if form.is_valid(): project = form.save(commit=False) if project_id is not None: # if project is being edited, project_id cannot change. project.pid = old_pid elif not project.pid: # if project was being created, did the user give a project_id # we should use? If not, then we have to generate one # ourselves. project.pid = get_new_pid(project.institute) project.save() approved_by = request.user project.activate(approved_by) form.save_m2m() if flag == 1: messages.success( request, "Project '%s' created succesfully" % project) else: messages.success( request, "Project '%s' edited succesfully" % project) return HttpResponseRedirect(project.get_absolute_url()) return render_to_response( 'karaage/projects/project_form.html', locals(), context_instance=RequestContext(request))
def application_apply_project(request): application_form = forms.NewProjectApplicationForm mcs = MachineCategory.objects.all() application = ProjectApplication() application.save() application.machine_categories = mcs applicant = request.user institute = applicant.institute if request.method == 'POST': form = application_form(request.POST, instance=application) if form.is_valid(): application = form.save(commit=False) mc = MachineCategory.objects.get_default() if mc: mcs = [] mcs.append(mc) application.machine_categories = mcs application.applicant = applicant application.make_leader = True application.needs_account = True application.state = ProjectApplication.WAITING_FOR_DELEGATE group = Group.objects.get(name="monashcampusclusterapprovals") application.institute = Institute.objects.get(group=group.id) application.pid = util.getDefaultProjectPid() application.save() application_request_email(application, send_to="delegate") emails.send_user_request_email("common", application, "apply for a new project", request.POST.get("name")) messages.info( request, "Thanks %s, your new project application is pending for institution delegates approving" % (applicant.username)) return HttpResponseRedirect(reverse('index')) return HttpResponseBadRequest("<h1>Bad Post</h1>") else: return HttpResponseBadRequest("<h1>Bad Request</h1>") form = application_form(instance=application, initial={'institute': institute}) return render_to_response('kgapplications/request_new_project.html', { 'form': form, 'application': application }, context_instance=RequestContext(request))