def earlyAccessSubmit(request): from signup.forms import SignupForm if request.method == 'POST': # If the form has been submitted... form = SignupForm(request.POST) # A form bound to the POST data if form.is_valid(): ms = MailSnake('60a810702ef83b7de50b150df5008109-us5') lists = ms.lists() ms.listSubscribe( id=lists['data'][0]['id'], email_address=form.cleaned_data['email'], merge_vars={ 'GROUPINGS': [ { 'id': 7197, 'groups': 'Pre-Launch', }, ] }, update_existing=True, double_optin=False, ) return HttpResponseRedirect( '/signup/thanks/') # Redirect after POST else: form = SignupForm() # An unbound form return render(request, 'signup.html', { 'form': form, })
def earlyAccessSubmit(request): from signup.forms import SignupForm if request.method == 'POST': # If the form has been submitted... form = SignupForm(request.POST) # A form bound to the POST data if form.is_valid(): ms = MailSnake('60a810702ef83b7de50b150df5008109-us5') lists = ms.lists() ms.listSubscribe( id = lists['data'][0]['id'], email_address = form.cleaned_data['email'], merge_vars = { 'GROUPINGS': [ {'id': 7197, 'groups': 'Pre-Launch',},] }, update_existing = True, double_optin = False, ) return HttpResponseRedirect('/signup/thanks/') # Redirect after POST else: form = SignupForm() # An unbound form return render(request, 'signup.html', { 'form': form, })
def find_list(name): mc = MailSnake(settings.MC_API_KEY) lists = mc.lists(filters = {"list_name": name}) if lists['total'] == 0: return 0 return lists['data'][0]['id']
def find_list(name): mc = MailSnake(settings.MC_API_KEY) lists = mc.lists(filters={"list_name": name}) if lists['total'] == 0: return 0 return lists['data'][0]['id']
def find_list(name): mc = MailSnake(settings.MC_API_KEY) lists = mc.lists(filters={"list_name": name}) if lists["total"] == 0: return 0 return lists["data"][0]["id"]
def form_valid(self, form): ms = MailSnake(getattr(settings, 'MAILCHIMP_KEY')) double_optin = getattr(settings, 'MAILCHIMP_CONFIRM', True) list_id = getattr(settings, 'MAILCHIMP_LIST_ID', None) if not list_id: list_id = ms.lists()['data'][0]['id'] ms.listSubscribe(id=list_id, email_address=form.cleaned_data['email'], merge_vars={'NAME': form.cleaned_data['name']}, update_existing=True, double_optin=double_optin) return super(SubscribeView, self).form_valid(form)
def connect(request): ms = MailSnake(settings.MAILCHIMP_API_KEY) lists = ms.lists() if request.method == 'POST': form = ConnectForm(request.POST) message = 'the sky is falling' if form.is_valid(): ms.listSubscribe( id = lists['data'][0]['id'], email_address = (form.cleaned_data['email_signup']), update_existing = True, double_optin = False, ) #ms.listStaticSegmentMembersAdd( # id = lists['data'][0]['id'], # seg_id = 157, #Fake Development People... kill this in production! # batch = { # 'email_address': form.cleaned_data['email_signup'] # }, #) if request.is_ajax(): #success with js message = 'success!' status = True return HttpResponse(json.dumps({'message':message, 'status':status}), 'application/json') else: #success with no js return redirect('success') else: if request.is_ajax(): #error with js message = 'Invalid email address' status = False return HttpResponse(json.dumps({'message':message, 'status':status}), 'application/json') else: # error with no js form.addError('Invalid email address') else: form = ConnectForm() return render_to_response( 'signups/connect.html', { 'form': form, }, context_instance=RequestContext(request) )
def handle(self, *args, **options): """ Validates that the id passed in exists in mailchimp. """ key, web_id = self.parse_options(options) mailchimp = MailSnake(key) lists = mailchimp.lists()['data'] by_web_id = {l['web_id']: l for l in lists} list_with_id = by_web_id.get(web_id, None) if list_with_id: print "id: {} for web_id: {}".format(list_with_id['id'], web_id) print "list name: {}".format(list_with_id['name']) else: print "list with web_id: {} not found.".format(web_id) sys.exit(1)
def new_member(request): #auth.logout(request) if request.method == 'POST': uform = MyUserCreationForm(request.POST) pform = MemberForm(request.POST) if uform.is_valid() and pform.is_valid(): user = uform.save() member = pform.save(commit=False) member.user = user member.save() user = authenticate(username=uform.data['username'], password=uform.data['password1']) auth.login(request, user) if settings.USE_MAILCHIMP: ms = MailSnake(settings.MAILCHIMP_API_KEY) lists = ms.lists() ms.listSubscribe( id = lists['data'][0]['id'], #TODO: assumes use of first list, email_address = user.email, merge_vars = { 'FNAME' : user.first_name, 'LNAME' : user.last_name, }, update_existing = True, double_optin = False, #no confirm message send_welcome = True, #note: won't send if merely updates existing ) return redirect('membership.views.enrollment') else: uform = MyUserCreationForm() pform = MemberForm() d = { 'uform':uform, 'pform':pform, } return render(request, 'membership/new_member.html', d)
from mailsnake import MailSnake from mailsnake.exceptions import * import settings import logging ms = MailSnake(settings.MAILCHIMP_API_KEY) lists = ms.lists() logger = logging.getLogger(__name__) def subscribe_user(user): try: ms.listSubscribe( id=lists['data'][0]['id'], email_address=user.email, merge_vars={ 'USERNAME': user.username, 'FNAME': user.first_name or '', 'LNAME': user.last_name or '', }, update_existing=True, double_optin=False, send_welcome=False, ) except MailSnakeException: logger.warn('MailChimp listSubscribe call failed for user %s' % user.email, exc_info=True)
def submit_orders(request): # gets logged in user profile, or anonymous profile profile = current_profile(request) current_cart = Cart(request) # the cart has its own discount logic # plus we need to account for any user submitted coupons total_amount = current_cart.discount_applied() * 100 discount_amount = current_cart.discount() * 100.0 coupon_amount = float(request.POST.get('coupon_amount', 0.0)) shipping_amount = float(request.POST.get('shipping_amount', 0.0)) # actual amount to charge with stripe final_amount = total_amount - coupon_amount + shipping_amount print(str(current_cart.count()) + ' items') print('total ' + str(total_amount)) print('coupon amount ' + str(coupon_amount)) print('shipping amount ' + str(shipping_amount)) print('final amount ' + str(final_amount)) # grab email for reference in stripe if profile.user.username == 'guest': email = request.POST.get('email_address', '') else: email = profile.user.email # subscribing people to mailchimp if request.POST.get('email_checkbox','') and email != '': ms = MailSnake(settings.MAILCHIMP_KEY) lists = ms.lists() ms.listSubscribe( id = lists['data'][0]['id'], email_address = email, update_existing = True, double_optin = False, ) # see your keys here https://manage.stripe.com/account stripe.api_key = settings.STRIPE_SECRET_KEY # key the binx gave stripe_desc = str(email) + ", " + str(current_cart.count()) + " meshus" print(stripe_desc) # get the credit card details submitted by the form token = request.POST['stripe_token'] # create the charge on Stripe's servers - this will charge the user's card charge = stripe.Charge.create( amount = int(final_amount), # amount in cents, again currency = "usd", card = token, description = stripe_desc ) # store the shipping address information shipping = ShippingInfo() shipping.contact = email shipping.shipping_name = request.POST['shipping_name'] shipping.shipping_address = request.POST['shipping_address'] shipping.shipping_address_2 = request.POST['shipping_address_2'] shipping.shipping_city = request.POST['shipping_city'] shipping.shipping_zip = request.POST['shipping_zip'] shipping.shipping_region = request.POST['shipping_region'] shipping.shipping_state = request.POST['shipping_state'] shipping.shipping_country = request.POST['shipping_country'] # save shipping separately now, not in Order shipping.amount = shipping_amount shipping.save() items = current_cart.cart.item_set.all() if current_cart.count() > 1: return submit_multiple(request, shipping, items, final_amount, discount_amount, coupon_amount) elif current_cart.count() == 1: return submit_single(request, shipping, items, final_amount, coupon_amount)