hasgeek / funnel

Website for hasgeek.com
https://hasgeek.com/
GNU Affero General Public License v3.0
47 stars 52 forks source link

Sponsor model refinement #1153

Open jace opened 3 years ago

jace commented 3 years ago

The sponsor model introduced in #465 (as a SponsorMembership since it has a membership base) is an okay start, but vastly insufficient to be a public feature. This issue attempts to address some of the shortcomings of the sponsor model.

  1. It is hard to distinguish between a promoted sponsor and a non-promoted sponsor. The is_promoted flag is ambiguous. The default assumption for a sponsor should be that there is a financial arrangement.

  2. There is a need for ethical disclosure of funding. The sponsor model should perhaps have an optional field for disclosing an amount received (gross amount and currency). Since tax models are variable (GST included, GST reverse charge, GST extra, GST exempt, and various international systems), this field can at best reveal a gross amount. It may also be subject to confidentiality requirements, so it can only be optional and approximate.

  3. The sponsor profile may not exist at the time the project declares the sponsor. A plain text field should be present as an alternative to the profile_id column, and possibly as a survivor should the profile be disassociated. (This implementation will require a third subclass for ImmutableMembershipMixin, or a change to the existing to support a non-present user/profile).

  4. It may be prudent to expose sponsor management in the UI only if an associated billing entity is present (see #1152).

For ethical disclosure, it should be possible to:

  1. Look at a project's profile and discover the sponsors in all projects within.
  2. Look at a billing entity profile and find all linked brand profiles or projects or sponsors.
  3. There is also an argument to be made for allowing such discovery from the user profile where they are linked to a billing entity, although we may now be stretching the limits of platform-enforced discovery.
jace commented 3 years ago

Possible answer to the is_promoted flag: use it to indicate a promotion placed by the platform and not the project promoter. We do not have platform sales at the moment, so it should go dormant. Future use may use an entirely different placement mechanism from the SponsorMembership model as it will be dynamically placed, so the column itself is not required.

zainabbawa commented 3 years ago

All projects an organization has sponsored - or is part of - should appear under their profile.