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)
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")
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
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)