This is an edge case, and they OUGHT to have a user, but if the user was
deleted for a remote link, the field won't be able to resolve and the
user will be unset.
It can be hard to differentiate at a glance if a user is deleted or
suspended -- without this, you would have to read the deactivation
reason. By making deletions (moderator and self deletions) red, it's
clear at a glance if an account has been permanently deleted or just
temporarily suspended.
To make it harder to accidentally mess up the tour when making changes to pages, this commit adds ids with 'tour' prefixes to (nearly) all elements used by the guided tour as anchor points. The exception is where an element already had an id that is being used by something else in Bookwyrm.
Some minor changes also made to clean up the wording of the tour.
Move cancel button function into a separate JS file.
The selector JS for this function cannot be within bookwyrm.js because the guided tour elements load after bookwyrm.js.
The first pop up in the guided tour on each page should provide a button to switch off the guided tour altogether, not simply cancel the current iteration.
If we don't do this, then the only way to turn off the guided tour is to go right to the end, which could be really irritating, especially for people who star the tour and then start exploring on their own.
This uses an embedded script tag so that we can use django templates for logic - most importantly, we need to be able to use translations within the tour text.
This adds the page number for quote and comment statuses where a page number is provided:
- all ActivityPub posts
- Explore cards for comments (quotes already have the page number)
This responds to #2136
Adds logging and error handling for some of the numerous ways a request
could fail (the remote site is down, the url is blocked, etc).
I also have the results boxes open by default, which makes it more
legible imo.