refactor: unify FilePond edit previews + clean upload UI and shared fragments

* Move shared `fichiers-fragment.php` from `partage/` to `templates/partials/form/`
  and update all include/require references
* `.gitignore`: exclude SQLite WAL/SHM journal files
* FilePond UI:

  * change uploaded file block border state from yellow to green
  * restyle image previews to use site light-theme colors
* Edit mode:

  * remove custom existing-file preview list implementation
  * preload existing files directly into FilePond pools
  * include `cover` and `note_intention` assets in FilePond-managed state
* Remove obsolete upload progress bar UI and related JS includes
* Remove deprecated `Écriture` + `Image` format types from upload flow/configuration
This commit is contained in:
Pontoporeia
2026-05-12 12:27:36 +02:00
parent 6e7c0c00e3
commit 8bb0b3a1f2
58 changed files with 1807 additions and 307 deletions

16
.gitignore vendored
View File

@@ -5,23 +5,11 @@ compose.lock
### Test databases ### ### Test databases ###
app/storage/test.db app/storage/test.db
*.db *.db
*.db-wal
*.db-shm
app/.env app/.env
### Logs ### ### Logs ###
error.log
app/storage/logs/*.log
!app/storage/logs/.gitkeep
app/storage/maintenance.flag
app/storage/cache/*
!app/storage/cache/.gitkeep
app/storage/theses/*
!app/storage/theses/.gitkeep
app/storage/banners/*
!app/storage/banners/.gitkeep
app/storage/tmp/*
!app/storage/tmp/.gitkeep
app/storage/tmp/filepond/*
!app/storage/tmp/filepond/.gitkeep
# Nix # Nix
.direnv/ .direnv/

View File

@@ -1,3 +1,5 @@
docs docs
nginx nginx
src/cache/rate_limit src/cache/rate_limit
*.db-wal
*.db-shm

12
TODO.md
View File

@@ -1,3 +1,15 @@
# Current tasks
- [x] .gitignore / .ignore: exclude *.db-wal and *.db-shm
- [x] CSS: FilePond pool file block border yellow → green on upload complete
- [x] Move shared fichiers-fragment.php from partage/ to templates/partials/form/ and update all links
- [x] Remove Écriture and Image format types (migration 035 + schema seed + query filter)
- [x] FilePond image previews: use site light colors (--bg-secondary, --text-secondary, --accent-green, --error)
- [x] Edit mode: remove custom file preview list above FilePond pools; use FilePond pools for preexisting files
- [x] Cover + note_intention: add data-existing-files to their FilePond inputs (per-queue-type JSON arrays)
- [x] Remove upload-progress bar at bottom (FilePond handles its own progress)
- [x] Remove upload-progress.js from edit/add/partage page extraJs arrays
# FilePond Refactor — Merge video/audio into TFE pool # FilePond Refactor — Merge video/audio into TFE pool
- [x] A. `fichiers-fragment.php` — Remove separate video/audio pools, merge into TFE; include PeerTube in data-existing-files - [x] A. `fichiers-fragment.php` — Remove separate video/audio pools, merge into TFE; include PeerTube in data-existing-files

View File

@@ -0,0 +1,4 @@
-- Migration 035: Remove "Écriture" and "Image" format types.
-- These are no longer considered media formats in the current schema.
DELETE FROM thesis_formats WHERE format_id IN (SELECT id FROM format_types WHERE name IN ('Écriture', 'Image'));
DELETE FROM format_types WHERE name IN ('Écriture', 'Image');

View File

@@ -55,7 +55,7 @@ function wasSelected($key, $value) {
$isAdmin = true; $isAdmin = true;
$bodyClass = 'admin-body'; $bodyClass = 'admin-body';
$extraCss = ['/assets/css/form.css', '/assets/css/filepond.min.css', '/assets/css/filepond-plugin-image-preview.min.css']; $extraCss = ['/assets/css/form.css', '/assets/css/filepond.min.css', '/assets/css/filepond-plugin-image-preview.min.css'];
$extraJs = ['/assets/js/vendor/filepond.min.js', '/assets/js/vendor/filepond-plugin-file-validate-type.min.js', '/assets/js/vendor/filepond-plugin-file-validate-size.min.js', '/assets/js/vendor/filepond-plugin-image-preview.min.js', '/assets/js/vendor/filepond-plugin-image-exif-orientation.min.js', '/assets/js/app/file-upload-filepond.js', '/assets/js/app/beforeunload-guard.js', '/assets/js/app/upload-progress.js', '/assets/js/app/pill-search.js']; $extraJs = ['/assets/js/vendor/filepond.min.js', '/assets/js/vendor/filepond-plugin-file-validate-type.min.js', '/assets/js/vendor/filepond-plugin-file-validate-size.min.js', '/assets/js/vendor/filepond-plugin-image-preview.min.js', '/assets/js/vendor/filepond-plugin-image-exif-orientation.min.js', '/assets/js/app/file-upload-filepond.js', '/assets/js/app/beforeunload-guard.js', '/assets/js/app/pill-search.js'];
require_once APP_ROOT . '/templates/head.php'; require_once APP_ROOT . '/templates/head.php';
include APP_ROOT . '/templates/header.php'; include APP_ROOT . '/templates/header.php';
include APP_ROOT . '/templates/admin/add.php'; include APP_ROOT . '/templates/admin/add.php';

View File

@@ -40,7 +40,7 @@ try {
$isAdmin = true; $bodyClass = 'admin-body'; $isAdmin = true; $bodyClass = 'admin-body';
$extraCss = ['/assets/css/form.css', '/assets/css/filepond.min.css', '/assets/css/filepond-plugin-image-preview.min.css']; $extraCss = ['/assets/css/form.css', '/assets/css/filepond.min.css', '/assets/css/filepond-plugin-image-preview.min.css'];
$extraJs = ['/assets/js/vendor/filepond.min.js', '/assets/js/vendor/filepond-plugin-file-validate-type.min.js', '/assets/js/vendor/filepond-plugin-file-validate-size.min.js', '/assets/js/vendor/filepond-plugin-image-preview.min.js', '/assets/js/vendor/filepond-plugin-image-exif-orientation.min.js', '/assets/js/app/file-upload-filepond.js', '/assets/js/app/beforeunload-guard.js', '/assets/js/app/upload-progress.js', '/assets/js/app/pill-search.js']; $extraJs = ['/assets/js/vendor/filepond.min.js', '/assets/js/vendor/filepond-plugin-file-validate-type.min.js', '/assets/js/vendor/filepond-plugin-file-validate-size.min.js', '/assets/js/vendor/filepond-plugin-image-preview.min.js', '/assets/js/vendor/filepond-plugin-image-exif-orientation.min.js', '/assets/js/app/file-upload-filepond.js', '/assets/js/app/beforeunload-guard.js', '/assets/js/app/pill-search.js'];
require_once APP_ROOT . '/templates/head.php'; require_once APP_ROOT . '/templates/head.php';
include APP_ROOT . '/templates/header.php'; include APP_ROOT . '/templates/header.php';
include APP_ROOT . '/templates/admin/edit.php'; include APP_ROOT . '/templates/admin/edit.php';

View File

@@ -14,4 +14,4 @@ AdminAuth::requireLogin();
$_POST['admin_mode'] = '1'; $_POST['admin_mode'] = '1';
require_once __DIR__ . '/../partage/fichiers-fragment.php'; require_once APP_ROOT . '/templates/partials/form/fichiers-fragment.php';

View File

@@ -576,7 +576,7 @@
.filepond--file { .filepond--file {
color: var(--text-primary); color: var(--text-primary);
background-color: var(--bg-tertiary); background-color: var(--bg-tertiary);
border: 1px solid var(--accent-primary); border: 1px solid var(--accent-yellow);
} }
.filepond--file .filepond--file-status { .filepond--file .filepond--file-status {
@@ -626,6 +626,24 @@
/* Processing complete */ /* Processing complete */
[data-filepond-item-state="processing-complete"] .filepond--item-panel { [data-filepond-item-state="processing-complete"] .filepond--item-panel {
background-color: var(--bg-primary); background-color: var(--bg-primary);
border-color: var(--accent-green);
}
[data-filepond-item-state="processing-complete"] .filepond--file {
border-color: var(--accent-green);
}
/* FilePond image preview: use site light colors instead of dark defaults */
.filepond--image-preview {
background: var(--bg-secondary);
}
.filepond--image-preview-overlay-idle {
color: var(--text-secondary);
}
.filepond--image-preview-overlay-success {
color: var(--accent-green);
}
.filepond--image-preview-overlay-failure {
color: var(--error);
} }
/* ── Partage recap page ─────────────────────────────────────────────────── */ /* ── Partage recap page ─────────────────────────────────────────────────── */

View File

@@ -1,266 +0,0 @@
<?php
/**
* fichiers-fragment.php (partage & admin)
*
* Returns the combined Format(s) + Fichiers block.
*
* All slots (Site web, Vidéo, Audio) are always visible — decorelated from
* the format checkboxes. The checkboxes serve only as metadata selectors;
* they no longer trigger HTMX swaps.
*
* Expected POST:
* formats[] — array of selected format_type IDs
* website_url — current value (repopulation)
* website_label — current value (repopulation)
* admin_mode — '1' for admin context (removes required attrs)
*/
require_once APP_ROOT . '/src/PeerTubeService.php';
if (!function_exists('formatFileSize')) {
function formatFileSize($bytes) {
if ($bytes >= 1073741824) {
return number_format($bytes / 1073741824, 2) . ' GB';
} elseif ($bytes >= 1048576) {
return number_format($bytes / 1048576, 2) . ' MB';
} elseif ($bytes >= 1024) {
return number_format($bytes / 1024, 2) . ' KB';
} else {
return $bytes . ' bytes';
}
}
} // if (!function_exists('formatFileSize'))
$_ptDb = Database::getInstance();
$peerTubeEnabled = PeerTubeService::isEnabled($_ptDb);
$peerTubeSettings = PeerTubeService::getSettings($_ptDb);
$db = $_ptDb->getConnection();
$allFormats = $db->query('SELECT id, name FROM format_types ORDER BY sort_order, id')
->fetchAll(PDO::FETCH_ASSOC);
$selectedFormats = isset($_POST['formats']) && is_array($_POST['formats'])
? array_map('intval', $_POST['formats'])
: [];
$adminMode = ($_POST['admin_mode'] ?? '0') === '1';
$editMode = ($_POST['edit_mode'] ?? '0') === '1';
$websiteUrl = htmlspecialchars($_POST['website_url'] ?? '');
$websiteLabel = htmlspecialchars($_POST['website_label'] ?? '');
?>
<!-- ═══════════════════ Format(s) + Fichiers ═══════════════════ -->
<div id="format-fichiers-block">
<input type="hidden" name="admin_mode" value="<?= $adminMode ? '1' : '0' ?>">
<input type="hidden" name="edit_mode" value="<?= $editMode ? '1' : '0' ?>">
<?php if ($editMode && ($_POST['_cover'] ?? null)): ?>
<input type="hidden" name="_cover" value="<?= htmlspecialchars($_POST['_cover']) ?>">
<?php endif; ?>
<!-- ═══════════════════ Format(s) — sticky ═══════════════════ -->
<fieldset id="fieldset-formats">
<legend>Format(s)</legend>
<div>
<span class="admin-row-label">Format(s) du TFE :<?= !$adminMode ? ' <span class="asterisk">*</span>' : '' ?></span>
<fieldset class="admin-checkbox-group"
<?= !$adminMode ? 'required aria-required="true"' : '' ?> >
<legend class="sr-only">Format(s) du TFE</legend>
<ul>
<?php foreach ($allFormats as $opt): ?>
<li>
<label class="admin-checkbox-label">
<input type="checkbox"
name="formats[]"
value="<?= htmlspecialchars((string)$opt['id']) ?>"
<?= in_array((int)$opt['id'], $selectedFormats, true) ? 'checked' : '' ?>>
<?= htmlspecialchars($opt['name']) ?>
</label>
</li>
<?php endforeach; ?>
</ul>
</fieldset>
</div>
</fieldset>
<!-- ═══════════════════ Fichiers ═══════════════════ -->
<fieldset>
<legend>Fichiers</legend>
<?php
// Existing files + cover preview (edit mode only)
$_efiles = $currentFiles ?? [];
$_cover = $_POST['_cover'] ?? null;
if ($editMode && (!empty($_efiles) || $_cover)):
?>
<div class="admin-form-group">
<ul id="existing-files-sortable" class="admin-file-list" role="list">
<?php if ($_cover): ?>
<li class="admin-file-list-item">
<figure class="admin-file-figure">
<img src="/media?path=<?= urlencode($_cover) ?>"
alt="Couverture actuelle" class="admin-file-thumb">
<figcaption class="admin-file-caption">
<span class="admin-file-name">Couverture</span>
</figcaption>
</figure>
<input type="hidden" name="remove_cover" value="0">
<button type="button"
class="admin-icon-btn admin-icon-btn--delete"
title="Supprimer"
onclick="this.previousElementSibling.value='1';this.closest('li').style.opacity='0.4';this.disabled=true;">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256"><path d="M216,48H176V40a24,24,0,0,0-24-24H104A24,24,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM96,40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96Zm96,168H64V64H192ZM112,104v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Z"></path></svg>
</button>
</li>
<?php endif; ?>
<?php
$_thesisFilesList = array_values(array_filter($_efiles, fn($f) => $f["file_type"] !== "cover"));
foreach ($_thesisFilesList as $_f):
$_fPath = $_f["file_path"] ?? "";
$_fIsPeerTube = str_starts_with($_fPath, "peertube_ids:");
$_fMime = $_f["mime_type"] ?? "";
$_fExt = strtolower(pathinfo($_fPath, PATHINFO_EXTENSION));
$_fType = $_f["file_type"] ?? "other";
$_fLabel = $_f["display_label"] ?? "";
$_fIsImage = str_starts_with($_fMime, "image/") || in_array($_fExt, ["jpg","jpeg","png","gif","webp"]);
$_fIcon = match (true) {
$_fIsPeerTube && $_fType === "video" => "🎬",
$_fIsPeerTube && $_fType === "audio" => "🔊",
$_fType === "cover" => "🖼️",
$_fType === "note_intention" => "📝",
$_fType === "main" || $_fMime === "application/pdf" || $_fExt === "pdf" => "📄",
$_fType === "video" || str_starts_with($_fMime, "video/") || in_array($_fExt, ["mp4","webm","mov","ogv"]) => "🎬",
$_fType === "audio" || str_starts_with($_fMime, "audio/") || in_array($_fExt, ["mp3","ogg","wav","flac","aac","m4a"]) => "🔊",
$_fIsImage => "🖼️",
$_fType === "caption" || $_fExt === "vtt" => "💬",
$_fType === "annex" => "📎",
$_fType === "website" => "🌐",
default => "📎",
};
$_fIsExternal = str_starts_with($_fPath, "http://") || str_starts_with($_fPath, "https://");
$_fLinkHref = $_fIsPeerTube ? "#" : ($_fIsExternal ? htmlspecialchars($_fPath) : "/media?path=" . urlencode($_fPath));
?>
<li class="admin-file-list-item" data-file-id="<?= (int)$_f["id"] ?>">
<input type="hidden" name="file_sort_order[]" value="<?= (int)$_f["id"] ?>">
<figure class="admin-file-figure">
<?php if ($_fIsImage && !$_fIsPeerTube): ?>
<img src="/media?path=<?= urlencode($_fPath) ?>" alt="<?= htmlspecialchars($_f["file_name"] ?? basename($_f["file_path"])) ?>" class="admin-file-thumb" loading="lazy">
<?php else: ?>
<span class="admin-file-icon"><?= $_fIcon ?></span>
<?php endif; ?>
<figcaption class="admin-file-caption">
<div class="admin-file-name-row">
<a href="<?= $_fLinkHref ?>" target="_blank" rel="noopener" class="admin-file-name">
<?= htmlspecialchars($_f["file_name"] ?? basename($_f["file_path"])) ?>
</a>
</div>
<?php if ($_fIsPeerTube): ?>
<span class="admin-file-peertube-id">ID: <?= htmlspecialchars(substr($_fPath, strlen("peertube_ids:"))) ?></span>
<?php endif; ?>
<?php if ($_fLabel): ?>
<span class="admin-file-label"><?= htmlspecialchars($_fLabel) ?></span>
<?php endif; ?>
<span class="admin-file-meta-row">
<span class="admin-file-meta"><?= htmlspecialchars($_fType) ?></span>
<?php if (!empty($_f["file_size"]) && $_f["file_size"] > 0): ?>
<span class="admin-file-meta"><?= formatFileSize($_f["file_size"]) ?></span>
<?php endif; ?>
<?php if (!empty($_f["uploaded_at"])): ?>
<span class="admin-file-meta"><?= date('d/m/Y H:i', strtotime($_f["uploaded_at"])) ?></span>
<?php endif; ?>
</span>
</figcaption>
</figure>
<input type="hidden" name="delete_files[]" value="<?= (int)$_f["id"] ?>" disabled>
<button type="button"
class="admin-icon-btn admin-icon-btn--delete"
title="Supprimer"
onclick="this.previousElementSibling.disabled=false;this.closest('li').style.opacity='0.4';this.disabled=true;">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256"><path d="M216,48H176V40a24,24,0,0,0-24-24H104A24,24,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM96,40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96Zm96,168H64V64H192ZM112,104v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Z"></path></svg>
</button>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<!-- ── 1. Couverture ── -->
<?php
$_cover = $_POST['_cover'] ?? null;
if (!$editMode || !$_cover): ?>
<div class="admin-form-group">
<label for="couverture">Image de couverture (optionnel)</label>
<div class="admin-file-input">
<input type="file" id="couverture"
name="couverture"
class="tfe-file-picker tfe-file-picker--single"
data-queue-type="cover">
<small>JPG, PNG ou WEBP. Format 4:3 recommandé. Max 20 MB.</small>
</div>
</div>
<?php endif; unset($_cover); ?>
<!-- ── 2. Note d'intention ── -->
<div class="admin-form-group">
<label for="note_intention">Note d'intention<?= !$adminMode ? ' <span class="asterisk">*</span>' : '' ?></label>
<div class="admin-file-input">
<input type="file" id="note_intention"
name="note_intention"
class="tfe-file-picker tfe-file-picker--single"
data-queue-type="note_intention"
<?= !$adminMode ? 'required' : '' ?>>
<small>PDF uniquement. Max 100 MB. Si votre fichier est trop lourd, compressez-le avec <a href="https://www.bentopdf.com" target="_blank" rel="noopener">bentopdf.com</a>.</small>
</div>
</div>
<!-- ── 3. TFE (all files: PDF, images, video, audio, VTT, archives) ── -->
<div class="admin-form-group admin-files-fieldgroup">
<label for="tfe-files-input">TFE<?= !$adminMode ? ' <span class="asterisk">*</span>' : '' ?></label>
<div class="admin-file-input">
<input type="file" id="tfe-files-input"
name="queue_file[tfe][]"
multiple
class="tfe-file-picker"
data-queue-type="tfe"
<?= !$adminMode ? 'required' : '' ?>
data-existing-files='<?= htmlspecialchars(json_encode($existingFilesJsonForTfe ?? []), ENT_QUOTES) ?>'>
<small class="admin-file-hint">
PDF (max 100 MB) · Images (max 500 MB) · Vidéo &amp; Audio (max 2 GB) · VTT · Archives (max 500 MB).
<br>Glissez pour réordonner.
<?php if ($peerTubeEnabled): ?>
<br>Vidéos et audio hébergés sur <a href="<?= htmlspecialchars($peerTubeSettings['instance_url']) ?>" target="_blank" rel="noopener">PeerTube</a>.
<?php endif; ?>
<br>PDFs trop lourds ? <a href="https://www.bentopdf.com" target="_blank" rel="noopener">https://bentopdf.com/</a>
</small>
</div>
</div>
<!-- ── 4. Annexes ── -->
<div id="annexes-input-block">
<input type="hidden" name="has_annexes" value="0">
<div class="admin-form-group admin-files-fieldgroup">
<label for="annexe-files-input">Annexes (optionnel)</label>
<div class="admin-file-input">
<input type="file" id="annexe-files-input"
name="queue_file[annexe][]"
multiple
class="tfe-file-picker"
data-queue-type="annexe">
<small class="admin-file-hint">PDF ou archives ZIP/TAR. Max 500 MB. Glissez pour réordonner.</small>
</div>
</div>
</div>
<!-- ── 5. Site web url ── -->
<div id="slot-siteweb" class="admin-form-group">
<label for="website_url">URL du site (optionnel)</label>
<div class="admin-file-input">
<input type="url" id="website_url" name="website_url"
value="<?= $websiteUrl ?>"
placeholder="https://mon-tfe.erg.be">
<small>Le TFE sera affiché comme un site embarqué sur sa page publique.</small>
</div>
</div>
</fieldset><!-- /Fichiers -->
</div><!-- #format-fichiers-block -->

View File

@@ -48,7 +48,7 @@ if ($slug === 'validate-file-fragment' && $_SERVER['REQUEST_METHOD'] === 'POST')
// Special route: /partage/fichiers-fragment (HTMX fragment — format-aware fichiers block) // Special route: /partage/fichiers-fragment (HTMX fragment — format-aware fichiers block)
if ($slug === 'fichiers-fragment' && $_SERVER['REQUEST_METHOD'] === 'POST') { if ($slug === 'fichiers-fragment' && $_SERVER['REQUEST_METHOD'] === 'POST') {
App::boot(); App::boot();
require_once __DIR__ . '/fichiers-fragment.php'; require_once APP_ROOT . '/templates/partials/form/fichiers-fragment.php';
exit; exit;
} }
@@ -411,7 +411,6 @@ function renderShareLinkForm(string $slug, array $link): void
<script src="<?= App::assetV('/assets/js/vendor/filepond-plugin-image-exif-orientation.min.js') ?>" defer></script> <script src="<?= App::assetV('/assets/js/vendor/filepond-plugin-image-exif-orientation.min.js') ?>" defer></script>
<script src="<?= App::assetV('/assets/js/app/file-upload-filepond.js') ?>" defer></script> <script src="<?= App::assetV('/assets/js/app/file-upload-filepond.js') ?>" defer></script>
<script src="<?= App::assetV('/assets/js/app/beforeunload-guard.js') ?>" defer></script> <script src="<?= App::assetV('/assets/js/app/beforeunload-guard.js') ?>" defer></script>
<script src="<?= App::assetV('/assets/js/app/upload-progress.js') ?>" defer></script>
<script src="<?= App::assetV('/assets/js/app/pill-search.js') ?>" defer></script> <script src="<?= App::assetV('/assets/js/app/pill-search.js') ?>" defer></script>
<script src="<?= App::assetV('/assets/js/vendor/htmx.min.js') ?>" defer></script> <script src="<?= App::assetV('/assets/js/vendor/htmx.min.js') ?>" defer></script>
</head> </head>

View File

@@ -0,0 +1 @@
[1778581846]

View File

@@ -0,0 +1 @@
[1778455046]

View File

@@ -0,0 +1 @@
[1778581157]

351
app/storage/logs/admin.log Normal file
View File

@@ -0,0 +1,351 @@
{"timestamp":"2026-05-04T15:36:30+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"maintenance_on","status":"success"}
{"timestamp":"2026-05-04T15:53:38+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"maintenance_off","status":"success"}
{"timestamp":"2026-05-04T15:53:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"maintenance_on","status":"success"}
{"timestamp":"2026-05-04T16:11:57+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"maintenance_off","status":"success"}
{"timestamp":"2026-05-05T09:06:21+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"add","status":"success","context":{"thesis_id":38,"identifier":"2025-013","author":"Lila Dubois, Karim Nassar"}}
{"timestamp":"2026-05-05T09:08:03+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[38]}}
{"timestamp":"2026-05-05T09:19:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":38,"title":"Jouer l'espace : dispositifs scénographiques pour l'expérience participative"}}
{"timestamp":"2026-05-05T09:33:13+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"csv_export","status":"success"}
{"timestamp":"2026-05-05T09:33:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1","restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-05T16:40:13+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"delete_all_theses","status":"success","context":{"count":13}}
{"timestamp":"2026-05-05T16:57:57+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":15,"ids":[53,52,51,50,49,48,47,46,45,44,43,42,41,40,39]}}
{"timestamp":"2026-05-05T16:58:02+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":25,"ids":[178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154]}}
{"timestamp":"2026-05-07T16:15:27+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"files_export","status":"success","context":{"file_count":0,"byte_size":248}}
{"timestamp":"2026-05-07T16:56:50+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"apropos","action":"edit","status":"success","context":{"key":"credits"}}
{"timestamp":"2026-05-07T18:06:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"page","action":"edit","status":"success","context":{"slug":"about"}}
{"timestamp":"2026-05-08T08:55:54+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":179,"title":"Systèmes d'identité visuelle générative : entre contrainte algorithmique et expression singulière"}}
{"timestamp":"2026-05-08T08:59:47+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":179,"title":"Systèmes d'identité visuelle générative : entre contrainte algorithmique et expression singulière"}}
{"timestamp":"2026-05-08T09:02:15+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"delete_all_theses","status":"success","context":{"count":141}}
{"timestamp":"2026-05-08T17:48:45+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"partage_intro"}}
{"timestamp":"2026-05-08T17:49:10+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"partage_intro"}}
{"timestamp":"2026-05-08T17:52:04+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"partage_intro"}}
{"timestamp":"2026-05-08T18:30:36+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"fieldset_languages"}}
{"timestamp":"2026-05-08T18:30:49+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"fieldset_keywords"}}
{"timestamp":"2026-05-08T18:31:09+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"fieldset_keywords"}}
{"timestamp":"2026-05-08T18:40:00+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"fieldset_access"}}
{"timestamp":"2026-05-08T19:22:22+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"fieldset_access"}}
{"timestamp":"2026-05-08T20:33:47+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"fieldset_access"}}
{"timestamp":"2026-05-08T20:35:30+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"fieldset_access"}}
{"timestamp":"2026-05-08T20:35:35+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"fieldset_access"}}
{"timestamp":"2026-05-08T20:37:31+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"form_structure","action":"edit","status":"success","context":{"section":"fieldset_access"}}
{"timestamp":"2026-05-08T20:44:48+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"page","action":"edit","status":"success","context":{"slug":"about"}}
{"timestamp":"2026-05-09T14:12:57+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"share_link","action":"create","status":"success","context":{"slug":"20260509-2VBLLICG","has_password":false,"expires_at":"2026-05-09 16:30:00","objet_restriction":"tfe"}}
{"timestamp":"2026-05-09T16:53:01+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"share_link","action":"archive","status":"success","context":{"link_id":108}}
{"timestamp":"2026-05-09T16:53:05+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"share_link","action":"archive","status":"success","context":{"link_id":1}}
{"timestamp":"2026-05-09T16:53:10+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"share_link","action":"create","status":"success","context":{"slug":"20260509-6UWYB2ZJ","has_password":false,"expires_at":null,"objet_restriction":"tfe"}}
{"timestamp":"2026-05-09T17:04:39+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[369]}}
{"timestamp":"2026-05-09T17:35:26+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"unpublish","status":"success","context":{"count":1,"ids":[369]}}
{"timestamp":"2026-05-09T18:09:32+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[369]}}
{"timestamp":"2026-05-09T18:28:04+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"share_link","action":"deactivate","status":"success","context":{"link_id":137}}
{"timestamp":"2026-05-09T18:28:06+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"share_link","action":"activate","status":"success","context":{"link_id":137}}
{"timestamp":"2026-05-09T18:42:48+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[369]}}
{"timestamp":"2026-05-09T18:43:05+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"unpublish","status":"success","context":{"count":1,"ids":[190]}}
{"timestamp":"2026-05-09T18:43:09+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[190]}}
{"timestamp":"2026-05-09T18:43:11+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"unpublish","status":"success","context":{"count":1,"ids":[190]}}
{"timestamp":"2026-05-09T18:43:33+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":11,"ids":[190,189,188,187,186,185,184,183,182,181,180]}}
{"timestamp":"2026-05-10T00:34:35+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":511,"title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META"}}
{"timestamp":"2026-05-10T00:34:47+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":511,"title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META"}}
{"timestamp":"2026-05-10T00:35:59+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":511,"title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META"}}
{"timestamp":"2026-05-10T00:44:19+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":511,"title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META"}}
{"timestamp":"2026-05-10T00:44:38+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":511,"title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META"}}
{"timestamp":"2026-05-10T00:44:59+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":505,"title":"Notes on a truthful & engaged cinema"}}
{"timestamp":"2026-05-10T01:33:38+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":511,"title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META"}}
{"timestamp":"2026-05-10T08:17:26+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":142,"ids":[511,510,509,508,507,506,505,504,503,502,501,500,499,498,497,496,495,494,493,492,491,490,489,488,487,486,485,484,483,482,481,480,479,478,477,476,475,474,473,472,471,470,469,468,467,466,465,464,463,462,461,460,459,458,457,456,455,454,453,452,451,450,449,448,447,446,445,444,443,442,441,440,439,438,437,436,435,434,433,432,431,430,429,428,427,426,425,424,423,422,421,420,419,418,417,416,415,414,413,412,411,410,409,408,407,406,405,404,403,402,401,400,399,398,397,396,395,394,393,392,391,390,389,388,387,386,385,384,383,382,381,380,379,378,377,376,375,374,373,372,371,370]}}
{"timestamp":"2026-05-10T08:20:25+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":665,"title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META"}}
{"timestamp":"2026-05-10T08:20:49+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":142,"ids":[665,664,663,662,661,660,659,658,657,656,655,654,653,652,651,650,649,648,647,646,645,644,643,642,641,640,639,638,637,636,635,634,633,632,631,630,629,628,627,626,625,624,623,622,621,620,619,618,617,616,615,614,613,612,611,610,609,608,607,606,605,604,603,602,601,600,599,598,597,596,595,594,593,592,591,590,589,588,587,586,585,584,583,582,581,580,579,578,577,576,575,574,573,572,571,570,569,568,567,566,565,564,563,562,561,560,559,558,557,556,555,554,553,552,551,550,549,548,547,546,545,544,543,542,541,540,539,538,537,536,535,534,533,532,531,530,529,528,527,526,525,524]}}
{"timestamp":"2026-05-10T08:44:11+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":142,"ids":[665,664,663,662,661,660,659,658,657,656,655,654,653,652,651,650,649,648,647,646,645,644,643,642,641,640,639,638,637,636,635,634,633,632,631,630,629,628,627,626,625,624,623,622,621,620,619,618,617,616,615,614,613,612,611,610,609,608,607,606,605,604,603,602,601,600,599,598,597,596,595,594,593,592,591,590,589,588,587,586,585,584,583,582,581,580,579,578,577,576,575,574,573,572,571,570,569,568,567,566,565,564,563,562,561,560,559,558,557,556,555,554,553,552,551,550,549,548,547,546,545,544,543,542,541,540,539,538,537,536,535,534,533,532,531,530,529,528,527,526,525,524]}}
{"timestamp":"2026-05-10T09:22:51+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":142,"ids":[807,806,805,804,803,802,801,800,799,798,797,796,795,794,793,792,791,790,789,788,787,786,785,784,783,782,781,780,779,778,777,776,775,774,773,772,771,770,769,768,767,766,765,764,763,762,761,760,759,758,757,756,755,754,753,752,751,750,749,748,747,746,745,744,743,742,741,740,739,738,737,736,735,734,733,732,731,730,729,728,727,726,725,724,723,722,721,720,719,718,717,716,715,714,713,712,711,710,709,708,707,706,705,704,703,702,701,700,699,698,697,696,695,694,693,692,691,690,689,688,687,686,685,684,683,682,681,680,679,678,677,676,675,674,673,672,671,670,669,668,667,666]}}
{"timestamp":"2026-05-10T09:58:02+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"tag","action":"rename","status":"success","context":{"tag_id":351,"new_name":"absurdité"}}
{"timestamp":"2026-05-10T13:03:12+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":90,"ids":[963,900,899,898,897,896,895,894,893,892,891,890,889,888,887,886,885,884,883,882,881,880,879,878,877,876,875,874,873,872,871,870,869,868,867,866,865,864,863,862,861,860,859,858,857,856,855,854,853,852,851,850,849,848,847,846,845,844,843,842,841,840,839,838,837,836,835,834,833,832,831,830,829,828,827,826,825,824,823,822,821,820,819,818,817,816,815,814,813,812]}}
{"timestamp":"2026-05-10T17:59:52+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[966]}}
{"timestamp":"2026-05-10T19:53:00+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[975]}}
{"timestamp":"2026-05-10T19:58:40+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[976]}}
{"timestamp":"2026-05-10T20:04:53+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":976,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-10T20:05:08+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[976]}}
{"timestamp":"2026-05-10T20:05:40+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":976,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-10T20:05:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[976]}}
{"timestamp":"2026-05-10T20:06:25+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":976,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-10T20:06:34+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":976,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-10T20:07:06+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":976,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-10T20:18:25+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":976,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-10T20:18:33+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":976,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-10T20:20:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":976,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-10T20:37:27+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":3,"ids":[976,975,966]}}
{"timestamp":"2026-05-10T20:51:17+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[1118]}}
{"timestamp":"2026-05-10T21:08:09+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"publish","status":"success","context":{"count":1,"ids":[1119]}}
{"timestamp":"2026-05-10T21:40:54+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"0","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T22:41:50+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"0","restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T22:58:05+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"0","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T22:58:06+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T22:58:07+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"0","access_type_interdit_enabled":"0","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T22:58:19+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"0","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T22:58:22+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T22:58:39+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"0","restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T23:41:08+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1"}}}
{"timestamp":"2026-05-10T23:41:09+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_interne_enabled":"1"}}}
{"timestamp":"2026-05-10T23:41:09+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-10T23:46:32+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"0","restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T23:46:40+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"0","restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T23:46:49+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"0","restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T23:46:59+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"0","restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T23:47:00+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T23:47:00+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T23:47:01+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T23:47:12+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T23:47:29+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"0","restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T23:52:16+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"0","restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T23:52:21+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T23:52:42+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"objet_types_update","status":"success","context":{"values":{"objet_these_enabled":"0","objet_frart_enabled":"1"}}}
{"timestamp":"2026-05-10T23:52:47+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"objet_types_update","status":"success","context":{"values":{"objet_these_enabled":"0","objet_frart_enabled":"0"}}}
{"timestamp":"2026-05-10T23:52:50+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T23:53:41+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1","restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T23:53:56+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"0","restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T23:54:22+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-10T23:54:33+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-10T23:54:37+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-10T23:59:02+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T23:59:07+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-10T23:59:10+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-10T23:59:12+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-10T23:59:13+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-10T23:59:17+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-10T23:59:20+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-10T23:59:25+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"objet_types_update","status":"success","context":{"values":{"objet_these_enabled":"1","objet_frart_enabled":"1"}}}
{"timestamp":"2026-05-10T23:59:28+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"objet_types_update","status":"success","context":{"values":{"objet_these_enabled":"1","objet_frart_enabled":"1"}}}
{"timestamp":"2026-05-11T00:02:04+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T00:02:10+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T00:02:15+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T00:02:18+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T00:02:21+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T00:02:24+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T00:08:01+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T00:19:35+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T00:19:38+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:10:41+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:10:47+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:10:53+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:10:57+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"objet_types_update","status":"success","context":{"values":{"objet_these_enabled":"0","objet_frart_enabled":"1"}}}
{"timestamp":"2026-05-11T01:10:58+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"objet_types_update","status":"success","context":{"values":{"objet_these_enabled":"0","objet_frart_enabled":"0"}}}
{"timestamp":"2026-05-11T01:11:10+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:11:21+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:12:10+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:12:16+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:12:20+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:12:23+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:15:41+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:24:21+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:24:26+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:25:22+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:25:25+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:25:36+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:25:38+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:25:54+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:36:14+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:36:33+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:37:26+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:37:30+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:39:30+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:39:43+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:44:05+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-11T01:44:09+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:44:13+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-11T01:44:17+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:44:20+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:44:45+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T01:44:50+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-11T01:44:59+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:45:06+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T01:45:14+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"objet_types_update","status":"success","context":{"values":{"objet_these_enabled":"1","objet_frart_enabled":"0"}}}
{"timestamp":"2026-05-11T01:45:30+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"objet_types_update","status":"success","context":{"values":{"objet_these_enabled":"0","objet_frart_enabled":"0"}}}
{"timestamp":"2026-05-11T08:31:45+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"peertube_update","status":"success","context":{"enabled":true}}
{"timestamp":"2026-05-11T09:19:45+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"peertube_update","status":"success","context":{"enabled":true}}
{"timestamp":"2026-05-11T09:20:03+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"peertube_update","status":"success","context":{"enabled":true}}
{"timestamp":"2026-05-11T09:21:22+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T09:23:16+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"peertube_update","status":"success","context":{"enabled":true}}
{"timestamp":"2026-05-11T09:23:30+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"peertube_update","status":"success","context":{"enabled":true}}
{"timestamp":"2026-05-11T09:31:16+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T09:36:38+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T09:37:05+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T09:37:39+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T09:37:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-11T09:37:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}
{"timestamp":"2026-05-11T09:56:47+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"peertube_update","status":"success","context":{"enabled":true}}
{"timestamp":"2026-05-11T09:57:04+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"smtp_test","status":"success","context":{"to":"theophile.gervreau-mercier@erg.school","error":null}}
{"timestamp":"2026-05-11T09:59:05+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T10:17:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T10:31:36+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"1","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T10:31:37+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"1","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-11T10:31:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T10:37:48+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T10:40:59+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T10:47:51+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T10:55:57+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T11:03:58+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T11:05:36+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T11:18:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T11:26:57+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T11:52:41+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T12:36:25+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T12:58:48+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T13:00:02+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T13:00:15+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T13:01:19+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T13:02:52+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1119,"title":"Generative Poetics: Algorithms as Artistic Agents"}}
{"timestamp":"2026-05-11T13:05:28+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"csv_export","status":"success"}
{"timestamp":"2026-05-11T13:05:28+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"files_export","status":"success","context":{"file_count":4,"byte_size":3402264}}
{"timestamp":"2026-05-11T13:05:39+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"system","action":"files_export","status":"success","context":{"file_count":4,"byte_size":3402264}}
{"timestamp":"2026-05-11T14:40:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1119]}}
{"timestamp":"2026-05-11T14:40:48+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"unpublish","status":"success","context":{"count":1,"ids":[1118]}}
{"timestamp":"2026-05-11T14:40:58+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1119]}}
{"timestamp":"2026-05-11T14:40:58+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1120]}}
{"timestamp":"2026-05-11T14:41:20+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"1"}}}
{"timestamp":"2026-05-11T17:37:54+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"access_type_libre_enabled":"0","access_type_interne_enabled":"0","access_type_interdit_enabled":"1"}}}
{"timestamp":"2026-05-12T10:45:39+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":144,"ids":[1122,1121,1118,1117,1116,1115,1114,1113,1112,1111,1110,1109,1108,1107,1106,1105,1104,1103,1102,1101,1100,1099,1098,1097,1096,1095,1094,1093,1092,1091,1090,1089,1088,1087,1086,1085,1084,1083,1082,1081,1080,1079,1078,1077,1076,1075,1074,1073,1072,1071,1070,1069,1068,1067,1066,1065,1064,1063,1062,1061,1060,1059,1058,1057,1056,1055,1054,1053,1052,1051,1050,1049,1048,1047,1046,1045,1044,1043,1042,1041,1040,1039,1038,1037,1036,1035,1034,1033,1032,1031,1030,1029,1028,1027,1026,1025,1024,1023,1022,1021,1020,1019,1018,1017,1016,1015,1014,1013,1012,1011,1010,1009,1008,1007,1006,1005,1004,1003,1002,1001,1000,999,998,997,996,995,994,993,992,991,990,989,988,987,986,985,984,983,982,981,980,979,978,977]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[977]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[978]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[979]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[980]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[981]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[982]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[983]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[984]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[985]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[986]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[987]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[988]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[989]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[990]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[991]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[992]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[993]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[994]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[995]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[996]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[997]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[998]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[999]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1000]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1001]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1002]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1003]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1004]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1005]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1006]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1007]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1008]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1009]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1010]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1011]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1012]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1013]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1014]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1015]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1016]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1017]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1018]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1019]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1020]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1021]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1022]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1023]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1024]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1025]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1026]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1027]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1028]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1029]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1030]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1031]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1032]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1033]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1034]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1035]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1036]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1037]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1038]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1039]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1040]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1041]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1042]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1043]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1044]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1045]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1046]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1047]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1048]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1049]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1050]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1051]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1052]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1053]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1054]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1055]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1056]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1057]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1058]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1059]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1060]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1061]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1062]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1063]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1064]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1065]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1066]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1067]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1068]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1069]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1070]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1071]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1072]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1073]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1074]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1075]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1076]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1077]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1078]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1079]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1080]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1081]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1082]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1083]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1084]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1085]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1086]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1087]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1088]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1089]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1090]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1091]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1092]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1093]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1094]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1095]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1096]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1097]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1098]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1099]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1100]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1101]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1102]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1103]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1104]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1105]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1106]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1107]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1108]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1109]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1110]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1111]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1112]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1113]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1114]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1115]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1116]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1117]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1118]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1121]}}
{"timestamp":"2026-05-12T10:45:44+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"delete","status":"success","context":{"delete_all":false,"count":1,"ids":[1122]}}
{"timestamp":"2026-05-12T10:48:25+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1263,"title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META"}}
{"timestamp":"2026-05-12T11:03:43+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1263,"title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META"}}
{"timestamp":"2026-05-12T11:04:01+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"thesis","action":"edit","status":"success","context":{"thesis_id":1263,"title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META"}}
{"timestamp":"2026-05-12T11:05:06+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","resource":"settings","action":"formulaire_update","status":"success","context":{"values":{"restricted_files_enabled":"0"}}}

View File

@@ -0,0 +1,54 @@
{"source":"partage","action":"submit","status":"success","thesis_id":15,"identifier":"2025-012","author":"Emma Renard","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T09:20:16+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":16,"identifier":"2025-013","author":"Emma Renard","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T09:35:49+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":17,"identifier":"2025-014","author":"Théo Marchand","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T09:48:20+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":18,"identifier":"2025-015","author":"Théo Marchand","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T10:13:43+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":19,"identifier":"2025-016","author":"Lila Dubois, Karim Nassar","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T11:27:07+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":20,"identifier":"2025-017","author":"Théo Marchand","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T11:37:11+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":21,"identifier":"2025-018","author":"Théo Marchand","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T11:41:38+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":22,"identifier":"2025-019","author":"Lila Dubois, Karim Nassar","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T11:45:36+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":23,"identifier":"2025-020","author":"Zoé Lambert","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T11:46:49+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":24,"identifier":"2025-021","author":"Emma Renard","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T11:49:49+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":25,"identifier":"2025-001","author":"Emma Renard","share_slug":"20260429-DZESJT6X","timestamp":"2026-04-30T12:17:35+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"success","thesis_id":37,"identifier":"2025-012","author":"Théo Marchand","timestamp":"2026-05-04T14:56:37+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","timestamp":"2026-05-04T14:56:53+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","share_slug":"20260429-DZESJT6X","timestamp":"2026-05-04T15:01:08+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","share_slug":"20260429-DZESJT6X","timestamp":"2026-05-04T15:05:04+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","timestamp":"2026-05-04T15:05:31+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","timestamp":"2026-05-04T15:11:12+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","timestamp":"2026-05-04T15:11:26+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","share_slug":"20260429-DZESJT6X","timestamp":"2026-05-04T15:11:36+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"duplicate","author":"Théo Marchand","existing_thesis_id":37,"existing_identifier":"2025-012","share_slug":"20260429-DZESJT6X","timestamp":"2026-05-04T15:11:43+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"success","thesis_id":38,"identifier":"2025-013","author":"Lila Dubois, Karim Nassar","timestamp":"2026-05-05T09:06:21+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":179,"identifier":"2025-073","author":"Théo Marchand","share_slug":"20260429-DZESJT6X","timestamp":"2026-05-07T18:40:50+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["csrf_token","titre","subtitle","auteurice","mail","synopsis","language_autre","tag","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","has_annexes","duration_pages","duration_minutes","access_type_id","license_id","license_custom","context_note","jury_points","remarks","lien","contact_interne","go"],"timestamp":"2026-05-08T15:28:51+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":369,"identifier":"2025-012","author":"Lila Dubois, Karim Nassar","share_slug":"20260509-6UWYB2ZJ","timestamp":"2026-05-09T17:02:32+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["csrf_token","titre","subtitle","auteurice","mail","synopsis","language_autre","tag","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","access_type_id","license_id","license_custom","context_note","jury_points","remarks","lien","contact_interne","go"],"timestamp":"2026-05-09T19:25:50+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["csrf_token","titre","subtitle","auteurice","mail","synopsis","language_autre","tag","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","access_type_id","license_id","license_custom","context_note","jury_points","remarks","lien","contact_interne","go"],"timestamp":"2026-05-09T19:28:02+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["csrf_token","titre","subtitle","auteurice","mail","synopsis","language_autre","tag","q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","access_type_id","license_id","license_custom","context_note","jury_points","remarks","lien","contact_interne","go"],"timestamp":"2026-05-09T19:34:37+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["csrf_token","titre","subtitle","auteurice","mail","synopsis","language_autre","q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","access_type_id","license_id","license_custom","context_note","jury_points","remarks","lien","contact_interne","go"],"timestamp":"2026-05-09T19:36:16+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["csrf_token","titre","subtitle","auteurice","mail","synopsis","language_autre","q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","access_type_id","license_id","license_custom","context_note","jury_points","remarks","lien","contact_interne","go"],"timestamp":"2026-05-09T19:36:57+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["csrf_token","titre","subtitle","auteurice","mail","synopsis","languages","language_autre","q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","access_type_id","license_id","license_custom","context_note","jury_points","remarks","lien","contact_interne","go"],"timestamp":"2026-05-09T23:24:57+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["csrf_token","titre","subtitle","auteurice","mail","synopsis","language_autre","q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","access_type_id","license_id","license_custom","context_note","jury_points","remarks","lien","contact_interne","go"],"timestamp":"2026-05-10T00:45:11+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"error","error":"Veuillez sélectionner une licence ou en préciser une.","share_slug":"20260509-6UWYB2ZJ","author":"Emma Renard","post_keys":["share_link_token","objet","titre","subtitle","auteurice","mail","synopsis","languages","language_autre","language_search_q","tag","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","formats","has_annexes","access_type_id","license_id","license_custom","confirmation_email","go","file_labels","file_orders"],"timestamp":"2026-05-10T12:33:08+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":963,"identifier":"2025-018","author":"Zoé Lambert","share_slug":"20260509-6UWYB2ZJ","timestamp":"2026-05-10T12:58:26+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"error","error":"Veuillez indiquer au moins 3 mots-clés.","share_slug":"20260509-6UWYB2ZJ","author":"Emma Renard","post_keys":["share_link_token","objet","titre","subtitle","auteurice","mail","synopsis","languages","language_search_q","tag","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","formats","has_annexes","access_type_id","license_id","license_custom","confirmation_email","go","file_labels","file_orders"],"timestamp":"2026-05-10T13:04:43+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"error","error":"Veuillez indiquer au moins 3 mots-clés.","share_slug":"20260509-6UWYB2ZJ","author":"Emma Renard","post_keys":["share_link_token","objet","titre","subtitle","auteurice","mail","synopsis","languages","language_search_q","tag","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","formats","has_annexes","access_type_id","license_id","license_custom","confirmation_email","go","file_labels","file_orders"],"timestamp":"2026-05-10T13:05:07+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"error","error":"Veuillez indiquer au moins 3 mots-clés.","share_slug":"20260509-6UWYB2ZJ","author":"Emma Renard","post_keys":["share_link_token","objet","titre","subtitle","auteurice","mail","synopsis","languages","language_search_q","tag","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","formats","has_annexes","access_type_id","license_id","license_custom","confirmation_email","go","file_labels","file_orders"],"timestamp":"2026-05-10T13:06:25+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":966,"identifier":"2025-001","author":"Emma Renard","share_slug":"20260509-6UWYB2ZJ","timestamp":"2026-05-10T13:07:30+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"error","error":"Veuillez indiquer au moins 3 mots-clés.","share_slug":"20260509-6UWYB2ZJ","author":"Emma Renard","post_keys":["share_link_token","objet","titre","subtitle","auteurice","mail","synopsis","languages","language_search_q","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","formats","has_annexes","access_type_id","license_id","license_custom","confirmation_email","go","file_labels","file_orders"],"timestamp":"2026-05-10T13:22:23+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"error","error":"Veuillez fournir au moins un fichier d'annexe.","share_slug":"20260509-6UWYB2ZJ","author":"Lila Dubois, Karim Nassar","post_keys":["share_link_token","objet","titre","subtitle","auteurice","mail","synopsis","languages","language_search_q","tag","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","formats","has_annexes","access_type_id","license_id","license_custom","confirmation_email","go"],"timestamp":"2026-05-10T18:48:39+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"error","error":"Veuillez fournir au moins un fichier d'annexe.","share_slug":"20260509-6UWYB2ZJ","author":"Zoé Lambert","post_keys":["share_link_token","objet","titre","subtitle","auteurice","mail","synopsis","languages","language_search_q","tag","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","formats","has_annexes","access_type_id","license_id","license_custom","confirmation_email","go"],"timestamp":"2026-05-10T18:50:05+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"duplicate","author":"Emma Renard","existing_thesis_id":966,"existing_identifier":"2025-001","share_slug":"20260509-6UWYB2ZJ","timestamp":"2026-05-10T19:07:33+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"duplicate","author":"Emma Renard","existing_thesis_id":966,"existing_identifier":"2025-001","share_slug":"20260509-6UWYB2ZJ","timestamp":"2026-05-10T19:50:57+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":975,"identifier":"2025-002","author":"Lila Dubois, Karim Nassar","share_slug":"20260509-6UWYB2ZJ","timestamp":"2026-05-10T19:52:11+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":976,"identifier":"2025-003","author":"Zoé Lambert","share_slug":"20260509-6UWYB2ZJ","timestamp":"2026-05-10T19:58:26+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":1119,"identifier":"2025-073","author":"Zoé Lambert","share_slug":"20260509-6UWYB2ZJ","timestamp":"2026-05-10T21:07:43+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["progress_token","csrf_token","titre","subtitle","auteurice","mail","synopsis","language_search_q","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","has_annexes","website_url","access_type_id","context_note","jury_points","remarks","lien","contact_interne"],"timestamp":"2026-05-11T14:57:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["progress_token","csrf_token","titre","subtitle","auteurice","mail","synopsis","language_search_q","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","has_annexes","website_url","access_type_id","context_note","jury_points","remarks","lien","contact_interne"],"timestamp":"2026-05-11T14:57:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Année invalide. Veuillez entrer une année valide.","author":"sqldfmlksmlqsjdmf","post_keys":["progress_token","csrf_token","titre","subtitle","auteurice","mail","synopsis","language_search_q","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","has_annexes","website_url","access_type_id","context_note","jury_points","remarks","lien","contact_interne"],"timestamp":"2026-05-11T14:59:11+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Année invalide. Veuillez entrer une année valide.","author":"sqldfmlksmlqsjdmf","post_keys":["progress_token","csrf_token","titre","subtitle","auteurice","mail","synopsis","language_search_q","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","has_annexes","website_url","access_type_id","context_note","jury_points","remarks","lien","contact_interne"],"timestamp":"2026-05-11T14:59:11+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["progress_token","csrf_token","titre","subtitle","auteurice","mail","synopsis","language_search_q","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","has_annexes","website_url","access_type_id","context_note","jury_points","remarks","lien","contact_interne"],"timestamp":"2026-05-11T15:04:20+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Nom/Prénom/Pseudo' est requis.","author":"","post_keys":["progress_token","csrf_token","titre","subtitle","auteurice","mail","synopsis","language_search_q","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","has_annexes","website_url","access_type_id","context_note","jury_points","remarks","lien","contact_interne"],"timestamp":"2026-05-11T15:04:20+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Le champ 'Auteur·ice(s)' est requis.","author":"","post_keys":["progress_token","csrf_token","titre","subtitle","auteurice","mail","synopsis","language_search_q","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","has_annexes","website_url","access_type_id","context_note","jury_points","remarks","lien","contact_interne","go"],"timestamp":"2026-05-11T15:09:54+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"admin","action":"submit","status":"error","error":"Année invalide. Veuillez entrer une année valide.","author":"dqlskjflkjdsqf","post_keys":["progress_token","csrf_token","titre","subtitle","auteurice","mail","synopsis","language_search_q","tag_search_q","année","orientation","ap","finality","jury_promoteur","jury_promoteur_ulb_name","jury_lecteur_interne","jury_lecteur_externe","admin_mode","edit_mode","has_annexes","website_url","access_type_id","context_note","jury_points","remarks","lien","contact_interne","go"],"timestamp":"2026-05-11T15:10:00+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}
{"source":"partage","action":"submit","status":"success","thesis_id":1122,"identifier":"2025-074","author":"Théo Marchand","share_slug":"20260509-6UWYB2ZJ","timestamp":"2026-05-12T10:30:46+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0"}

View File

@@ -530,15 +530,13 @@ INSERT OR IGNORE INTO languages (name) VALUES ('anglais');
INSERT OR IGNORE INTO languages (name) VALUES ('néerlandais'); INSERT OR IGNORE INTO languages (name) VALUES ('néerlandais');
INSERT OR IGNORE INTO languages (name) VALUES ('italian'); INSERT OR IGNORE INTO languages (name) VALUES ('italian');
INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Site web', 5);
INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Audio', 3); INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Audio', 3);
INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Vidéo', 4); INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Vidéo', 4);
INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Site web', 5);
INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Performance', 6); INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Performance', 6);
INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Objet éditorial', 7); INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Objet éditorial', 7);
INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Installation', 8); INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Installation', 8);
INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Autre', 9); INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Autre', 9);
INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Écriture', 1);
INSERT OR IGNORE INTO format_types (name, sort_order) VALUES ('Image', 2);
INSERT OR IGNORE INTO access_types (name, description) VALUES ('Libre', 'TFE en libre accès à tout le monde sur la plateforme et en bibliothèque'); INSERT OR IGNORE INTO access_types (name, description) VALUES ('Libre', 'TFE en libre accès à tout le monde sur la plateforme et en bibliothèque');
INSERT OR IGNORE INTO access_types (name, description) VALUES ('Interne', 'TFE accessible uniquement sur place en physique. Une note descriptive est disponible sur le site'); INSERT OR IGNORE INTO access_types (name, description) VALUES ('Interne', 'TFE accessible uniquement sur place en physique. Une note descriptive est disponible sur le site');

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 KiB

View File

@@ -0,0 +1 @@
{"queue_type":"cover","original_name":"2026-03-30-112553_hyprshot.png","mime":"image/png","ext":"png","size":790551,"session_id":"ca4d45dbfb0b3fc4f87f725826df9d35","uploaded_at":"2026-05-12T11:03:34+00:00"}

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 KiB

View File

@@ -0,0 +1 @@
{"queue_type":"cover","original_name":"2026-03-30-112553_hyprshot.png","mime":"image/png","ext":"png","size":790551,"session_id":"ca4d45dbfb0b3fc4f87f725826df9d35","uploaded_at":"2026-05-12T10:50:23+00:00"}

View File

@@ -0,0 +1 @@
{"queue_type":"note_intention","original_name":"nixing_the_fix_report_final_5521_630pm-508_002.pdf","mime":"application/pdf","ext":"pdf","size":1296086,"session_id":"ca4d45dbfb0b3fc4f87f725826df9d35","uploaded_at":"2026-05-12T11:03:37+00:00"}

View File

@@ -0,0 +1 @@
{"queue_type":"annexe","original_name":"Nixing the Fix_ An FTC Report to Congress on Repair Restrictions - nixing_the_fix_report_final_5521_630pm-508_002.pdf","mime":"application/pdf","ext":"pdf","size":5861686,"session_id":"ca4d45dbfb0b3fc4f87f725826df9d35","uploaded_at":"2026-05-12T10:50:16+00:00"}

View File

@@ -0,0 +1 @@
{"queue_type":"note_intention","original_name":"invoice_25-12-01_251200002_les-iles-mardi.pdf","mime":"application/pdf","ext":"pdf","size":349083,"session_id":"ca4d45dbfb0b3fc4f87f725826df9d35","uploaded_at":"2026-05-12T10:30:01+00:00"}

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 KiB

View File

@@ -0,0 +1 @@
{"queue_type":"cover","original_name":"2026-03-30-112553_hyprshot.png","mime":"image/png","ext":"png","size":790551,"session_id":"ca4d45dbfb0b3fc4f87f725826df9d35","uploaded_at":"2026-05-12T10:46:44+00:00"}

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

View File

@@ -0,0 +1 @@
{"queue_type":"cover","original_name":"Screenshot_2026-05-08_at_11-25-04_DepNum.png","mime":"image/png","ext":"png","size":134916,"session_id":"ca4d45dbfb0b3fc4f87f725826df9d35","uploaded_at":"2026-05-12T10:30:08+00:00"}

View File

@@ -0,0 +1 @@
{"queue_type":"note_intention","original_name":"Nixing the Fix_ An FTC Report to Congress on Repair Restrictions - nixing_the_fix_report_final_5521_630pm-508_002.pdf","mime":"application/pdf","ext":"pdf","size":5861686,"session_id":"ca4d45dbfb0b3fc4f87f725826df9d35","uploaded_at":"2026-05-12T10:46:38+00:00"}

View File

@@ -0,0 +1 @@
{"queue_type":"note_intention","original_name":"Proposition_proce\u0301dure_licences_V2.pdf","mime":"application/pdf","ext":"pdf","size":32119,"session_id":"ca4d45dbfb0b3fc4f87f725826df9d35","uploaded_at":"2026-05-12T10:50:27+00:00"}

View File

@@ -1572,6 +1572,32 @@
+%%%%%%% diff from: somsyvxz 249f7943 "Bulk bar anti-shift, tags icons, AP no-wrap, credits reorder" (rebased revision) +%%%%%%% diff from: somsyvxz 249f7943 "Bulk bar anti-shift, tags icons, AP no-wrap, credits reorder" (rebased revision)
+\\\\\\\ to: tsultupz 0703279b "refactor: merge video/audio FilePond pools into TFE input" (rebased revision) +\\\\\\\ to: tsultupz 0703279b "refactor: merge video/audio FilePond pools into TFE input" (rebased revision)
++ $linkName = $link['name'] ?? ''; ++ $linkName = $link['name'] ?? '';
++ $linkExpiresVal = $link['expires_at'] ? date('Y-m-d\TH:i', strtotime($link['expires_at'])) : '';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff from: tsultupz 0703279b "refactor: merge video/audio FilePond pools into TFE input" (rebased revision)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ to: somsyvxz 249f7943 "Bulk bar anti-shift, tags icons, AP no-wrap, credits reorder" (rebased revision)
- $linkName = $link['name'] ?? '';
- $linkExpiresVal = $link['expires_at'] ? date('Y-m-d\TH:i', strtotime($link['expires_at'])) : '';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff from: somsyvxz 14a3cd10 "Bulk bar anti-shift, tags icons, AP no-wrap, credits reorder" (rebase destination)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ to: lmtnyxru 4dc3b974 "gitignore: exclude SQLite WAL/SHM journal files; CSS: FilePond file block border yellow→green on upload; move shared fichiers-fragment.php from partage/ to templates/partials/form/ and update all references" (rebased revision)
$linkName = $link['name'] ?? '';
$linkExpiresVal = $link['expires_at'] ? date('Y-m-d\TH:i', strtotime($link['expires_at'])) : '';
$linkLockedYear = $link['locked_year'] ?? null;
+%%%%%%% diff from: somsyvxz 249f7943 "Bulk bar anti-shift, tags icons, AP no-wrap, credits reorder" (rebased revision)
+\\\\\\\ to: lmtnyxru 939df0d2 "gitignore: exclude SQLite WAL/SHM journal files; CSS: FilePond file block border yellow→green on upload; move shared fichiers-fragment.php from partage/ to templates/partials/form/ and update all references" (rebased revision)
++ $linkName = $link['name'] ?? '';
++ $linkExpiresVal = $link['expires_at'] ? date('Y-m-d\TH:i', strtotime($link['expires_at'])) : '';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff from: lmtnyxru 939df0d2 "gitignore: exclude SQLite WAL/SHM journal files; CSS: FilePond file block border yellow→green on upload; move shared fichiers-fragment.php from partage/ to templates/partials/form/ and update all references" (rebased revision)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ to: somsyvxz 249f7943 "Bulk bar anti-shift, tags icons, AP no-wrap, credits reorder" (rebased revision)
- $linkName = $link['name'] ?? '';
- $linkExpiresVal = $link['expires_at'] ? date('Y-m-d\TH:i', strtotime($link['expires_at'])) : '';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff from: somsyvxz 14a3cd10 "Bulk bar anti-shift, tags icons, AP no-wrap, credits reorder" (rebase destination)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ to: vmskyqzl 880ac19f "remove Écriture+Image formats; FilePond image previews use site light colors; edit mode: remove custom file preview list, use FilePond pools for existing files including cover+note_intention; remove upload-progress bar and JS includes" (rebased revision)
$linkName = $link['name'] ?? '';
$linkExpiresVal = $link['expires_at'] ? date('Y-m-d\TH:i', strtotime($link['expires_at'])) : '';
$linkLockedYear = $link['locked_year'] ?? null;
+%%%%%%% diff from: somsyvxz 249f7943 "Bulk bar anti-shift, tags icons, AP no-wrap, credits reorder" (rebased revision)
+\\\\\\\ to: vmskyqzl 4c6b074a "remove Écriture+Image formats; FilePond image previews use site light colors; edit mode: remove custom file preview list, use FilePond pools for existing files including cover+note_intention; remove upload-progress bar and JS includes" (rebased revision)
++ $linkName = $link['name'] ?? '';
++ $linkExpiresVal = $link['expires_at'] ? date('Y-m-d\TH:i', strtotime($link['expires_at'])) : ''; ++ $linkExpiresVal = $link['expires_at'] ? date('Y-m-d\TH:i', strtotime($link['expires_at'])) : '';
?> ?>
<tr class="admin-table-row" onclick="event.stopPropagation(); window.open('/partage/<?= urlencode($link['slug']) ?>', '_blank')" style="cursor:pointer"> <tr class="admin-table-row" onclick="event.stopPropagation(); window.open('/partage/<?= urlencode($link['slug']) ?>', '_blank')" style="cursor:pointer">

View File

@@ -0,0 +1,156 @@
<?php
/**
* fichiers-fragment.php
*
* Shared HTMX fragment: returns the combined Format(s) + Fichiers block.
* Used by both the partage and admin forms.
*
* All slots (Couverture, Note d'intention, TFE, Annexes, Site web) are
* always visible — decorelated from the format checkboxes. The checkboxes
* serve only as metadata selectors; they no longer trigger HTMX swaps.
*
* Expected POST:
* formats[] — array of selected format_type IDs
* website_url — current value (repopulation)
* website_label — current value (repopulation)
* admin_mode — '1' for admin context (removes required attrs)
* edit_mode — '1' for edit context (preloads existing files)
*/
require_once APP_ROOT . '/src/PeerTubeService.php';
$_ptDb = Database::getInstance();
$peerTubeEnabled = PeerTubeService::isEnabled($_ptDb);
$peerTubeSettings = PeerTubeService::getSettings($_ptDb);
$db = $_ptDb->getConnection();
// Exclude removed format types (Écriture, Image)
$allFormats = $db->query("SELECT id, name FROM format_types WHERE name NOT IN ('Écriture', 'Image') ORDER BY sort_order, id")
->fetchAll(PDO::FETCH_ASSOC);
$selectedFormats = isset($_POST['formats']) && is_array($_POST['formats'])
? array_map('intval', $_POST['formats'])
: [];
$adminMode = ($_POST['admin_mode'] ?? '0') === '1';
$editMode = ($_POST['edit_mode'] ?? '0') === '1';
$websiteUrl = htmlspecialchars($_POST['website_url'] ?? '');
$websiteLabel = htmlspecialchars($_POST['website_label'] ?? '');
?>
<!-- ═══════════════════ Format(s) + Fichiers ═══════════════════ -->
<div id="format-fichiers-block">
<input type="hidden" name="admin_mode" value="<?= $adminMode ? '1' : '0' ?>">
<input type="hidden" name="edit_mode" value="<?= $editMode ? '1' : '0' ?>">
<!-- ═══════════════════ Format(s) — sticky ═══════════════════ -->
<fieldset id="fieldset-formats">
<legend>Format(s)</legend>
<div>
<span class="admin-row-label">Format(s) du TFE :<?= !$adminMode ? ' <span class="asterisk">*</span>' : '' ?></span>
<fieldset class="admin-checkbox-group"
<?= !$adminMode ? 'required aria-required="true"' : '' ?> >
<legend class="sr-only">Format(s) du TFE</legend>
<ul>
<?php foreach ($allFormats as $opt): ?>
<li>
<label class="admin-checkbox-label">
<input type="checkbox"
name="formats[]"
value="<?= htmlspecialchars((string)$opt['id']) ?>"
<?= in_array((int)$opt['id'], $selectedFormats, true) ? 'checked' : '' ?>>
<?= htmlspecialchars($opt['name']) ?>
</label>
</li>
<?php endforeach; ?>
</ul>
</fieldset>
</div>
</fieldset>
<!-- ═══════════════════ Fichiers ═══════════════════ -->
<fieldset>
<legend>Fichiers</legend>
<!-- ── 1. Couverture ── -->
<div class="admin-form-group">
<label for="couverture">Image de couverture (optionnel)</label>
<div class="admin-file-input">
<input type="file" id="couverture"
name="queue_file[cover][]"
class="tfe-file-picker tfe-file-picker--single"
data-queue-type="cover"
data-existing-files='<?= htmlspecialchars(json_encode($existingFilesJsonForCover ?? []), ENT_QUOTES) ?>'>
<small>JPG, PNG ou WEBP. Format 4:3 recommandé. Max 20 MB.</small>
</div>
</div>
<!-- ── 2. Note d'intention ── -->
<div class="admin-form-group">
<label for="note_intention">Note d'intention<?= !$adminMode ? ' <span class="asterisk">*</span>' : '' ?></label>
<div class="admin-file-input">
<input type="file" id="note_intention"
name="queue_file[note_intention][]"
class="tfe-file-picker tfe-file-picker--single"
data-queue-type="note_intention"
data-existing-files='<?= htmlspecialchars(json_encode($existingFilesJsonForNoteIntention ?? []), ENT_QUOTES) ?>'
<?= !$adminMode ? 'required' : '' ?>>
<small>PDF uniquement. Max 100 MB. Si votre fichier est trop lourd, compressez-le avec <a href="https://www.bentopdf.com" target="_blank" rel="noopener">bentopdf.com</a>.</small>
</div>
</div>
<!-- ── 3. TFE (all files: PDF, images, video, audio, VTT, archives) ── -->
<div class="admin-form-group admin-files-fieldgroup">
<label for="tfe-files-input">TFE<?= !$adminMode ? ' <span class="asterisk">*</span>' : '' ?></label>
<div class="admin-file-input">
<input type="file" id="tfe-files-input"
name="queue_file[tfe][]"
multiple
class="tfe-file-picker"
data-queue-type="tfe"
<?= !$adminMode ? 'required' : '' ?>
data-existing-files='<?= htmlspecialchars(json_encode($existingFilesJsonForTfe ?? []), ENT_QUOTES) ?>'>
<small class="admin-file-hint">
Glissez pour réordonner.
<br>
<br>
PDF (max 100 MB) · Images (max 500 MB) · Vidéo &amp; Audio (max 2 GB) · VTT · Archives (max 500 MB).
<br>→ PDFs trop lourds ? <a href="https://www.bentopdf.com" target="_blank" rel="noopener">https://bentopdf.com/</a>
<?php if ($peerTubeEnabled): ?>
<br><br>Vidéos et audio hébergés sur <a href="<?= htmlspecialchars($peerTubeSettings['instance_url']) ?>" target="_blank" rel="noopener">PeerTube</a>.
<?php endif; ?>
</small>
</div>
</div>
<!-- ── 4. Annexes ── -->
<div id="annexes-input-block">
<input type="hidden" name="has_annexes" value="0">
<div class="admin-form-group admin-files-fieldgroup">
<label for="annexe-files-input">Annexes (optionnel)</label>
<div class="admin-file-input">
<input type="file" id="annexe-files-input"
name="queue_file[annexe][]"
multiple
class="tfe-file-picker"
data-queue-type="annexe"
data-existing-files='<?= htmlspecialchars(json_encode($existingFilesJsonForAnnexe ?? []), ENT_QUOTES) ?>'>
<small class="admin-file-hint">PDF ou archives ZIP/TAR. Max 500 MB. Glissez pour réordonner.</small>
</div>
</div>
</div>
<!-- ── 5. Site web url ── -->
<div id="slot-siteweb" class="admin-form-group">
<label for="website_url">URL du site (optionnel)</label>
<div class="admin-file-input">
<input type="url" id="website_url" name="website_url"
value="<?= $websiteUrl ?>"
placeholder="https://mon-tfe.erg.be">
<small>Le TFE sera affiché comme un site embarqué sur sa page publique.</small>
</div>
</div>
</fieldset><!-- /Fichiers -->
</div><!-- #format-fichiers-block -->

View File

@@ -143,8 +143,7 @@ $checkedFormatsForSiteWeb = $checkedFormatsForSiteWeb ?? [];
<?php endif; ?> <?php endif; ?>
<?php endif; ?> <?php endif; ?>
<form action="<?= $formAction ?>" method="post" enctype="multipart/form-data" class="admin-form" data-beforeunload-guard data-upload-progress> <form action="<?= $formAction ?>" method="post" enctype="multipart/form-data" class="admin-form" data-beforeunload-guard>
<input type="hidden" name="progress_token" value="<?= bin2hex(random_bytes(8)) ?>">
<input type="hidden" name="filepond_mode" value="1"> <input type="hidden" name="filepond_mode" value="1">
<?= $hiddenFields ?> <?= $hiddenFields ?>
@@ -308,16 +307,21 @@ $checkedFormatsForSiteWeb = $checkedFormatsForSiteWeb ?? [];
<!-- ═══════════════════ Format(s) + Fichiers ═══════════════════ --> <!-- ═══════════════════ Format(s) + Fichiers ═══════════════════ -->
<?php <?php
// Helper: build existing-files JSON for FilePond TFE pool (including PeerTube) // Helper: build existing-files JSON for a specific FilePond queue type.
$_buildExistingFilesJson = function (array $files): array { $_buildQueueFilesJson = function (array $files, string $queueType): array {
$result = []; $result = [];
foreach ($files as $f) { foreach ($files as $f) {
$ft = $f['file_type'] ?? ''; $ft = $f['file_type'] ?? '';
$fp = $f['file_path'] ?? ''; $fp = $f['file_path'] ?? '';
// Skip cover (handled separately) and website URLs (no actual file) // Skip website URLs (no actual file)
if ($ft === 'cover' || str_starts_with($fp, 'http://') || str_starts_with($fp, 'https://')) { if (str_starts_with($fp, 'http://') || str_starts_with($fp, 'https://')) {
continue; continue;
} }
// Only include files matching the requested queue type
if ($queueType === 'cover' && $ft !== 'cover') continue;
if ($queueType === 'note_intention' && $ft !== 'note_intention') continue;
if ($queueType === 'tfe' && ($ft === 'cover' || $ft === 'note_intention' || $ft === 'annex')) continue;
if ($queueType === 'annexe' && $ft !== 'annex') continue;
// Include PeerTube files too — load.php now handles them // Include PeerTube files too — load.php now handles them
$result[] = [ $result[] = [
'source' => (string)((int)$f['id']), 'source' => (string)((int)$f['id']),
@@ -343,9 +347,12 @@ if ($filesMode === 'add'): ?>
$_POST['admin_mode'] = $adminMode ? '1' : '0'; $_POST['admin_mode'] = $adminMode ? '1' : '0';
$_POST['has_annexes'] = $formData['has_annexes'] ?? null; $_POST['has_annexes'] = $formData['has_annexes'] ?? null;
$existingFilesJsonForTfe = $_buildExistingFilesJson($currentFiles ?? []); $existingFilesJsonForCover = [];
$existingFilesJsonForNoteIntention = [];
$existingFilesJsonForTfe = [];
$existingFilesJsonForAnnexe = [];
include APP_ROOT . '/public/partage/fichiers-fragment.php'; include APP_ROOT . '/templates/partials/form/fichiers-fragment.php';
$_POST = $_savedPost; $_POST = $_savedPost;
unset($_savedPost); unset($_savedPost);
?> ?>
@@ -359,13 +366,15 @@ if ($filesMode === 'add'): ?>
$_POST['website_label'] = $existingWebsiteLabel; $_POST['website_label'] = $existingWebsiteLabel;
$_POST['admin_mode'] = $adminMode ? '1' : '0'; $_POST['admin_mode'] = $adminMode ? '1' : '0';
$_POST['edit_mode'] = '1'; $_POST['edit_mode'] = '1';
$_POST['_cover'] = $currentCover['file_path'] ?? null;
$_POST['has_annexes'] = $formData['has_annexes'] ?? null; $_POST['has_annexes'] = $formData['has_annexes'] ?? null;
// Build existing-files JSON for FilePond edit mode (all files including PeerTube) // Build per-queue-type existing-files JSON for FilePond edit mode
$existingFilesJsonForTfe = $_buildExistingFilesJson($currentFiles ?? []); $existingFilesJsonForCover = $_buildQueueFilesJson($currentFiles ?? [], 'cover');
$existingFilesJsonForNoteIntention = $_buildQueueFilesJson($currentFiles ?? [], 'note_intention');
$existingFilesJsonForTfe = $_buildQueueFilesJson($currentFiles ?? [], 'tfe');
$existingFilesJsonForAnnexe = $_buildQueueFilesJson($currentFiles ?? [], 'annexe');
include APP_ROOT . '/public/partage/fichiers-fragment.php'; include APP_ROOT . '/templates/partials/form/fichiers-fragment.php';
$_POST = $_savedPost; $_POST = $_savedPost;
unset($_savedPost); unset($_savedPost);
?> ?>
@@ -512,12 +521,6 @@ if ($filesMode === 'add'): ?>
<?php endif; ?> <?php endif; ?>
<div class="form-footer admin-form-footer"> <div class="form-footer admin-form-footer">
<fieldset id="upload-progress-wrap" style="display:none;">
<legend><span id="upload-progress-label">Téléversement en cours…</span></legend>
<progress id="upload-progress-bar" value="0" max="100"></progress>
<p id="upload-progress-file" style="font-size:var(--step--1);color:var(--text-secondary);margin:var(--space-2xs) 0 0 0;"></p>
<small style="display:block;color:var(--text-tertiary);margin-top:var(--space-2xs);">Cette opération peut prendre plusieurs minutes selon la taille des fichiers. Ne fermez pas la page.</small>
</fieldset>
<button type="submit" name="go" class="btn btn--primary"><?= $mode === 'edit' ? 'Enregistrer' : 'Soumettre' ?></button> <button type="submit" name="go" class="btn btn--primary"><?= $mode === 'edit' ? 'Enregistrer' : 'Soumettre' ?></button>
<?php if ($mode === 'add' || $mode === 'edit'): ?> <?php if ($mode === 'add' || $mode === 'edit'): ?>
<a href="/admin/" class="btn btn--secondary">Annuler</a> <a href="/admin/" class="btn btn--secondary">Annuler</a>

1143
error.log Normal file

File diff suppressed because it is too large Load Diff