summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2024-04-10 23:25:13 +0100
committerPhilip Sargent <philip.sargent@gmail.com>2024-04-10 23:25:13 +0100
commitdfdf21459a08664956cd7c05d8d0f69ae4ff872b (patch)
tree8e6690cbec7b0f7f97060f45a19f8b7211b769ac
parentb73ac24a3b4644c53ae95f3fb7c634c0eeb8a252 (diff)
downloadtroggle-dfdf21459a08664956cd7c05d8d0f69ae4ff872b.tar.gz
troggle-dfdf21459a08664956cd7c05d8d0f69ae4ff872b.tar.bz2
troggle-dfdf21459a08664956cd7c05d8d0f69ae4ff872b.zip
fix current year in top menu
-rw-r--r--ERROR.txt557
-rw-r--r--TESTOUTPUT.txt313
-rw-r--r--core/views/logbooks.py6
3 files changed, 874 insertions, 2 deletions
diff --git a/ERROR.txt b/ERROR.txt
new file mode 100644
index 0000000..cd7b295
--- /dev/null
+++ b/ERROR.txt
@@ -0,0 +1,557 @@
+Creating test database for alias 'default' ('file:memorydb_default?mode=memory&cache=shared')...
+test_fix_cave_bare_url115 (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_cave_bare_url115)
+Expect to get Page Not Found and status 404 ... ok
+test_fix_cave_slug115 (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_cave_slug115)
+Expect to get Page Not Found and status 404 ... ok
+test_fix_cave_url115 (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_cave_url115) ... ERROR
+test_fix_cave_url284 (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_cave_url284) ... ERROR
+test_fix_caves284 (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_caves284) ... ERROR
+test_fix_expedition (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_expedition) ... ERROR
+test_fix_person (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_person) ... ok
+test_fix_personexped (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_personexped) ... ok
+test_fix_cave_loaded115 (troggle.core.TESTS.test_caves.FixtureTests.test_fix_cave_loaded115) ... ok
+test_fix_cave_loaded284 (troggle.core.TESTS.test_caves.FixtureTests.test_fix_cave_loaded284) ... ok
+test_fix_person_loaded (troggle.core.TESTS.test_caves.FixtureTests.test_fix_person_loaded) ... ok
+test_page_personexpedition (troggle.core.TESTS.test_caves.FixtureTests.test_page_personexpedition) ... ok
+test_logbook_exists (troggle.core.TESTS.test_imports.ImportTest.test_logbook_exists) ... ok
+test_installs (troggle.core.TESTS.test_imports.SubprocessTest.test_installs)
+Expects external software installed: cavern, survexport, git ... ok
+test_loser_survex_status (troggle.core.TESTS.test_imports.SubprocessTest.test_loser_survex_status)
+Expects no failures of survex files ... FAIL
+test_repos_git_status (troggle.core.TESTS.test_imports.SubprocessTest.test_repos_git_status)
+Expects clean git repos with no added files and no merge failures ... FAIL
+test_utf8 (troggle.core.TESTS.test_imports.SubprocessTest.test_utf8)
+Expects that utf8 is the default encoding when opening files ... ok
+test_admin_login (troggle.core.TESTS.test_logins.ComplexLoginTests.test_admin_login) ... ok
+test_authentication_login (troggle.core.TESTS.test_logins.ComplexLoginTests.test_authentication_login) ... ok
+test_noinfo_login (troggle.core.TESTS.test_logins.ComplexLoginTests.test_noinfo_login) ... ok
+test_ordinary_login (troggle.core.TESTS.test_logins.ComplexLoginTests.test_ordinary_login) ... ok
+test_user_force (troggle.core.TESTS.test_logins.ComplexLoginTests.test_user_force) ... ok
+test_fix_admin_login_fail (troggle.core.TESTS.test_logins.FixturePageTests.test_fix_admin_login_fail) ... ok
+test_dwg_upload_drawing (troggle.core.TESTS.test_logins.PostTests.test_dwg_upload_drawing)
+Expect no-suffix file to upload ... ok
+test_dwg_upload_txt (troggle.core.TESTS.test_logins.PostTests.test_dwg_upload_txt)
+Expect .pdf file to be refused upload ... ok
+test_file_permissions (troggle.core.TESTS.test_logins.PostTests.test_file_permissions)
+Expect to be allowed to write to SCANS_ROOT, DRAWINGS_DATA, SURVEX_DATA, EXPOWEB ... ok
+test_photo_folder_create (troggle.core.TESTS.test_logins.PostTests.test_photo_folder_create)
+Create folder for new user ... ERROR
+test_photo_upload (troggle.core.TESTS.test_logins.PostTests.test_photo_upload)
+Expect photo upload to work on any file (contrary to msg on screen) ... ERROR
+test_photo_upload_rename (troggle.core.TESTS.test_logins.PostTests.test_photo_upload_rename)
+Expect photo upload to work on any file (contrary to msg on screen) ... ERROR
+test_scan_upload (troggle.core.TESTS.test_logins.PostTests.test_scan_upload)
+Expect scan upload to wallet to work on any file ... ok
+test_aliases (troggle.core.TESTS.test_parsers.ImportTest.test_aliases) ... ok
+test_lbe (troggle.core.TESTS.test_parsers.ImportTest.test_lbe) ... ok
+test_lbe_edit (troggle.core.TESTS.test_parsers.ImportTest.test_lbe_edit)
+This page requires the user to be logged in first, hence the extra shenanigans ... ok
+test_lbe_new (troggle.core.TESTS.test_parsers.ImportTest.test_lbe_new)
+This page requires the user to be logged in first, hence the extra shenanigans ... ERROR
+test_logbook_exists (troggle.core.TESTS.test_parsers.ImportTest.test_logbook_exists) ... ok
+test_logbook_parse_issues (troggle.core.TESTS.test_parsers.ImportTest.test_logbook_parse_issues)
+This is just testing the db not the web page ... ok
+test_people (troggle.core.TESTS.test_parsers.ImportTest.test_people) ... ok
+test_survexfiles (troggle.core.TESTS.test_parsers.ImportTest.test_survexfiles) ... ERROR
+test_statistics (troggle.core.TESTS.test_urls.URLTests.test_statistics) ... ok
+test_stats (troggle.core.TESTS.test_urls.URLTests.test_stats) ... ok
+test_url_allscans (troggle.core.TESTS.test_urls.URLTests.test_url_allscans)
+Test the {% url "allscans" %} reverse resolution ... ok
+test_url_stats (troggle.core.TESTS.test_urls.URLTests.test_url_stats)
+Test the {% url "stats" %} reverse resolution ... ok
+test_url_survexcaveslist (troggle.core.TESTS.test_urls.URLTests.test_url_survexcaveslist)
+Test the {% url "allscans" %} reverse resolution ... ok
+test_url_threed (troggle.core.TESTS.test_urls.URLTests.test_url_threed)
+Test the {% url "threed" %} reverse resolution ... ok
+test_cave_kataster_not_found (troggle.core.TESTS.tests.PageTests.test_cave_kataster_not_found) ... ok
+test_caves_page (troggle.core.TESTS.tests.PageTests.test_caves_page) ... ok
+test_caves_page_kataster_not_found (troggle.core.TESTS.tests.PageTests.test_caves_page_kataster_not_found) ... ok
+test_dataissues (troggle.core.TESTS.tests.PageTests.test_dataissues) ... ok
+test_expoweb_dir (troggle.core.TESTS.tests.PageTests.test_expoweb_dir) ... ok
+test_expoweb_dir_no_index (troggle.core.TESTS.tests.PageTests.test_expoweb_dir_no_index) ... ok
+test_expoweb_dir_with_index2 (troggle.core.TESTS.tests.PageTests.test_expoweb_dir_with_index2) ... ok
+test_expoweb_dir_with_index_htm (troggle.core.TESTS.tests.PageTests.test_expoweb_dir_with_index_htm) ... ok
+test_expoweb_dir_with_index_html (troggle.core.TESTS.tests.PageTests.test_expoweb_dir_with_index_html) ... ok
+test_expoweb_dirslash (troggle.core.TESTS.tests.PageTests.test_expoweb_dirslash) ... ok
+test_expoweb_htm (troggle.core.TESTS.tests.PageTests.test_expoweb_htm) ... ok
+test_expoweb_no_dir (troggle.core.TESTS.tests.PageTests.test_expoweb_no_dir) ... ok
+test_expoweb_notfound (troggle.core.TESTS.tests.PageTests.test_expoweb_notfound) ... ok
+test_expoweb_paths (troggle.core.TESTS.tests.PageTests.test_expoweb_paths) ... ok
+test_expoweb_root (troggle.core.TESTS.tests.PageTests.test_expoweb_root) ... ok
+test_expoweb_root_slash (troggle.core.TESTS.tests.PageTests.test_expoweb_root_slash) ... ok
+test_expoweb_troggle_default (troggle.core.TESTS.tests.PageTests.test_expoweb_troggle_default) ... ok
+test_expoweb_troggle_default_slash (troggle.core.TESTS.tests.PageTests.test_expoweb_troggle_default_slash) ... ok
+test_expoweb_via_areaid (troggle.core.TESTS.tests.PageTests.test_expoweb_via_areaid) ... ok
+test_not_found_survexfile_cave (troggle.core.TESTS.tests.PageTests.test_not_found_survexfile_cave) ... ok
+test_page_admin (troggle.core.TESTS.tests.PageTests.test_page_admin) ... ok
+test_page_admindocs_exped (troggle.core.TESTS.tests.PageTests.test_page_admindocs_exped) ... ok
+test_page_dwgallfiles_empty (troggle.core.TESTS.tests.PageTests.test_page_dwgallfiles_empty) ... ok
+test_page_dwgallfiles_empty_slash (troggle.core.TESTS.tests.PageTests.test_page_dwgallfiles_empty_slash) ... ok
+test_page_dwgdataraw_empty (troggle.core.TESTS.tests.PageTests.test_page_dwgdataraw_empty) ... ok
+test_page_expofile_document_loeffler_pdf (troggle.core.TESTS.tests.PageTests.test_page_expofile_document_loeffler_pdf) ... ok
+test_page_expofile_document_png (troggle.core.TESTS.tests.PageTests.test_page_expofile_document_png) ... ok
+test_page_expofile_document_rope_pdf (troggle.core.TESTS.tests.PageTests.test_page_expofile_document_rope_pdf) ... ok
+test_page_expofile_documents (troggle.core.TESTS.tests.PageTests.test_page_expofile_documents) ... ok
+test_page_expofile_documents_slash (troggle.core.TESTS.tests.PageTests.test_page_expofile_documents_slash) ... ok
+test_page_expofile_writeup (troggle.core.TESTS.tests.PageTests.test_page_expofile_writeup) ... ok
+test_page_expofiles_badness (troggle.core.TESTS.tests.PageTests.test_page_expofiles_badness) ... ok
+test_page_expofiles_docs_dir (troggle.core.TESTS.tests.PageTests.test_page_expofiles_docs_dir) ... ok
+test_page_expofiles_root_dir (troggle.core.TESTS.tests.PageTests.test_page_expofiles_root_dir) ... ok
+test_page_expofiles_root_slash_dir (troggle.core.TESTS.tests.PageTests.test_page_expofiles_root_slash_dir) ... ok
+test_page_folk (troggle.core.TESTS.tests.PageTests.test_page_folk) ... ok
+test_page_photos_dir (troggle.core.TESTS.tests.PageTests.test_page_photos_dir) ... ok
+test_page_photos_not_ok (troggle.core.TESTS.tests.PageTests.test_page_photos_not_ok) ... ok
+test_page_photos_ok (troggle.core.TESTS.tests.PageTests.test_page_photos_ok) ... ok
+test_page_site_media_css (troggle.core.TESTS.tests.PageTests.test_page_site_media_css) ... ok
+test_page_site_media_ok (troggle.core.TESTS.tests.PageTests.test_page_site_media_ok) ... ok
+test_page_slash_empty (troggle.core.TESTS.tests.PageTests.test_page_slash_empty) ... ok
+test_page_ss (troggle.core.TESTS.tests.PageTests.test_page_ss) ... ok
+test_page_survey_scans_dir (troggle.core.TESTS.tests.PageTests.test_page_survey_scans_dir) ... ok
+test_page_survey_scans_empty (troggle.core.TESTS.tests.PageTests.test_page_survey_scans_empty) ... ok
+test_stations (troggle.core.TESTS.tests.PageTests.test_stations) ... ok
+test_survexdebug (troggle.core.TESTS.tests.PageTests.test_survexdebug) ... ok
+test_surveximport (troggle.core.TESTS.tests.PageTests.test_surveximport) ... ok
+test_therionissues (troggle.core.TESTS.tests.PageTests.test_therionissues) ... ok
+test_allscans_view (troggle.core.TESTS.tests_copilot.TestSurveyScansView.test_allscans_view) ... ok
+test_walletslistyear_view (troggle.core.TESTS.tests_copilot.TestSurveyScansView.test_walletslistyear_view) ... ok
+test_import_Cave (troggle.core.TESTS.test_imports.SimpleTest.test_import_Cave) ... ok
+test_import_TroggleModel (troggle.core.TESTS.test_imports.SimpleTest.test_import_TroggleModel) ... ok
+test_import_core_views_caves (troggle.core.TESTS.test_imports.SimpleTest.test_import_core_views_caves) ... ok
+test_import_imports (troggle.core.TESTS.test_imports.SimpleTest.test_import_imports) ... ok
+test_import_parsers_QMs (troggle.core.TESTS.test_imports.SimpleTest.test_import_parsers_QMs) ... ok
+test_import_parsers_logbooks (troggle.core.TESTS.test_imports.SimpleTest.test_import_parsers_logbooks) ... ok
+test_import_parsers_mix (troggle.core.TESTS.test_imports.SimpleTest.test_import_parsers_mix) ... ok
+test_import_parsers_people (troggle.core.TESTS.test_imports.SimpleTest.test_import_parsers_people) ... ok
+test_import_parsers_survex (troggle.core.TESTS.test_imports.SimpleTest.test_import_parsers_survex) ... ok
+test_import_parsers_surveys (troggle.core.TESTS.test_imports.SimpleTest.test_import_parsers_surveys) ... ok
+test_import_urls (troggle.core.TESTS.test_imports.SimpleTest.test_import_urls) ... ok
+test_import_views_uploads (troggle.core.TESTS.test_imports.SimpleTest.test_import_views_uploads) ... ok
+test_import_views_walletedit (troggle.core.TESTS.test_imports.SimpleTest.test_import_views_walletedit) ... ok
+test_test_setting (troggle.core.TESTS.test_imports.SimpleTest.test_test_setting) ... ok
+
+======================================================================
+ERROR: test_fix_cave_url115 (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_cave_url115)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_caves.py", line 140, in test_fix_cave_url115
+ response = self.client.get("/1623/115.url") # yes this is intentional, see the inserted data above & fixture
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1049, in get
+ response = super().get(path, data=data, secure=secure, headers=headers, **extra)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 465, in get
+ return self.generic(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 617, in generic
+ return self.request(**r)
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1013, in request
+ self.check_exception(response)
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 743, in check_exception
+ raise exc_value
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
+ response = get_response(request)
+ ^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
+ response = wrapped_callback(request, *callback_args, **callback_kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/caves.py", line 353, in cavepage
+ return rendercave(request, cave, cave.slug())
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/caves.py", line 301, in rendercave
+ "year": current_expo()
+ ^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/utils.py", line 126, in current_expo
+ make_new_expo(str(y))
+ File "/home/philip/troggle/core/utils.py", line 96, in make_new_expo
+ u = User.objects.get(username='expo')
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
+ return getattr(self.get_queryset(), name)(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/query.py", line 649, in get
+ raise self.model.DoesNotExist(
+django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.
+
+======================================================================
+ERROR: test_fix_cave_url284 (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_cave_url284)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_caves.py", line 148, in test_fix_cave_url284
+ response = self.client.get("/1623/284/284.html")
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1049, in get
+ response = super().get(path, data=data, secure=secure, headers=headers, **extra)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 465, in get
+ return self.generic(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 617, in generic
+ return self.request(**r)
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1013, in request
+ self.check_exception(response)
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 743, in check_exception
+ raise exc_value
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
+ response = get_response(request)
+ ^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
+ response = wrapped_callback(request, *callback_args, **callback_kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/caves.py", line 353, in cavepage
+ return rendercave(request, cave, cave.slug())
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/caves.py", line 301, in rendercave
+ "year": current_expo()
+ ^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/utils.py", line 126, in current_expo
+ make_new_expo(str(y))
+ File "/home/philip/troggle/core/utils.py", line 96, in make_new_expo
+ u = User.objects.get(username='expo')
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
+ return getattr(self.get_queryset(), name)(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/query.py", line 649, in get
+ raise self.model.DoesNotExist(
+django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.
+
+======================================================================
+ERROR: test_fix_caves284 (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_caves284)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_caves.py", line 190, in test_fix_caves284
+ response = self.client.get("/caves")
+ ^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1049, in get
+ response = super().get(path, data=data, secure=secure, headers=headers, **extra)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 465, in get
+ return self.generic(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 617, in generic
+ return self.request(**r)
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1013, in request
+ self.check_exception(response)
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 743, in check_exception
+ raise exc_value
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
+ response = get_response(request)
+ ^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
+ response = wrapped_callback(request, *callback_args, **callback_kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/caves.py", line 156, in caveindex
+ "cavepage": True, "year": current_expo()},
+ ^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/utils.py", line 126, in current_expo
+ make_new_expo(str(y))
+ File "/home/philip/troggle/core/utils.py", line 96, in make_new_expo
+ u = User.objects.get(username='expo')
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
+ return getattr(self.get_queryset(), name)(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/query.py", line 649, in get
+ raise self.model.DoesNotExist(
+django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.
+
+======================================================================
+ERROR: test_fix_expedition (troggle.core.TESTS.test_caves.FixturePageTests.test_fix_expedition)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_caves.py", line 103, in test_fix_expedition
+ response = self.client.get("/expedition/2019")
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1049, in get
+ response = super().get(path, data=data, secure=secure, headers=headers, **extra)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 465, in get
+ return self.generic(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 617, in generic
+ return self.request(**r)
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1013, in request
+ self.check_exception(response)
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 743, in check_exception
+ raise exc_value
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
+ response = get_response(request)
+ ^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
+ response = wrapped_callback(request, *callback_args, **callback_kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/logbooks.py", line 69, in expedition
+ current = current_expo() # creates new expo after 31st Dec.
+ ^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/utils.py", line 126, in current_expo
+ make_new_expo(str(y))
+ File "/home/philip/troggle/core/utils.py", line 96, in make_new_expo
+ u = User.objects.get(username='expo')
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
+ return getattr(self.get_queryset(), name)(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/query.py", line 649, in get
+ raise self.model.DoesNotExist(
+django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.
+
+======================================================================
+ERROR: test_photo_folder_create (troggle.core.TESTS.test_logins.PostTests.test_photo_folder_create)
+Create folder for new user
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_logins.py", line 259, in test_photo_folder_create
+ response = self.client.post("/photoupload/", data={"photographer": "GussieFinkNottle"})
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1070, in post
+ response = super().post(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 490, in post
+ return self.generic(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 617, in generic
+ return self.request(**r)
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1013, in request
+ self.check_exception(response)
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 743, in check_exception
+ raise exc_value
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
+ response = get_response(request)
+ ^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
+ response = wrapped_callback(request, *callback_args, **callback_kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/auth.py", line 25, in __call__
+ return self.f(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapper_view
+ return view_func(request, *args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/uploads.py", line 611, in photoupload
+ year = current_expo()
+ ^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/utils.py", line 126, in current_expo
+ make_new_expo(str(y))
+ File "/home/philip/troggle/core/utils.py", line 96, in make_new_expo
+ u = User.objects.get(username='expo')
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
+ return getattr(self.get_queryset(), name)(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/query.py", line 649, in get
+ raise self.model.DoesNotExist(
+django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.
+
+======================================================================
+ERROR: test_photo_upload (troggle.core.TESTS.test_logins.PostTests.test_photo_upload)
+Expect photo upload to work on any file (contrary to msg on screen)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_logins.py", line 189, in test_photo_upload
+ response = self.client.post(
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1070, in post
+ response = super().post(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 490, in post
+ return self.generic(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 617, in generic
+ return self.request(**r)
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1013, in request
+ self.check_exception(response)
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 743, in check_exception
+ raise exc_value
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
+ response = get_response(request)
+ ^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
+ response = wrapped_callback(request, *callback_args, **callback_kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/auth.py", line 25, in __call__
+ return self.f(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapper_view
+ return view_func(request, *args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/uploads.py", line 611, in photoupload
+ year = current_expo()
+ ^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/utils.py", line 126, in current_expo
+ make_new_expo(str(y))
+ File "/home/philip/troggle/core/utils.py", line 96, in make_new_expo
+ u = User.objects.get(username='expo')
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
+ return getattr(self.get_queryset(), name)(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/query.py", line 649, in get
+ raise self.model.DoesNotExist(
+django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.
+
+======================================================================
+ERROR: test_photo_upload_rename (troggle.core.TESTS.test_logins.PostTests.test_photo_upload_rename)
+Expect photo upload to work on any file (contrary to msg on screen)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_logins.py", line 228, in test_photo_upload_rename
+ response = self.client.post(
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1070, in post
+ response = super().post(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 490, in post
+ return self.generic(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 617, in generic
+ return self.request(**r)
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1013, in request
+ self.check_exception(response)
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 743, in check_exception
+ raise exc_value
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
+ response = get_response(request)
+ ^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
+ response = wrapped_callback(request, *callback_args, **callback_kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/auth.py", line 25, in __call__
+ return self.f(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapper_view
+ return view_func(request, *args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/uploads.py", line 611, in photoupload
+ year = current_expo()
+ ^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/utils.py", line 126, in current_expo
+ make_new_expo(str(y))
+ File "/home/philip/troggle/core/utils.py", line 96, in make_new_expo
+ u = User.objects.get(username='expo')
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
+ return getattr(self.get_queryset(), name)(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/query.py", line 649, in get
+ raise self.model.DoesNotExist(
+django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.
+
+======================================================================
+ERROR: test_lbe_new (troggle.core.TESTS.test_parsers.ImportTest.test_lbe_new)
+This page requires the user to be logged in first, hence the extra shenanigans
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_parsers.py", line 141, in test_lbe_new
+ response = self.client.get(f"/logbookedit/")
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1049, in get
+ response = super().get(path, data=data, secure=secure, headers=headers, **extra)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 465, in get
+ return self.generic(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 617, in generic
+ return self.request(**r)
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1013, in request
+ self.check_exception(response)
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 743, in check_exception
+ raise exc_value
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
+ response = get_response(request)
+ ^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
+ response = wrapped_callback(request, *callback_args, **callback_kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/auth.py", line 25, in __call__
+ return self.f(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapper_view
+ return view_func(request, *args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/uploads.py", line 192, in logbookedit
+ year = current_expo()
+ ^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/utils.py", line 126, in current_expo
+ make_new_expo(str(y))
+ File "/home/philip/troggle/core/utils.py", line 96, in make_new_expo
+ u = User.objects.get(username='expo')
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
+ return getattr(self.get_queryset(), name)(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/query.py", line 649, in get
+ raise self.model.DoesNotExist(
+django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.
+
+======================================================================
+ERROR: test_survexfiles (troggle.core.TESTS.test_parsers.ImportTest.test_survexfiles)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_parsers.py", line 195, in test_survexfiles
+ response = self.client.get("/survexfile/caves/")
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1049, in get
+ response = super().get(path, data=data, secure=secure, headers=headers, **extra)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 465, in get
+ return self.generic(
+ ^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 617, in generic
+ return self.request(**r)
+ ^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 1013, in request
+ self.check_exception(response)
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/test/client.py", line 743, in check_exception
+ raise exc_value
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
+ response = get_response(request)
+ ^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
+ response = wrapped_callback(request, *callback_args, **callback_kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/views/survex.py", line 655, in survexcaveslist
+ "year": current_expo(),
+ ^^^^^^^^^^^^^^
+ File "/home/philip/troggle/core/utils.py", line 126, in current_expo
+ make_new_expo(str(y))
+ File "/home/philip/troggle/core/utils.py", line 96, in make_new_expo
+ u = User.objects.get(username='expo')
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
+ return getattr(self.get_queryset(), name)(*args, **kwargs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/home/philip/p12d5/lib/python3.12/site-packages/django/db/models/query.py", line 649, in get
+ raise self.model.DoesNotExist(
+django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.
+
+======================================================================
+FAIL: test_loser_survex_status (troggle.core.TESTS.test_imports.SubprocessTest.test_loser_survex_status)
+Expects no failures of survex files
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_imports.py", line 261, in test_loser_survex_status
+ self.assertTrue(sp.returncode == 0, f"{cwd} - survex is unhappy")
+AssertionError: False is not true : /home/philip/loser - survex is unhappy
+
+======================================================================
+FAIL: test_repos_git_status (troggle.core.TESTS.test_imports.SubprocessTest.test_repos_git_status)
+Expects clean git repos with no added files and no merge failures
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/home/philip/troggle/core/TESTS/test_imports.py", line 233, in test_repos_git_status
+ self.assertIsNotNone(phmatch, msg)
+AssertionError: unexpectedly None : /home/philip/troggle - Failed to find expected git output: "nothing to commit, working tree clean"
+
+----------------------------------------------------------------------
+Ran 109 tests in 13.383s
+
+FAILED (failures=2, errors=9)
+Destroying test database for alias 'default' ('file:memorydb_default?mode=memory&cache=shared')...
diff --git a/TESTOUTPUT.txt b/TESTOUTPUT.txt
new file mode 100644
index 0000000..0ebf53c
--- /dev/null
+++ b/TESTOUTPUT.txt
@@ -0,0 +1,313 @@
+* importing troggle/settings.py
+ * importing troggle/localsettings.py
+* importing troggle/settings.py
+Found 109 test(s).
+Operations to perform:
+ Synchronize unmigrated apps: admindocs, forms, messages
+ Apply all migrations: admin, auth, contenttypes, core, sessions
+Synchronizing apps without migrations:
+ Creating tables...
+ Running deferred SQL...
+Running migrations:
+ Applying contenttypes.0001_initial... OK
+ Applying auth.0001_initial... OK
+ Applying admin.0001_initial... OK
+ Applying admin.0002_logentry_remove_auto_add... OK
+ Applying admin.0003_logentry_add_action_flag_choices... OK
+ Applying contenttypes.0002_remove_content_type_name... OK
+ Applying auth.0002_alter_permission_name_max_length... OK
+ Applying auth.0003_alter_user_email_max_length... OK
+ Applying auth.0004_alter_user_username_opts... OK
+ Applying auth.0005_alter_user_last_login_null... OK
+ Applying auth.0006_require_contenttypes_0002... OK
+ Applying auth.0007_alter_validators_add_error_messages... OK
+ Applying auth.0008_alter_user_username_max_length... OK
+ Applying auth.0009_alter_user_last_name_max_length... OK
+ Applying auth.0010_alter_group_name_max_length... OK
+ Applying auth.0011_update_proxy_permissions... OK
+ Applying auth.0012_alter_user_first_name_max_length... OK
+ Applying core.0001_initial... OK
+ Applying core.0002_alter_qm_grade... OK
+ Applying core.0003_qm_resolution_station_name... OK
+ Applying core.0004_alter_qm_grade... OK
+ Applying core.0005_remove_qm_completion_description_remove_qm_found_by_and_more... OK
+ Applying core.0006_remove_qm_nearest_station... OK
+ Applying core.0007_qm_completion_description... OK
+ Applying core.0008_qm_completion_date... OK
+ Applying core.0009_alter_qm_grade... OK
+ Applying core.0010_remove_qm_nearest_station_description... OK
+ Applying core.0011_alter_qm_completion_description_and_more... OK
+ Applying core.0012_alter_survexblock_survexfile... OK
+ Applying core.0013_remove_entranceslug_primary... OK
+ Applying core.0014_entranceslug_primary... OK
+ Applying core.0015_remove_entranceslug_primary... OK
+ Applying core.0016_remove_entrance_cached_primary_slug_and_more... OK
+ Applying core.0017_remove_entrance_cached_slug_entrance_slug... OK
+ Applying core.0018_delete_entranceslug... OK
+ Applying core.0019_auto_20231202_1622... OK
+ Applying core.0020_alter_dataissue_message... OK
+ Applying sessions.0001_initial... OK
+System check identified no issues (0 silenced).
+/usr/bin/cavern
+/usr/bin/survexport
+/usr/bin/git
+--!2024---
+--!2024---
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 290
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 291
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 264
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 258
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 204
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 359
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 76
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 107
+[]
+--!2024---
+--!2024---
+survex output: /home/philip/loser:
+ # sp.stderr=''
+ # sp.stdout=Survex 1.4.1
+Copyright © 1990-2021 Olly Betts
+
+Removing trailing traverses.
+ <Long output curtailed>
+wing survey stations are not attached to a fixed point:
+essentials.tempest
+
+ # return code: 1
+git output: /home/philip/loser:
+ # sp.stderr=''
+ # sp.stdout=On branch master
+Your branch is up to date with 'origin/master'.
+
+nothing to commit, working tree clean
+
+ # return code: 0
+git output: /home/philip/expoweb:
+ # sp.stderr=''
+ # sp.stdout=On branch expoweb
+Your branch is up to date with 'origin/expoweb'.
+
+nothing to commit, working tree clean
+
+ # return code: 0
+git output: /home/philip/drawings:
+ # sp.stderr=''
+ # sp.stdout=On branch master
+Your branch is up to date with 'origin/master'.
+
+nothing to commit, working tree clean
+
+ # return code: 0
+git output: /home/philip/troggle:
+ # sp.stderr=''
+ # sp.stdout=On branch master
+Your branch is up to date with 'origin/master'.
+
+Changes n
+ <Long output curtailed>
+PUT.txt
+
+no changes added to commit (use "git add" and/or "git commit -a")
+
+ # return code: 0
+ git disabled "git='echo'"
+! - FORM dwgupload - Nothing actually saved. All were refused. actual_saved=[]
+--!2024---
+--!2024---
+--!2024---
+---identify_most_recent_wallet: recent_year='2022' recent_number='00'
+Error code with git on server for this contents.json. File is added to git, but NOT committed.
+Ask a nerd to fix this.
+
+stderr:
+
+stdout: On branch master
+Your branch is up to date with 'origin/master'.
+
+nothing to commit, working tree clean
+
+
+return code: 1
+ . * Coding or cave existence mistake, cave for id '1623-267' does not exist. Expecting to set alias '1987-02' to it
+ * Coding or cave existence mistake, cave for id '1623-171' does not exist. Expecting to set alias '1990-01' to it
+ * Coding or cave existence mistake, cave for id '1623-172' does not exist. Expecting to set alias '1990-02' to it
+ * Coding or cave existence mistake, cave for id '1623-173' does not exist. Expecting to set alias '1990-03' to it
+ * Coding or cave existence mistake, cave for id '1623-174' does not exist. Expecting to set alias '1990-04' to it
+ * Coding or cave existence mistake, cave for id '1623-175' does not exist. Expecting to set alias '1990-05' to it
+ * Coding or cave existence mistake, cave for id '1623-176' does not exist. Expecting to set alias '1990-06' to it
+ * Coding or cave existence mistake, cave for id '1623-177' does not exist. Expecting to set alias '1990-07' to it
+ * Coding or cave existence mistake, cave for id '1623-178' does not exist. Expecting to set alias '1990-08' to it
+ * Coding or cave existence mistake, cave for id '1623-179' does not exist. Expecting to set alias '1990-09' to it
+ * Coding or cave existence mistake, cave for id '1623-180' does not exist. Expecting to set alias '1990-10' to it
+ * Coding or cave existence mistake, cave for id '1623-181' does not exist. Expecting to set alias '1990-11' to it
+ * Coding or cave existence mistake, cave for id '1623-182' does not exist. Expecting to set alias '1990-12' to it
+ * Coding or cave existence mistake, cave for id '1623-183' does not exist. Expecting to set alias '1990-13' to it
+ * Coding or cave existence mistake, cave for id '1623-184' does not exist. Expecting to set alias '1990-14' to it
+ * Coding or cave existence mistake, cave for id '1623-188' does not exist. Expecting to set alias '1990-18' to it
+ * Coding or cave existence mistake, cave for id '1623-225' does not exist. Expecting to set alias '1990-adam' to it
+ * Coding or cave existence mistake, cave for id '1623-200' does not exist. Expecting to set alias '1993-01' to it
+ * Coding or cave existence mistake, cave for id '1623-224' does not exist. Expecting to set alias '1996-02' to it
+ * Coding or cave existence mistake, cave for id '1623-223' does not exist. Expecting to set alias '1996-03' to it
+ * Coding or cave existence mistake, cave for id '1623-222' does not exist. Expecting to set alias '1996-04' to it
+ * Coding or cave existence mistake, cave for id '1623-207' does not exist. Expecting to set alias '1996wk2' to it
+ * Coding or cave existence mistake, cave for id '1623-208' does not exist. Expecting to set alias '1996wk3' to it
+ * Coding or cave existence mistake, cave for id '1623-219' does not exist. Expecting to set alias '1996wk5' to it
+ * Coding or cave existence mistake, cave for id '1623-218' does not exist. Expecting to set alias '1996wk6' to it
+ * Coding or cave existence mistake, cave for id '1623-209' does not exist. Expecting to set alias '1996wk8' to it
+ * Coding or cave existence mistake, cave for id '1623-268' does not exist. Expecting to set alias '1996wk11' to it
+ * Coding or cave existence mistake, cave for id '1623-268' does not exist. Expecting to set alias '96wk11' to it
+ * Coding or cave existence mistake, cave for id '1623-201' does not exist. Expecting to set alias '1998-01' to it
+ * Coding or cave existence mistake, cave for id '1623-210' does not exist. Expecting to set alias '1998-03' to it
+ * Coding or cave existence mistake, cave for id '1623-204' does not exist. Expecting to set alias '1999-03' to it
+ * Coding or cave existence mistake, cave for id '1623-230' does not exist. Expecting to set alias '1999-04' to it
+ * Coding or cave existence mistake, cave for id '1623-162' does not exist. Expecting to set alias '1999-10' to it
+ * Coding or cave existence mistake, cave for id '1623-205' does not exist. Expecting to set alias '1999-bo-01' to it
+ * Coding or cave existence mistake, cave for id '1623-226' does not exist. Expecting to set alias '1999-ob-03' to it
+ * Coding or cave existence mistake, cave for id '1623-227' does not exist. Expecting to set alias '1999-ob-04' to it
+ * Coding or cave existence mistake, cave for id '1999-ob-02' does not exist. Expecting to set alias '99ob02' to it
+ * Coding or cave existence mistake, cave for id '1999-ob-02' does not exist. Expecting to set alias '1623-99ob02' to it
+ * Coding or cave existence mistake, cave for id '1623-259' does not exist. Expecting to set alias 'gassischacht' to it
+ * Coding or cave existence mistake, cave for id '1623-259' does not exist. Expecting to set alias '1623-gassischacht' to it
+ * Coding or cave existence mistake, cave for id '1623-259' does not exist. Expecting to set alias '2007-gassischacht' to it
+ * Coding or cave existence mistake, cave for id '1623-214' does not exist. Expecting to set alias '2000-03' to it
+ * Coding or cave existence mistake, cave for id '1623-220' does not exist. Expecting to set alias '2000-04' to it
+ * Coding or cave existence mistake, cave for id '1623-215' does not exist. Expecting to set alias '2000-05' to it
+ * Coding or cave existence mistake, cave for id '1623-216' does not exist. Expecting to set alias '2000-06' to it
+ * Coding or cave existence mistake, cave for id '1623-217' does not exist. Expecting to set alias '2000-07' to it
+ * Coding or cave existence mistake, cave for id '1623-234' does not exist. Expecting to set alias '2000-09' to it
+ * Coding or cave existence mistake, cave for id '1623-250' does not exist. Expecting to set alias '2000-aa-01' to it
+ * Coding or cave existence mistake, cave for id '1623-239' does not exist. Expecting to set alias '2001-04' to it
+ * Coding or cave existence mistake, cave for id '1623-243' does not exist. Expecting to set alias '2001-05' to it
+ * Coding or cave existence mistake, cave for id '1623-249' does not exist. Expecting to set alias '2002-01' to it
+ * Coding or cave existence mistake, cave for id '1623-234' does not exist. Expecting to set alias '2002-02' to it
+ * Coding or cave existence mistake, cave for id '1623-242' does not exist. Expecting to set alias '2002-04' to it
+ * Coding or cave existence mistake, cave for id '1623-294' does not exist. Expecting to set alias '2002-05' to it
+ * Coding or cave existence mistake, cave for id '1623-2002-08' does not exist. Expecting to set alias 'quarriesd' to it
+ * Coding or cave existence mistake, cave for id '1623-2002-08' does not exist. Expecting to set alias '1623-quarriesd' to it
+ * Coding or cave existence mistake, cave for id '1623-2002-08' does not exist. Expecting to set alias '2002-08' to it
+ * Coding or cave existence mistake, cave for id '1623-256' does not exist. Expecting to set alias '2003-01' to it
+ * Coding or cave existence mistake, cave for id '1623-248' does not exist. Expecting to set alias '2003-02' to it
+ * Coding or cave existence mistake, cave for id '1623-247' does not exist. Expecting to set alias '2003-03' to it
+ * Coding or cave existence mistake, cave for id '1623-241' does not exist. Expecting to set alias '2003-04' to it
+ * Coding or cave existence mistake, cave for id '1623-246' does not exist. Expecting to set alias '2003-05' to it
+ * Coding or cave existence mistake, cave for id '1623-161' does not exist. Expecting to set alias '2003-06' to it
+ * Coding or cave existence mistake, cave for id '1623-240' does not exist. Expecting to set alias '2003-08' to it
+ * Coding or cave existence mistake, cave for id '1623-245' does not exist. Expecting to set alias '2003-09' to it
+ * Coding or cave existence mistake, cave for id '1623-244' does not exist. Expecting to set alias '2003-10' to it
+ * Coding or cave existence mistake, cave for id '1623-269' does not exist. Expecting to set alias '2004-01' to it
+ * Coding or cave existence mistake, cave for id '1623-270' does not exist. Expecting to set alias '2004-03' to it
+ * Coding or cave existence mistake, cave for id '1623-251' does not exist. Expecting to set alias '2004-11' to it
+ * Coding or cave existence mistake, cave for id '1623-161' does not exist. Expecting to set alias '2004-12' to it
+ * Coding or cave existence mistake, cave for id '1623-253' does not exist. Expecting to set alias '2004-15' to it
+ * Coding or cave existence mistake, cave for id '1623-254' does not exist. Expecting to set alias '2004-19' to it
+ * Coding or cave existence mistake, cave for id '1623-255' does not exist. Expecting to set alias '2004-20' to it
+ * Coding or cave existence mistake, cave for id '1623-204' does not exist. Expecting to set alias '2005-04' to it
+ * Coding or cave existence mistake, cave for id '1623-264' does not exist. Expecting to set alias '2005-05' to it
+ * Coding or cave existence mistake, cave for id '1623-257' does not exist. Expecting to set alias '2005-07' to it
+ * Coding or cave existence mistake, cave for id '1623-285' does not exist. Expecting to set alias '2006-08' to it
+ * Coding or cave existence mistake, cave for id '1623-298' does not exist. Expecting to set alias '2006-09' to it
+ * Coding or cave existence mistake, cave for id '1623-271' does not exist. Expecting to set alias '2007-71' to it
+ * Coding or cave existence mistake, cave for id '1623-263' does not exist. Expecting to set alias '2010-01' to it
+ * Coding or cave existence mistake, cave for id '1623-293' does not exist. Expecting to set alias '2010-03' to it
+ * Coding or cave existence mistake, cave for id '1623-296' does not exist. Expecting to set alias '2012-70' to it
+ * Coding or cave existence mistake, cave for id '1623-296' does not exist. Expecting to set alias '1623-2012-70' to it
+ * Coding or cave existence mistake, cave for id '1623-286' does not exist. Expecting to set alias '2012-dd-05' to it
+ * Coding or cave existence mistake, cave for id '1623-297' does not exist. Expecting to set alias '2012-dd-08' to it
+ * Coding or cave existence mistake, cave for id '1623-286' does not exist. Expecting to set alias '2012-dd-05' to it
+ * Coding or cave existence mistake, cave for id '2012-ow-01' does not exist. Expecting to set alias '2012-0w-01' to it
+ * Coding or cave existence mistake, cave for id '1623-292' does not exist. Expecting to set alias '2012-ns-13' to it
+ * Coding or cave existence mistake, cave for id '1623-273' does not exist. Expecting to set alias '2014-neo-01' to it
+ * Coding or cave existence mistake, cave for id '1623-274' does not exist. Expecting to set alias '2014-sd-01' to it
+ * Coding or cave existence mistake, cave for id '1623-287' does not exist. Expecting to set alias '2014-ms-14' to it
+ * Coding or cave existence mistake, cave for id '1623-288' does not exist. Expecting to set alias '2015-mf-06' to it
+ * Coding or cave existence mistake, cave for id '1623-289' does not exist. Expecting to set alias '2016-jb-01' to it
+ * Coding or cave existence mistake, cave for id '1623-2012-ns-07' does not exist. Expecting to set alias '2016-01' to it
+ * Coding or cave existence mistake, cave for id '1623-2012-ns-12' does not exist. Expecting to set alias '2016-03' to it
+ * Coding or cave existence mistake, cave for id '1623-2012-ns-10' does not exist. Expecting to set alias '2016-04' to it
+ * Coding or cave existence mistake, cave for id '1623-277' does not exist. Expecting to set alias '2017-pw-01' to it
+ * Coding or cave existence mistake, cave for id '1623-291' does not exist. Expecting to set alias '2017_cucc_24' to it
+ * Coding or cave existence mistake, cave for id '1623-295' does not exist. Expecting to set alias '2017_cucc_23' to it
+ * Coding or cave existence mistake, cave for id '1623-290' does not exist. Expecting to set alias '2017_cucc_28' to it
+ * Coding or cave existence mistake, cave for id '1623-2013-03' does not exist. Expecting to set alias '2013-cucc-03' to it
+ * Coding or cave existence mistake, cave for id '1623-114' does not exist. Expecting to set alias '2018-ps-01' to it
+ * Coding or cave existence mistake, cave for id '1623-283' does not exist. Expecting to set alias 'bs17' to it
+ * Coding or cave existence mistake, cave for id '1623-198' does not exist. Expecting to set alias '1976/b11' to it
+ * Coding or cave existence mistake, cave for id '1623-197' does not exist. Expecting to set alias '1976/b8' to it
+ * Coding or cave existence mistake, cave for id '1623-190' does not exist. Expecting to set alias '1976/b9' to it
+ * Coding or cave existence mistake, cave for id '1623-198' does not exist. Expecting to set alias '1976-b11' to it
+ * Coding or cave existence mistake, cave for id '1623-197' does not exist. Expecting to set alias '1976-b8' to it
+ * Coding or cave existence mistake, cave for id '1623-190' does not exist. Expecting to set alias '1976-b9' to it
+ * Coding or cave existence mistake, cave for id '1623-198' does not exist. Expecting to set alias 'b11' to it
+ * Coding or cave existence mistake, cave for id '1623-197' does not exist. Expecting to set alias 'b8' to it
+ * Coding or cave existence mistake, cave for id '1623-190' does not exist. Expecting to set alias 'b9' to it
+ * Coding or cave existence mistake, cave for id '1623-190' does not exist. Expecting to set alias '2011-01-bs30' to it
+ * Coding or cave existence mistake, cave for id '1623-190' does not exist. Expecting to set alias 'bs30' to it
+ * Coding or cave existence mistake, cave for id '1623-190' does not exist. Expecting to set alias '2011-01' to it
+ * Coding or cave existence mistake, cave for id '1623-2005-08' does not exist. Expecting to set alias '2002-x11' to it
+ * Coding or cave existence mistake, cave for id '2005-07' does not exist. Expecting to set alias '2002-x12' to it
+ * Coding or cave existence mistake, cave for id '1623-2005-06' does not exist. Expecting to set alias '2002-x13' to it
+ * Coding or cave existence mistake, cave for id '2005-05' does not exist. Expecting to set alias '2002-x14' to it
+ * Coding or cave existence mistake, cave for id '1623-161' does not exist. Expecting to set alias 'kh' to it
+ * Coding or cave existence mistake, cave for id '1623-161' does not exist. Expecting to set alias '161-kh' to it
+ * Coding or cave existence mistake, cave for id '1623-204' does not exist. Expecting to set alias '204-steinBH' to it
+ * Coding or cave existence mistake, cave for id '1623-204' does not exist. Expecting to set alias 'stonebridge' to it
+ * Coding or cave existence mistake, cave for id '1623-234' does not exist. Expecting to set alias 'hauchhole' to it
+ * Coding or cave existence mistake, cave for id '1623-234' does not exist. Expecting to set alias 'hauch' to it
+ * Coding or cave existence mistake, cave for id '1623-234' does not exist. Expecting to set alias '234-hauch' to it
+ * Coding or cave existence mistake, cave for id '1623-258' does not exist. Expecting to set alias 'tunnocks' to it
+ * Coding or cave existence mistake, cave for id '1623-264' does not exist. Expecting to set alias 'balcony' to it
+ * Coding or cave existence mistake, cave for id '1623-264' does not exist. Expecting to set alias 'balkon' to it
+ * Coding or cave existence mistake, cave for id '1623-290' does not exist. Expecting to set alias 'fgh' to it
+ * Coding or cave existence mistake, cave for id '1623-290' does not exist. Expecting to set alias 'fishface' to it
+ * Coding or cave existence mistake, cave for id '1623-291' does not exist. Expecting to set alias 'gsh' to it
+ * Coding or cave existence mistake, cave for id '1623-2023-lc-01' does not exist. Expecting to set alias 'tempest' to it
+ * Coding or cave existence mistake, cave for id '2023-kt-02' does not exist. Expecting to set alias '1623-2023-kt-02' to it
+ * Coding or cave existence mistake, cave for id '1626-354' does not exist. Expecting to set alias 'langgustl' to it
+ * Coding or cave existence mistake, cave for id '1626-359' does not exist. Expecting to set alias '2018-dm-07' to it
+ * Coding or cave existence mistake, cave for id '1626-359' does not exist. Expecting to set alias '1626-2018-dm-07' to it
+ * Coding or cave existence mistake, cave for id '2018-dm-07' does not exist. Expecting to set alias 'homecoming' to it
+ * Coding or cave existence mistake, cave for id '2018-dm-07' does not exist. Expecting to set alias 'heimkommen' to it
+ * Coding or cave existence mistake, cave for id '2018-dm-07' does not exist. Expecting to set alias 'Heimkehr' to it
+ * Coding or cave existence mistake, cave for id '2018-dm-07' does not exist. Expecting to set alias 'hc' to it
+ * Coding or cave existence mistake, cave for id '1626-2018-ad-03' does not exist. Expecting to set alias 'loveshack' to it
+ * Coding or cave existence mistake, cave for id '1626-2018-ad-03' does not exist. Expecting to set alias 'crushed-garlic' to it
+ * Coding or cave existence mistake, cave for id '1626-2023-buzzardhole' does not exist. Expecting to set alias 'BuzzardHole' to it
+ * Coding or cave existence mistake, cave for id '1626-2023-buzzardhole' does not exist. Expecting to set alias '2023-BuzzardHole' to it
+ * Coding or cave existence mistake, cave for id '1626-2023-buzzardhole' does not exist. Expecting to set alias '1626-2023-BuzzardHole' to it
+ ! - 1986 No name match for: 'Kurt Keinnamen' in entry tid='1986-07-27b' for this year.
+ - Loaded logbook. 4 entries.
+ - Not a year with extant blog entries to import: '1986' not in BLOG_PARSER_SETTINGS {}
+ . ! - 1986 No name match for: 'Kurt Keinnamen' in entry tid='1986-07-27b' for this year.
+ - Loaded logbook. 4 entries.
+ - Not a year with extant blog entries to import: '1986' not in BLOG_PARSER_SETTINGS {}
+1986-07-31: surface - stupour
+others=''
+others=''
+--!2024---
+ . ! - 1986 No name match for: 'Kurt Keinnamen' in entry tid='1986-07-27b' for this year.
+ - Loaded logbook. 4 entries.
+ - Not a year with extant blog entries to import: '1986' not in BLOG_PARSER_SETTINGS {}
+' ! - 1986 No name match for: 'Kurt Keinnamen' in entry tid='1986-07-27b' for this year.'
+--!2024---
+ - 404 error in expowebpage() 1234/115.htm
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 290
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 291
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 264
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 258
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 204
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 359
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 76
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 107
+[]
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 290
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 291
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 264
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 258
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 204
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 359
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 76
+ ! Notable Caves: FAILED to get only one cave per kataster_number OR invalid number for: 107
+[]
+ - 404 error in expowebpage() handbook/_test_zyxxypqrqx.html
+/home/philip/troggle/therionrefs.log has 238 entries
diff --git a/core/views/logbooks.py b/core/views/logbooks.py
index da0468e..838595a 100644
--- a/core/views/logbooks.py
+++ b/core/views/logbooks.py
@@ -159,7 +159,8 @@ def person(request, slug=""):
"""Now very much simpler with an unambiguous slug
"""
this_person = Person.objects.get(slug=slug)
- return render(request, "person.html", {"person": this_person})
+ current_year = current_expo()
+ return render(request, "person.html", {"person": this_person, "year": current_year})
def get_person_chronology(personexpedition):
"""
@@ -201,9 +202,10 @@ def personexpedition(request, slug="", year=""):
this_expedition = Expedition.objects.get(year=year)
personexpedition = person.personexpedition_set.get(expedition=this_expedition)
personchronology = get_person_chronology(personexpedition)
+ current_year = current_expo()
return render(
- request, "personexpedition.html", {"personexpedition": personexpedition, "personchronology": personchronology}
+ request, "personexpedition.html", {"personexpedition": personexpedition, "personchronology": personchronology, "year": current_year}
)
except:
msg = f" Person '{slug=}' or year '{year=}' not found in database. Please report this to a nerd."