summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/views/uploads.py28
-rw-r--r--templates/dwgfiles.html2
-rw-r--r--templates/dwguploadform.html26
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 %}