def create_new_project(request): if request.method == 'POST': form = CreateProjectForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'New project created successfully!') return HttpResponseRedirect('project_view_all_projects') else: messages.error(request, 'New project information contains errors!') return HttpResponse("Sorry, project could not be created") else: form = CreateProjectForm(initial={ 'created_by' : request.user.username, 'created_on' : time.strftime("%Y-%m-%d", time.gmtime()) }) user = request.user.username return TemplateResponse(request, 'project/create_new_project.html', { 'form': form, })
def create_project(request): """View to create a new project. In the past I just linked to the page in the admin, but that doesn't automatically create users and admins for you. And it may be a pain to create project memberships manually. Perhaps the Django admin is customizable enough to fix this, but for now I'll just code it myself. At least this way I can make sure no one (but me) makes any major errors and destroys the site First check if the user is a superuser...""" if not request.user.is_superuser: return handle_privilege( request, "Only the site administrator can create a new project!", '/') if request.method == 'POST': form = CreateProjectForm(request.POST) if form.is_valid(): newproject = CollabProject() newproject = form.save(commit=False) newproject.start_date = datetime.date.today() newproject.save() form.save_m2m() for admin in form.cleaned_data["admins"]: p = ProjectMembership(person=admin, project=newproject, is_admin=True) p.save() return handle_privilege( request, 'The collaboration group "' + newproject.name + '" has been created!', reverse('project_summary', args=[newproject.slug])) else: form = CreateProjectForm() return render_to_response('project/create_project.html', {'form': form}, context_instance=RequestContext(request))