refactor: supprime le code mort et unifie les routes de tags

Code sans aucun appelant, retiré : DatabaseService.get_revenus_summary
(annoté list[dict] alors qu'il retournait un dict), get_depenses_summary,
get_tag_by_id et storage.file_exists.

Les tags étaient gérés à deux adresses : /api/tags (lecture, appelée par
trois composants) et /api/config/tags (lecture, création, renommage,
appelée par la seule page de configuration). Tout est regroupé sur
/api/tags, dans le module qui leur est dédié ; config.py ne garde que les
settings et ConfigPage est recâblée. Ces routes n'avaient aucun test :
sept en couvrent maintenant la création, le renommage, l'unicité et les
noms vides.

/api/stats disparaît également : sous-ensemble de /api/dashboard/stats,
il n'était appelé par personne.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-26 09:44:28 +02:00
parent ea5bdac18a
commit 49e060e6e4
7 changed files with 122 additions and 177 deletions

View File

@@ -220,7 +220,7 @@ const editInput = ref(null)
async function loadTags() {
try {
const resp = await fetch(`${API}/api/config/tags`)
const resp = await fetch(`${API}/api/tags`)
tags.value = await resp.json()
} catch (e) {
console.error('Failed to load tags', e)
@@ -248,7 +248,7 @@ async function confirmRenameTag(tagId) {
if (!nom) return
tagMessage.value = ''
try {
const resp = await fetch(`${API}/api/config/tags/${tagId}`, {
const resp = await fetch(`${API}/api/tags/${tagId}`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ nom }),
@@ -274,7 +274,7 @@ async function createTag() {
if (!nom) return
tagMessage.value = ''
try {
const resp = await fetch(`${API}/api/config/tags`, {
const resp = await fetch(`${API}/api/tags`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ nom }),