Ajouter la liste d'envies personnelle, son export et la bibliographie par auteur
La liste d'envies vit dans une table séparée (LivreSouhaite) plutôt que dans un statut de plus sur Livre : un livre souhaité n'est pas possédé, et le loger dans Livres l'aurait fait entrer dans le catalogue, les compteurs et les prêts, au prix d'un « et qui n'est pas souhaité » à répéter dans chaque lecture. La portée est personnelle, comme le statut de lecture — mais ici Utilisateur est une vraie frontière : toute lecture filtre dessus. Bibliographie : SRU BnF interrogé par bib.author, vérifié le 2026-08-18. Deux filtres mesurés sur des réponses réelles sont indispensables — le type de document (l'index mêle livres audio, jeux et spectacles) et surtout l'auteur réel de la notice, « all » rapprochant les mots sur l'ensemble des auteurs : « Émile Zola » remonte sinon toute l'œuvre de sa fille Denise Le Blond-Zola. Les rééditions sont regroupées par clé d'œuvre (183 notices Werber -> 51 œuvres). Le rapprochement avec l'étagère se fait par titre, pas par ISBN, qui désigne une édition et non une œuvre ; ses limites sont dites à l'écran. Export en deux formats, tous deux du texte sans dépendance : .txt groupé par auteur pour la librairie, .csv à séparateur point-virgule et BOM pour le tableur. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -738,3 +738,99 @@ body {
|
||||
margin: 0;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
/* ─────────────────────────────────────────────────────────────────────────────
|
||||
Liste d'envies et bibliographie par auteur.
|
||||
Mobile d'abord : une colonne, l'action à droite du texte, rien qui déborde.
|
||||
───────────────────────────────────────────────────────────────────────────── */
|
||||
|
||||
.bloc-souhait-ajout {
|
||||
background: var(--mb-fond-doux);
|
||||
border-radius: 8px;
|
||||
padding: 0.75rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
/* Le champ ISBN et son bouton sur une ligne : le bouton ne doit pas se rétrécir
|
||||
au point de devenir intouchable au pouce quand le champ est large. */
|
||||
.ligne-isbn {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.ligne-isbn .champ-saisie {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.ligne-isbn .bouton {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.actions-export {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.liste-souhaits,
|
||||
.liste-bibliographie {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.carte-souhait,
|
||||
.carte-oeuvre {
|
||||
display: flex;
|
||||
gap: 0.75rem;
|
||||
align-items: flex-start;
|
||||
padding: 0.75rem 0;
|
||||
border-bottom: 1px solid var(--mb-bord);
|
||||
}
|
||||
|
||||
/* Le corps prend la place restante et « min-width: 0 » l'autorise à rétrécir :
|
||||
sans lui, un titre long pousse le bouton hors de l'écran sur mobile. */
|
||||
.carte-souhait .carte-corps,
|
||||
.carte-oeuvre .carte-corps {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.carte-souhait .bouton,
|
||||
.carte-oeuvre .bouton {
|
||||
flex-shrink: 0;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.souhait-note {
|
||||
margin: 0.25rem 0 0;
|
||||
color: var(--mb-texte-doux);
|
||||
font-size: 0.9rem;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* Le grisage des livres déjà possédés : c'est l'information principale de l'écran
|
||||
de bibliographie. L'opacité seule suffirait visuellement, mais elle ne dit rien
|
||||
à un lecteur d'écran — d'où l'étiquette « Déjà chez vous » qui l'accompagne
|
||||
toujours dans le balisage. */
|
||||
.oeuvre-possedee {
|
||||
opacity: 0.55;
|
||||
}
|
||||
|
||||
.oeuvre-possedee .carte-titre {
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.etiquette-possede {
|
||||
background: #e3ece3;
|
||||
color: #2f5d34;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.etiquette-souhaite {
|
||||
background: #e6e6f5;
|
||||
color: #3b3b7a;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user