website restyling, minor fixes
This commit is contained in:
@@ -33,8 +33,7 @@ class SignalementForm(NoteForm):
|
||||
|
||||
ObservationInlineFormSet = inlineformset_factory( Rencontre, Observation,
|
||||
form=NoteForm,
|
||||
extra = 0,
|
||||
min_num = 1,
|
||||
extra = 1,
|
||||
)
|
||||
|
||||
RencontreInlineFormSet = inlineformset_factory(
|
||||
|
||||
@@ -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})
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
@@ -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 %}
|
||||
7
maraudes/templates/maraudes/menu_administration.html
Normal file
7
maraudes/templates/maraudes/menu_administration.html
Normal 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 %}
|
||||
11
maraudes/templates/maraudes/menu_dernieres_maraudes.html
Normal file
11
maraudes/templates/maraudes/menu_dernieres_maraudes.html
Normal 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 %}
|
||||
@@ -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 %}
|
||||
@@ -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 %}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user