I’m not sure it’s possible to link a similar one up to the ToS instead in the same way. The Read Guidelines one relies on the read_faq being recorded in the user_stats table and there isn’t currently a mechanism to do the same for the ToS.
As the user viewable version isn’t the actual topic, I don’t think viewing that page is recorded anywhere (like topic_views etc).
Is it possible to alter the database/tables to include a new read_tos?
There is potentially an ugly workaround…
…publishing a topic as a published page instead of using the seamless integration like FAQ and About. I don’t know if this will actually work…
Testing and findings:
The SQL query returns users that have read the topic and thereby should be awarded the badge, but i have not received that notification.
I can confirm that visits to /pub/slug without visiting the topic directly will update the view count of the topic… however even with an absurdly low read time, the badge hasn’t been granted automatically.
It’s also to note that the topic itself still indicates as new and unread to the user.
…
Further isolation testing results in that the SQL query implies users must visit the topic directly to be considered having read the topic. I cannot confirm nor deny, as badge has not been awarded, but is most plausible.
Do you know off hand what the team did when they updated the ToS where we had to confirm we reviewed it? While not a badge was this maybe the Policy plugin?
You can speed this bit up by manually triggering jobs::BadgeGrant from your /sidekiq/scheduler page (for those with access). Mine ran 3 hours ago, but it will differ from site to site.
If you didn’t mind just having them in a regular old topic you could create a new one and add the link to it to your tos url admin setting so it shows up in the tabs still. You could then grant a badge quite easily based on people viewing that topic (though your experiments with published pages may also bear fruit as well )
I think to do it the same as the Read Guidelines one you’d need to create a plugin to replicate the behaviour for the ToS (not my forte though, so take that with a pinch of salt )
This is a required custom field, which I think works out quite nicely for that. Though you only say you’ve read them rather than actually reading them, so it may depend on what the main thrust of granting the badge is for.