Search: Allow marking notes as restricted #2304
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Who is this PR for?
students, families. first users SHS counselors
What problem does this PR fix?
If notes with sensitive information are entered but not marked as restricted, there's no way for educators to resolve this without emailing for help. This works well and they can do this quickly, but we should support educators doing this directly.
Adding search magnifies this problem since it's simpler to search for particular topics that might be sensitive, and so we can use search to enable educators to resolve any privacy concerns for students before releasing it more widely.
What does this PR do?
Adds a "Mark restricted" link to notes on the search page only.
This involves changing
FeedView
to support threading per-note props at render time, and then adds a newMutableFeedView
that adds in this UI element and handles making server requests and optimistically updating the local UI as well. This PR then makes use of this inSearchNotesPage
only. The metadata for search results doesn't update in response to this, and that's something to improve in a separate PR; this is aimed at enabling the most critical use case only.This also fixes an existing bug in
SelectTimeRange
impacting the search page - themomentRange
fn was mutating a moment that it was passed, which led to excluding notes from the current day in search.Screenshot (if adding a client-side feature)
Checklists
Which features or pages does this PR touch?
Does this PR use tests to help verify we can deploy these changes quickly and confidently?