| ⇢ | C | Version20251130111400 added | |
| ⇢ | A | Version20251130011600 added |
| ⇢ | C | Version20251130111400::createUploadedFileFromAsset... added | |
| ⇢ | B | Version20251130111400::migrateAttemptFiles() added | |
| ⇢ | B | Version20251130111400::migrateAttemptFeedback() added | |
| ⇢ | B | Version20251130111400::migrateSingleAssetToResourc... added | |
| ⇢ | B | Version20251130011600::down() added | |
| ⇢ | B | Version20251130111400::cleanupOrphanNodesWithoutFi... added | |
| ⇢ | A | Version20251130011600::up() added | |
| ⇢ | A | Version20251130011600::declareNewResourceTypes() added | |
| ⇢ | A | ExerciseLib::getPublicUrlForResourceNode() added | |
| ⇢ | A | Version20251130111400::cleanupAssetIfUnused() added | |
| ⋮ | view more | ||
| D | ↗ | C | ExerciseShowFunctions::displayUploadAnswer() improved |
| B | ↘ | D | ExerciseLib::getOralFileAudio() got worse |
| A | ↛ | AttemptFeedback::getAsset() removed | |
| A | ↛ | AttemptFeedback::setAsset() removed | |
| A | ↛ | AttemptFile::getAsset() removed | |
| A | ↛ | AttemptFile::setAsset() removed | |