improved accessibility

This commit is contained in:
yann 2025-05-07 11:38:33 +02:00
parent f14e945bf2
commit 31b4cbd81e
19 changed files with 317 additions and 306 deletions

View File

@ -25,7 +25,6 @@ import reviews.views
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('home/', reviews.views.home, name='home'),
path('', LoginView.as_view( path('', LoginView.as_view(
template_name='authentication/login.html', template_name='authentication/login.html',
redirect_authenticated_user=True), name='login'), redirect_authenticated_user=True), name='login'),

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -2,49 +2,56 @@
{% load reviews_extras %} {% load reviews_extras %}
{% block content %} {% block content %}
<main>
<div class="container">
<div class="container"> <section>
<div class="row" id="atitle">
<div class="row"> <div class="d-flex justify-content-center mt-5">
<div class="d-flex justify-content-center mt-5"> <h2> Bienvenue {{ request.user }}</h2>
<h2> Bienvenue {{ request.user }}</h2>
</div>
</div>
<div class="row d-flex justify-content-center mt-4 mb-3">
<div class="col-3 d-flex justify-content-center">
<a href="{% url 'ticket-add' %}" type="button" class="btn btn-primary">Demander une critique</a>
</div>
<div class="col-3 d-flex justify-content-center">
<a href="{% url 'review-add' %}" type="button" class="btn btn-primary">Créer une critique</a>
</div>
</div>
<div class="row">
{% for post in posts %}
{% if post.content_type == 'TICKET' %}
<div class="row border border-2 border-secondary-subtle my-3">
{% include 'reviews/ticket_detail.html' with ticket=post %}
<div class="col-6 d-flex justify-content-end mb-2">
{% if not post.review %}
<div class="col-4 align-self-end">
<a href="{% url 'review-ticket' post.id %}" type="button" class="btn btn-primary">Créer une critique</a>
</div>
{% else %}
<div class="col-6 align-self-end">
<i>{% display_owner post.review.user %} créé une critique, le {{ post.time_created|date:"d M Y"}}</i>
</div>
{% endif %}
</div>
</div> </div>
{% elif post.content_type == 'REVIEW' %} </div>
<div class="row border border-2 border-secondary-subtle my-3"> </section>
{% include 'reviews/review_detail.html' with review=post %}
</div>
{% endif %}
{% endfor %}
</div>
</div> <section>
<div class="row d-flex justify-content-center mt-4 mb-3">
<div class="col-3 d-flex justify-content-center">
<a href="{% url 'ticket-add' %}" type="button" class="btn btn-primary">Demander une critique</a>
</div>
<div class="col-3 d-flex justify-content-center">
<a href="{% url 'review-add' %}" type="button" class="btn btn-primary">Créer une critique</a>
</div>
</div>
</section>
<section>
<div class="row" id="flux">
{% for post in posts %}
{% if post.content_type == 'TICKET' %}
<div class="row border border-2 border-secondary-subtle my-3">
{% include 'reviews/ticket_detail.html' with ticket=post %}
<div class="col-6 d-flex justify-content-end mb-2">
{% if not post.review %}
<div class="col-4 align-self-end">
<a href="{% url 'review-ticket' post.id %}" type="button" class="btn btn-primary">Créer une critique</a>
</div>
{% else %}
<div class="col-6 align-self-end">
<i>{% display_owner post.review.user %} créé une critique, le {{ post.time_created|date:"d M Y"}}</i>
</div>
{% endif %}
</div>
</div>
{% elif post.content_type == 'REVIEW' %}
<div class="row border border-2 border-secondary-subtle my-3">
{% include 'reviews/review_detail.html' with review=post %}
</div>
{% endif %}
{% endfor %}
</div>
</section>
</div>
</main>
{% endblock %} {% endblock %}

View File

@ -1,33 +0,0 @@
{% extends 'base.html' %}
{% block content %}
<div class="container">
<div class="row">
<div class="d-flex justify-content-center mt-5">
<h2> Bienvenue {{ request.user }}</h2>
</div>
</div>
<div class="row d-flex justify-content-center mt-4 mb-3">
<div class="col-3 d-flex justify-content-center">
<a href="{% url 'ticket-add' %}" type="button" class="btn btn-primary">Demander une critique</a>
</div>
<div class="col-3 d-flex justify-content-center">
<a href="{% url 'review-add' %}" type="button" class="btn btn-primary">Créer une critique</a>
</div>
</div>
<div class="row">
{% for ticket in tickets %}
{% include 'reviews/ticket_detail.html' %}
<div class="col-6 d-flex justify-content-end mb-2">
{% if not ticket.review %}
<div class="col-4 align-self-end">
<a href="{% url 'review-ticket' ticket.id %}" type="button" class="btn btn-primary">Créer une critique</a>
</div>
{% endif %}
</div>
</div>
{% endfor %}
</div>
</div>
{% endblock %}

View File

@ -1,42 +1,47 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
<div class="container"> <main>
<div class="container">
<div class="row"> <section>
<div class="d-flex justify-content-center mt-5"> <div class="row">
<h2> Posts </h2> <div class="d-flex justify-content-center mt-5">
</div> <h2> Posts </h2>
</div>
{% for ticket in tickets %}
<div class="row border border-2 border-secondary-subtle my-3">
{% include 'reviews/ticket_detail.html' %}
<div class="col d-flex justify-content-end mb-2">
<div class="d-flex align-self-end m-2">
<a href="{% url 'ticket-update' ticket.id %}" type="button" class="btn btn-primary">Modifier</a>
</div>
<div class="d-flex align-self-end m-2">
<a href="{% url 'ticket-delete' ticket.id %}" type="button" class="btn btn-danger">Supprimer</a>
</div>
</div>
</div>
{% endfor %}
{% for review in reviews %}
<div class="row border border-2 border-secondary-subtle my-3">
{% include 'reviews/review_detail.html' %}
<div class="col d-flex justify-content-end mb-2">
<div class="d-flex align-self-end m-2">
<a href="{% url 'review-update' review.id %}" type="button" class="btn btn-primary">Modifier</a>
</div>
<div class="d-flex align-self-end m-2">
<a href="{% url 'review-delete' review.id %}" type="button" class="btn btn-danger">Supprimer</a>
</div> </div>
</div> </div>
</section>
<section>
{% for ticket in tickets %}
<div class="row border border-2 border-secondary-subtle my-3">
{% include 'reviews/ticket_detail.html' %}
<div class="col d-flex justify-content-end mb-2">
<div class="d-flex align-self-end m-2">
<a href="{% url 'ticket-update' ticket.id %}" type="button" class="btn btn-primary">Modifier</a>
</div>
<div class="d-flex align-self-end m-2">
<a href="{% url 'ticket-delete' ticket.id %}" type="button" class="btn btn-danger">Supprimer</a>
</div>
</div>
</div>
{% endfor %}
</section>
<section>
{% for review in reviews %}
<div class="row border border-2 border-secondary-subtle my-3">
{% include 'reviews/review_detail.html' %}
<div class="col d-flex justify-content-end mb-2">
<div class="d-flex align-self-end m-2">
<a href="{% url 'review-update' review.id %}" type="button" class="btn btn-primary">Modifier</a>
</div>
<div class="d-flex align-self-end m-2">
<a href="{% url 'review-delete' review.id %}" type="button" class="btn btn-danger">Supprimer</a>
</div>
</div>
</div>
{% endfor %}
</section>
</div> </div>
{% endfor %} </main>
</div>
{% endblock %} {% endblock %}

View File

@ -1,31 +1,35 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
<main>
<div class="container"> <div class="container">
<div class="row mt-3"> <div class="row mt-5">
<div class="col d-flex justify-content-center"> <div class="col d-flex justify-content-center">
<h2>Créer une critique</h2> <h2>Créer une critique</h2>
</div>
</div>
<div class="row border border-3 border-secondary-subtle mb-3 justify-content-center">
<h3> Livre/Article </h3>
<div class="col-4 mb-2">
<form method="post" enctype="multipart/form-data">
{% include 'reviews/ticket_form.html' %}
{% csrf_token %}
</div> </div>
</div>
<div class="row border border-3 border-secondary-subtle justify-content-center">
<h3>Critique</h3>
<div class="col-4 mb-2">
{% include 'reviews/review_form.html' %}
<div class="d-flex justify-content-end">
<button type="submit" class="btn btn-primary"> Envoyer </button>
</div>
</form>
</div> </div>
<section>
<div class="row border border-3 border-secondary-subtle justify-content-center mt-3 mb-1">
<h3> Livre/Article </h3>
<div class="col-4 mb-2">
<form method="post" enctype="multipart/form-data">
{% include 'reviews/ticket_form.html' %}
{% csrf_token %}
</div>
</div>
</section>
<section>
<div class="row border border-3 border-secondary-subtle justify-content-center">
<h3>Critique</h3>
<div class="col-4 mb-4">
{% include 'reviews/review_form.html' %}
<div class="d-flex justify-content-end">
<button type="submit" class="btn btn-primary"> Envoyer </button>
</div>
</form>
</div>
</div>
</section>
</div> </div>
</div> </main>
{% endblock %} {% endblock %}

View File

@ -1,8 +1,8 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
<main>
<div class="container text-center" style="height: 100vh"> <div class="container text-center" style="height: 100vh">
<div class="row h-100 align-items-center"> <div class="row h-100 align-items-center">
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
@ -10,7 +10,8 @@
<button type="submit" class="btn btn-warning">Supprimer</button> <button type="submit" class="btn btn-warning">Supprimer</button>
</form> </form>
</div> </div>
</div> </div>
</main>
{% endblock %} {% endblock %}

View File

@ -1,19 +1,25 @@
{% load reviews_extras %} {% load reviews_extras %}
<div class="row"> <main>
<div class="col-8 mb-4"> <section>
{% display_owner review.user %} publié une critique <div class="row" id="owner_date">
</div> <div class="col-8 mb-4">
{% display_owner review.user %} publié une critique
<div class="col-4 d-flex justify-content-end"> </div>
{{ review.time_created }} <div class="col-4 d-flex justify-content-end">
</div> {{ review.time_created }}
</div> </div>
</div>
<div class="row d-flex justify-content-center"> </section>
<span style="font-size: 22px" class="mb-3">{{ review.headline }} - {{ review.rating|rating_stars }}</span> <section>
<p> {{ review.comment }} </p> <div class="row d-flex justify-content-center">
<div class="col-10 border border-2 border-secondary-subtle mb-3"> <span style="font-size: 22px" class="mb-3">
{% include 'reviews/ticket_detail.html' with ticket=review.ticket %} {{ review.headline }} - {{ review.rating|rating_stars }}
</div> </span>
</div> <p> {{ review.comment }} </p>
<div class="col-10 border border-2 border-secondary-subtle mb-3">
{% include 'reviews/ticket_detail.html' with ticket=review.ticket %}
</div>
</div>
</section>
</main>

View File

@ -1,35 +1,37 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
<main>
<div class="container"> <div class="container">
<div class="row mt-3"> <div class="row mt-3">
<div class="col d-flex justify-content-center"> <div class="col d-flex justify-content-center">
<h2>Créer une critique</h2> <h2>Créer une critique</h2>
</div> </div>
</div> </div>
<div class="row border border-3 border-secondary-subtle"> <section>
<p>Vous êtes en train de répondre à </p> <div class="row border border-3 border-secondary-subtle">
<div class="col d-flex justify-content-center mb-2"> <p>Vous êtes en train de répondre à </p>
<div class="row border border-2 border-secondary-subtle my-3"> <div class="col d-flex justify-content-center mb-2">
{% include 'reviews/ticket_detail.html' %} <div class="row border border-2 border-secondary-subtle my-3">
</div> {% include 'reviews/ticket_detail.html' %}
</div> </div>
</div> </div>
</div>
<div class="row border border-3 border-secondary-subtle"> </section>
<h3>Critique</h3> <section>
<div class="d-flex justify-content-center mb-2"> <div class="row border border-3 border-secondary-subtle">
<h3>Critique</h3>
<div class="d-flex justify-content-center mb-2">
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{% include 'reviews/review_form.html' %} {% include 'reviews/review_form.html' %}
<div class="d-flex justify-content-end">
<div class="d-flex justify-content-end"> <button type="submit" class="btn btn-primary"> Envoyer </button>
<button type="submit" class="btn btn-primary"> Envoyer </button> </div>
</div>
<form> <form>
</div>
</div> </div>
</div> </section>
</div> </div>
</main>
{% endblock %} {% endblock %}

View File

@ -2,30 +2,27 @@
{% block content %} {% block content %}
<div class="container"> <main>
<div class="row my-4"> <div class="container">
<div class="d-flex justify-content-center"> <div class="row mt-5">
<h2>Modifier votre critique</h2> <div class="col d-flex justify-content-center">
</div> <h2>Modifier votre critique</h2>
</div>
<div class="row border border-3">
<p>Vous êtes en train de poster en réponse à</p>
<div class="row d-flex justify-content-center">
<div class="col-10 border border-2 border-secondary-subtle mb-3">
{% include 'reviews/ticket_detail.html' with ticket=review.ticket %}
</div> </div>
</div> </div>
</div> <section>
<div class="row border border-3 mt-3 mb-1">
<div class="row border border-3 p-2"> <h3>Vous êtes en train de poster en réponse à</h3>
<div class="col-3"> <div class="row d-flex justify-content-center">
<p>Critique</p> <div class="col-10 border border-2 border-secondary-subtle mb-3">
</div> {% include 'reviews/ticket_detail.html' with ticket=review.ticket %}
</div>
<div class="d-flex justify-content-center"> </div>
<div class="col-4 mb-2"> </div>
</section>
<section>
<div class="row border border-3 border-secondary-subtle justify-content-center mb-5 pb-5">
<h3>Critique</h3>
<div class="col-4 mb-4">
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{% include 'reviews/review_form.html' %} {% include 'reviews/review_form.html' %}
@ -35,9 +32,9 @@
</form> </form>
</div> </div>
</div> </div>
</section>
</div> </div>
</main>
</div>
{% endblock %} {% endblock %}

View File

@ -2,54 +2,59 @@
{% block content %} {% block content %}
<div class="container text-center"> <main>
<div class="row d-flex justify-content-center"> <div class="container text-center">
<div class="d-flex justify-content-center my-5"> <section>
<h2> Suivre d'autres utilisateurs </h2> <div class="row d-flex justify-content-center">
</div> <div class="d-flex justify-content-center my-5">
<div class="col-6"> <h2> Suivre d'autres utilisateurs </h2>
<form method="post"> </div>
{% csrf_token %} <div class="col-6">
<div class="form-group"> <form method="post">
{{ user_form }} {% csrf_token %}
<div class="form-group">
{{ user_form }}
</div>
</div>
<div class="col-2">
<button type="submit" class="btn btn-primary">Envoyer</button>
</div>
</form>
</div>
</div> </div>
</div> </section>
<div class="col-2">
<button type="submit" class="btn btn-primary">Envoyer</button> <section>
</div> <div class="row d-flex justify-content-end">
</form> <div class="d-flex justify-content-center mt-5">
</div> <h2> Abonnements </h2>
</div>
{% for user in followed %}
<div class="col-6 border border-2 m-1">
{{ user.followed_user }}
</div>
<div class="col-3 m-1">
<a href="{% url 'unsubscribe' user.followed_user.id %}" type="button" class="btn btn-primary">Se désabonner</a>
</div>
{% endfor %}
</div>
</section>
<section>
<div class="row d-flex justify-content-center">
<div class="d-flex justify-content-center mt-5">
<h2> Abonnés </h2>
</div>
{% for user in following %}
<div class="col-6 border border-2 m-1">
{{ user.user }}
</div>
{% endfor %}
</div>
</div>
</section>
</div> </div>
</main>
<div class="row d-flex justify-content-end">
<div class="d-flex justify-content-center mt-5">
<h2> Abonnements </h2>
</div>
{% for user in followed %}
<div class="col-6 border border-2 m-1">
{{ user.followed_user }}
</div>
<div class="col-3 m-1">
<a href="{% url 'unsubscribe' user.followed_user.id %}" type="button" class="btn btn-primary">Se désabonner</a>
</div>
{% endfor %}
</div>
<div class="row d-flex justify-content-center">
<div class="d-flex justify-content-center mt-5">
<h2> Abonnés </h2>
</div>
{% for user in following %}
<div class="col-6 border border-2 m-1">
{{ user.user }}
</div>
{% endfor %}
</div>
</div>
</div>
{% endblock %} {% endblock %}

View File

@ -1,24 +1,28 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
<main>
<div class="container"> <div class="container">
<div class="row d-flex justify-content-center"> <div class="row mt-5">
<div class="col-md-auto form-group mt-5"> <div class="col d-flex justify-content-center">
<h2> Créer un ticket </h2> <h2> Créer un ticket </h2>
</div>
</div> </div>
<div class="d-flex justify-content-center border border-3 border-secondary-subtle mt-5"> <section>
<div class="col-4 mt-5"> <div class="row border border-3 border-secondary-subtle justify-content-center mt-3">
<form method="post" enctype="multipart/form-data"> <h3> Livre/Article </h3>
{% csrf_token %} <div class="col-4 mb-4">
{{ ticket_form.as_p }} <form method="post" enctype="multipart/form-data">
<div class="d-flex justify-content-end mb-4"> {% csrf_token %}
<button type="submit" class="btn btn-primary"> Envoyer </button> {% include 'reviews/ticket_form.html' %}
</div> <div class="d-flex justify-content-end">
</form> <button type="submit" class="btn btn-primary"> Envoyer </button>
</div>
</form>
</div>
</div>
</section>
</div> </div>
</div> </div>
</div> </main>
</div>
{% endblock %} {% endblock %}

View File

@ -1,8 +1,8 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
<main>
<div class="container text-center" style="height: 100vh"> <div class="container text-center" style="height: 100vh">
<div class="row h-100 align-items-center"> <div class="row h-100 align-items-center">
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
@ -10,7 +10,8 @@
<button type="submit" class="btn btn-warning">Supprimer</button> <button type="submit" class="btn btn-warning">Supprimer</button>
</form> </form>
</div> </div>
</div> </div>
</main>
{% endblock %} {% endblock %}

View File

@ -1,17 +1,21 @@
{% load reviews_extras %} {% load reviews_extras %}
<div class="row"> <main>
<div class="col-8 mb-4"> <section>
{% display_owner ticket.user %} publié une demande <div class="row">
</div> <div class="col-8 mb-4">
<div class="col-4 d-flex justify-content-end"> {% display_owner ticket.user %} publié une demande
{{ ticket.time_created }} </div>
</div> <div class="col-4 d-flex justify-content-end">
</div> {{ ticket.time_created }}
</div>
<p><strong> {{ ticket.title }} </strong></p> </div>
<p> {{ ticket.desc }} </p> </section>
<section>
<div class="col-3 mb-2"> <p><strong> {{ ticket.title }} </strong></p>
<img src="{{ ticket.image.url }}" class="img" alt="Couverture de {{ ticket.title }}"> <p> {{ ticket.desc }} </p>
</div> <div class="col-3 mb-2">
<img src="{{ ticket.image.url }}" class="img" alt="Couverture de {{ ticket.title }}">
</div>
</section>
</main>

View File

@ -1,16 +1,30 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
<main>
<div class="container"> <div class="container">
<div class="row d-flex align-items-center"> <div class="row mt-5">
<h2> Modifier la demande {{ ticket.title }}</h2> <div class="col d-flex justify-content-center">
<h2> Modifier la demande "{{ ticket.title }}"</h2>
</div>
</div>
<section>
<div class="row border border-3 border-secondary-subtle justify-content-center mt-3">
<h3> Livre/Article </h3>
<div class="col-4 mb-4">
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{% include 'reviews/ticket_form.html' %}
<div class="d-flex justify-content-end">
<button type="submit" class="btn btn-primary"> Envoyer </button>
</div>
</form>
</div>
</div>
</section>
</div>
</div> </div>
<div class="row"> </main>
{% include 'reviews/ticket_form.html' %}
</div>
</div>
{% endblock %} {% endblock %}

View File

@ -1,8 +1,8 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
<main>
<div class="container text-center" style="height: 100vh"> <div class="container text-center" style="height: 100vh">
<div class="row h-100 align-items-center"> <div class="row h-100 align-items-center">
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
@ -10,5 +10,6 @@
<button type="submit" class="btn btn-warning">Confirmer</button> <button type="submit" class="btn btn-warning">Confirmer</button>
</form> </form>
</div> </div>
</div> </div>
</main>
{% endblock %} {% endblock %}

View File

@ -7,14 +7,6 @@ from reviews.forms import TicketForm, ReviewForm, ToFollowForm
from itertools import chain from itertools import chain
@login_required
def home(request):
tickets = Ticket.objects.all()
return render(request,
'reviews/home.html',
{'tickets': tickets})
@login_required @login_required
def flux(request): def flux(request):
""" """
@ -67,6 +59,7 @@ def ticket(request, ticket_id):
'reviews/ticket.html', 'reviews/ticket.html',
{'ticket': ticket}) {'ticket': ticket})
@login_required @login_required
def create_ticket(request): def create_ticket(request):
""" """
@ -107,7 +100,7 @@ def update_ticket(request, ticket_id):
return render(request, return render(request,
'reviews/ticket_update.html', 'reviews/ticket_update.html',
{'ticket_form': ticket_form}) {'ticket_form': ticket_form, 'ticket': ticket})
@login_required @login_required

View File

@ -26,7 +26,8 @@
</header> </header>
{% block content %}{% endblock %} {% block content %}{% endblock %}
<footer>
</footer>
</body> </body>
</html> </html>