authenticated users' contributions are never fully anonymous
authenticated users can choose between private or public contributions
private contributions will show up as "anonymous" on Proposal Detail view
private contributions will be visible to to authenticated users on their Profile Funded tab, others will not see them
unauthenticated users' contributions will be fully anonymous
unauthenticated users' contributions for cancelled proposals will become donations
logged in users' contributions for cancelled proposals will be refundable if they have set their refund address
Proposal.no_refund has been removed
Proposal.private has been added
migration: all Contributions associated with a user will be public (contributions made while unauthenticated, or authenticated but having selected the unattributed checkbox)
Notes
a "private" tag is used in the Profile > Funded view with a tooltip instead of the asterisk approach (see screenshot)
Testing
clear your local DB & flask db upgrade
create two users
User A + set user's refund address (settings > account > refund address)
User B + no refund address
create, stake, approve + publish a proposal
Anonymous Sign-out, then contribute 0.1 ZEC to the proposal
after clicking "Fund this project" ensure that the disclaimer for unattributed contributions shows up
review verbiage
click "I accept"
payment info shows up, click "I've sent it", see "Thank you" message and click "Done"
Refund Address/No Attribution Sign-in with User A, then enter 0.2 ZEC into the proposal contribution field
ensure that "Contribute without attribution" is set by default, leave it selected
click "Fund this project"
should see payment info, click "I've sent it", then "Done"
No Refund Address/Attribution Sign-in with User B, then enter 0.3 ZEC into contribution field
select "Attribute contribution publicly", click "Fund this project"
ensure Refund address setting modal appears, do not set a refund address
click "I don't want a refund, consider it a donation instead"
payment info should appear, click "I've sent it", then click "Done"
admin: Financials > Contributions should only have "staking 100% 0.025"
admin: Contributions > edit each of the pending contributions by setting the "Transaction ID" of each
admin: Financials > Contributions should have "funding 96% 0.6"
frontend: Proposal > Contributors (tab) should have three contributions and only one attributed to User B for 0.3 ZEC
frontend: Authenticate as User B and visit User A's Profile > Funded tab, there should be 0 contributions
frontend: Authenticate as User A and visit User A's Profile > Funded tab, there should be 1 private Contribution for 0.2 ZEC
visit User B's Profile > Funded tab, there should be 1 contribution for 0.3 ZEC
admin: from proposal detail "Cancel & refund" the proposal
Closes #448.
What this does
Proposal.no_refund
has been removedProposal.private
has been addedNotes
Testing
flask db upgrade