Module ImportFrom alias alias alias alias alias alias alias ImportFrom alias alias ImportFrom alias identifier ImportFrom alias ImportFrom alias ImportFrom alias alias alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias alias Assign NameStore Call NameLoad Str NameLoad keyword Str keyword Str FunctionDef arguments args defaults body If BoolOpAnd Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return Call NameLoad Call NameLoad Str Assign NameStore Call NameLoad Return Call NameLoad Str keyword NameLoad keyword AttributeLoad NameLoad attr decorator_list Call AttributeLoad NameLoad attr Str FunctionDef arguments args defaults body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Str If CompareIs NameLoad NameLoad body Return Call NameLoad Num Dict Str Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareIs NameLoad NameLoad body Return Call NameLoad Num Dict Str Call NameLoad Str Return Call NameLoad Num Dict Str Call AttributeLoad NameLoad attr decorator_list Call AttributeLoad NameLoad attr Str keyword ListLoad Str NameLoad FunctionDef arguments args defaults body If AttributeLoad NameLoad attr body Expr Call NameLoad Call NameLoad Str Str Return Call NameLoad Call NameLoad Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareIs NameLoad NameLoad CompareEq AttributeLoad NameLoad attr Str body Return Call NameLoad Call NameLoad Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Str Assign NameStore Call NameLoad keyword NameLoad keyword NameLoad If Call AttributeLoad NameLoad attr body Assign NameStore Call NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad keyword Call AttributeLoad AttributeLoad NameLoad attr attr Str keyword Call AttributeLoad AttributeLoad NameLoad attr attr Str keyword Call AttributeLoad AttributeLoad NameLoad attr attr Str keyword Call AttributeLoad AttributeLoad NameLoad attr attr Str If NameLoad body Expr Call NameLoad Call NameLoad Str Str orelse Expr Call NameLoad Call NameLoad Str Str Return Call NameLoad Call NameLoad Str Return Call NameLoad Str keyword NameLoad keyword NameLoad decorator_list Call AttributeLoad NameLoad attr Str keyword ListLoad Str Str NameLoad NameLoad FunctionDef arguments args defaults body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore CompareEq NameLoad SubscriptLoad NameLoad Index Str If BoolOpAnd BoolOpOr BoolOpAnd CompareIsNot NameLoad NameLoad CompareIs NameLoad NameLoad NameLoad CompareEq AttributeLoad NameLoad attr Str body Return Call NameLoad Call NameLoad Str Assign NameStore Call NameLoad If Call AttributeLoad NameLoad attr body Assign NameStore Call NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad keyword Call AttributeLoad AttributeLoad NameLoad attr attr Str keyword Call AttributeLoad NameLoad attr Str If NameLoad body Expr Call NameLoad Call NameLoad Str Str Return Call NameLoad Call NameLoad Str Return Call NameLoad Str keyword NameLoad keyword AttributeLoad NameLoad attr keyword NameLoad decorator_list Call AttributeLoad NameLoad attr Str keyword ListLoad Str Str NameLoad NameLoad NameLoad FunctionDef arguments args defaults body If UnaryOpNot AttributeLoad NameLoad attr body Expr Call NameLoad Call NameLoad Str Str Return Call NameLoad Call NameLoad Str Assign NameStore Call NameLoad If Call AttributeLoad NameLoad attr body Assign NameStore Call NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad If NameLoad body Expr Call NameLoad Call NameLoad Str Str Return Call NameLoad Call NameLoad Str Return Call NameLoad Str keyword NameLoad decorator_list Call AttributeLoad NameLoad attr Str keyword ListLoad Str Str NameLoad NameLoad FunctionDef arguments args defaults body If UnaryOpNot AttributeLoad NameLoad attr body Expr Call NameLoad Call NameLoad Str Str Return Call NameLoad Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Str Assign NameStore Call NameLoad keyword NameLoad keyword NameLoad keyword AttributeLoad NameLoad attr If Call AttributeLoad NameLoad attr body Assign NameStore Call NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad keyword Call AttributeLoad AttributeLoad NameLoad attr attr Str keyword Call AttributeLoad AttributeLoad NameLoad attr attr Str If NameLoad body Expr Call NameLoad Call NameLoad Str Str orelse Expr Call NameLoad Call NameLoad Str Str Return Call NameLoad Call NameLoad Str Return Call NameLoad Str keyword NameLoad keyword NameLoad keyword NameLoad decorator_list Call AttributeLoad NameLoad attr Str keyword ListLoad Str Str NameLoad NameLoad FunctionDef arguments args defaults body Assign NameStore Call AttributeLoad Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr attr Call AttributeLoad AttributeLoad NameLoad attr attr attr Num If AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr CompareEq AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr attr orelse Assign NameStore NameLoad Assign NameStore NameLoad Return Call NameLoad Str keyword NameLoad keyword NameLoad keyword NameLoad decorator_list Call AttributeLoad NameLoad attr Str NameLoad NameLoad
N/A flask Blueprint current_app render_template url_for request redirect flash flask_login login_required current_user flask_babel gettext _ config settings catwatch.lib.util_json render_json catwatch.blueprints.billing.forms CreditCardForm UpdateSubscriptionForm CancelSubscriptionForm catwatch.blueprints.billing.models.coupon Coupon catwatch.blueprints.billing.models.subscription Subscription catwatch.blueprints.billing.models.invoice Invoice catwatch.blueprints.billing.decorators subscription_required handle_stripe_exceptions N/A billing N/A Blueprint billing __name__ template_folder ../templates url_prefix /subscription pricing N/A N/A N/A N/A N/A N/A N/A N/A current_user is_authenticated N/A current_user subscription N/A N/A N/A redirect N/A url_for billing.update N/A form N/A UpdateSubscriptionForm N/A N/A render_template billing/pricing.jinja2 form form plans N/A settings STRIPE_PLANS N/A N/A N/A billing route /pricing coupon_code N/A N/A N/A N/A N/A code N/A N/A N/A request form get coupon_code N/A N/A code None N/A N/A N/A render_json 422 N/A error N/A _ Discount code cannot be processed. N/A coupon N/A N/A Coupon find_by_code code N/A N/A coupon None N/A N/A N/A render_json 404 N/A error N/A _ Discount code not found. N/A N/A render_json 200 N/A data N/A N/A coupon serialize N/A N/A N/A billing route /coupon_code methods N/A POST login_required create N/A N/A N/A N/A N/A N/A current_user subscription N/A N/A N/A flash N/A _ You already have an active subscription. info N/A N/A redirect N/A url_for user.settings N/A plan N/A N/A N/A request args get plan N/A active_plan N/A N/A Subscription get_plan_by_id plan N/A N/A N/A active_plan None N/A N/A request method GET N/A N/A N/A redirect N/A url_for billing.pricing N/A stripe_key N/A N/A N/A current_app config get STRIPE_PUBLISHABLE_KEY N/A form N/A CreditCardForm stripe_key stripe_key plan plan N/A N/A N/A form validate_on_submit N/A N/A subscription N/A Subscription N/A created N/A N/A subscription create user current_user name N/A N/A N/A request form get name plan N/A N/A N/A request form get plan coupon N/A N/A N/A request form get coupon_code token N/A N/A N/A request form get stripe_token N/A created N/A N/A N/A flash N/A _ Awesome, thanks for subscribing! success N/A N/A N/A flash N/A _ You must enable Javascript for this request. warn N/A N/A redirect N/A url_for user.settings N/A N/A render_template billing/payment_method.jinja2 form form plan active_plan N/A N/A N/A billing route /create methods N/A GET POST handle_stripe_exceptions login_required update N/A N/A N/A N/A N/A current_plan N/A N/A current_user subscription plan N/A active_plan N/A N/A Subscription get_plan_by_id current_plan N/A new_plan N/A N/A Subscription get_new_plan N/A N/A N/A request form keys N/A plan N/A N/A Subscription get_plan_by_id new_plan N/A is_same_plan N/A new_plan N/A active_plan N/A id N/A N/A N/A N/A N/A new_plan None N/A plan None is_same_plan N/A N/A request method POST N/A N/A N/A redirect N/A url_for billing.update N/A form N/A UpdateSubscriptionForm N/A N/A N/A form validate_on_submit N/A N/A subscription N/A Subscription N/A updated N/A N/A subscription update user current_user coupon N/A N/A N/A request form get coupon_code plan N/A N/A plan get id N/A updated N/A N/A N/A flash N/A _ Your subscription has been updated. success N/A N/A redirect N/A url_for user.settings N/A N/A render_template billing/pricing.jinja2 form form plans N/A settings STRIPE_PLANS active_plan active_plan N/A N/A N/A billing route /update methods N/A GET POST handle_stripe_exceptions subscription_required login_required cancel N/A N/A N/A N/A N/A N/A N/A current_user subscription N/A N/A N/A flash N/A _ You do not have an active subscription. error N/A N/A redirect N/A url_for user.settings N/A form N/A CancelSubscriptionForm N/A N/A N/A form validate_on_submit N/A N/A subscription N/A Subscription N/A cancelled N/A N/A subscription cancel user current_user N/A cancelled N/A N/A N/A flash N/A _ Sorry to see you go, your subscription has been cancelled. success N/A N/A redirect N/A url_for user.settings N/A N/A render_template billing/cancel.jinja2 form form N/A N/A N/A billing route /cancel methods N/A GET POST handle_stripe_exceptions login_required update_payment_method N/A N/A N/A N/A N/A N/A N/A current_user credit_card N/A N/A N/A flash N/A _ You do not have a payment method on file. error N/A N/A redirect N/A url_for user.settings N/A active_plan N/A N/A Subscription get_plan_by_id N/A N/A current_user subscription plan N/A card_last4 N/A str N/A N/A current_user credit_card last4 N/A stripe_key N/A N/A N/A current_app config get STRIPE_PUBLISHABLE_KEY N/A form N/A CreditCardForm stripe_key stripe_key plan active_plan name N/A current_user name N/A N/A N/A form validate_on_submit N/A N/A subscription N/A Subscription N/A updated N/A N/A subscription update_payment_method user current_user name N/A N/A N/A request form get name token N/A N/A N/A request form get stripe_token N/A updated N/A N/A N/A flash N/A _ Your payment method has been updated. success N/A N/A N/A flash N/A _ You must enable Javascript for this request. warn N/A N/A redirect N/A url_for user.settings N/A N/A render_template billing/payment_method.jinja2 form form plan active_plan card_last4 card_last4 N/A N/A N/A billing route /update_payment_method methods N/A GET POST handle_stripe_exceptions login_required billing_history N/A N/A N/A N/A N/A invoices N/A N/A N/A N/A N/A N/A N/A Invoice query filter N/A N/A Invoice user_id N/A current_user id order_by N/A N/A N/A Invoice created_on desc limit 12 N/A N/A current_user subscription N/A N/A upcoming N/A N/A Invoice upcoming N/A current_user payment_id N/A coupon N/A N/A N/A N/A N/A Coupon query filter N/A N/A Coupon code N/A N/A current_user subscription coupon first N/A N/A upcoming None N/A coupon None N/A N/A render_template billing/billing_history.jinja2 invoices invoices upcoming upcoming coupon coupon N/A N/A N/A billing route /billing_history handle_stripe_exceptions login_required