Implement login

This commit is contained in:
Gabriel Augendre 2018-03-04 18:45:31 +01:00
parent e8736e5303
commit 214bbf4299
No known key found for this signature in database
GPG key ID: F360212F958357D4
3 changed files with 43 additions and 11 deletions

View file

@ -0,0 +1,30 @@
{% extends 'gym/base.html' %}
{% load bootstrap4 %}
{% block content %}
<h1>{% block title %}Connexion{% endblock %}</h1>
{% if next %}
{% if user.is_authenticated %}
<p>Votre compte n'a pas accès à cette page. Pour continuer,
merci de vous connecter avec un compte disposant
des autorisations nécessaires.</p>
{% else %}
<p>Merci de vous connecter pour accéder à cette page.</p>
{% endif %}
{% endif %}
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Connexion</button>
{% endbuttons %}
<input type="hidden" name="next" value="{{ next }}"/>
</form>
{# Assumes you setup the password_reset view in your URLconf #}
{# <p><a href="{% url 'password_reset' %}">Mot de passe oublié ?</a></p>#}
{% endblock %}

View file

@ -1,5 +1,6 @@
import datetime import datetime
from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from django.urls import reverse from django.urls import reverse
from django.views import generic from django.views import generic
@ -7,7 +8,7 @@ from django.views import generic
from gym.models import Room, Equipment, Setting, Session, Round, TheoreticalMax from gym.models import Room, Equipment, Setting, Session, Round, TheoreticalMax
class RoomListView(generic.ListView): class RoomListView(LoginRequiredMixin, generic.ListView):
queryset = Room.objects.all().order_by('name') queryset = Room.objects.all().order_by('name')
context_object_name = 'rooms' context_object_name = 'rooms'
template_name = 'gym/rooms.html' template_name = 'gym/rooms.html'
@ -19,7 +20,7 @@ class RoomListView(generic.ListView):
return super().dispatch(request, *args, **kwargs) return super().dispatch(request, *args, **kwargs)
class RoomDetailView(generic.DetailView): class RoomDetailView(LoginRequiredMixin, generic.DetailView):
model = Room model = Room
context_object_name = 'room' context_object_name = 'room'
template_name = 'gym/room.html' template_name = 'gym/room.html'
@ -36,7 +37,7 @@ class RoomDetailView(generic.DetailView):
return context return context
class EquipmentDetailView(generic.DetailView): class EquipmentDetailView(LoginRequiredMixin, generic.DetailView):
model = Equipment model = Equipment
context_object_name = 'equipment' context_object_name = 'equipment'
template_name = 'gym/equipment.html' template_name = 'gym/equipment.html'
@ -56,7 +57,7 @@ class EquipmentDetailView(generic.DetailView):
return context return context
class EquipmentCreateView(generic.CreateView): class EquipmentCreateView(LoginRequiredMixin, generic.CreateView):
model = Equipment model = Equipment
fields = ['room', 'name'] fields = ['room', 'name']
template_name = 'gym/equipment_edit.html' template_name = 'gym/equipment_edit.html'
@ -84,7 +85,7 @@ class EquipmentCreateView(generic.CreateView):
return initial return initial
class SettingCreateView(generic.CreateView): class SettingCreateView(LoginRequiredMixin, generic.CreateView):
model = Setting model = Setting
fields = ['equipment', 'name', 'value'] fields = ['equipment', 'name', 'value']
template_name = 'gym/setting_edit.html' template_name = 'gym/setting_edit.html'
@ -113,7 +114,7 @@ class SettingCreateView(generic.CreateView):
return reverse('equipment-detail', kwargs={'pk': self.object.equipment.pk}) return reverse('equipment-detail', kwargs={'pk': self.object.equipment.pk})
class SettingUpdateView(generic.UpdateView): class SettingUpdateView(LoginRequiredMixin, generic.UpdateView):
model = Setting model = Setting
fields = ['equipment', 'name', 'value'] fields = ['equipment', 'name', 'value']
template_name = 'gym/setting_edit.html' template_name = 'gym/setting_edit.html'
@ -129,7 +130,7 @@ class SettingUpdateView(generic.UpdateView):
return reverse('equipment-detail', kwargs={'pk': self.object.equipment.pk}) return reverse('equipment-detail', kwargs={'pk': self.object.equipment.pk})
class SettingDeleteView(generic.DeleteView): class SettingDeleteView(LoginRequiredMixin, generic.DeleteView):
model = Setting model = Setting
template_name = 'gym/setting_confirm_delete.html' template_name = 'gym/setting_confirm_delete.html'
context_object_name = 'setting' context_object_name = 'setting'
@ -138,7 +139,7 @@ class SettingDeleteView(generic.DeleteView):
return reverse('equipment-detail', kwargs={'pk': self.object.equipment.pk}) return reverse('equipment-detail', kwargs={'pk': self.object.equipment.pk})
class TheoreticalMaxCreateView(generic.CreateView): class TheoreticalMaxCreateView(LoginRequiredMixin, generic.CreateView):
model = TheoreticalMax model = TheoreticalMax
fields = ['equipment', 'date', 'value'] fields = ['equipment', 'date', 'value']
template_name = 'gym/theoretical_max_edit.html' template_name = 'gym/theoretical_max_edit.html'
@ -168,7 +169,7 @@ class TheoreticalMaxCreateView(generic.CreateView):
return reverse('equipment-detail', kwargs={'pk': self.object.equipment.pk}) return reverse('equipment-detail', kwargs={'pk': self.object.equipment.pk})
class SessionCreateView(generic.CreateView): class SessionCreateView(LoginRequiredMixin, generic.CreateView):
model = Session model = Session
fields = ['room', 'start'] fields = ['room', 'start']
template_name = 'gym/session_edit.html' template_name = 'gym/session_edit.html'
@ -197,7 +198,7 @@ class SessionCreateView(generic.CreateView):
return initial return initial
class SessionDetailView(generic.DetailView): class SessionDetailView(LoginRequiredMixin, generic.DetailView):
model = Session model = Session
context_object_name = 'session' context_object_name = 'session'
template_name = 'gym/session_detail.html' template_name = 'gym/session_detail.html'
@ -207,7 +208,7 @@ class SessionDetailView(generic.DetailView):
return super().get(request, *args, **kwargs) return super().get(request, *args, **kwargs)
class RoundCreateView(generic.CreateView): class RoundCreateView(LoginRequiredMixin, generic.CreateView):
model = Round model = Round
fields = ['equipment', 'session', 'theoretical_max_percentage', 'chosen_weight', 'repetition_number', 'notes'] fields = ['equipment', 'session', 'theoretical_max_percentage', 'chosen_weight', 'repetition_number', 'notes']
template_name = 'gym/round_edit.html' template_name = 'gym/round_edit.html'

View file

@ -19,5 +19,6 @@ from django.urls import path, include
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('accounts/', include('django.contrib.auth.urls')),
url(r'', include('gym.urls')), url(r'', include('gym.urls')),
] ]