-
Notifications
You must be signed in to change notification settings - Fork 16
Membership model #74
Comments
If the description is about an account being a member of a department then I don't have a strong preferences about it, but to me the description looks like we are trying to do too much at once. |
@pawciobiel very well, but it's a reflection of a long discussion involving many people and whiteboard drawings, and I think you're a little too blunt about a sensitive issue. We would all like this to be nice and simple, but if you see how things actually work out in real life, you know why we need these models, fields, and relations. |
@andreaslloyd I wonder how #55 relates to this ticket? Is it the same membership we are talking about? |
@pawciobiel yes it is the same model that should be used to solve #55! This issue is more about the data model, though, because it has high priority to get this done ASAP. Apart from being a data model, we can also state what a membership is and isn't: On our site, someone has a user profile and an account. They use that to login and pay for stuff. So this is not what a membership is! A membership grants a certain access to do certain things within a time frame, so it's very much like a subscription... but we call it "membership" because of the democratic structure of the coops, hence people are not just subscribing customers but members with rights :) |
@pawciobiel – we drew out the relationship between user profiles, accounts, memberships, roles and products on the whiteboard at the last Backlog Refinement Meeting. I took a photo of it for reference: https://www.dropbox.com/s/19udp3gcefpwxh9/2015-10-26%2016.59.54.jpg?dl=0 As @benjaoming says, user profile, account and membership are three different things:
|
Ah, @pawciobiel @benjaoming – I understand the confusion. I forgot to update some of the old issues to reflect the changes we made in the data model (accounts vs. memberships). They should be fixed now! |
@benjaoming things like membership and subscriptions don't necessary have to go under "shop" or market app. Especially if we decide to keep a price on them. It could be good to have payment app separate from the market app. It is a pity that you have rushed to change payment. |
@andreaslloyd sure, thanks. |
Sounds good to me to keep the Payment-UserProfile relation, and then have On Fri, Nov 6, 2015 at 1:43 PM, pawciobiel [email protected] wrote:
Andreas Lloyd web: www.andreaslloyd.dk |
Yes, as long as there is a direct relation between Payment and Account. On 6 November 2015 at 14:52, Andreas Lloyd [email protected] wrote:
|
I think I would call this model Subscription and I would put in inside market app at least for now. |
@pawciobiel having both Membership and Subscription at the same time would be a highly prioritized refactoring issue from day one, because it would be an ambiguity of a considerable importance. I shared my thoughts about how Membership and Market (payment and accounting logic) would work together at the previous meeting so we could have a special way of dealing with memberships that fits the organization and not traditional ecommerce. That's also why I choose to say that memberships are like a "subscription" but not exactly the same or a reason that we need to model subscriptions anywhere. Using the Product model with a generic FK relationship to other models (like Membership) would be a fine solution IMO. |
@benjaoming |
I see what you mean about permissions! Valid Membership <=> Paid Membership Paradox! How to solve? Maybe a ManyToManyField on Products called In this case, products without membership restrictions (such as the Product instance for a membership) would be pay-able without a valid membership. Scenario 1: As a user, I can't order a product from departments I'm not a member of Example 1: Weekly bag, Indre Nørrebro |
@benjaoming yes and I know it can be solved this way.
On the positive side though, your solution could also allow a user to order membership-fee with a weekly-bag in one order in one go; while my solution would require a user to pay for membership fee first and then he/she would be able to place an order for a bag. I can see something like "as a user I'd like to pay for next years membership-fee while ordering a bag for next week" as a feature that @andreaslloyd would want... @benjaoming I hope this won't sound blunt or offensive: let's do a deal, I'll let you do this one the way you want but
|
It's not in eggplant.market, and I'm not suggesting to move it. It used to live in eggplant.membership which was fine IMO.. but I see it was part of the refactor that Vidir made before leaving in #77 which we merged because it got too complicated to leave dangling after his departure. So now it's a dangling question both where to put Membership and whether to stick with the current application structure. More precisely stated here.. but with a TODO regarding the fact that http://eggplant.readthedocs.org/en/latest/dev/index.html#component-overview
The motivation is to encapsulate the permission logic, that's why it's great to have a container package for it. The application structure will diminish if permissions-related logic is all over the place. I never wanted to write a permissions framework from scratch, but try understanding the Membership model and you should be able to see that it doesn't fit conventional understandings of permissions.. e.g. "a valid member of department X can sign up for shifts at department x". Maybe you can discuss with @kraenhansen about the outcome of the meeting -- that we were doing I'm not asking for a full-blown permission logic, just trying to have the ground paved the right way. This is the code me and @kraenhansen sketched out for a
|
#48 left behind the task of creating a Membership model.
Here are the properties of a membership that I can remember from our discussions:
@andreaslloyd @valberg @pawciobiel @kraenhansen welcome to the discussion :) It's closely linked to #73
The text was updated successfully, but these errors were encountered: