def new_project(request, template='new_project.html'): if request.method == 'POST': p = Project() form = ProjectForm(request.POST, instance=p) if form.is_valid(): # Create project and set owner p.owner = request.user p.save() # Create an administrative privilege and assign it perm = UserProjectPermission() perm.creation_date = datetime.now() perm.modified_date = datetime.now() perm.user = p.owner perm.project = p perm.permissions = 'a' # admin perm.save() return redirect('browse_projects') else: form = ProjectForm() form_action = reverse('new_project') return render(request, template, {'project_form': form, 'form_action': form_action, 'back_url': reverse('browse_projects')})
def add_user_to_project(request, pid, template='modal.html'): if request.method == 'POST': form = AddUserToProjectForm(request.POST) p = get_object_or_404(Project, pk=pid) if form.is_valid(): for u in form.cleaned_data['users']: perm = UserProjectPermission() perm.user = u perm.project = p perm.permissions = 'g' perm.save() # All OK, redirect to projects home response_data = {'redirect': reverse('browse_projects')} return JsonResponse(response_data) else: p = get_object_or_404(Project, pk=pid) form = AddUserToProjectForm() form_action = reverse('add_user_to_project', kwargs={'pid': pid}) form.fields['users'].queryset = User.objects.exclude( permissions__in=p.permissions.all()) response_dict = { 'form': form, 'form_action': form_action, 'form_header': _('Asignar usuarios al proyecto'), } html_response = render_to_string( template, response_dict, RequestContext(request)) response_data = {'html': html_response} return JsonResponse(response_data)