website restyling, minor fixes

This commit is contained in:
Arthur Gerbaud
2016-08-13 16:40:43 +02:00
parent 8bac5d8bd4
commit 46b807ec1e
36 changed files with 390 additions and 407 deletions

View File

@@ -33,8 +33,7 @@ class SignalementForm(NoteForm):
ObservationInlineFormSet = inlineformset_factory( Rencontre, Observation,
form=NoteForm,
extra = 0,
min_num = 1,
extra = 1,
)
RencontreInlineFormSet = inlineformset_factory(

View File

@@ -123,6 +123,12 @@ class Maraude(models.Model):
def rencontre_count(self):
return self.rencontres.count()
def get_observations(self):
observations = []
for r in self.rencontres.all():
observations += r.observations.all()
return observations
def get_absolute_url(self):
return reverse('maraudes:details', kwargs={'pk': self.id})

View File

@@ -105,9 +105,9 @@
<div class="col-md-6 col-sd-12">
<form method="post" action="{% url 'maraudes:create' maraude.pk %}?finalize=False">
{% csrf_token %}
<div class="panel panel-default panel-collapse">
<div class="panel panel-primary panel-collapse">
<div class="panel-heading">
<h4 class="panel-header">Nouvelle rencontre
<h4>Nouvelle rencontre
{% bootstrap_button "Enregistrer" icon="save" button_type="submit" button_class="btn btn-success btn-sm pull-right" %}
</h4>
</div>
@@ -127,8 +127,8 @@
</div>
<div class="col-md-6 col-sd-12">
<div class="panel panel-primary">
<div class="panel-heading"><h4 class="panel-header">Enregistrées
<div class="panel panel-default">
<div class="panel-heading"><h4>Enregistrées
<a class="btn btn-danger btn-sm pull-right" href="{% url 'maraudes:create' maraude.pk %}?finalize=True">
{% bootstrap_icon "ok-circle" %} Finaliser</a></h4>
</div>

View File

@@ -1,4 +1,4 @@
<div class="col-md-12">
<div class="col-md-12 col-lg-6">
{% if maraude.est_terminee %}
{% include "compte_rendu/compterendu.html" %}
{% else %}

View File

@@ -1,4 +1,4 @@
<div class="col-md-12">
<div class="col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">Votre prochaine maraude</div>
<div class="panel-body">

View File

@@ -1,49 +1,56 @@
{% load bootstrap3 %}
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading text-center">
<form action="" method="GET">
<label>TODO : Filtrer par date, terminée/non, et autres ?</label>
<button class="btn btn-warning" type="submit">Filtrer</button>
</form>
<div class="col-md-12 col-lg-6">
<div class="panel panel-primary">
<!-- Default panel contents -->
<div class="panel-heading text-center">
<h3 class="panel-title">Maraudes</h3>
</div>
<!-- Table -->
<table class="table table-striped">
{% for maraude in object_list %}
<tr>
<td>
<div class="btn-group" role="group">
{% if maraude.est_terminee %}
<a href="{% url 'maraudes:details' maraude.id %}" class="btn btn-primary">
{% elif user.is_superuser %}
<a href="{% url 'maraudes:create' maraude.id %}" class="btn btn-warning">
{% else %}
<a href="#" class="btn btn-default disabled">
{% endif %}
{{maraude.date}}
{% if user.is_superuser %}
</a><a class="btn btn-danger" href="/admin/maraudes/maraude/{{maraude.id}}/change/">{% bootstrap_icon "edit" %}
{% endif %}</a></div>
<div class="pull-right">
<span class="label label-info">{{ maraude.binome }} & {{ maraude.referent }}</span>
<span class="label label-success">{{maraude.rencontres.count}} rencontres</span>
</div>
</td>
</tr>
{% endfor %}
</table>
{% if is_paginated %}
<div class="panel-footer text-center">
<ul class="pagination">
{% for num in page_obj.paginator.page_range %}
<li {% if page_obj.number == num %} class="active" {%endif%}><a href="?page={{num}}">{{num}}</a></li>
{%endfor%}
</ul>
</div>
{% endif %}
</div>
<!-- Table -->
<table class="table table-striped">
<tr>
<th>Maraudes</th>
</tr>
{% for maraude in object_list %}
<tr>
<td>
<div class="btn-group" role="group">
{% if maraude.est_terminee %}
<a href="{% url 'maraudes:details' maraude.id %}" class="btn btn-primary">
{% elif user.is_superuser %}
<a href="{% url 'maraudes:create' maraude.id %}" class="btn btn-warning">
{% else %}
<a href="#" class="btn btn-default disabled">
{% endif %}
{{maraude.date}}
{% if user.is_superuser %}
</a><a class="btn btn-danger" href="/admin/maraudes/maraude/{{maraude.id}}/change/">{% bootstrap_icon "edit" %}
{% endif %}</a></div>
<div class="pull-right">
<span class="label label-info">{{ maraude.binome }} & {{ maraude.referent }}</span>
<span class="label label-success">{{maraude.rencontres.count}} rencontres</span>
</div>
</td>
</tr>
{% endfor %}
</table>
</div>
{% if is_paginated %}
<div class="col-md-12 text-center">
<ul class="pagination">
{% for num in page_obj.paginator.page_range %}
<li {% if page_obj.number == num %} class="active" {%endif%}><a href="?page={{num}}">{{num}}</a></li>
{%endfor%}
</ul>
<div class="col-lg-3 col-md-3">
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading text-center">
<h3 class="panel-title">Filtres</h3>
</div>
<div class="list-group">
<a href="#" class="list-group-item disabled">Vos maraudes seulement</a></li>
<a href="#" class="list-group-item disabled">Ce mois-ci</a></li>
</div>
</div>
</div>
{% endif %}

View File

@@ -1,16 +0,0 @@
{% if dernieres_maraudes %}<div class="panel panel-default">
<div class="panel-heading">Maraudes</div>
<div class="list-group">
{% for maraude in dernieres_maraudes %}
<a href="{% url 'maraudes:details' maraude.pk %}" class="list-group-item">{{ maraude }}</a>
{% endfor %}
<a href="{% url 'maraudes:liste' %}" class="list-group-item"><b>Autres...</b></a>
</div>
</div>{% endif %}
{% if user.is_superuser %}<div class="panel panel-default">
<div class="panel-heading">Administration</div>
<div class="list-group">
<a href="{% url 'maraudes:planning' %}" class="list-group-item">Planning</a>
</div>
</div>{% endif %}

View File

@@ -0,0 +1,7 @@
{% if user.is_superuser %}
<li class="dropdown app-menu"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Administration<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{% url 'maraudes:planning' %}">Planning</a></li>
<li><a href="{% url 'admin:maraudes_maraude_changelist' %}">Gérer les maraudes</a></li>
</ul>
{% endif %}

View File

@@ -0,0 +1,11 @@
{% if dernieres_maraudes %}
<li class="dropdown app-menu"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Dernières maraudes <b class="caret"></b></a>
<ul class="dropdown-menu">{% for m in dernieres_maraudes %}
<li><a href="{% url 'maraudes:details' m.pk %}" {% if maraude == m %}style="color:#fff;"{% endif %}>
<strong>{{ m }}</strong> <small>{{m.binome}} & {{m.referent}}</small></a>
</li>{% endfor %}
<li class="divider"></li>
<li><a href="{% url 'maraudes:liste' %}">Liste des maraudes</a></li>
</ul>
</li>
{% endif %}

View File

@@ -1,7 +0,0 @@
{% if user.is_superuser %}<div class="panel panel-danger">
<div class="panel-heading">Administration</div>
<div class="list-group">
<a href="{% url 'maraudes:planning' %}" class="list-group-item">Planning</a>
<a href="{% url 'admin:maraudes_maraude_changelist' %}" class="list-group-item">Gérer les maraudes</a>
</div>
</div>{% endif %}

View File

@@ -1,15 +0,0 @@
{% if dernieres_maraudes %}
<div class="panel panel-default" id="dernieres-maraudes">
<div class="panel-heading">
<p>Dernières maraudes
<span class="pull-right"><a href="{% url 'maraudes:liste' %}" class="btn btn-primary btn-sm">Aller à la liste</a></span></p>
</div>
<div class="list-group">
{% for m in dernieres_maraudes %}
<a href="{% url 'maraudes:details' m.pk %}" class="list-group-item {% if maraude == m %} active{% endif %}">
<strong>{{ m }}</strong> <small>{{m.binome}} & {{m.referent}}</small>
</a>
{% endfor %}
</div>
</div>
{% endif %}

View File

@@ -23,7 +23,11 @@ from .forms import ( RencontreForm, RencontreInlineFormSet, SignalementForm,
MaraudeAutoDateForm, MonthSelectForm, )
from website import decorators as website
webpage = website.webpage(ajax=False, permissions=['maraudes.view_maraudes'])
webpage = website.webpage(
ajax=False,
permissions=['maraudes.view_maraudes'],
app_menu=["maraudes/menu_dernieres_maraudes.html", "maraudes/menu_administration.html"]
)
@@ -46,7 +50,7 @@ class DerniereMaraudeMixin(object):
@webpage
class IndexView(DerniereMaraudeMixin, generic.FormView):
class IndexView(DerniereMaraudeMixin, generic.TemplateView):
class PageInfo:
title = "Maraude - Tableau de bord"
@@ -54,10 +58,6 @@ class IndexView(DerniereMaraudeMixin, generic.FormView):
header_small = "Tableau de bord"
template_name = "maraudes/index.html"
form_class = SignalementForm
def get_panels(self):
return ["maraudes/panel_dernieres_maraudes.html", "maraudes/panel_admin.html"]
## MARAUDES
@@ -75,15 +75,9 @@ class MaraudeDetailsView(DerniereMaraudeMixin, generic.DetailView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['notes'] = Note.objects.filter( #TODO: use better selection,
# using time range.
created_date=self.object.date
).by_time()
context['notes'] = self.object.get_observations()
return context
def get_panels(self):
return ["maraudes/panel_dernieres_maraudes.html"]
@webpage
@@ -138,12 +132,6 @@ class CompteRenduCreateView(generic.DetailView):
def post(self, request, *args, **kwargs):
self.get_forms(request.POST, request.FILES)
if self.form.has_changed():
if not self.inline_formset.has_changed():
if request.GET['finalize'] == "True":
return self.finalize()
messages.warning(request, "Vous devez ajouter une observation !")
return self.get(request, new_form=False)
if not self.form.is_valid() or not self.inline_formset.is_valid():
return self.get(request, new_form=False)
rencontre = self.form.save(commit=False)