Пример #1
0
def engage_opportunity(request):

    context = {}

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

    if pid and oid:

        opp = get_object_or_404(Opportunity, pk=oid)
        message = request.REQUEST.get('message')
        link = request.REQUEST.get('link')

        if link:
            message += '<br /></br />%s' % link

        if OpportunityEngagement.objects.filter(user=request.user, opportunity=opp, project_id=pid):

            response['message'] = "You are already engaged with this opportunity."

        else:

            opp_eng = OpportunityEngagement(user=request.user, opportunity=opp, project_id=pid)
            opp_eng.response = response

            opp_eng.save()

            subject = "New engagement with %s by %s" % (opp.name, request.user.email)
            html_content = "&quot;%s&quot;<br/><br/>%s" % (message, opp.project.name)
            html_content = html_content + " / <a href='http://%s/project/%s/opportunity/%s'>%s</a><br /><br />" % (request.get_host(), opp.project.id, opp.id, opp.name)
            html_content = html_content + "<a href='http://%s/admin/website/opportunityengagement/%s'>approve</a>""" % (request.get_host(), opp_eng.id)
                           
            base.send_email(opp.project.created_by.email, subject, html_content, html_content=html_content)
            base.send_admin_email(subject, html_content, html_content=html_content)

            response['message'] = "Thanks for your request. A project lead will get back to you as soon as possible."

    else:

        response['message'] = "No project or opportunity id."
    
    return HttpResponse(json.dumps(response), mimetype="application/json")
Пример #2
0
def forgot_password(request):

    context = {}

    if request.POST:

        email = request.POST.get("email")
        try:
            reset_user = User.objects.get(username=email)
        except User.DoesNotExist:
            reset_user = None

        if not reset_user:

            context["invalid_email"] = True

        else:

            temp_password = hashlib.md5(str(random.randint(0, 10000000))).hexdigest()[0:7]
            reset_user.set_password(temp_password)
            reset_user.save()

            subj = "[%s] Your password has been reset" % request.get_host()
            body = """By request, we've reset your password. <a href='http://%s/reset-password?t=%s&e=%s'>
                Choose a new password</a><br/><br/>Always happy to help,<br/>Reallocate""" % (
                request.get_host(),
                temp_password,
                urlquote(email),
            )

            base.send_email(email, subj, body, html_content=body)

            response = HttpResponseRedirect("/")
            alert = {"type": "success", "message": "Your password has been reset"}
            response.set_cookie("alert", json.dumps(alert), max_age=2)

            return response

    context["email"] = request.GET.get("email", "")

    return render(request, "forgot_password.html", context)
Пример #3
0
def change_project(request, *args):

    if request.user.is_staff:

        project_id = request.REQUEST.get('id', '')

        try:
            project = Project.objects.get(pk=project_id)

        except Exception, error:

            return HttpResponse(json.dumps({'success': False, 'message': 'Invalid project ID'}), status=500)

        if request.REQUEST.get('action') == 'approve' or request.REQUEST.get('action') == 'open':

            project.status = 'Active'
            project.save()

            subject = "Your ReAllocate project has been approved!"
            html_content = "Congratulations, your project &quot;%s&quot; has been reviewed and approved." % project.name
            html_content = html_content + "<br><br>This project is now live and can be viewed at <a href='%s'>%s</a>.<br>" % (project.get_url(request), project.get_url(request))

            base.send_email(project.created_by.email, subject, html_content, html_content=html_content)

            response = { "success": True }

        elif request.REQUEST.get('action') == 'close':

            project.status = 'Closed'
            project.save()

            response = { "success": True }

        elif request.REQUEST.get('action') == 'delete':

            project.delete()

            response = { "success": True }


        return HttpResponse(json.dumps(response), mimetype="application/json")
Пример #4
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