Exemple #1
0
def api_createuser(request):
    code = 100
    data = {'code':code, 'error': 'Request Error'}
    
    if request.POST:
        if 'name' in request.POST and 'email' in request.POST and 'password' in request.POST:
            name = request.POST['name']
            email_x = request.POST['email']
            password = request.POST['password']
            
            email = email_x.lower()
            
            if validateEmail(email):
                ck_u = User.objects.filter(email=email)
                if len(ck_u) > 0: 
                    existing_user = True
                    code = 100
                    data = {'code':code, 'error': 'User Already Exists'}
                else:
                    existing_user = False
                    u = User(username=email, password=password, email=email)
                    u.save()
                
                    """create invitation"""
                    store = Store.objects.filter(active=True,city='San Francisco')[0]
                    inv = Invitation(user=u, default_store=store, email=u.username, used=True)
                    inv.save()
                    
                    up = UserProfile(user=u, default_store=store)
                    up.save()
                    
                    """create default subscription"""
                    sub = Subscription(userprofile=up, subscription=False, subscription_type='un-subscribed')
                    sub.save()
                    
                    """Send admin email"""
                    sendSignupAdminEmail(u, 'San Francisco')
                    
                    """Send user email"""
                    sendWelcomeEmail(email,'sanfrancisco', 'San Francisco')
                    
                    """subscribe user to daily email"""
                    LIST_IDS = {'san-francisco':'eaa0a378ba'}
                    l_id = LIST_IDS['san-francisco']
                    
                    ms = MailSnake(settings.MAILCHIMP_API_KEY)
                    success = ms.listSubscribe(id=l_id, email_address=u.email, double_optin=False)
                    
                    d, code = api_auth_helper(u)
                    code = 200
                    data = {'code':code, 'account':d['account']}
            else:
                code = 100
                data = {'code':code, 'error': 'Invalid Email'}
        else:
            code = 100
            data = {'code':code, 'error': 'Invalid Sign-up'}
          
    return HttpResponse(simplejson.dumps(data, cls=MyJSONEncoder),content_type = 'application/javascript; charset=utf8')
Exemple #2
0
def invite_friends(request):
    user = getUser(request)

    if request.POST:
        form = FriendInvitationForm(request.POST)
        if form.is_valid():
            c_email = form.cleaned_data["email"]
            email = c_email.lower()
            token = get_rand_token()

            # Check if new invite is already a user
            ck_u = User.objects.filter(email=email)
            if len(ck_u) > 0:
                error_msg = (
                    "Looks like we already have a user signed up with this email.  Do you have any other friends?"
                )
                messages.add_message(request, messages.INFO, error_msg)
            else:
                new_u = User(username=email, password=token, email=email)
                new_u.save()

                exstng_up = UserProfile.objects.get(user=user)
                ds = exstng_up.default_store
                up = UserProfile(user=new_u, default_store=ds)
                up.save()

                c = ds.city.lower()
                city = c.replace(" ", "")

                # Send invite to friend
                send_invite_email(email, token, city, ds, gift=True, gifter=user.email)

                # Notify admin of new invite
                send_admin_new_invite(new_u, user)

                inv = Invitation(user=new_u, default_store=ds, email=new_u.username, token=token, used=False)
                inv.save()

                invfrnd = FriendInvites(user=user, invitation=inv)
                invfrnd.save()

                # assign new user to subscription
                s_type = "1 month unlimited (friend invite)"
                s = Subscription(userprofile=up, subscription=True, subscription_type=s_type)
                s.save()

                msg = "Invite to %s sent! Don't stop now, keep inviting friends." % email
                messages.add_message(request, messages.INFO, msg)
    else:
        form = FriendInvitationForm()

    invites = FriendInvites.objects.filter(user=user)

    template = "profile/invite_friend.html"
    data = {"form": form, "invites": invites}
    return render_to_response(template, data, context_instance=RequestContext(request))
Exemple #3
0
def ajax_signup(request):
    if request.POST:
        new_signup = MyUserCreationForm(request.POST)
        if new_signup.is_valid():
            new_signup.save()
            uname = new_signup.cleaned_data["username"]

            """set up so username and email are the same"""
            user = User.objects.get(username=uname)
            user.email = uname
            user.save()

            """create user profile"""
            store_id = request.POST.get("default_store")
            store = Store.objects.get(id=store_id)
            up = UserProfile(user=user, default_store=store)
            up.save()

            """create default subscription"""
            sub = Subscription(userprofile=up, subscription=False, subscription_type="un-subscribed")
            sub.save()

            """email admin of new signup"""
            sendSignupAdminEmail(user, store)

            """email user with signup information"""
            sendSignupEmail(user, store)

            """subscrbe user to daily email"""
            LIST_IDS = {"sflaunch_group": "eaa0a378ba"}
            l_id = LIST_IDS["sflaunch_group"]

            ms = MailSnake(settings.MAILCHIMP_API_KEY)
            success = ms.listSubscribe(id=l_id, email_address=user.email, double_optin=False)

            username = user.username
            password = user.password
            user = authenticate(username=username, password=password)
            if user is not None:
                if user.is_active:
                    login(request, user)

            return HttpResponse("success", status=200)

    return HttpResponse("Username is already taken", status=403)
Exemple #4
0
def CreateNewUserHelper(request, c_email, c_city):
    email = c_email.lower()
    token = get_rand_token()

    ck_u = User.objects.filter(email=email)
    if len(ck_u) > 0:
        existing_user = True
    else:
        existing_user = False
        u = User(username=email, password=token, email=email)
        u.save()

        """create invitation"""
        store = Store.objects.filter(active=True, city="San Francisco")[0]
        inv = Invitation(user=u, default_store=store, email=u.username, token=token, used=False)
        inv.save()

        # save in session
        request.session["user"] = base64.b16encode(str(u.id))

        CITY_LIST = {"san-francisco": "San Francisco"}
        cl_city = CITY_LIST[c_city]

        up = UserProfile(user=u, default_store=store)
        up.save()

        """create default subscription"""
        sub = Subscription(userprofile=up, subscription=False, subscription_type="un-subscribed")
        sub.save()

        """Send admin email"""
        sendSignupAdminEmail(u, cl_city)

        """Send welcome email to new user"""
        c = cl_city.lower()
        city = c.replace(" ", "")
        sendWelcomeEmail(email, token, city, cl_city)

        """subscribe user to daily email"""
        LIST_IDS = {"san-francisco": "eaa0a378ba"}
        l_id = LIST_IDS[c_city]

        ms = MailSnake(settings.MAILCHIMP_API_KEY)
        success = ms.listSubscribe(id=l_id, email_address=u.email, double_optin=False)
Exemple #5
0
def admin_invite(request):
    if request.POST:
        form = InvitationForm(request.POST)
        if form.is_valid():
            c_email = form.cleaned_data["email"]
            email = c_email.lower()
            token = get_rand_token()

            u = User(username=email, password=token, email=email)
            u.save()

            store = form.cleaned_data["store"]
            up = UserProfile(user=u, default_store=store)
            up.save()

            """create default subscription"""
            sub = Subscription(userprofile=up, subscription=False, subscription_type="un-subscribed")
            sub.save()

            c = store.city.lower()
            city = c.replace(" ", "")
            send_invite_email(email, token, city, store)

            inv = Invitation(user=u, default_store=store, email=u.username, token=token, used=False)
            inv.save()

            """subscrbe user to daily email"""
            LIST_IDS = {"sflaunch_group": "eaa0a378ba"}
            l_id = LIST_IDS["sflaunch_group"]

            ms = MailSnake(settings.MAILCHIMP_API_KEY)
            success = ms.listSubscribe(id=l_id, email_address=u.email, double_optin=False)

    else:
        form = InvitationForm()

    invites = Invitation.objects.all()

    template = "profile/admin/admin_invite.html"
    data = {"form": form, "invites": invites}

    return render_to_response(template, data, context_instance=RequestContext(request))
Exemple #6
0
def signup(request, city):
    LOCATIONS = {'sanfrancisco':'San Francisco'}
    STATE = {'sanfrancisco':'CA'}
    
    store_city = LOCATIONS[city]
    store_state = STATE[city]
    
    store_all = Store.objects.filter(city=store_city, active=True)
    
    if request.POST:
        new_signup = MyUserCreationForm(request.POST)
        if new_signup.is_valid():
            new_signup.save()
            uname = new_signup.cleaned_data['username']
            
            """set up so username and email are the same"""
            user = User.objects.get(username=uname)
            user.email = uname
            user.save()
            
            """create user profile"""
            store_id = request.POST.get('default_store')
            store = Store.objects.get(id=store_id)
            
            up = UserProfile(user=user, default_store=store)
            up.save()
            
            """create default subscription"""
            sub = Subscription(userprofile=up, subscription=False, subscription_type='un-subscribed')
            sub.save()
            
            """email admin of new signup"""
            sendSignupAdminEmail(user, store)
            
            """email user with signup information"""
            sendSignupEmail(user, store)
            
            """subscrbe user to daily email"""
            LIST_IDS = {'sflaunch_group':'eaa0a378ba'}
            l_id = LIST_IDS['sflaunch_group']
      
            ms = MailSnake(settings.MAILCHIMP_API_KEY)
            success = ms.listSubscribe(id=l_id, email_address=user.email, double_optin=False)
            
            username = user.username
            password = user.password
            user = authenticate(username=username, password=password)
            if user is not None:
                if user.is_active:
                    login(request, user)
            
            request.session['user'] = base64.b16encode(str(up.user.id))
            
            return HttpResponseRedirect('/profile/subscribe/sanfrancisco')
    
    new_signup = MyUserCreationForm()
    location_form = UserProfileForm()
    
    mapForm = createMapMulti(store_all, store_city, store_state, largeMap=True, zoomControl=True, panControl=True)
        
    template = 'profile/signup.html'
    data = {'new_signup':new_signup, 'store_all':store_all, 'city':city,
                'store_city':store_city, 'location_form':location_form, 'map':mapForm}
    
    return render_to_response(template, data,context_instance=RequestContext(request))
Exemple #7
0
def gift_subscription(request):
    init = {'country':'US'}
    
    if request.POST:
        gift = GiftForm(request.POST)
        if gift.is_valid():
            randtoken = get_rand_token()
            
            message = gift.cleaned_data['message']
            givername = gift.cleaned_data['givername']
            giveremail = gift.cleaned_data['giveremail']
            receivername = gift.cleaned_data['receivername']
            receiveremail = gift.cleaned_data['receiveremail']
            
            gs = GiftSubscription(givername=givername,giveremail=giveremail,message=message,
                             receivername=receivername, receiveremail=receiveremail, gifttoken=randtoken)
            gs.save()
            
            #create new user or check if user exists
            email = receiveremail.lower()
            
            #Check if new invite is already a user
            ck_u = User.objects.filter(email=email)
            if len(ck_u) > 0: 
                new_u = ck_u[0]
                up = new_u.get_profile()
            else:    
                new_u = User(username=email, password=randtoken, email=email)
                new_u.save()
                
                store = Store.objects.filter(city='San Francisco')[0]
                up = UserProfile(user=new_u, default_store=store)
                up.save()
                
            gs.giftuser = new_u
            gs.save()
            
            
            #subscribe user with profile
            address_line1 = ''
            address_line2 = ''
            address_city = ''
            address_state = ''
            address_zip = ''

            up_dict = {'name':receivername,
           'address_line1':address_line1,
           'address_line2':address_line2,
           'address_city': address_city,
           'address_state': address_state,
           'address_zip': address_zip }

            stripe.api_key = settings.STRIPE_API_KEY
            
            try:  
                """Check for saved version"""
                user_profile = new_u.get_profile()
                customer_id = user_profile.stripeprofile
                if customer_id:
                    customer = stripe.Customer.retrieve(customer_id)
                else:
                    customer = createStripeCustomer(request, new_u, up_dict, up_exists = True)
            except UserProfile.DoesNotExist:
                """Create new and save """
                customer = createStripeCustomer(request, new_u, up_dict, up_exists = False)
            
            #send gift subscription email
            token = request.POST.get('stripeToken')
            
            descrip = "Gift from %s" % givername
            
            try:
                stripe.Charge.create(
                                    amount=4999,
                                    currency="usd",
                                    card=token, # obtained with stripe.js
                                    description= descrip
                )
                valid=True
                
                """create default subscription"""
                sub = Subscription(userprofile=up, subscription=False, subscription_type='un-subscribed')
                sub.save()
                
                """email gifter & receiver"""
                gifter_receiver_email(giveremail, receiveremail, message, givername, receivername, randtoken)
                
                """email admin"""
                gift_admin_email(givername, giveremail, receivername, receiveremail)
                
                template = 'gifts/gift_subscription_thanks.html'

                data = {'receivername':receivername, 'receiveremail':receiveremail}
                return render_to_response(template, data,context_instance=RequestContext(request))
                
            except stripe.CardError, e: 
                messages.add_message(request, messages.ERROR, e)
                valid = False 
            except stripe.InvalidRequestError, e:
                messages.add_message(request, messages.ERROR, e)
                valid = False
Exemple #8
0
def manage(request):
    user = getUser(request)

    try:
        up = user.get_profile()
    except UserProfile.DoesNotExist:
        store = Store.objects.all()[0]
        user_profile = UserProfile(user=user, default_store=store)
        user_profile.save()

    if request.POST:
        if "update_profile" in request.POST:
            form = MyUserChangeForm(request.POST)
            if form.is_valid():
                fn = form.cleaned_data["first_name"]
                ln = form.cleaned_data["last_name"]
                em = form.cleaned_data["email"]

                user.first_name = fn
                user.last_name = ln
                user.email = em

                user.save()
                messages.add_message(request, messages.SUCCESS, "Updated profile details saved!")
        elif "change_password" in request.POST:
            form = PasswordChangeForm(user, request.POST)
            if form.is_valid():
                form.save()
                messages.add_message(request, messages.SUCCESS, "Updated password saved!")
        elif "update_location" in request.POST:
            store_id = request.POST.get("default_store")
            store = Store.objects.get(id=store_id)
            up.default_store = store
            up.save()
            messages.add_message(request, messages.SUCCESS, "Updated location saved!")
            admin_email_newlocation(up)

    if user:
        if "city" in request.session:
            city = request.session["city"]
        else:
            city = "sanfrancisco"

        change_form = PasswordChangeForm(user)
        user_form = MyUserChangeForm(instance=user)
        userprofile_form = UserProfileForm(instance=up)
        sub = Subscription.objects.get(userprofile=up)
        all_coupons = CouponCode.objects.filter(userprofile=up)

        template = "profile/profile.html"
        data = {
            "change_form": change_form,
            "user_form": user_form,
            "user": user,
            "city": city,
            "subscription": sub,
            "all_coupons": all_coupons,
            "userprofile_form": userprofile_form,
            "profile": up,
        }

        return render_to_response(template, data, context_instance=RequestContext(request))
    else:
        return login_view(request)
Exemple #9
0
        if up_exists:
            user_profile = user.get_profile()
            user_profile.stripeprofile = customer.id
            user_profile.name = up_dict["name"]
            user_profile.address_line1 = up_dict["address_line1"]
            user_profile.address_line2 = up_dict["address_line2"]
            user_profile.address_city = up_dict["address_city"]
            user_profile.address_state = up_dict["address_state"]
            user_profile.address_zip = up_dict["address_zip"]
        else:
            """ create user profile"""
            user_profile = UserProfile(
                user=user,
                stripeprofile=customer.id,
                name=up_dict["name"],
                address_line1=up_dict["address_line1"],
                address_line2=up_dict["address_line2"],
                address_city=up_dict["address_city"],
                address_state=up_dict["address_state"],
                address_zip=up_dict["address_zip"],
            )
        user_profile.save()

    return customer


def login_view(request):
    if request.POST:
        username = request.POST["username"]
        password = request.POST["password"]
        user = authenticate(username=username, password=password)
        if user is not None: