Exemple #1
0
def admin_manage_user_details(request, userid=None):
    u = User.objects.get(id=userid)
    up = u.get_profile()

    all_coupons = CouponCode.objects.filter(userprofile=up)
    s = Subscription.objects.get(userprofile=up)

    if request.POST:
        logging.debug(request.POST)
        if "subscription" in request.POST:
            form = SubscriptionForm(request.POST, instance=s)
            if form.is_valid():
                s_new = form.save(commit=False)
                s_new.userprofile = up
                s_new.save()
                messages.add_message(request, messages.SUCCESS, "Subscription updated!")
        if "discount_percent" in request.POST:
            da = request.POST.get("discount_percent")
            discount = Decimal(da)
            new_code = "".join([random.choice(string.letters + string.digits) for x in range(1, 9)])
            coupon_code = CouponCode(
                code=new_code, userprofile=up, discount_percent=discount, coupon_used=False, created_on=datetime.now()
            )
            coupon_code.save()

    form = SubscriptionForm(instance=s)

    order_all = OrderHistory.objects.filter(userprofile=up).order_by("date")

    template = "profile/admin/admin_profiles_details.html"
    data = {"order": order_all, "subscription_form": form, "all_coupons": all_coupons}

    return render_to_response(template, data, context_instance=RequestContext(request))
Exemple #2
0
def subscribe(request, city=None):
    user = getUser(request)
    if request.POST:
        cs = createStripe_Subscription(request)
        up = user.get_profile()

        store_id = request.POST.get("default_store")
        if store_id:
            store = Store.objects.get(id=int(store_id))
        else:
            store = Store.objects.filter(city="San Francisco")[0]
        up.default_store = store
        up.save()

        """generate discount code"""
        discount = Decimal("0.5")
        new_code = "".join([random.choice(string.letters + string.digits) for x in range(1, 9)])
        coupon_code = CouponCode(code=new_code, discount_percent=discount, userprofile=up, created_on=datetime.now())
        coupon_code.save()

        # email admin
        subscription_admin_email(user.email)

        # email user
        subscription_user_email(user.email, coupon_code.code)

        return redirect("/profile/manage")

    # Change payment form depending on location
    init = {"country": "US"}
    payForm = PaymentForm(initial=init)

    customer = None
    if user:
        try:
            user_profile = user.get_profile()
            customer_id = user_profile.stripeprofile
            stripe.api_key = settings.STRIPE_API_KEY
            customer = stripe.Customer.retrieve(customer_id)
        except UserProfile.DoesNotExist:
            pass
        except stripe.InvalidRequestError:
            pass
        except AttributeError:
            pass

    change_card = False
    if "change_card" in request.GET:
        if request.GET.get("change_card") == "True":
            change_card = True

    if city == None:
        city = "sanfrancisco"

    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)

    location_form = UserProfileForm()
    mapForm = createMapMulti(store_all, store_city, store_state, largeMap=True, zoomControl=True, panControl=True)

    template = "profile/subscribe_v2.html"
    data = {
        "payment": payForm,
        "customer": customer,
        "change_card": change_card,
        "map": mapForm,
        "user": user,
        "store_all": store_all,
        "location_form": location_form,
    }

    return render_to_response(template, data, context_instance=RequestContext(request))