various and messy patchs...

This commit is contained in:
artus40
2018-03-01 17:30:03 +01:00
parent 0f7ed15d9b
commit b68980f392
8 changed files with 1088 additions and 26 deletions

View File

@@ -12,5 +12,5 @@
{% endfor %}
</div>
</th>
<td style="background-color:#;" width="80%"><p>{{text | linebreaks }}</p></td>
<td style="background-color:#fff" width="80%"><p>{{text | linebreaks }}</p></td>
</tr>

View File

@@ -92,6 +92,39 @@ class MaraudeListView(ListView):
]
def info_completed_filter(qs):
completed_ratio = 70 # % of total fields completed
excluded_set = set()
for sujet in qs:
if sujet.statistiques.info_completed >= completed_ratio:
excluded_set.add(sujet.pk)
return qs.exclude(pk__in=excluded_set)
def rencontre_dans_le_mois(qs):
""" Renvoie les sujets du queryset pour lesquelles une observation a été enregistrée
au cours des 30 derniers jours """
days_number = 30
limit_date = timezone.now().date() - datetime.timedelta(days_number)
included_set = set()
for sujet in qs:
# Try to find an observation in the range
most_recent_obs = Observation.objects.filter(sujet=sujet).order_by("-created_date").first()
if most_recent_obs and most_recent_obs.created_date >= limit_date:
included_set.add(sujet.pk)
return qs.filter(pk__in=included_set)
def a_revoir_avant_bilan(qs):
year_of_bilan = 2017
included_set = set()
for sujet in qs:
most_recent_obs = Observation.objects.filter(sujet=sujet).order_by("-created_date").first()
if most_recent_obs and most_recent_obs.created_date.year >= year_of_bilan:
included_set.add(sujet.pk)
return qs.filter(pk__in=included_set)
class SujetListView(ListView):
# ListView
model = Sujet
@@ -99,29 +132,6 @@ class SujetListView(ListView):
cell_template = "notes/table_cell_sujets.html"
table_header = "Liste des sujets"
def info_completed_filter(qs):
completed_ratio = 70 # % of total fields completed
excluded_set = set()
for sujet in qs:
if sujet.statistiques.info_completed >= completed_ratio:
excluded_set.add(sujet.pk)
return qs.exclude(pk__in=excluded_set)
def rencontre_dans_le_mois(qs):
""" Renvoie les sujets du queryset pour lesquelles une observation a été enregistrée
au cours des 30 derniers jours """
days_number = 30
limit_date = timezone.now().date() - datetime.timedelta(days_number)
included_set = set()
for sujet in qs:
# Try to find an observation in the range
most_recent_obs = Observation.objects.filter(sujet=sujet).order_by("-created_date").first()
if most_recent_obs and most_recent_obs.created_date >= limit_date:
included_set.add(sujet.pk)
return qs.filter(pk__in=included_set)
filters = [
("Connu(e)s cette année",
lambda qs: qs.filter(
@@ -129,6 +139,7 @@ class SujetListView(ListView):
),
("Rencontré(e)s dans le mois", rencontre_dans_le_mois),
("Statistiques incomplètes", info_completed_filter),
("Revoir avant bilan", lambda qs: a_revoir_avant_bilan(info_completed_filter(qs))),
("Signalements", lambda qs: qs.filter(pk__in=Signalement.objects.all().values_list('sujet'))),
]