def send_invitation(request, project_id): project = get_object_or_404(Project, pk=project_id) if not request.user.get_profile() in project.leaders.all(): return HttpResponseForbidden('<h1>Access Denied</h1>') application = None if request.method == 'POST': form = LeaderInviteUserApplicationForm(request.POST, instance=application) if form.is_valid(): email = form.cleaned_data['email'] try: existing = Person.active.get(user__email=email) except Person.DoesNotExist: existing = False if existing and not 'existing' in request.REQUEST: return render_to_response('applications/userapplication_invite_existing.html', {'form': form, 'person': existing}, context_instance=RequestContext(request)) application = form.save(commit=False) try: applicant = Person.active.get(user__email=email) except Person.DoesNotExist: applicant, created = Applicant.objects.get_or_create(email=email) application.applicant = applicant application.project = project application.save() if application.content_type.model == 'person': application.approve() send_account_approved_email(application) messages.warning(request, "%s was added to project %s directly since they have an existing account." % (application.applicant, application.project)) log(request.user, application.application_ptr, 1, "%s added directly to %s" % (applicant, project)) return HttpResponseRedirect(application.applicant.get_absolute_url()) send_user_invite_email(application) messages.success(request, "Invitation sent to %s." % email) log(request.user, application.application_ptr, 1, 'Invitation sent') return HttpResponseRedirect(reverse('kg_user_profile')) else: form = LeaderInviteUserApplicationForm(instance=application) return render_to_response('applications/leaderuserapplication_invite_form.html', {'form': form, 'application': application, 'project': project}, context_instance=RequestContext(request))
def send_invitation(request): application = None if request.method == 'POST': form = AdminInviteUserApplicationForm(request.POST, instance=application) if form.is_valid(): email = form.cleaned_data['email'] try: existing = Person.active.get(user__email=email) except Person.DoesNotExist: existing = False if existing and not 'existing' in request.REQUEST: return render_to_response( 'applications/userapplication_invite_existing.html', {'form': form, 'person': existing}, context_instance=RequestContext(request)) application = form.save(commit=False) application.applicant = Applicant.objects.create(email=email) application.save() if application.content_type.model == 'person': application.approve() messages.warning(request, "%s was added to project %s directly since they have an existing account." % (application.applicant, application.project)) log(request.user, application.application_ptr, 1, "%s added directly to %s" % (application.applicant, application.project)) send_account_approved_email(application) return HttpResponseRedirect(application.applicant.get_absolute_url()) send_user_invite_email(application) messages.success(request, "Invitation sent to %s." % email) log(request.user, application.application_ptr, 1, 'Invitation sent') return HttpResponseRedirect(application.get_absolute_url()) else: form = AdminInviteUserApplicationForm(instance=application) return render_to_response('applications/userapplication_invite_form.html', {'form': form, 'application': application}, context_instance=RequestContext(request))