feat(tutor): simplify syllabus generator UX and fix editing/export bugs - #169
Merged
Merged
Conversation
- Show one step at a time with a labelled step bar (shared ProgressBar) and collapsible recaps of finished steps - Rewrite EN/FR copy; per-step loading and error messages; cancel aborts requests - Documents: drop zone with file list, course details marked recommended with a nudge, fixed language dropdown - Summary: plain editable textareas - Resources: list with checkboxes, selection counter, bookmarks (own ResourcesStep.vue, SecondStep.vue kept for /tutor_test) - Syllabus: always-visible feedback box, scroll to top after regenerating, link "open" bubble, markdown preserved on edit (turndown), only saved after real typing, literal "\n" from the LLM cleaned up - Word export: real tables for both separator styles, clean headings, markdown/HTML/bare links, horizontal rules, formatted table cells - Fix: failed generation no longer shows an empty step 4, search errors no longer leave the loader stuck, restart fully resets Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| } | ||
| /* restyle the shared card: clear hierarchy, no inner hover or empty number column */ | ||
| .source :deep(.block.is-flex.is-fullwidth) { | ||
| padding: 0 !important; |
Collaborator
There was a problem hiding this comment.
important! should be avoided, best practice would be to have a specific card or use props to change style to the card
| title: 'Rédaction de votre syllabus', | ||
| description: | ||
| 'WeLearn génère votre syllabus à partir des documents fournis. Cette étape peut prendre quelques minutes.' | ||
| 'WeLearn combine vos documents, les informations du cours et les ressources. Cela peut prendre jusqu’à une minute : merci de ne pas fermer ni recharger la page.' |
Collaborator
There was a problem hiding this comment.
🎉 juste ce ne sera pas vrai si la var de env fait utiliser les 3 agents
| content | ||
| .split('\n') | ||
| .map((line) => | ||
| line.trim().startsWith('|') ? line.replace(/\\n/g, '<br>') : line.replace(/\\n/g, '\n') |
Collaborator
There was a problem hiding this comment.
could this clean be made in the API ?
| : t('tutor.resourcesStep.recapAll') | ||
| })); | ||
|
|
||
| watch( |
sandragjacinto
approved these changes
Sep 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Why
The syllabus generator (
/tutor) showed all steps at once, used long and sometimes inaccurate copy, and had vague loading/error popups. This PR makes the flow step-by-step and clear, in EN and FR, and fixes several bugs found along the way.The hidden
/tutor_testpage is not changed:SecondStep.vueand thetutor.summaries.*/tutor.secondStep.*keys it uses are kept as-is;/tutornow uses its ownResourcesStep.vueand new keys.UX changes
ProgressBar.vue(new optionallabels/clickableprops; Micro-learning unchanged)AbortController)Bug fixes
turndown+turndown-plugin-gfm, and only saves after real typing (clicking links no longer rewrites it);<br>in table cells survives edits\nwritten by the LLM is cleaned up (<br>in tables, new line elsewhere)utils/md-to-docx): real tables for both|---|and| --- |separators, clean headings (no**), markdown / HTML / bare links incl.[[lien]](url), horizontal rules, formatted table cells, less empty spacingNotes
turndown,turndown-plugin-gfm,@types/turndownv-htmlwithout sanitising (syllabus + chat); recommend a separate ticket (DOMPurify)Tests
ThirdStep.spec.ts(link bubble, no rewrite without typing, table line breaks,\ncleanup) andmd-to-docx.spec.ts(inline links, full Word export checked via the generated XML)e2e/tutor.spec.tsupdated for the new file upload (3 passing)🤖 Generated with Claude Code