funnel
funnel copied to clipboard
Store title (fullname) as a distinct column in ProposalMembership, ProjectSponsorMembership and ProposalSponsorMembership
These membership types serve two overlapping purposes:
- Grant access rights
- Grant moral credit without access rights
The latter case comes up when a collaborator in a submission must continue to receive credit after ceasing involvement, or a sponsor must be credited without authority to hide it. In such a case, deleting the account (or org) or even changing the name must NOT affect past credits.
Changes required:
- [x] Rename SponsorMembership to ProjectSponsorMembership
- [x] Add a
titlecolumn to ProposalMembership, ProjectSponsorMembership and ProposalSponsorMembership - [x] ~Set default value of
titleto copy subject User/Profile's title (in migration and in class__init__)~ Set default to None - [x] Change
User.do_deleteandProfile.do_deleteto NOT revoke active memberships in these classes (signalled usingClass.revoke_on_subject_delete = False) - [ ] Change membership forms to allow title to be edited, with a clear explanation of what the field is (eg: this person's full name for credit and citations)
- [ ] Change views to use this title instead of the subject's title. This may affect templates that render avatars and expect a User object.
Since static representations are not always necessary, and can cause some confusion, an option:
Make title nullable, and make the model obtain it from the subject (shared functionality in a FrozenTitleMixin?). The title only needs to be set when a significant event occurs:
- [ ] A project editor or promoter added it to the record to freeze it.
- [ ] The user or org admin changed the name by editing the account/org. We can then intercept with a prompt, asking if they'd like to freeze the old name in existing records (title = null means unfrozen; after freeze the subject cannot change it, only owner can).
- [x] When deleting a subject (user or profile), the title is auto-frozen.
There is an additional requirement for an archived record, where the subject continues to receive moral credit but no longer has access rights. Use case: when subject is a corporate employee or contractor whose term has ended.