---
title: "Feature: Contracts and profile information can be hidden"
manual: "Academic Profiles"
version: "main"
source: "Changelog/3.0/Feature-HideContractsAndProfileInformation.rst"
rendered: "2026-10-02T20:47:49+00:00"
---

# Feature: Contracts and profile information can be hidden {#feature-hide-contracts-and-profile-information}

## Description {#description}

The two document record models gained access to the `hidden` enable field
that already exists on their database tables, exactly as the contact record
models did in 2.4:

-   `\FGTCLB\AcademicPersons\Domain\Model\Contract`
-   `\FGTCLB\AcademicPersons\Domain\Model\ProfileInformation`

Each of them now provides `getHidden(): bool` and
`setHidden(bool $hidden): self`.

To list hidden records the two repositories provide a query that ignores the
`disabled` enable field and nothing else:

-   `ContractRepository::findByProfileIncludingHidden(Profile $profile)`
-   `ProfileInformationRepository::findByProfileAndTypeIncludingHidden(Profile $profile, string $type)`

Both order by `sorting` with `uid` breaking ties. Every other query, and
every relation of `Profile`, keeps respecting the enable fields, so the
public views hide a hidden record as before.

The document section vocabulary of `documentSections.<section>.actions`
gains `hide`. It is listed first in the shipped settings of every section,
is offered only when listed, and is withdrawn by `readonly: true` with
every other mutating action. `EXT:academic_persons_edit` renders it as the
visibility switch of a row.

## Impact {#impact}

No database change: the `hidden` columns and their TCA existed already. A
site that overrides the `actions` of a section keeps its list - `hide`
is not implied - and adds `hide` where the switch is wanted.

## Affected Installations {#affected-installations}

Installations that configure `documentSections` or read the two models
in PHP.
