Important: The study plan frontend is now workspace aware 

Description 

\FGTCLB\AcademicStudyPlan\Service\StudyPlanService builds the queries for semesters, modules and categories itself. They carried no workspace constraint and no version overlay, with two consequences.

Unpublished drafts were served to the public. A workspace version is an ordinary row in the database, told apart from a live record only by t3ver_wsid . With no condition on that column every draft was selected alongside the record it is a draft of, and rendered next to it — including records created in a workspace and never published, which have no live counterpart at all.

A workspace preview was not a preview. It showed the live records and the workspace records together, rather than the workspace state.

Both are fixed by the two pieces TYPO3 provides for it: a WorkspaceRestriction on each query, which in the live workspace constrains to t3ver_wsid = 0 , and PageRepository::versionOL() on each fetched row, which replaces a record with its draft in a preview and drops it where the workspace deletes it.

Impact 

On the live site, records disappear that should never have been there. If a study plan showed duplicated or unexpected semesters, modules or categories, those were workspace drafts and they are gone now. No live record is affected.

In a workspace preview the study plan now shows the workspace state.

What still is not previewed is a relation changed in a workspace. Attaching or detaching a category from a module inside a workspace is not reflected: the overlay keeps the live uid of the module, so the categories are looked up through the live relations. The content of a record — its label, colour, note, credit points — is previewed correctly. Only the wiring between records is not.

Affected Installations 

Every installation that uses workspaces for study plan content. An installation that never created a workspace version of a semester, module or category renders exactly as before.