bbd / templates /gere.html
Docfile's picture
Create templates/gere.html
70b0ea6 verified
raw
history blame
14 kB
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Gestion des Données</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap CSS -->
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
background-color: #f8f9fa;
}
.card {
margin-bottom: 20px;
}
.nav-tabs .nav-link.active {
background-color: #ffffff;
border-color: #dee2e6 #dee2e6 #ffffff;
}
.editable {
display: none;
}
.list-group-item {
position: relative;
}
</style>
</head>
<body>
<div class="container mt-4">
<h1 class="mb-4">Gestion des Données</h1>
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert alert-{{ category }} alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="close" data-dismiss="alert" aria-label="Fermer">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% endfor %}
{% endif %}
{% endwith %}
<!-- Onglets de navigation -->
<ul class="nav nav-tabs" id="gestionTab" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="matieres-tab" data-toggle="tab" href="#matieres" role="tab" aria-controls="matieres" aria-selected="true">Matières</a>
</li>
<li class="nav-item">
<a class="nav-link" id="sous-categories-tab" data-toggle="tab" href="#sous-categories" role="tab" aria-controls="sous-categories" aria-selected="false">Sous-Catégories</a>
</li>
<li class="nav-item">
<a class="nav-link" id="textes-tab" data-toggle="tab" href="#textes" role="tab" aria-controls="textes" aria-selected="false">Textes</a>
</li>
<li class="nav-item">
<a class="nav-link" id="ajouter-tab" data-toggle="tab" href="#ajouter" role="tab" aria-controls="ajouter" aria-selected="false">Ajouter</a>
</li>
</ul>
<div class="tab-content" id="gestionTabContent">
<!-- Onglet Matières -->
<div class="tab-pane fade show active" id="matieres" role="tabpanel" aria-labelledby="matieres-tab">
<div class="card mt-3">
<div class="card-header">
Liste des Matières
</div>
<ul class="list-group list-group-flush">
{% for matiere in matieres %}
<li class="list-group-item">
<div class="d-flex justify-content-between align-items-center">
<span class="display-mode">{{ matiere.nom }}</span>
<div>
<button class="btn btn-warning btn-sm edit-button">Modifier</button>
<form method="post" class="d-inline">
<input type="hidden" name="action" value="delete_matiere_{{ matiere.id }}">
<button type="submit" class="btn btn-danger btn-sm" onclick="return confirm('Êtes-vous sûr de vouloir supprimer cette matière ?');">Supprimer</button>
</form>
</div>
</div>
<!-- Formulaire d'édition caché -->
<form method="post" class="editable mt-2">
<input type="hidden" name="action" value="edit_matiere_{{ matiere.id }}">
<div class="input-group">
<input type="text" name="edit_nom_matiere_{{ matiere.id }}" value="{{ matiere.nom }}" class="form-control">
<div class="input-group-append">
<button type="submit" class="btn btn-success">Enregistrer</button>
<button type="button" class="btn btn-secondary cancel-edit">Annuler</button>
</div>
</div>
</form>
</li>
{% else %}
<li class="list-group-item">Aucune matière trouvée.</li>
{% endfor %}
</ul>
</div>
</div>
<!-- Onglet Sous-Catégories -->
<div class="tab-pane fade" id="sous-categories" role="tabpanel" aria-labelledby="sous-categories-tab">
<div class="card mt-3">
<div class="card-header">
Liste des Sous-Catégories
</div>
<ul class="list-group list-group-flush">
{% for sous_categorie in sous_categories %}
<li class="list-group-item">
<div class="d-flex justify-content-between align-items-center">
<span class="display-mode">
{{ sous_categorie.nom }} <small class="text-muted">({{ sous_categorie.matiere.nom }})</small>
</span>
<div>
<button class="btn btn-warning btn-sm edit-button">Modifier</button>
<form method="post" class="d-inline">
<input type="hidden" name="action" value="delete_sous_categorie_{{ sous_categorie.id }}">
<button type="submit" class="btn btn-danger btn-sm" onclick="return confirm('Êtes-vous sûr de vouloir supprimer cette sous-catégorie ?');">Supprimer</button>
</form>
</div>
</div>
<!-- Formulaire d'édition caché -->
<form method="post" class="editable mt-2">
<input type="hidden" name="action" value="edit_sous_categorie_{{ sous_categorie.id }}">
<div class="form-row">
<div class="col-md-6 mb-2">
<input type="text" name="edit_nom_sous_categorie_{{ sous_categorie.id }}" value="{{ sous_categorie.nom }}" class="form-control">
</div>
<div class="col-md-4 mb-2">
<select name="edit_matiere_id_{{ sous_categorie.id }}" class="form-control">
{% for matiere in matieres %}
<option value="{{ matiere.id }}" {% if matiere.id == sous_categorie.matiere_id %}selected{% endif %}>
{{ matiere.nom }}
</option>
{% endfor %}
</select>
</div>
<div class="col-md-2">
<button type="submit" class="btn btn-success btn-block">Enregistrer</button>
</div>
</div>
<button type="button" class="btn btn-secondary btn-sm cancel-edit">Annuler</button>
</form>
</li>
{% else %}
<li class="list-group-item">Aucune sous-catégorie trouvée.</li>
{% endfor %}
</ul>
</div>
</div>
<!-- Onglet Textes -->
<div class="tab-pane fade" id="textes" role="tabpanel" aria-labelledby="textes-tab">
<div class="card mt-3">
<div class="card-header">
Liste des Textes
</div>
<ul class="list-group list-group-flush">
{% for texte in textes %}
<li class="list-group-item">
<div class="d-flex justify-content-between align-items-center">
<span class="display-mode">
<strong>{{ texte.titre }}</strong> <br>
<small class="text-muted">{{ texte.sous_categorie.nom }} ({{ texte.sous_categorie.matiere.nom }})</small>
</span>
<div>
<button class="btn btn-warning btn-sm edit-button">Modifier</button>
<form method="post" class="d-inline">
<input type="hidden" name="action" value="delete_texte_{{ texte.id }}">
<button type="submit" class="btn btn-danger btn-sm" onclick="return confirm('Êtes-vous sûr de vouloir supprimer ce texte ?');">Supprimer</button>
</form>
</div>
</div>
<!-- Formulaire d'édition caché -->
<form method="post" class="editable mt-2">
<input type="hidden" name="action" value="edit_texte_{{ texte.id }}">
<div class="form-group">
<input type="text" name="edit_titre_texte_{{ texte.id }}" value="{{ texte.titre }}" class="form-control mb-2">
</div>
<div class="form-group">
<textarea name="edit_contenu_texte_{{ texte.id }}" class="form-control mb-2" rows="3">{{ texte.contenu }}</textarea>
</div>
<div class="form-row">
<div class="col-md-8 mb-2">
<select name="edit_sous_categorie_id_{{ texte.id }}" class="form-control">
{% for sous_categorie in sous_categories %}
<option value="{{ sous_categorie.id }}" {% if sous_categorie.id == texte.sous_categorie_id %}selected{% endif %}>
{{ sous_categorie.nom }} ({{ sous_categorie.matiere.nom }})
</option>
{% endfor %}
</select>
</div>
<div class="col-md-4">
<button type="submit" class="btn btn-success btn-block">Enregistrer</button>
</div>
</div>
<button type="button" class="btn btn-secondary btn-sm cancel-edit">Annuler</button>
</form>
</li>
{% else %}
<li class="list-group-item">Aucun texte trouvé.</li>
{% endfor %}
</ul>
</div>
</div>
<!-- Onglet Ajouter -->
<div class="tab-pane fade" id="ajouter" role="tabpanel" aria-labelledby="ajouter-tab">
<!-- Formulaire d'ajout d'une matière -->
<div class="card mt-3">
<div class="card-header">Ajouter une Matière</div>
<div class="card-body">
<form method="post">
<input type="hidden" name="action" value="add_matiere">
<div class="form-group">
<label for="nom_matiere">Nom de la Matière</label>
<input type="text" id="nom_matiere" name="nom_matiere" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary">Ajouter</button>
</form>
</div>
</div>
<!-- Formulaire d'ajout d'une sous-catégorie -->
<div class="card mt-3">
<div class="card-header">Ajouter une Sous-Catégorie</div>
<div class="card-body">
<form method="post">
<input type="hidden" name="action" value="add_sous_categorie">
<div class="form-group">
<label for="nom_sous_categorie">Nom de la Sous-Catégorie</label>
<input type="text" id="nom_sous_categorie" name="nom_sous_categorie" class="form-control" required>
</div>
<div class="form-group">
<label for="matiere_id">Matière associée</label>
<select id="matiere_id" name="matiere_id" class="form-control" required>
{% for matiere in matieres %}
<option value="{{ matiere.id }}">{{ matiere.nom }}</option>
{% endfor %}
</select>
</div>
<button type="submit" class="btn btn-primary">Ajouter</button>
</form>
</div>
</div>
<!-- Formulaire d'ajout d'un texte -->
<div class="card mt-3">
<div class="card-header">Ajouter un Texte</div>
<div class="card-body">
<form method="post">
<input type="hidden" name="action" value="add_texte">
<div class="form-group">
<label for="titre_texte">Titre du Texte</label>
<input type="text" id="titre_texte" name="titre_texte" class="form-control" required>
</div>
<div class="form-group">
<label for="contenu_texte">Contenu du Texte</label>
<textarea id="contenu_texte" name="contenu_texte" class="form-control" rows="5" required></textarea>
</div>
<div class="form-group">
<label for="sous_categorie_id">Sous-Catégorie</label>
<select id="sous_categorie_id" name="sous_categorie_id" class="form-control" required>
{% for sous_categorie in sous_categories %}
<option value="{{ sous_categorie.id }}">{{ sous_categorie.nom }} ({{ sous_categorie.matiere.nom }})</option>
{% endfor %}
</select>
</div>
<button type="submit" class="btn btn-primary">Ajouter</button>
</form>
</div>
</div>
</div>
</div><!-- Fin du tab-content -->
</div><!-- Fin du container -->
<!-- jQuery, Popper et Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script>
$(document).ready(function() {
// Afficher le formulaire d'édition au clic sur "Modifier"
$('.edit-button').click(function() {
$(this).closest('li').find('.editable').slideDown();
$(this).closest('li').find('.display-mode').hide();
$(this).hide();
});
// Annuler l'édition
$('.cancel-edit').click(function() {
$(this).closest('form').slideUp();
$(this).closest('li').find('.display-mode').show();
$(this).closest('li').find('.edit-button').show();
});
});
</script>
</body>
</html>