2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-12-16 06:57:12 +00:00

get events on same date.progress.

This commit is contained in:
2023-02-27 16:42:08 +00:00
parent 6de4fa66a2
commit 6387de038b
4 changed files with 34 additions and 3 deletions

View File

@@ -4,6 +4,7 @@ import os
import re
import socket
from pathlib import Path
from collections import namedtuple
from django import forms
from django.db import models
@@ -14,8 +15,10 @@ from django.shortcuts import render
from django.views.decorators.csrf import ensure_csrf_cookie
import troggle.settings as settings
from troggle.core.models.logbooks import LogbookEntry
from troggle.core.models.caves import Cave
from troggle.core.models.survex import SurvexFile, SurvexBlock
from troggle.core.models.wallets import Wallet
from troggle.core.utils import only_commit
"""Everything that views survexfiles
@@ -303,6 +306,12 @@ def svx(request, survex_file):
svxblocks.append(b)
print(f"{svxfile=} {svxblocks}")
# collect all the stuff that happens on the same dates as the survex blocks
dates = set()
for b in svxblocks:
dates.add(b.date)
events = events_on_dates(dates)
vmap = {
"settings": settings,
@@ -322,6 +331,26 @@ def svx(request, survex_file):
return render(request, "svxfile.html", vmap)
SameDateEvents = namedtuple('SameDateEvents', ['trips', 'svxfiles', 'wallets'])
def events_on_dates(dates):
"""Returns a dictionary of indexed by date. For each date there is a named tuple of 3 lists:
logbookentries, survexfiles (NB files, not blocks), and wallets.
"""
print(dates)
events = {}
for d in dates:
trips = LogbookEntry.objects.filter(date=d)
svxfiles = False
# Wallets needs to get those identified only from JSON too,
# see logbookeentry() in views/logbooks.py
allwallets = Wallet.objects.all()
refwallets = allwallets.filter(survexblock__date=d)
events[d] = SameDateEvents(trips=trips, svxfiles=svxfiles, wallets=refwallets)
return events
# The cavern running function. This is NOT where it is run inside the form! see SvxForm.Process() for that
def process(survex_file):