pub async fn save_research_form(
conn: &mut PgConnection,
course_id: Uuid,
content: Value,
) -> ModelResult<ResearchForm>Expand description
Saves a course’s research consent form and makes its question rows match the question
blocks in content: questions whose block was removed are soft-deleted.
Errors with InvalidRequest if the content has no questions, a question is empty, or a
question id belongs to another course.