From 404944572b709b95eb4cf9c85510bd13a8087e8a Mon Sep 17 00:00:00 2001 From: nathaniel smith Date: Sun, 18 Dec 2016 22:30:41 -0800 Subject: [PATCH] tickets frontend --- ttadmin/common/forms.py | 1 + ttadmin/help/forms.py | 47 +++++++++++++- ttadmin/help/templates/help/tickets.html | 74 ++++++++++++++++++++++- ttadmin/users/templates/users/signup.html | 1 - 4 files changed, 119 insertions(+), 4 deletions(-) diff --git a/ttadmin/common/forms.py b/ttadmin/common/forms.py index eaada69..0e19486 100644 --- a/ttadmin/common/forms.py +++ b/ttadmin/common/forms.py @@ -1,5 +1,6 @@ from random import shuffle +from django.core.exceptions import ValidationError from django.forms import ChoiceField CAPTCHA_CHOICES = [('two', 'zorp borp'), diff --git a/ttadmin/help/forms.py b/ttadmin/help/forms.py index aac9da8..670fadb 100644 --- a/ttadmin/help/forms.py +++ b/ttadmin/help/forms.py @@ -1,5 +1,48 @@ -from django.forms import Form +from django.core.exceptions import ValidationError +from django.forms import Form, CharField, EmailField, Textarea, ChoiceField + +from common.forms import CaptchaField + +ISSUE_TYPE_CHOICES = ( + ('logging_in', 'help logging in'), + ('concern_site', 'concern about the site'), + ('concern_user', 'concern about another user'), + ('package', 'install a package'), + ('question', 'just a question',), + ('other', 'something else'), +) + +def validate_issue_text(text): + if len(text) == 0: + raise ValidationError('please describe yr issue') + if len(text) > 500: + raise ValidationError('too long') class TicketForm(Form): - pass + name = CharField(label='name', + help_text='your tilde.town username if you have one, otherwise just something to address you as' + ) + email = EmailField( + help_text='only used to message you about this ticket and nothing else.', + label='e-mail', + ) + issue_type = ChoiceField( + choices=ISSUE_TYPE_CHOICES, + label='type of issue', + help_text='the type of issue that best describes your problem' + ) + issue_text = CharField( + widget=Textarea, + label="what's up?", + help_text='describe your issue (in 500 characters or less)', + validators=(validate_issue_text,), + ) + captcha = CaptchaField() + + def clean(self): + result = super().clean() + if self.errors: + raise ValidationError('oops, looks like there were some problems below.') + + return result diff --git a/ttadmin/help/templates/help/tickets.html b/ttadmin/help/templates/help/tickets.html index 1bc0e28..c5f4b3a 100644 --- a/ttadmin/help/templates/help/tickets.html +++ b/ttadmin/help/templates/help/tickets.html @@ -1 +1,73 @@ -lololol + + + + tilde.town help desk + + + + +

tilde.town help desk

+

+ hi! +

+

+ this form exists to make it easier for the tilde.town admin to help + people out with system issues like logging in, package installation, + and general questions. +

+

in using this system, recall that there is just the one admin (~vilmibm) and it might take + 3-4 days to get a response. Usually you'll hear back within a day, + though! +

+ {% if error_message %} +

{{ error_message }}

+ {% endif %} + +
+ {% csrf_token %} + + {{ form.as_table }} +
+ +
+ + + + diff --git a/ttadmin/users/templates/users/signup.html b/ttadmin/users/templates/users/signup.html index a475539..334138c 100644 --- a/ttadmin/users/templates/users/signup.html +++ b/ttadmin/users/templates/users/signup.html @@ -51,7 +51,6 @@
{% csrf_token %} -