mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-16 19:27:07 +00:00
edit cave reads from HTML file not just db
This commit is contained in:
@@ -117,7 +117,7 @@ def write_and_commit(files, message):
|
||||
kwargs = {}
|
||||
try:
|
||||
with open(filepath, mode, **kwargs) as f:
|
||||
print(f"WRITING{cwd}---{filename} ")
|
||||
print(f"WRITING {cwd}---{filename} ")
|
||||
# as the wsgi process www-data, we have group write-access but are not owner, so cannot chmod.
|
||||
# os.chmod(filepath, 0o664) # set file permissions to rw-rw-r--
|
||||
f.write(content)
|
||||
|
||||
@@ -14,6 +14,9 @@ from troggle.core.models.caves import Cave, CaveAndEntrance, Entrance, GetCaveLo
|
||||
from troggle.core.models.logbooks import CaveSlug, QM
|
||||
from troggle.core.utils import write_and_commit
|
||||
from troggle.core.views import expo
|
||||
from troggle.settings import CAVEDESCRIPTIONS, ENTRANCEDESCRIPTIONS
|
||||
from troggle.parsers.caves import readcave, readentrance
|
||||
|
||||
|
||||
from .auth import login_required_if_public
|
||||
|
||||
@@ -333,7 +336,7 @@ def edit_cave(request, path="", slug=None):
|
||||
The format for the file being saved is in templates/dataformat/cave.xml
|
||||
Warning. This uses Django deep magic.
|
||||
|
||||
It does save the data into into the database directly, not by parsing the file.
|
||||
It saves the data into into the database and into the html file, which it then commits to git.
|
||||
"""
|
||||
message = ""
|
||||
if slug is not None:
|
||||
@@ -373,7 +376,7 @@ def edit_cave(request, path="", slug=None):
|
||||
ceinst.save()
|
||||
try:
|
||||
cave_file = cave.file_output()
|
||||
print(cave_file)
|
||||
# print(cave_file)
|
||||
write_and_commit([cave_file], f"Online edit of {cave}")
|
||||
# leave other exceptions unhandled so that they bubble up to user interface
|
||||
except PermissionError:
|
||||
@@ -388,6 +391,10 @@ def edit_cave(request, path="", slug=None):
|
||||
message = f"! POST data is INVALID {cave}"
|
||||
print(message)
|
||||
else:
|
||||
# re-read cave data from file.
|
||||
filename = str(cave.slug() +".html")
|
||||
readcave(filename, cave=cave)
|
||||
|
||||
form = CaveForm(instance=cave)
|
||||
ceFormSet = CaveAndEntranceFormSet(queryset=cave.caveandentrance_set.all())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user