diff --git a/core/views/logbook_edit.py b/core/views/logbook_edit.py index 18e3c69..780d72c 100644 --- a/core/views/logbook_edit.py +++ b/core/views/logbook_edit.py @@ -307,6 +307,7 @@ def logbookedit(request, year=None, slug=None): if json_entries_dir.is_dir(): # only 2025 currently, or the current expo print(f"- Rewriting JUST this edited logbook entry to a JSON file. ") this_entry = LogbookEntry.objects.get(slug=slug) + write_entries_json([this_entry], year, editor) else: print(f"- Rewriting the entire {year} logbook to disc ") @@ -329,22 +330,22 @@ def logbookedit(request, year=None, slug=None): commit_msg = f"Online edit of logbookentry {slug}" add_commit(contents_path, commit_msg, editor) - # This does not change the URL in the browser, so despite a new slug being created, - # the next time this code is run it thinks a new slug needs to be created. So we should - # actually redirect to a new URL (an edit not a create) not simply return a render object. - # logbookedit/2022-08-21a - - # HOWEVER by doing a redirect rather than returning a rendered page, we lose all the - # error settings e.g dateflag and authroflag so the user gets no feedback about bad data entered. - # so we need to pass the flags explicitly in the url and then extract them from the request in the GET bit. sigh. - response = HttpResponseRedirect(f"/logbookedit/{slug}?dateflag={dateflag}&authorflag={authorflag}") - response.set_cookie('editor_id', editor, max_age=get_cookie_max_age(request)) # cookie expires after get_cookie_max_age(request) seconds - return response - - # Do the redirect instead of this: - - # Code fragment illustration - not actually what gets saved to database - # output = f''' + # This does not change the URL in the browser, so despite a new slug being created, + # the next time this code is run it thinks a new slug needs to be created. So we should + # actually redirect to a new URL (an edit not a create) not simply return a render object. + # logbookedit/2022-08-21a + + # HOWEVER by doing a redirect rather than returning a rendered page, we lose all the + # error settings e.g dateflag and authroflag so the user gets no feedback about bad data entered. + # so we need to pass the flags explicitly in the url and then extract them from the request in the GET bit. sigh. + response = HttpResponseRedirect(f"/logbookedit/{slug}?dateflag={dateflag}&authorflag={authorflag}") + response.set_cookie('editor_id', editor, max_age=get_cookie_max_age(request)) # cookie expires after get_cookie_max_age(request) seconds + return response + + # Do the redirect instead of this: + + # Code fragment illustration - not actually what gets saved to database + # output = f''' #
{date}
#
{author}, {others}
@@ -356,22 +357,22 @@ def logbookedit(request, year=None, slug=None): #
# ''' # return render( - # request, - # "logbookform.html", - # { - # "form": form, - # "year": year, - # "date": date, "dateflag": dateflag, - # "author": author, "authorflag": authorflag, - # "others": others, - # "place": place, - # "title": title, - # "tu": tu, - # "entry": entry, - # "output": output, - # "slug": slug, - # }, - # ) + # request, + # "logbookform.html", + # { + # "form": form, + # "year": year, + # "date": date, "dateflag": dateflag, + # "author": author, "authorflag": authorflag, + # "others": others, + # "place": place, + # "title": title, + # "tu": tu, + # "entry": entry, + # "output": output, + # "slug": slug, + # }, + # ) # GET here. Does not fall-through from the POST section. else: diff --git a/core/views/logbooks.py b/core/views/logbooks.py index 8aed855..20b5d95 100644 --- a/core/views/logbooks.py +++ b/core/views/logbooks.py @@ -476,6 +476,7 @@ def write_entries_json(entries, year, editor): for le in entries: # filename = f"{le.slug}-{le.pk:03}.json" + print(le) filename = f"{le.slug}.json" filepath = dirpath / filename ensure_dir_exists(filepath) @@ -483,7 +484,7 @@ def write_entries_json(entries, year, editor): entrydict = serialize_logentry(le) write_json_file(entrydict) git_add(filename, dirpath) - + commit_msg = f"Exporting {len(entries)} logbook entries as individual files." git_commit(dirpath, commit_msg, editor) return True diff --git a/deprecations.txt b/deprecations.txt index e69de29..c532726 100644 --- a/deprecations.txt +++ b/deprecations.txt @@ -0,0 +1,38 @@ +Traceback (most recent call last): + File "/home/philip/expo/troggle/manage.py", line 35, in + execute_from_command_line(sys.argv) + ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ + File "/home/philip/expo/troggle/.venv/lib/python3.13/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line + utility.execute() + ~~~~~~~~~~~~~~~^^ + File "/home/philip/expo/troggle/.venv/lib/python3.13/site-packages/django/core/management/__init__.py", line 416, in execute + django.setup() + ~~~~~~~~~~~~^^ + File "/home/philip/expo/troggle/.venv/lib/python3.13/site-packages/django/__init__.py", line 24, in setup + apps.populate(settings.INSTALLED_APPS) + ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/philip/expo/troggle/.venv/lib/python3.13/site-packages/django/apps/registry.py", line 91, in populate + app_config = AppConfig.create(entry) + File "/home/philip/expo/troggle/.venv/lib/python3.13/site-packages/django/apps/config.py", line 123, in create + mod = import_module(mod_path) + File "/home/philip/.local/share/uv/python/cpython-3.13.1-linux-x86_64-gnu/lib/python3.13/importlib/__init__.py", line 88, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1331, in _find_and_load_unlocked + File "", line 935, in _load_unlocked + File "", line 1026, in exec_module + File "", line 488, in _call_with_frames_removed + File "/home/philip/expo/troggle/.venv/lib/python3.13/site-packages/django/contrib/auth/apps.py", line 8, in + from .checks import check_middleware, check_models_permissions, check_user_model + File "/home/philip/expo/troggle/.venv/lib/python3.13/site-packages/django/contrib/auth/checks.py", line 9, in + from .management import _get_builtin_permissions + File "/home/philip/expo/troggle/.venv/lib/python3.13/site-packages/django/contrib/auth/management/__init__.py", line 10, in + from django.contrib.contenttypes.management import create_contenttypes + File "/home/philip/expo/troggle/.venv/lib/python3.13/site-packages/django/contrib/contenttypes/management/__init__.py", line 2, in + from django.db import DEFAULT_DB_ALIAS, IntegrityError, migrations, router, transaction + File "/home/philip/expo/troggle/.venv/lib/python3.13/site-packages/django/db/migrations/__init__.py", line 1, in + from .migration import Migration, swappable_dependency # NOQA + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +ModuleNotFoundError: No module named 'django.db.migrations.migration'