Remaster (#38)

* setup new 'statistiques' module

* added 'graphos' package and created first test graph

* put graphos in requirements, deleted local folder

* added "load_csv" management command !

* added update of premiere_rencontre field in 'load_csv' management command

* added missing urls.py file

* added 'merge' action and view

* added 'info_completed' ratio

* linked sujets:merge views inside suivi:details

* added link to maraudes:details in notes table headers, if any

* Major reorganisation, moved 'suivi' and 'sujets' to 'notes', cleanup in 'maraudes', dropping 'website' mixins (mostly useless)

* small cleanup

* worked on Maraude and Sujet lists

* corrected missing line in notes.__init__

* restored 'details' view for maraudes and sujets insie 'notes' module

* worked on 'notes': added navigation between maraude's compte-rendu, right content in details, header to list tables

* changed queryset for CompteRenduDetailsView to all notes of same date, minor layout changes

* added right content to 'details-sujet', created 'statistiques' view and update templates

* restored 'statistiques' ajax view in 'details-sujet', fixed 'merge_two' util function

* added auto-creation of FicheStatistique (plus some tests), pagination for notes in 'details-sujet'

* added error-prone cases in paginator

* fixed non-working modals, added titles

* added UpdateStatistiques capacity in CompteRenduCreate view

* fixed missing AjaxTemplateMixin for CreateSujetView, worked on compte-rendu creation scripts

* fixed MaraudeManager.all_of() for common Maraudeurs, added color hints in planning

* re-instated statistiques module link and first test page

* added FinalizeView to send a mail before finalizing compte-rendu

* Added PieChart view for FicheStatistique fields

* small style updates, added 'age' and 'genre' fields from sujets in statistiques.PieChartView

* worked on statistiques, fixed small issues in 'notes' list views

* small theme change

* removed some dead code

* fixed notes.tests, fixed statistiques.info_completed display, added filter in SujetLisView

* added some tests

* added customised admin templates

* added authenticate in CustomAuthenticatationBackend, more verbose login thanks to messages

* added django-nose for test coverage

* Corrected raising exception on first migration

On first migration, qs.exists() would previously be called and raising an Exception, sot he migrations would fail.

* Better try block

* cleaned up custom settings.py, added some overrides of django base_settings

* corrected bad dictionnary key
This commit is contained in:
artus40
2017-06-11 17:16:17 +02:00
committed by GitHub
parent 0be59a61a7
commit be087464fc
155 changed files with 3568 additions and 1988 deletions

View File

@@ -1,20 +1,17 @@
from django.shortcuts import redirect
from django.urls import reverse
from django import views
from .mixins import WebsiteTemplateMixin
from django.contrib.auth import login, authenticate
from django.contrib import messages
from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect
class Index(WebsiteTemplateMixin, views.generic.TemplateView):
class Index(views.generic.TemplateView):
template_name = "main.html"
template_name = "index.html"
app_menu = None
header = ('La Maraude ALSA', 'accueil')
class PageInfo:
title = "La maraude ALSA"
header = "La Maraude ALSA"
header_small = "accueil"
http_method_names = ['get',]
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
@@ -25,7 +22,9 @@ class Index(WebsiteTemplateMixin, views.generic.TemplateView):
def _get_entry_point(user):
from utilisateurs.models import Maraudeur
from utilisateurs.backends import CustomUserAuthentication
print("Entry point for ", user, user.__class__)
if isinstance(user, Maraudeur):
return reverse('maraudes:index')
else:
@@ -43,6 +42,9 @@ def login_view(request):
next = request.POST.get('next', None)
if not next:
next = _get_entry_point(user)
messages.success(request, "%s, vous êtes connecté !" % user)
return HttpResponseRedirect(next)
else:
messages.error(request, "Le nom d'utilisateur et/ou le mot de passe sont incorrects !")
return HttpResponseRedirect('/')