diff options
-rw-r--r-- | core/views/uploads.py | 28 | ||||
-rw-r--r-- | templates/dwgfiles.html | 2 | ||||
-rw-r--r-- | templates/dwguploadform.html | 26 |
3 files changed, 37 insertions, 19 deletions
diff --git a/core/views/uploads.py b/core/views/uploads.py index 9f39276..d65a803 100644 --- a/core/views/uploads.py +++ b/core/views/uploads.py @@ -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, diff --git a/templates/dwgfiles.html b/templates/dwgfiles.html index 5483fa1..8325d87 100644 --- a/templates/dwgfiles.html +++ b/templates/dwgfiles.html @@ -5,7 +5,7 @@ <h3>All Tunnel and Therion files - linked to wallets, survey scans, frames and scraps</h3> <table style="font-size: 85%" width=95%> -<tr><th>File</th><th>Size</th><th>Paths</th><th>Wallets</th><th>Scan files in the wallets</th><th>Frames</th></tr> +<tr><th>Drawing (Tunnel or Therion) File</th><th>Size</th><th>Paths</th><th>Wallets</th><th>Scan files in the wallets</th><th>Frames</th></tr> {% for dwgfile in dwgfiles %} <tr> diff --git a/templates/dwguploadform.html b/templates/dwguploadform.html index edce417..d253d09 100644 --- a/templates/dwguploadform.html +++ b/templates/dwguploadform.html @@ -10,13 +10,22 @@ <form method ='post' enctype ="multipart/form-data"> {% csrf_token %} <br /><br /> <br /><br /> - <label for="who_are_you">Who are you, uploading these files?</label> - <br /><br /> - <input {% if not user.username %} disabled{% endif %} - label = "Who are you" name = "who_are_you" size ="70" - title="Who are you" - placeholder="editor's name for version control e.g. 'Animal <mta@gasthof.expo>'" value="{{who_are_you}}" required/> - <br /><br /> <br> + <div style= "text-align: left;"> + Identified login + <input type="checkbox" name="identified_login" onclick="return false" id="id_identified_login" + {% if identified_login %} checked{% endif %} "> + <br /><br /> + + <label for="who_are_you">Who are you, uploading these files?</label> + <br /> + <input + {% if not user.username %} disabled{% endif %} + {% if identified_login %} readonly{% endif %} + label = "Who are you" name = "who_are_you" size ="70" + title="Who are you" + placeholder="editor's name for version control e.g. 'Animal <mta@gasthof.expo>'" value="{{who_are_you}}" required/> + <br /><br /> <br /> + </div> <input class="fancybutton" type = "file" multiple="multiple" name = "uploadfiles" id="uploadfiles" /> <br><br><br> @@ -26,7 +35,8 @@ </form> </div> <div style = "max-width:70%; margin-left:20%; text-align: left" > -<p>Only drawings and drawing config files can be uploaded. +<p>Only drawings and drawing config files can be uploaded.<br /> +topo and other digital instrument survey files should be uploaded to a Wallet, e.g. <a href="/wallets/year/2025">2025</a>. </div> <div style = "max-width:70%; margin-left:20%; text-align: left" > {% if refused %} |