From a4f676fd320ab8bc22ac3233018b88dfa3238855 Mon Sep 17 00:00:00 2001
From: Philip Sargent <philip.sargent@gmail.com>
Date: Sat, 2 Sep 2023 19:23:22 +0300
Subject: [PATCH] bugfixing

---
 core/models/logbooks.py | 46 ++++++++++++++++++++++++++++++-----------
 core/views/uploads.py   |  3 ++-
 parsers/logbooks.py     |  2 +-
 3 files changed, 37 insertions(+), 14 deletions(-)

diff --git a/core/models/logbooks.py b/core/models/logbooks.py
index 03a06a9..eb8d649 100644
--- a/core/models/logbooks.py
+++ b/core/models/logbooks.py
@@ -103,21 +103,38 @@ def writelogbook(year, filename):
         "slug"
     )  # now that slug, aka tripid, is in our standard date form, this will preserve ordering.
 
-    print(f"Logbook exported has {len(logbook_entries)} entries in it.")
+    print(f"  - Logbook to be exported has {len(logbook_entries)} entries in it.")
 
     template = "logbook2005style.html"
     
-    t = loader.get_template(template)
-    logbookfile = t.render({"logbook_entries": logbook_entries})
-
-    endpath = Path(settings.EXPOWEB, "years", year, "endmatter.html")
-    endmatter = ""
-    if endpath.is_file():
+    try:
+        t = loader.get_template(template)
+        logbookfile = t.render({"logbook_entries": logbook_entries})
+    except:
+        print("   ! Very Bad Error RENDERING template " + template)
+        raise
+    print("  - template rendered")
+    try:
+        print("  - end")
+        print(f"  - endmatter {year} {filename} {settings.EXPOWEB}")
         try:
-            with open(endpath, "r") as end:
-                endmatter = end.read()
+            endpath = Path(settings.EXPOWEB, "years", year, "endmatter.html")
         except:
-            print("   ! Very Bad Error opening " + endpath)
+            print("   ! FAIL Path " + {(settings.EXPOWEB, "years", year, "endmatter.html")})
+        print(f"  - endpath {endpath}")
+        endmatter = ""
+        if endpath.is_file():
+            print("  - endpath")
+
+            try:
+                with open(endpath, "r") as end:
+                    endmatter = end.read()
+            except:
+                print("   ! Very Bad Error opening " + endpath)
+    except:
+        print("   ! FAIL endpath " + endpath)
+        raise
+    print("  - endpath opened")
 
     frontpath = Path(settings.EXPOWEB, "years", year, "frontmatter.html")
     if frontpath.is_file():
@@ -129,11 +146,16 @@ def writelogbook(year, filename):
         logbookfile = re.sub(r"<body>", "<body>\n" + frontmatter + endmatter, logbookfile)
     else:
         logbookfile = re.sub(r"<body>", f"<body>\n<h1>Expo {year}</h1>\n" + endmatter, logbookfile)
+    print("  - frontmatter opened")
 
     dir = Path(settings.EXPOWEB) / "years" / year
     filepath = Path(dir, filename)
-    with (open(filepath, "w")) as lb:
-        lb.writelines(logbookfile)
+    try:
+        with (open(filepath, "w")) as lb:
+            lb.writelines(logbookfile)
+    except:
+        print("   ! Very Bad Error writing to  " + filepath)
+        raise
 
     # print(f'Logbook exported to {filepath}')
     
diff --git a/core/views/uploads.py b/core/views/uploads.py
index 8a9c734..0031f24 100644
--- a/core/views/uploads.py
+++ b/core/views/uploads.py
@@ -81,8 +81,9 @@ def store_edited_entry_into_database(date, place, title, text, others, author, t
         "expedition": expedition,
         "time_underground": tu,
         "cave_slug": str(cave),
+        "title": f"{place} - {title}"
     }
-    lookupAttribs = {"slug": slug, "date": date, "title": title}
+    lookupAttribs = {"slug": slug, "date": date }
 
     lbo = LogbookEntry.objects.create(**nonLookupAttribs, **lookupAttribs)
     
diff --git a/parsers/logbooks.py b/parsers/logbooks.py
index ad92931..e6ba079 100644
--- a/parsers/logbooks.py
+++ b/parsers/logbooks.py
@@ -178,7 +178,7 @@ def GetTripPersons(trippeople, expedition, logtime_underground, tid=None):
                 
     if not author:
         if not res:
-            return "", 0
+            return "", 0, ""
         author = res[-1][0]  # the previous valid person and a time of 0 hours
 
     # print(f" -  {tid}  [{author.person}] '{res[0][0].person}'...")