feat/class-calendar #15

Merged
polez merged 26 commits from feat/class-calendar into main 2026-10-19 15:18:42 +02:00
Collaborator

Big changes!!

Fer uniforme els diferents workspace + gestió user + moure carpetes més fàcilment

Big changes!! Fer uniforme els diferents workspace + gestió user + moure carpetes més fàcilment
Teachers add exams, deliveries and group tasks to a class; members see them
in the top bar calendar. Emails go through a durable outbox that retries
failed sends and queues day-before reminders.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The thumbnail view, with folders as cards, is now the default and the
first option of the view switch. A stored choice is still respected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The coordinator's "In preparation" panel is now "My files", the name the
personal workspace and the student view already use. Buttons that saved
"to drafts" now save to My files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A teacher's document is in the class exactly when it is shared with the
students, and in My files when it is private. Moving a document to the
class publishes it after a warning; uploading to the class asks first and
publishes; moving it back to My files withdraws it. The per-file switch and
Show all / Hide all are gone, and the backend no longer requires a separate
stage step before publishing. Previously hidden class documents now show up
in My files, still hidden.

Every class owner now gets the coordinator view, so the standard layout's
teacher-only code is removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The admin dashboard (operations and audit) and the account settings now
open from the top bar, right after the user name; Audit is shown to
platform administrators only. The teacher view uses the same top bar, so
it gains the calendar, and its class actions (Invite students, Create
event) sit there too. The right-rail admin preview and the account
buttons in the left sidebar are removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The personal workspace, groups and the student view now share the
classroom's structure: the slim chat-history rail on the left and a fixed
documents column on the right instead of the collapsible sidebars. The rail
gains rename, delete and memory folders; the panels are the classroom's
Course material (read-only for students) and My files, which gains search,
folder rename, per-folder upload, retry for failed files and transcripts.
"Save conversation to My files" sits under the conversation, as in the
classroom.

App now uses the classroom's document and folder hooks instead of its own
copies; they no longer return another workspace's data while switching.
The old sidebar components and their styles are removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A student's view of a class has the course material on top and My files
below, like the teacher's. Students can upload to the course material or
move their own files between the two sections; those files stay private
and are marked "Only you". The backend allows a stage change only from a
student on a file they wrote, never changes its visibility, and returns
each student only the stages of their own files. Teachers' files keep
following their visibility.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
"Upload folder" in the course material and in My files uploads every
readable file of a folder and its subfolders into the folder with the same
name, creating it when needed, and lists the files it skipped. Uploads to
the course material still ask before publishing. Students in a class get
the files without a folder, since class folders are the teacher's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Clicking the logo in the top bar opens the personal workspace with a new
chat, from any workspace or from the admin dashboard.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Inside a class, or one of its groups, the calendar shows only that class's
events, with its usual color; the personal workspace still shows every
class. The sidebar says which calendar is open.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A Users tab next to Audit lists every account with its role and flags
addresses that are not confirmed yet. Administrators change a user's role
(student, coordinator, admin) or delete the account. The backend refuses
changes to the administrator's own account and deleting anyone who still
teaches a class. Deleting a user removes their RAG files and memory
folders in every workspace, their account and the workspaces only they
owned; a group with other members passes to its longest-standing member.
Role changes and deletions are audited.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Uploads to the course material were stored private and then published in a
second call; when the RAG reverted that publish (fixed in ragoon-rag), whole
folders landed in My files next to an empty class folder. The adapter now
accepts visibility=shared on upload, only for the workspace's RAG admin role
(the class teacher), and the course material uploads in a single call.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Browsers send a picked folder's files with their relative path as the
name, so "Unit 1/syllabus.pdf" was stored instead of "syllabus.pdf". The
upload now sends a plain file with the same bytes; the folder is kept as
the file's parent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Notes are created by saving a chat answer or a whole conversation, so the
New note button and the code that only it used are removed. Existing notes
still open and save in the editor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The course material and My files each had two buttons, Upload and Upload
folder. They now share one Upload button whose menu offers File or
Folder; it closes on a choice, on Escape (focus back on the button) or on
a click elsewhere. Inside an open class folder, a folder's files go into
that folder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Deleting a folder in My files removed only the folder and left its files
behind. It now asks once, naming how many files are in it, and deletes
those files and then the folder; if a file cannot be deleted the folder
stays. In the coordinator view the folder is kept while it still holds
course material, because both panels share the class's folders.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Files in Course material and My files can be dragged onto a folder or onto
the panel (outside any folder), and Ctrl/Cmd+C or X on a file followed by
Ctrl/Cmd+V on a folder or panel moves it the same way. Moving between the
two panels changes the section like the buttons do, warning before a file
becomes visible to students; students move only their own files. Uses the
browser's native drag-and-drop and clipboard events, with the existing
folder select as the alternative that needs no dragging.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Memory folders are kept per user in the RAG, but deleting one was limited
to the workspace owner, and the chat rail hid the button for everyone else,
so students in a class or group members could never remove theirs. Any
member may now delete their own memory folders; the RAG still deletes only
the caller's. The confirmation says that the chats themselves stay.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Entering a workspace, signing in or opening a class reopened the newest
stored chat. Every layout now opens a new chat on entry, reusing an empty
one so they don't pile up; earlier chats stay in the history rail. The
Ragoon logo no longer needs its own new-chat step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A group now has Group files above each member's My files. Uploading to
Group files shares the file with every member in the same call, and moving
a file up from My files asks first; each member moves or deletes only
their own files. Like creating and renaming, deleting a folder now needs a
knowledge editor rather than the workspace owner, so group members can
organise their group's folders; in a class only the coordinator still can.
The teacher's visibility sections and the group's share one module.

The class's documents inside a group are left for a later RAG change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With the splitter dragged towards the chat, or in a narrow window, the
documents column became narrower than its content and the panels spilled
past the right edge, taking buttons such as Upload out of reach. The
column now never gets narrower than 420px (the chat gives way instead),
panel headers wrap their buttons under the title, and file rows keep a
readable name and wrap their actions below it. Checked in a browser at a
70% chat split in a 1100px window.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The top bar showed the user name and role, which said nothing new, next to
text buttons. Audit is again the bar-chart icon and Settings the round
avatar with the user's initial, as before, both labelled for screen
readers; the name and role are gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The workspace dropdown felt heavy once there were many workspaces. It is
back to a compact list, as in the earlier class bar, grouped as Personal,
Teaching, Classes and Groups ("Class / Group"). Its actions are top-bar
buttons that appear only where they apply: New classroom (coordinators),
New group (in a class), Join, Invite members for a group's owner next to
the teacher's Invite students and Create event, and a ⋯ menu to rename or
delete the active workspace. The old dropdown, its curtain context and its
styles are removed; Upload's menu became a reusable MenuButton.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An administrator could demote or delete another administrator. The
backend now refuses both (403 ADMIN_PROTECTED) while still allowing an
administrator to make someone an administrator; the Users tab shows other
administrators read-only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix: create users from the admin Users tab
All checks were successful
ragoon-ui-ci / validate (pull_request) Successful in 4m18s
9e97ca8376
Administrators create accounts in the Users tab, next to Audit, with a
temporary password and a role, a new administrator included. The backend
accepts the role (default student) and audits it; creating stays admin
only. The Administration section of Settings, which only created users,
is removed so there is one place for user management.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
polez merged commit 825fdd6ab4 into main 2026-10-19 15:18:42 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sergi/ragoon-ui!15
No description provided.