Remove duration_pages/duration_minutes/file_size_info; rename cc4r → cc2r in DB and code

This commit is contained in:
Pontoporeia
2026-05-09 18:39:38 +02:00
parent cc0ae32df0
commit c4a23d5c2d
18 changed files with 130 additions and 309 deletions

View File

@@ -201,7 +201,6 @@ class ExportController
'Langue',
'Autorisation',
'Licence',
'Taille',
'Points sur 20',
'Lien BAIU',
];
@@ -296,7 +295,6 @@ class ExportController
implode(', ', $langList),
$t['access_type'] ?? '',
$t['license_name'] ?? '',
$t['file_size_info'] ?? '',
isset($t['jury_points']) ? (string) $t['jury_points'] : '',
$t['baiu_link'] ?? '',
];

View File

@@ -185,9 +185,6 @@ class ThesisCreateController
'subtitle' => $data['subtitle'],
'synopsis' => $data['synopsis'],
'context_note' => $data['contextNote'],
'file_size_info' => $data['durationInfo'],
'duration_pages' => $data['durationPages'],
'duration_minutes'=> $data['durationMinutes'],
'baiu_link' => $data['lien'],
'license_id' => $data['licenseId'],
'license_custom' => $data['licenseCustom'],
@@ -197,7 +194,7 @@ class ThesisCreateController
'jury_points' => $data['juryPoints'],
'exemplaire_baiu' => $data['exemplaireBaiu'],
'exemplaire_erg' => $data['exemplaireErg'],
'cc4r' => $data['cc4r'],
'cc2r' => $data['cc2r'],
]);
$identifier = $this->db->getThesisIdentifier($thesisId);
@@ -347,20 +344,6 @@ class ThesisCreateController
$subtitle = $this->sanitiseString($post['subtitle'] ?? '');
$synopsis = $this->validateRequired($this->sanitiseString($post['synopsis'] ?? ''), 'Synopsis');
$durationPages = $this->sanitiseString($post['duration_pages'] ?? '');
$durationMinutes = $this->sanitiseString($post['duration_minutes'] ?? '');
$durationInfo = '';
if ($durationPages !== '' && $durationMinutes !== '') {
$durationInfo = $durationPages . ' pages + ' . $durationMinutes . ' minutes';
} elseif ($durationMinutes !== '') {
$durationInfo = $durationMinutes . ' minutes';
} elseif ($durationPages !== '') {
$durationInfo = $durationPages . ' pages';
}
if (!empty($post['has_annexes'])) {
$durationInfo = $durationInfo ? $durationInfo . ' + annexe(s)' : 'Annexe(s)';
}
// Jury members — new structure: separate interne/externe lecteurs
$juryMembers = [];
$hasPromoteur = false;
@@ -519,7 +502,7 @@ class ThesisCreateController
}
$exemplaireBaiu = !empty($post['exemplaire_baiu']);
$exemplaireErg = !empty($post['exemplaire_erg']);
$cc4r = !empty($post['cc2r']);
$cc2r = !empty($post['cc2r']);
return compact(
'authorNames',
@@ -533,9 +516,6 @@ class ThesisCreateController
'titre',
'subtitle',
'synopsis',
'durationInfo',
'durationPages',
'durationMinutes',
'juryMembers',
'keywords',
'languageIds',
@@ -550,7 +530,7 @@ class ThesisCreateController
'juryPoints',
'exemplaireBaiu',
'exemplaireErg',
'cc4r'
'cc2r'
);
}

View File

@@ -139,7 +139,7 @@ class ThesisEditController
*
* Runs the full update inside a transaction:
* 1. Thesis metadata (title, subtitle, year, orientation, ap, finality,
* synopsis, context_note, file_size_info, baiu_link, license_id,
* synopsis, context_note, baiu_link, license_id,
* access_type_id, is_published)
* 2. Authors (setThesisAuthors)
* 3. Jury (setThesisJury)
@@ -201,9 +201,6 @@ class ThesisEditController
'finality_id' => intval($post['finality'] ?? 0),
'synopsis' => trim($post['synopsis'] ?? ''),
'context_note' => trim($post['context_note'] ?? ''),
'file_size_info' => $this->buildFileSizeInfo($post),
'duration_pages' => trim($post['duration_pages'] ?? ''),
'duration_minutes'=> trim($post['duration_minutes'] ?? ''),
'baiu_link' => trim($post['lien'] ?? ''),
'license_id' => filter_var($post['license_id'] ?? '', FILTER_VALIDATE_INT) ?: null,
'access_type_id' => filter_var($post['access_type_id'] ?? '', FILTER_VALIDATE_INT) ?: null,
@@ -212,7 +209,7 @@ class ThesisEditController
'jury_points' => $post['jury_points'] ?? null,
'exemplaire_baiu' => !empty($post['exemplaire_baiu']),
'exemplaire_erg' => !empty($post['exemplaire_erg']),
'cc4r' => !empty($post['cc2r']),
'cc2r' => !empty($post['cc2r']),
'license_custom' => trim($post['license_custom'] ?? ''),
]);
@@ -667,27 +664,6 @@ class ThesisEditController
return $members;
}
/**
* Build file_size_info from separate duration fields.
*/
protected function buildFileSizeInfo(array $post): string
{
$pages = trim($post['duration_pages'] ?? '');
$minutes = trim($post['duration_minutes'] ?? '');
$info = '';
if ($pages !== '' && $minutes !== '') {
$info = $pages . ' pages + ' . $minutes . ' minutes';
} elseif ($minutes !== '') {
$info = $minutes . ' minutes';
} elseif ($pages !== '') {
$info = $pages . ' pages';
}
if (!empty($post['has_annexes'])) {
$info = $info ? $info . ' + annexe(s)' : 'Annexe(s)';
}
return $info;
}
/**
* Upload a video or audio file to PeerTube when the feature is enabled.
*

View File

@@ -1598,7 +1598,7 @@ class Database
public function getThesisRawFields(int $thesisId): ?array
{
$stmt = $this->pdo->prepare(
'SELECT license_id, license_custom, access_type_id, context_note, remarks, jury_points, exemplaire_baiu, exemplaire_erg, cc4r, duration_pages, duration_minutes FROM theses WHERE id = ? LIMIT 1'
'SELECT license_id, license_custom, access_type_id, context_note, remarks, jury_points, exemplaire_baiu, exemplaire_erg, cc2r FROM theses WHERE id = ? LIMIT 1'
);
$stmt->execute([$thesisId]);
$row = $stmt->fetch();
@@ -1689,7 +1689,7 @@ class Database
* Expected keys in $data:
* year (int), orientation_id (int), ap_program_id (int), finality_id (int),
* title (string), subtitle (?string), synopsis (string),
* file_size_info (?string), baiu_link (?string), license_id (?int),
* baiu_link (?string), license_id (?int),
* author_id (int)
*
* The identifier is generated automatically from $data['year'].
@@ -1713,9 +1713,6 @@ class Database
finality_id = ?,
synopsis = ?,
context_note = ?,
file_size_info = ?,
duration_pages = ?,
duration_minutes = ?,
baiu_link = ?,
license_id = ?,
license_custom = ?,
@@ -1725,7 +1722,7 @@ class Database
jury_points = ?,
exemplaire_baiu = ?,
exemplaire_erg = ?,
cc4r = ?,
cc2r = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
');
@@ -1738,9 +1735,6 @@ class Database
(int)$data['finality_id'],
$data['synopsis'],
!empty($data['context_note']) ? $data['context_note'] : null,
!empty($data['file_size_info']) ? $data['file_size_info'] : null,
isset($data['duration_pages']) && $data['duration_pages'] !== '' ? (int)$data['duration_pages'] : null,
isset($data['duration_minutes']) && $data['duration_minutes'] !== '' ? (int)$data['duration_minutes'] : null,
!empty($data['baiu_link']) ? $data['baiu_link'] : null,
$data['license_id'] ?? null,
!empty($data['license_custom']) ? $data['license_custom'] : null,
@@ -1750,7 +1744,7 @@ class Database
isset($data['jury_points']) && $data['jury_points'] !== '' ? (float)$data['jury_points'] : null,
!empty($data['exemplaire_baiu']) ? 1 : 0,
!empty($data['exemplaire_erg']) ? 1 : 0,
!empty($data['cc4r']) ? 1 : 0,
!empty($data['cc2r']) ? 1 : 0,
$thesisId,
]);
}
@@ -1785,17 +1779,16 @@ class Database
INSERT INTO theses (
identifier, title, subtitle, year,
orientation_id, ap_program_id, finality_id,
synopsis, context_note, file_size_info,
duration_pages, duration_minutes,
synopsis, context_note,
baiu_link, license_id, license_custom,
access_type_id,
objet,
is_published,
remarks, jury_points,
exemplaire_baiu, exemplaire_erg,
cc4r,
cc2r,
submitted_at
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
');
$validObjet = ['tfe', 'thèse', 'frart'];
@@ -1811,9 +1804,6 @@ class Database
(int)$data['finality_id'],
$data['synopsis'],
!empty($data['context_note']) ? $data['context_note'] : null,
!empty($data['file_size_info']) ? $data['file_size_info'] : null,
isset($data['duration_pages']) && $data['duration_pages'] !== '' ? (int)$data['duration_pages'] : null,
isset($data['duration_minutes']) && $data['duration_minutes'] !== '' ? (int)$data['duration_minutes'] : null,
!empty($data['baiu_link']) ? $data['baiu_link'] : null,
$data['license_id'] ?? null,
!empty($data['license_custom']) ? $data['license_custom'] : null,
@@ -1823,7 +1813,7 @@ class Database
isset($data['jury_points']) && $data['jury_points'] !== '' ? (float)$data['jury_points'] : null,
!empty($data['exemplaire_baiu']) ? 1 : 0,
!empty($data['exemplaire_erg']) ? 1 : 0,
!empty($data['cc4r']) ? 1 : 0,
!empty($data['cc2r']) ? 1 : 0,
]);
return (int)$this->pdo->lastInsertId();
@@ -2057,7 +2047,6 @@ class Database
t.synopsis,
t.context_note,
t.remarks,
t.file_size_info,
t.jury_points,
t.baiu_link
FROM theses t

View File

@@ -36,7 +36,6 @@ class StudentEmail
'Président·e du jury' => $thesis['jury_president'] ?? '',
'Lecteurs·rices (interne)' => $thesis['jury_lecteurs_internes'] ?? '',
'Lecteurs·rices (externe)' => $thesis['jury_lecteurs_externes'] ?? '',
'Durée / Taille' => $thesis['file_size_info'] ?? '',
'Lien' => $thesis['baiu_link'] ?? '',
'Type d\'accès' => $thesis['access_type'] ?? '',
'Licence' => $thesis['license_type'] ?? '',