Пример #1
0
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,
    })
Пример #2
0
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,
    })
Пример #3
0
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']
Пример #4
0
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']
Пример #5
0
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"]
Пример #6
0
    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)
Пример #7
0
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)
  )
Пример #8
0
    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)
Пример #9
0
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)
Пример #10
0
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)
Пример #11
0
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)