Trouble adding a discourse-subscriptions plan

I"m trying to create a new plan on my development environment. Clicking “add new plan” does this:

TypeError: Cannot read property 'discourse_subscriptions_currency' of undefined
    at Class.model (javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-show-plans-show:22)
    at Class.deserialize (route.js:1040)
    at UnresolvedRouteInfoByParam.getModel (router_js.js:895)
    at router_js.js:691
    at invokeCallback (rsvp.js:493)
    at publish (rsvp.js:476)
    at rsvp.js:19
    at invoke (backburner.js:338)
    at Queue.flush (backburner.js:229)
    at DeferredActionQueues.flush (backburner.js:426)

and also

Error while processing route: adminPlugins.discourse-subscriptions.products.show.plans.show Cannot read property 'discourse_subscriptions_currency' of undefined TypeError: Cannot read property 'discourse_subscriptions_currency' of undefined
    at Class.model (javascripts/discourse/routes/admin-plugins-discourse-subscriptions-products-show-plans-show:22:44)

I can’t tell if this is some issue with my setup or . . . something else. This works in the console started with the same ENV settings (of stripe keys and such):

> SiteSetting.discourse_subscriptions_currency
=> "USD"

I"m able to create and update products, but I’m not able to create a plan.

2 Likes

I think this is why:

3 Likes

Ah yes! This is due to the switch to Ember CLI on developer instances – shouldn’t affect production sites for now.

I have a PR that should drop in the next couple of days that refactors this and adds a new feature, too.

4 Likes

Might this also make it impossible to see new plans? I’ve added plans but they aren’t showing up.

(I’m trying to add a hook to GroupUser that watches the group and then pulls the most-recent subscription ID and adds it to my plugin’s model…)

EDIT: Meanwhile, my PR just got accepted. . .

2 Likes

I blame @CvX :wink: I’ll make sure in my work that I sweep the codebase for more instances of the Discourse constant so we’re ready for the future.

4 Likes

Aha. Found the other place and that was what was making it not present plans for sale; I thought I was going crazy. There’s another instance in s-show.js.es6, but you’ll find it the same way I did.

Oh, and also a Discourse.User.current().username.toLowerCase(), which I guess should be this.current_user.username.toLowerCase()?

1 Like

This should now be fixed with the merging of this:

1 Like