Description
I'm splitting this discussion off from #11501 which was closed a while back but got frankenthreaded by @thetechjester (and I think it's a worthy thing to explore again.) @uberbrady and I have spent the afternoon kicking this around and thinking through how this would work, and the best approaches, both technically and user experience-wise.
This is an invitation to anyone interested in this feature to share their use-cases so we can refine what would meet the most users' needs and make sure the technical side of things covers as many bases as we can. Please do give us your use-cases for this feature (if you have any) in the comments.
We already have the ability to resend unaccepted asset emails via the unaccepted asset report, but this request is a little different in that the use-case here is that the EULA:
- Has changed due to new policies
- Didn't require sign-off before but now it does
What currently happens when an asset belonging to a category that requires acceptance (or if the general setting is that it requires acceptance) with or without a EULA is:
- A checkout record is created in the
action_logs
table - A record gets created in the
checkout_acceptance
table gets created with null foraccepted_at
anddeclined_at
When a user accepts or declines an asset:
- A new record gets created in
action_logs
with theaction_type
ofaccepted
ordeclined
- The existing record in
checkout_acceptances
gets updated with an accept/decline date, the EULA that was active AT THAT MOMENT gets stored in a column on that table, a PDF gets created that gets stored on the server (that also contains the EULA, if there is a EULA)
So how do we get there? (this is mostly ad-hoc notes - will be refined over time)
Bulk edit menu to resend unaccepted assets would.... ?
- Add a new record to
checkout_acceptances
and then follow the same rules? - ???
- Profile
Challenges:
- If we do this at the category level as a bulk action, it will (as of now) send a new email for every single thing that a user might have checked out. It also seems like it might cover the most bases though, since it's possible that ONLY the EULA/acceptance policy of a single category has changed
- If we do this at the user level, they will still (as of now) still get a new email for every thing they currently have checked out - same as above, and not awesome
- Technical Implementation: if the policy has changed, for example you didn't used to have a EULA, the EULA has changed, OR you didn't used to require signatures and you now do, but you have 10k assets that were assigned before that change, they will not have records in the
checkout_acceptances
table, since there was no need for those records at that time.
Multiple Emails Problem - like the three body problem, but dumber
This gets tricky, since it's possible that the entire organization has changed their global EULA (assuming they're not using category-level EULAs) but it's also possible that an organization has changed each and every EULA for every category they have. From a UI perspective, this is lovecraftian.
If users were presented one page of things they need to accept, that's not difficult - BUT if there are 20 different EULAs they have to sign, one for each different category, that's just awful. (Putting aside the fact that we still want to offer acceptance for users that do not have the ability to login - whole other nut to crack.)