mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-15 10:37:07 +00:00
new signup form now split out
This commit is contained in:
@@ -69,33 +69,6 @@ def spider(request, _):
|
||||
return render(request, "pagenotfound.html", {"path": path}, status=404)
|
||||
# return redirect("/?#") # so that suffixes applied by spider are no longer part of the url
|
||||
|
||||
@ensure_csrf_cookie
|
||||
def signup(request):
|
||||
if request.method == "POST": # If the form has been submitted...
|
||||
pageform = ExpoSignupForm(request.POST) # A form bound to the POST data
|
||||
if pageform.is_valid():
|
||||
print(f"form OK")
|
||||
who = pageform.cleaned_data["name"]
|
||||
who = git_string(editor)
|
||||
print(f"{who=}")
|
||||
return render(
|
||||
request,
|
||||
"signup.html",
|
||||
{"form": pageform,
|
||||
"year": "2025", "dates": "30th June - 3rd August",
|
||||
"name": f"{who}",
|
||||
}
|
||||
)
|
||||
else:
|
||||
pageform = ExpoSignupForm(initial={"allergies":"None", "medication":"None", "medic_info":"None", })
|
||||
return render(
|
||||
request,
|
||||
"signup.html",
|
||||
{"form": pageform,
|
||||
"year": "2025", "dates": "30th June - 3rd August",
|
||||
"name": "", "kinname": ""},
|
||||
)
|
||||
|
||||
def map(request):
|
||||
"""Serves unadorned the expoweb/map/slippy/map.html file"""
|
||||
fn = Path(settings.EXPOWEB, "map", "slippy", "map.html")
|
||||
@@ -576,48 +549,3 @@ class ExpoPageForm(forms.Form):
|
||||
),
|
||||
label = "Editor"
|
||||
)
|
||||
|
||||
class ExpoSignupForm(forms.Form):
|
||||
name = forms.CharField(label='Full name', max_length=100, widget=forms.TextInput(attrs={'tabindex': 1, 'placeholder': 'Anathema Device'}))
|
||||
address = forms.CharField(widget=forms.Textarea(attrs={'rows': 7, 'cols': 20, 'tabindex': 2, 'placeholder': 'The Airfield,\nTadfield'}))
|
||||
phone = forms.CharField(max_length=15, widget=forms.TextInput(attrs={'tabindex': 3, 'placeholder': '+44.1234567890'}))
|
||||
email = forms.EmailField(widget=forms.TextInput(attrs={'tabindex': 4, 'placeholder': 'a.device@potatohut.expo'}))
|
||||
|
||||
kinname = forms.CharField(label='Next of Kin name', max_length=100, widget=forms.TextInput(attrs={'tabindex': 5, 'placeholder': 'Newton Pulsifer'}))
|
||||
kinaddress = forms.CharField(widget=forms.Textarea(attrs={'rows': 7, 'cols': 20, 'tabindex': 6}))
|
||||
kinphone = forms.CharField(max_length=15, widget=forms.TextInput(attrs={'tabindex': 7}))
|
||||
kinemail = forms.EmailField(widget=forms.TextInput(attrs={'tabindex': 8}))
|
||||
relation = forms.CharField(label='Relation to you', max_length=100, widget=forms.TextInput(attrs={'tabindex': 9, 'placeholder': 'Beau'}))
|
||||
|
||||
VEGGIE_CHOICES = [
|
||||
('yes', 'Yes'),
|
||||
('mostly', 'Mostly'),
|
||||
('no', 'No'),
|
||||
]
|
||||
|
||||
STUDENT_CHOICES = [
|
||||
('yes', 'Yes'),
|
||||
('no', 'No'),
|
||||
]
|
||||
|
||||
veggie = forms.ChoiceField(choices=VEGGIE_CHOICES, widget=forms.RadioSelect(attrs={'tabindex': 10}))
|
||||
student = forms.ChoiceField(choices=STUDENT_CHOICES, widget=forms.RadioSelect(attrs={'tabindex': 11}))
|
||||
|
||||
transport_ok = forms.ChoiceField(choices=[('yes', 'Yes'), ('no', 'No')],
|
||||
widget=forms.RadioSelect(attrs={'tabindex': 12}), initial='yes')
|
||||
transport_info = forms.CharField(widget=forms.Textarea(attrs={'rows': 6, 'cols': 80, 'tabindex': 13}),
|
||||
required=False)
|
||||
|
||||
bivvy = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'tabindex': 14}))
|
||||
tent = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'tabindex': 15}))
|
||||
top_tent_cap = forms.IntegerField(required=False, widget=forms.NumberInput(attrs={'tabindex': 16}))
|
||||
btent = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'tabindex': 17}))
|
||||
base_tent_cap = forms.IntegerField(required=False, widget=forms.NumberInput(attrs={'tabindex': 18}))
|
||||
|
||||
allergies = forms.CharField(widget=forms.Textarea(attrs={'rows': 2, 'cols': 80, 'tabindex': 19}), required=False)
|
||||
medication = forms.CharField(widget=forms.Textarea(attrs={'rows': 2, 'cols': 80, 'tabindex': 20}), required=False)
|
||||
medic_info = forms.CharField(widget=forms.Textarea(attrs={'rows': 5, 'cols': 80, 'tabindex': 21}), required=False)
|
||||
|
||||
extra_info = forms.CharField(widget=forms.Textarea(attrs={'rows': 15, 'cols': 80, 'tabindex': 22}), required=False)
|
||||
|
||||
aims = forms.CharField(widget=forms.Textarea(attrs={'rows': 15, 'cols': 80, 'tabindex': 23}), required=False)
|
||||
|
||||
97
core/views/signup.py
Normal file
97
core/views/signup.py
Normal file
@@ -0,0 +1,97 @@
|
||||
import os
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
import django.forms as forms
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.shortcuts import redirect, render
|
||||
from django.urls import reverse
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
|
||||
import troggle.settings as settings
|
||||
from troggle.core.utils import (
|
||||
COOKIE_MAX_AGE,
|
||||
WriteAndCommitError,
|
||||
current_expo,
|
||||
get_cookie,
|
||||
git_string,
|
||||
write_and_commit,
|
||||
)
|
||||
from troggle.core.views.editor_helpers import HTMLarea
|
||||
|
||||
from .auth import login_required_if_public
|
||||
|
||||
"""The new user signup form and expo user management system in 2025.
|
||||
"""
|
||||
|
||||
@ensure_csrf_cookie
|
||||
def signup(request):
|
||||
if request.method == "POST": # If the form has been submitted...
|
||||
pageform = ExpoSignupForm(request.POST) # A form bound to the POST data
|
||||
if pageform.is_valid():
|
||||
print(f"form OK")
|
||||
who = pageform.cleaned_data["name"]
|
||||
who = git_string(editor)
|
||||
print(f"{who=}")
|
||||
return render(
|
||||
request,
|
||||
"signup.html",
|
||||
{"form": pageform,
|
||||
"year": "2025", "dates": "30th June - 3rd August",
|
||||
"name": f"{who}",
|
||||
}
|
||||
)
|
||||
else:
|
||||
pageform = ExpoSignupForm(initial={"allergies":"None", "medication":"None", "medic_info":"None", })
|
||||
return render(
|
||||
request,
|
||||
"signup.html",
|
||||
{"form": pageform,
|
||||
"year": "2025", "dates": "30th June - 3rd August",
|
||||
"name": "", "kinname": ""},
|
||||
)
|
||||
|
||||
class ExpoSignupForm(forms.Form):
|
||||
name = forms.CharField(label='Full name', max_length=100, widget=forms.TextInput(attrs={'tabindex': 1, 'placeholder': 'Anathema Device'}))
|
||||
address = forms.CharField(widget=forms.Textarea(attrs={'rows': 7, 'cols': 20, 'tabindex': 2, 'placeholder': 'The Airfield,\nTadfield'}))
|
||||
phone = forms.CharField(max_length=15, widget=forms.TextInput(attrs={'tabindex': 3, 'placeholder': '+44.1234567890'}))
|
||||
email = forms.EmailField(widget=forms.TextInput(attrs={'tabindex': 4, 'placeholder': 'a.device@potatohut.expo'}))
|
||||
|
||||
kinname = forms.CharField(label='Next of Kin name', max_length=100, widget=forms.TextInput(attrs={'tabindex': 5, 'placeholder': 'Newton Pulsifer'}))
|
||||
kinaddress = forms.CharField(widget=forms.Textarea(attrs={'rows': 7, 'cols': 20, 'tabindex': 6}))
|
||||
kinphone = forms.CharField(max_length=15, widget=forms.TextInput(attrs={'tabindex': 7}))
|
||||
kinemail = forms.EmailField(widget=forms.TextInput(attrs={'tabindex': 8}))
|
||||
relation = forms.CharField(label='Relation to you', max_length=100, widget=forms.TextInput(attrs={'tabindex': 9, 'placeholder': 'Beau'}))
|
||||
|
||||
VEGGIE_CHOICES = [
|
||||
('yes', 'Yes'),
|
||||
('mostly', 'Mostly'),
|
||||
('no', 'No'),
|
||||
]
|
||||
|
||||
STUDENT_CHOICES = [
|
||||
('yes', 'Yes'),
|
||||
('no', 'No'),
|
||||
]
|
||||
|
||||
veggie = forms.ChoiceField(choices=VEGGIE_CHOICES, widget=forms.RadioSelect(attrs={'tabindex': 10}))
|
||||
student = forms.ChoiceField(choices=STUDENT_CHOICES, widget=forms.RadioSelect(attrs={'tabindex': 11}))
|
||||
|
||||
transport_ok = forms.ChoiceField(choices=[('yes', 'Yes'), ('no', 'No')],
|
||||
widget=forms.RadioSelect(attrs={'tabindex': 12}), initial='yes')
|
||||
transport_info = forms.CharField(widget=forms.Textarea(attrs={'rows': 6, 'cols': 80, 'tabindex': 13}),
|
||||
required=False)
|
||||
|
||||
bivvy = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'tabindex': 14}))
|
||||
tent = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'tabindex': 15}))
|
||||
top_tent_cap = forms.IntegerField(required=False, widget=forms.NumberInput(attrs={'tabindex': 16}))
|
||||
btent = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'tabindex': 17}))
|
||||
base_tent_cap = forms.IntegerField(required=False, widget=forms.NumberInput(attrs={'tabindex': 18}))
|
||||
|
||||
allergies = forms.CharField(widget=forms.Textarea(attrs={'rows': 2, 'cols': 80, 'tabindex': 19}), required=False)
|
||||
medication = forms.CharField(widget=forms.Textarea(attrs={'rows': 2, 'cols': 80, 'tabindex': 20}), required=False)
|
||||
medic_info = forms.CharField(widget=forms.Textarea(attrs={'rows': 5, 'cols': 80, 'tabindex': 21}), required=False)
|
||||
|
||||
extra_info = forms.CharField(widget=forms.Textarea(attrs={'rows': 15, 'cols': 80, 'tabindex': 22}), required=False)
|
||||
|
||||
aims = forms.CharField(widget=forms.Textarea(attrs={'rows': 15, 'cols': 80, 'tabindex': 23}), required=False)
|
||||
4
urls.py
4
urls.py
@@ -34,7 +34,6 @@ from troggle.core.views.expo import (
|
||||
mediapage,
|
||||
pubspage,
|
||||
spider,
|
||||
signup,
|
||||
)
|
||||
from troggle.core.views.logbook_edit import logbookedit
|
||||
from troggle.core.views.logbooks import (
|
||||
@@ -54,6 +53,7 @@ from troggle.core.views.logbooks import (
|
||||
from troggle.core.views.other import controlpanel, exportlogbook, frontpage, todos
|
||||
from troggle.core.views.prospect import prospecting
|
||||
from troggle.core.views.scans import allscans, cavewallets, scansingle, walletslistperson, walletslistyear
|
||||
from troggle.core.views.signup import signup
|
||||
from troggle.core.views.uploads import dwgupload, expofilerename, gpxupload, photoupload
|
||||
from troggle.core.views.wallets_edit import walletedit
|
||||
|
||||
@@ -154,7 +154,7 @@ trogglepatterns = [
|
||||
path('dwguploadnogit/<path:folder>', dwgupload, {'gitdisable': 'yes'}, name='dwguploadnogit'), # used in testing
|
||||
path('logbookedit/', logbookedit, name='logbookedit'),
|
||||
path('logbookedit/<slug:slug>', logbookedit, name='logbookedit'),
|
||||
path('sign_up', signup, name='signup'),
|
||||
path('signup', signup, name='signup'),
|
||||
|
||||
# Renaming an uploaded file
|
||||
path('expofilerename/<path:filepath>', expofilerename, name='expofilerename'),
|
||||
|
||||
Reference in New Issue
Block a user