2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-12-17 23:37:13 +00:00

Drawing file upload now using identified_login (oops)

This commit is contained in:
2025-02-17 22:31:10 +02:00
parent 6c30a9ffcb
commit 61c0f91088
3 changed files with 37 additions and 19 deletions

View File

@@ -56,12 +56,13 @@ todo = """
class DrawingsFilesForm(forms.Form): # not a model-form, just a form-form
uploadfiles = forms.FileField()
who_are_you = forms.CharField( # when this does not commit to git, this is not used.
identified_login = forms.BooleanField(required=False,widget=forms.CheckboxInput(attrs={"onclick":"return false"})) # makes it readonly
who_are_you = forms.CharField(
widget=forms.TextInput(
attrs={"size": 100, "placeholder": "You are editing this page, who are you ? e.g. 'Wookey' or 'Animal <mta@gasthof.expo>'",
attrs={"size": 100, "placeholder": "You are editing this page, who are you ? e.g. 'Becka' or 'Animal <mta@gasthof.expo>'",
"style": "vertical-align: text-top;"}
)
)
)
class WalletFilesForm(forms.Form): # not a model-form, just a form-form
"""Used only for uploading to expofiles/surveyscans/<year>/<wallet>
@@ -568,11 +569,12 @@ def dwgupload(request, folder=None, gitdisable="no"):
You will find the Django documentation on forms very confusing, This is simpler.
We could validate the uploaded files as being a valid files using an XML parser, not a dubious script or hack,
but this won't work on Tunnel files as Tunnel does not produce exactly valid xml
but this won't work on Tunnel files as Tunnel does not produce exactly valid xml (!)
We use get_or_create instead of simply creating a new object in case someone uploads the same file
several times in one session, and expects them to be overwritten in the database. Although
the actual file will be duplicated in the filesystem with different random name ending.
several times in one session, and expects them to be overwritten in the database. (Although
the actual file will be duplicated in the filesystem with different random name ending,
and this will need to be cleaned-up manually by a nerd later.)
"""
def dwgvalid(name):
@@ -622,8 +624,9 @@ def dwgupload(request, folder=None, gitdisable="no"):
urlfile = Path("/dwgdataraw/") / folder
urldir = Path("/dwgupload/") / folder
editor = get_cookie(request)
form = DrawingsFilesForm()
identified_login = is_identified_user(request.user)
editor = get_editor(request)
form = DrawingsFilesForm()
if request.method == "POST":
form = DrawingsFilesForm(request.POST, request.FILES)
@@ -727,12 +730,17 @@ def dwgupload(request, folder=None, gitdisable="no"):
if dirs:
dirs = sorted(dirs)
if identified_login:
# disable editing the git id string as we get it from the logged-on user data
print(f"IDENTIFIED {identified_login}")
form.fields["who_are_you"].widget.attrs["readonly"]="readonly"
response = render(
request,
"dwguploadform.html",
"dwguploadform.html", # a bit more primitive than many forms in troggle, everything is very explicit and doesn't use widgets
{
"form": form,
"identified_login": identified_login,
"doesnotexist": doesnotexist,
"urlfile": urlfile,
"urldir": urldir,