Exemple #1
0
def invite_users(request):

    if request.REQUEST:

        message = request.REQUEST.get('message')
        emails = request.REQUEST.get('emails').split(',')

        for email in emails:

            salt = '1nv1t3'
            hash = hashlib.md5(salt + email).hexdigest()
            link = 'http://beta.reallocate.org/sign-up?invite=%s' % hash

            subject = "You've been invited to join ReAllocate!"

            context = {}
            context.update({
                'email': email,
                'subject': subject,
                'link': link,
                'message': message
            })

            base.send_email_template(request, "invite-user", context, subject, email)


        #return render_to_response('emails/invite-user.html', context, context_instance=RequestContext(request))  
        return HttpResponse(json.dumps({ 'success': True, 'message': 'Invite(s) sent' }), content_type="application/json", status=200)

    else:

        return HttpResponse(json.dumps({ 'success': False, 'message': 'No data posted' }), content_type="application/json", status=403)
Exemple #2
0
def close_opportunity(request):

    pid = request.REQUEST.get('projectId')
    oid = request.REQUEST.get('opportunityId')
    response = {}

    if pid and oid:

        # close opportunity engagements
        for opp_eng in OpportunityEngagement.objects.filter(opportunity__id__exact=oid):
            opp_eng.status = STATUS_CLOSED
            opp_eng.save()

        #close Opportunity
        opp = get_object_or_404(Opportunity, pk=oid)
        opp.status = STATUS_CLOSED
        opp.save()

        # add final update about closing
        message = request.REQUEST.get('message')
        update = Update.objects.create(organization_id=opp.organization_id, project_id=pid, media_url="",
                                   opportunity_id=oid, text=message, created_by=request.user)
        update.save()

        #now notify everyone involve about the close
        subject = "Opportunity,  %s, closed by %s" % (opp.name, request.user.email)

        # context here only used by email template(s), so add the variables that your template will need.
        context = {}
        context['opportunity_name'] = opp.name
        context['project_name'] = opp.project.name
        context['message'] = message

        #email site admin
        base.send_email_template(request, "closed_opportunity_admin", context, subject, [ADMIN_EMAIL])

        #email project admin
        base.send_email_template(request, "closed_opportunity_admin", context, subject, [opp.created_by.email])

        #email engaged users
        for engaged_user in opp.engaged_by.all():
            context['user'] = engaged_user
            base.send_email_template(request, "closed_opportunity_user", context, subject, [engaged_user.email])

        response['message'] = "Opportunity was successfully closed."
    else:
        response['message'] = "Opportunity was not closed. Missing project or opportunity id."

    return HttpResponse(json.dumps(response), mimetype="application/json")
Exemple #3
0
def sign_up(request):

    context = {}

    context["referrer"] = request.META.get("HTTP_REFERER", "/")

    if re.search(r"\/get-started", context["referrer"]):
        context["next"] = "/organization/new"
    else:
        context["next"] = context["referrer"]

    if settings.INVITE_ONLY:

        if request.GET.get("invite") or request.COOKIES.get("invite"):

            response = render(request, "sign_up.html", context)

            if request.GET.get("invite"):
                response.set_cookie("invite", request.GET["invite"], max_age=2)

            return response

        else:

            return render(request, "request_invite.html", context)

    elif not request.POST:

        return render(request, "sign_up.html", context)

    response = HttpResponseRedirect(request.POST.get("next", "/"))

    if request.POST.get("request-invite"):

        email = request.POST.get("email")
        name = request.POST.get("name")
        subject = "%s" % email
        content = "A new account invite request has been submitted:\n\n\t- %s\n\t- %s" % (name, email)
        if request.POST.get("blurb"):
            content += "\n\n%s" % request.POST.get("blurb")
        if request.POST.get("contribute"):
            content += "\n\nI would like to contribute my skills, knowledge and/or resources."
        if request.POST.get("project"):
            content += "\n\nI have a project I would like to submit."

        base.send_email("*****@*****.**", subject, content)

        alert = {
            "type": "modal",
            "message": "Thank you for your interest in Reallocate.  Your invite request has been received.",
        }

        response.set_cookie("alert", json.dumps(alert), max_age=2)

    else:

        email = request.POST.get("email")
        password = request.POST.get("password")

        # Create a new user and persist it to the database.
        user = User.objects.create_user(username=email, email=email, password=password)
        user.save()

        user = authenticate(username=email, password=password)
        login(request, user)

        email_context = {"email": email, "user": user}

        base.send_email_template(request, "welcome", email_context, "Welcome to ReAllocate!", [email])

        subject = "[%s] %s %s has joined ReAllocate" % (request.get_host(), user.first_name, user.last_name)
        html_content = "Username: %s <br /><br />Name: %s %s<br /><br />Email: %s <br /><br />" % (
            user.username,
            user.first_name,
            user.last_name,
            user.email,
        )
        base.send_admin_email(subject, html_content, html_content=html_content)

    return response
Exemple #4
0
def test_email(request):

    email_type = request.GET.get("email_type")
    html_content = base.send_email_template(request, email_type, {}, "*", [], render=True)[0]

    return HttpResponse(content=html_content)