Add validation for final question and some minor CSS
Signed-off-by: Etzelia <etzelia@hotmail.com>captcha
parent
a31f49c7ce
commit
725ac7f40f
|
@ -51,7 +51,11 @@ def rules():
|
||||||
if cfg['rules']['application']['validate']:
|
if cfg['rules']['application']['validate']:
|
||||||
data.append("The answer to the final question is \"{}\"".format(cfg['rules']['application']['answer']))
|
data.append("The answer to the final question is \"{}\"".format(cfg['rules']['application']['answer']))
|
||||||
|
|
||||||
return data
|
return {
|
||||||
|
"rules": data,
|
||||||
|
"validate": cfg['rules']['application']['validate'],
|
||||||
|
"answer": cfg['rules']['application']['answer']
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@method_decorator(csrf_exempt, name='dispatch')
|
@method_decorator(csrf_exempt, name='dispatch')
|
||||||
|
@ -60,7 +64,7 @@ class Apply(View):
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
form = ApplicationForm()
|
form = ApplicationForm()
|
||||||
return render(request, 'minecraft_manager/external/apply.html',
|
return render(request, 'minecraft_manager/external/apply.html',
|
||||||
{'form': form.as_p(), 'rules': rules(), 'valid': False, 'map': config(),
|
{'form': form.as_p(), 'rules': rules()["rules"], 'valid': False, 'map': config(),
|
||||||
'captcha': getattr(settings, "CAPTCHA_SITE", "")})
|
'captcha': getattr(settings, "CAPTCHA_SITE", "")})
|
||||||
|
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
|
@ -68,7 +72,9 @@ class Apply(View):
|
||||||
valid_username = mcm_utils.validate_username(form.data['username'])
|
valid_username = mcm_utils.validate_username(form.data['username'])
|
||||||
captcha = mcm_utils.Captcha(request.POST)
|
captcha = mcm_utils.Captcha(request.POST)
|
||||||
valid = form.is_valid()
|
valid = form.is_valid()
|
||||||
if valid and valid_username and captcha.success:
|
r = rules()
|
||||||
|
valid_answer = not r["validate"] or r["answer"] == form.data['read_rules']
|
||||||
|
if valid and valid_username and valid_answer and captcha.success:
|
||||||
app = form.save()
|
app = form.save()
|
||||||
msg = mcm_utils.build_application(app)
|
msg = mcm_utils.build_application(app)
|
||||||
mcm_api.discord_mcm(message='New Application!', embed=msg)
|
mcm_api.discord_mcm(message='New Application!', embed=msg)
|
||||||
|
@ -78,8 +84,10 @@ class Apply(View):
|
||||||
form.add_error(None, error)
|
form.add_error(None, error)
|
||||||
if not valid_username:
|
if not valid_username:
|
||||||
form.add_error(None, "That username is not a premium Minecraft account")
|
form.add_error(None, "That username is not a premium Minecraft account")
|
||||||
|
if not valid_answer:
|
||||||
|
form.add_error(None, "Please read the rules again")
|
||||||
return render(request, 'minecraft_manager/external/apply.html',
|
return render(request, 'minecraft_manager/external/apply.html',
|
||||||
{'form': form.as_p(), 'rules': rules(), 'valid': valid and valid_username and captcha.success, 'map': config(),
|
{'form': form.as_p(), 'rules': r["rules"], 'valid': valid and valid_username and valid_answer and captcha.success, 'map': config(),
|
||||||
'captcha': getattr(settings, "CAPTCHA_SITE", "")})
|
'captcha': getattr(settings, "CAPTCHA_SITE", "")})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -68,3 +68,8 @@
|
||||||
.rule {
|
.rule {
|
||||||
margin-bottom: .5em;
|
margin-bottom: .5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.errorlist {
|
||||||
|
color: #D8000C;
|
||||||
|
background-color: #FFD2D2;
|
||||||
|
}
|
Loading…
Reference in New Issue