Admin: Gestion des listes

This commit is contained in:
William Bouzourène 2024-12-31 16:19:19 +01:00
parent c54cad7738
commit 151a199bc5
Signed by: bouzoure
SSH key fingerprint: SHA256:19MbXpLua4rUtk8tunMesD8KUKb91LXLHg8E/qTooww
13 changed files with 605 additions and 29 deletions

50
views/admin.html Normal file
View file

@ -0,0 +1,50 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item active">Administration</li>
</ol>
</nav>
<hr>
</div>
<div class="row">
<div class="col-md-6">
<a class="dashboard-tile" href="/admin/sections">
<div class="alert alert-primary">
<i class="feather me-2" data-feather="home"></i>
Gestion des <b>sections</b>
</div>
</a>
</div>
<div class="col-md-6">
<a class="dashboard-tile" href="/admin/lists">
<div class="alert alert-primary">
<i class="feather me-2" data-feather="list"></i>
Gestion des <b>listes</b>
</div>
</a>
</div>
<div class="col-md-6">
<a class="dashboard-tile" href="/admin/fields">
<div class="alert alert-primary">
<i class="feather me-2" data-feather="database"></i>
Gestion des <b>champs supplémentaires</b>
</div>
</a>
</div>
<div class="col-md-6">
<a class="dashboard-tile" href="/admin/users">
<div class="alert alert-primary">
<i class="feather me-2" data-feather="users"></i>
Gestion des <b>utilisateurs</b>
</div>
</a>
</div>
</div>
</div>
{% endblock %}

View file

@ -2,8 +2,14 @@
{% block main %}
<div class="container mt-4">
<h1>Tableau de bord</h1>
<hr>
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item active">Accueil</li>
</ol>
</nav>
<hr>
</div>
<div class="row">
<div class="col-md-6">
@ -22,6 +28,25 @@
</div>
</a>
</div>
<div class="col-md-6">
<a class="dashboard-tile" href="/export">
<div class="alert alert-primary">
<i class="feather me-2" data-feather="download"></i>
<b>Exporter</b> les données
</div>
</a>
</div>
{% if Globals.UserIsAdmin %}
<div class="col-md-6">
<a class="dashboard-tile" href="/admin">
<div class="alert alert-primary">
<i class="feather me-2" data-feather="settings"></i>
<b>Administration</b> de l'application
</div>
</a>
</div>
{% endif %}
</div>
</div>
{% endblock %}

View file

@ -28,11 +28,7 @@
<script src="/static/jquery/jquery.min.js"></script>
<script src="/static/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="/static/feather/dist/feather.min.js"></script>
<script>
$(document).ready(function() {
feather.replace();
});
</script>
<script src="/static/functions.js"></script>
{% block javascript %}{% endblock %}
</body>
</html>

98
views/list.html Normal file
View file

@ -0,0 +1,98 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/lists">Listes</a></li>
<li class="breadcrumb-item active">{{ List.Name }}</li>
</ol>
</nav>
<hr>
</div>
<div class="mb-3">
<b>Nom</b><br>
{{ List.Name }}
</div>
<div class="mb-3">
<b>Liste à choix multiples</b><br>
{% if List.Multi %}Oui{% else %}Non{% endif %}
</div>
<div class="mt-3">
<a class="btn btn-md btn-primary" href="/admin/lists/{{ List.ID }}/edit">
<i class="feather" data-feather="edit-2"></i>
Modifier
</a>
<form
action="/admin/lists/{{ List.ID }}/delete"
method="post"
class="d-inline p-0"
>
<button class="btn btn-md btn-danger areyousure" type="submit">
<i class="feather" data-feather="trash-2"></i>
Supprimer
</button>
</form>
</div>
<hr>
{% if ListItems %}
<table class="table">
<thead>
<tr>
<th>Valeur</th>
<th>Par défaut</th>
<th></th>
</tr>
</thead>
<tbody>
{% for Item in ListItems %}
<tr>
<td>
<a href="/admin/lists/{{ List.ID }}/items/{{ Item.ID }}">
{{ Item.Value }}
</a>
</td>
<td>
{% if Item.Default %}
Oui
{% else %}
Non
{% endif %}
</td>
<td>
<form
action="/admin/lists/{{ List.ID }}/items/{{ Item.ID }}/delete"
method="post"
class="d-inline p-0"
>
<button class="btn btn-md btn-danger areyousure" type="submit">
<i class="feather" data-feather="trash-2"></i>
Supprimer
</button>
</form>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<div>
Pas encore d'éléments dans cette liste.
</div>
{% endif %}
<div class="mt-3">
<a class="btn btn-md btn-primary" href="/admin/lists/{{ List.ID }}/items/add">
<i class="feather" data-feather="plus"></i>
Ajouter
</a>
</div>
</div>
{% endblock %}

View file

@ -2,8 +2,23 @@
{% block main %}
<div class="container mt-4">
<h1>Ajouter un liste</h1>
<hr>
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/lists">Listes</a></li>
{% if List.ID %}
<li class="breadcrumb-item"><a href="/admin/lists/{{ List.ID }}">{{ List.Name }}</a></li>
<li class="breadcrumb-item active">Modifier</li>
{% else %}
<li class="breadcrumb-item active">Ajouter</li>
{% endif %}
</ol>
</nav>
<hr>
</div>
{% if Errors %}
<div class="alert alert-danger">

71
views/listitem_form.html Normal file
View file

@ -0,0 +1,71 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/lists">Listes</a></li>
<li class="breadcrumb-item"><a href="/admin/lists/{{ List.ID }}">{{ List.Name }}</a></li>
{% if ListItem.ID %}
<li class="breadcrumb-item active">Modifier élément</li>
{% else %}
<li class="breadcrumb-item active">Ajouter élément</li>
{% endif %}
</ol>
</nav>
<hr>
</div>
{% if Errors %}
<div class="alert alert-danger">
<ul class="m-0">
{% for Error in Errors %}
<li>{{ Error }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
<form id="list" method="post">
<div class="mb-3">
<label for="value" class="form-label">
Valeur
</label>
<input
id="value"
class="form-control"
type="text"
name="value"
required
value="{{ ListItem.Value }}"
>
</div>
<div class="mb-3">
<input
type="checkbox"
class="form-check-input me-2"
id="default"
name="default"
{% if ListItem.Default %}checked{% endif %}
>
<label for="default" class="form-label">
Valeur sélectionnée par défaut
</label>
</div>
<div class="mt-3">
<button class="btn btn-primary" type="submit">
<i class="me-1" data-feather="save"></i>
Enregistrer
</button>
</div>
</form>
</div>
{% endblock %}

View file

@ -2,23 +2,41 @@
{% block main %}
<div class="container mt-4">
<h1>Listes</h1>
<hr>
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item active">Listes</li>
</ol>
</nav>
<hr>
</div>
{% if Lists %}
<div class="table-responsive">
<table class="table table-borderless table-hover">
<table class="table">
<thead>
<tr>
<th>Nom</th>
<th>Choix multiples</th>
</tr>
</thead>
<tbody>
{% for List in Lists %}
<tr>
<td
class="item-click"
onclick="window.location.href='/admin/lists/{{ List.ID }}'"
>
<td>
<a href="/admin/lists/{{ List.ID }}">
{{ List.Name }}
</a>
</td>
<td>
{% if List.Multi %}
Oui
{% else %}
Non
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>

View file

@ -67,6 +67,11 @@
<i class="feather me-2" data-feather="database"></i>Champs supplémentaires
</a>
</li>
<li>
<a class="dropdown-item" href="/admin/users">
<i class="feather me-2" data-feather="users"></i>Utilisateurs
</a>
</li>
</ul>
</li>
</ul>