Ejemplo n.º 1
0
def invitation_retrieve(request, response_format='html'):
    "Retrieve invitation and create account"

    if request.user.username:
        return HttpResponseRedirect('/')

    email = request.REQUEST.get('email')
    key = request.REQUEST.get('key')
    if email and key:
        try:
            invitation = Invitation.objects.get(email=email, key=key)
        except:
            raise Http404
    else:
        raise Http404

    if request.POST:
        form = InvitationForm(invitation, request.POST)
        if form.is_valid():
            profile = form.save()
            username = profile.user.username
            password = form.cleaned_data['password']
            user = authenticate(username=username, password=password)
            if user:
                invitation.delete()
                login(request, user)
                return HttpResponseRedirect('/')
    else:
        form = InvitationForm(invitation)

    return render_to_response('core/invitation_retrieve',
                              {'invitation': invitation,
                               'form': form},
                              context_instance=RequestContext(request),
                              response_format=response_format)
Ejemplo n.º 2
0
def invite(request, code):
    profile = check_profile(code)
    if not profile:
        messages.error(request, 'Your personal URL is incorrect, please reset your account or provide proper url')
        return redirect('index') 
    
    from forms import InvitationForm
    if request.method == 'POST':
        form = InvitationForm(request.POST) 
        if form.is_valid(): 
            emails=form.cleaned_data['emails']
            emails=emails.split(',')
            for e in emails:
                e=e.strip()
                i=Invitation(email=e, key=generate_key())
                i.save()
                u, created=User.objects.get_or_create(username=e[:30], email=e)
                notification.send([u], 'invite', {'key': i.key,
                                                     'profile':profile })
            
            
            if len(emails):
                messages.info(request, '%d invitation(s) has been sent ' % len(emails)) 
                    
            return redirect('homepage', code=code)
    else:
        form=InvitationForm(initial={'key':code})
            
    return render_to_response('researchers/invite.html', {'profile':profile, 'form':form, 'key':code}, context_instance=RequestContext(request))
Ejemplo n.º 3
0
def invite_people(request, project_id):
    # TODO: verify user is owner of the project

    model_project = Project.objects.get(id=int(project_id))

    if request.method == "POST":
        form = InvitationForm(request.POST)
        if form.is_valid():
            emails = form.cleaned_data["emails"]
            email_people(model_project, emails)
            return render_to_response('email_success.html', {"li_emails": emails, "proj": model_project}, context_instance=RequestContext(request))
    else:
        form = InvitationForm()
    return render_to_response('invite_people.html', {"form": form}, context_instance=RequestContext(request))
Ejemplo n.º 4
0
	def post(self, request):
		form = InvitationForm(request.POST)
		if form.is_valid():
			email = form.cleaned_data['email']
			subject = 'Invitation to join MyTweet App'
			sender_name = request.user.username
			sender_email = request.user.email
			invite_code = Invite.generate_invite_code(email)
			link = 'http://%s/users/invite/accept/%s/' % (settings.SITE_HOST, invite_code)
			context = Context({"sender_name": sender_name, "sender_email": sender_email, "email": email, "link": link})
			invite_email_template = render_to_string('partials/_invite_email_template.html', context)
			msg = EmailMultiAlternatives(subject, invite_email_template,
			settings.EMAIL_HOST_USER, [email], cc=[settings.EMAIL_HOST_USER])
			user = User.objects.get(username=request.user.username)
			invitation = Invitation()
			invitation.email = email
			invitation.code = invite_code
			invitation.sender = user
			invitation.save()
			success = msg.send()
			return HttpResponseRedirect('/users/invite?success='+str(success) +'&email='+email)
Ejemplo n.º 5
0
def invite(request, code):
    profile = check_profile(code)
    if not profile:
        messages.error(
            request,
            'Your personal URL is incorrect, please reset your account or provide proper url'
        )
        return redirect('index')

    from forms import InvitationForm
    if request.method == 'POST':
        form = InvitationForm(request.POST)
        if form.is_valid():
            emails = form.cleaned_data['emails']
            emails = emails.split(',')
            for e in emails:
                e = e.strip()
                i = Invitation(email=e, key=generate_key())
                i.save()
                u, created = User.objects.get_or_create(username=e[:30],
                                                        email=e)
                notification.send([u], 'invite', {
                    'key': i.key,
                    'profile': profile
                })

            if len(emails):
                messages.info(request,
                              '%d invitation(s) has been sent ' % len(emails))

            return redirect('homepage', code=code)
    else:
        form = InvitationForm(initial={'key': code})

    return render_to_response('researchers/invite.html', {
        'profile': profile,
        'form': form,
        'key': code
    },
                              context_instance=RequestContext(request))