[WMDE-Fundraising] Apply for Membership
Closed, ResolvedPublic

Description

This is the parent task for the different "Apply for Membership" use case subtasks

Tobi_WMDE_SW updated the task description. (Show Details)
Tobi_WMDE_SW raised the priority of this task from to Normal.
Tobi_WMDE_SW added subscribers: Aklapper, Tobi_WMDE_SW.
Tobi_WMDE_SW updated the task description. (Show Details)Jan 7 2016, 10:54 AM
Tobi_WMDE_SW set Security to None.
Tobi_WMDE_SW edited a custom field.
gabriel-wmde updated the task description. (Show Details)Jan 8 2016, 4:23 PM

The membership is not only requested on the donation page but could also be requested from wikipedia.de

After this use case is finalized, and also T123044 is finished, the URLs in https://github.com/wmde/Wikipedia.de/blob/master/fundraising/proxy.php might need to change. Also, if the JSON response is changed, the code in https://github.com/wmde/Wikipedia.de/blob/master/fundraising/subscription-methods.js might need to change too.

If payment type is SEPA, there must be an additional page where we can get the consent from the user that we are allowed to get money via direct debit (like in T123040 ).

I'm guessing this is not actually relevant for the usecase right? Just for the user story... I'm imagining this be handled purely browser side.

JeroenDeDauw added a comment.EditedMar 13 2016, 2:24 AM

Am I understanding correctly that this is a form post handler that returns a HTML page?

For the UC itself, what should the response model be?

JeroenDeDauw updated the task description. (Show Details)Mar 13 2016, 2:30 AM
gabriel-wmde updated the task description. (Show Details)Mar 14 2016, 2:23 PM

The post handler returns a HTML page (See template and the resulting page).

The response model should contain all the input data (for displaying the confirmation page), plus the ID of the newly created membership entity (to create the "cancel membership" link).

Can be broken down into:

  • Add route and use case class.
  • Add success template (Keep in mind that the "SEPA confirmation" page is nearly identical)
  • Add validation of membership information:
    • address and name fields (PersonalInfoValidator can be reused)
    • bank data (BankDataValidator)
    • the membership amount needs to be at least 25 EUR/year. AmountPolicyValidator can't be used as is because it only checks for max amounts. @kai.nissen: Do we have an upper limit?
  • Add MembershipStore for persisting the data as entities.
  • Send confirmation mail(s) to member and membership department.
  • Add form template (merge form template and SEPA confirmation template into one form, use the new multistep form Javascript).
  • Clean up JavaScript for form: Move code to the new JavaScript library. Most of functionality will be already implemented by the Donation form, only the disabling of the amounts depending on the recurring payment is new.

Thanks for breaking this down

The response model should contain all the input data

Ugggh! So many things :) Perhaps we could just stuff the request into the response? :D

member_agree

Do we actually need this in the request model? If this is not checked server side, then this is not needed right? I'd expect this to be done client side, and am not seeing a server side check in the old code. (I'm assuming here this is a confirmation checkbox thing)

Thanks for breaking this down

The response model should contain all the input data

Ugggh! So many things :) Perhaps we could just stuff the request into the response? :D

We can do it like we did in the Donation case and just put our Membership class in the response. The presenter code will be also very similar to the donation one.

member_agree

Do we actually need this in the request model? If this is not checked server side, then this is not needed right? I'd expect this to be done client side, and am not seeing a server side check in the old code. (I'm assuming here this is a confirmation checkbox thing)

I had a look at the code and the existing templates and this checkbox is nowhere to be seen. It might have been dropped. @kai.nissen?

Correct, member_agree is not being used anymore. It is a hidden field in membership forms and its value is hard coded to 1.

gabriel-wmde changed the point value for this task from 30 to 40.Mar 16 2016, 1:47 PM
gabriel-wmde renamed this task from [WMDE-Fundraising] Add Membership Request to [WMDE-Fundraising] Apply for Membership.
gabriel-wmde removed the point value for this task.
Restricted Application added a project: WMDE-Fun-Team. · View Herald TranscriptApr 7 2017, 11:25 AM