Merge forms into one form.

master
Tait Hoyem 3 years ago
parent 1480d09187
commit 87d711b04a

@ -1,11 +1,15 @@
from django import forms from django import forms
class CodeForm(forms.Form): class CodeForm(forms.Form):
code = forms.CharField(label='Code', max_length=8, required=True, address = forms.CharField(label='Address', max_length=120, required=True,
widget=forms.TextInput( widget=forms.TextInput(
attrs={'placeholder': '123A56'} attrs={'placeholder': '123 Main St.'}
)) ))
email = forms.EmailField(label='Email', max_length=32, required=True, email = forms.EmailField(label='Email', max_length=32, required=True,
widget=forms.TextInput( widget=forms.TextInput(
attrs={'placeholder': 'jane@joe.com'} attrs={'placeholder': 'jane@joe.com'}
)) ))
code = forms.CharField(label='Code', max_length=8, required=True,
widget=forms.TextInput(
attrs={'placeholder': '123A56'}
))

@ -1,9 +1,37 @@
{% extends 'common/master.html' %} {% extends 'common/master.html' %}
{% block body %} {% block body %}
<h1>Type In Your Code</h1> <h1>Type In Your Code</h1>
<form action="{% url 'download_f' id %}" method="POST"> <form action="{% url 'download' %}" method="POST">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<input type="submit" value="Submit"> <input type="submit" value="Submit">
</form> </form>
<div id="addrlist"></div>
<script>
const ADDR_BOX = document.getElementById('id_address');
const SEARCH_URL = '/download/search/';
const ADDR_LIST = document.getElementById('addrlist');
ADDR_BOX.oninput = async (e) => {
const ADDR_INPUT = e.target.value;
console.log(e.target.value);
let response = await fetch(SEARCH_URL + ADDR_INPUT);
let addresses = await response.json();
console.log(addresses);
ADDR_LIST.innerHTML = '';
for (address of addresses) {
let li = document.createElement('li');
let alink = document.createElement('button');
alink.innerText = address.address;
alink.onclick = function(e) {
console.log(e.target.innerText);
ADDR_BOX.value = e.target.innerText;
ADDR_BOX.readOnly = true;
}
li.appendChild(alink);
ADDR_LIST.appendChild(li);
}
}
</script>
{% endblock %} {% endblock %}

@ -2,8 +2,8 @@ from django.urls import path
from . import views from . import views
urlpatterns = [ urlpatterns = [
path('', views.starter, name='download'), path('', views.download, name='download'),
path('d/<addrid>/', views.download, name='download_f'), #path('d/<addrid>/', views.download, name='download_f'),
path('dp/<addrid>/', views.download_preload, name='download_f_plus'), path('dp/<addrid>/', views.download_preload, name='download_f_plus'),
path('search/<addr>/', views.search, name='search'), path('search/<addr>/', views.search, name='search'),
] ]

@ -78,12 +78,12 @@ def save_email(user, addr, pdf, dt):
ref_code=hashlib.sha256(dt.strftime("%Y%m%d%H%M%S").encode()).hexdigest() ref_code=hashlib.sha256(dt.strftime("%Y%m%d%H%M%S").encode()).hexdigest()
) )
def download(request, addrid): def download(request):
if request.method == 'POST': if request.method == 'POST':
form = CodeForm(request.POST) form = CodeForm(request.POST)
if form.is_valid(): if form.is_valid():
# get addr by id # get addr by id
addr = Address.objects.filter(id=addrid) addr = Address.objects.filter(address=form.cleaned_data['address'])
if len(addr) == 0: if len(addr) == 0:
return render(request, 'common/not-found.html') return render(request, 'common/not-found.html')
# only get first addr # only get first addr
@ -119,7 +119,7 @@ def download(request, addrid):
except Exception as e: except Exception as e:
print(e) print(e)
return render(request, 'download/email-not-sent.html', { return render(request, 'download/email-not-sent.html', {
'id': addrid, 'id': addr.id,
'code': form.cleaned_data['code'] 'code': form.cleaned_data['code']
}) })
# only saves email if it sent # only saves email if it sent
@ -131,8 +131,7 @@ def download(request, addrid):
else: else:
form = CodeForm() form = CodeForm()
return render(request, 'download/code-form.html', { return render(request, 'download/code-form.html', {
'form': form, 'form': form
'id': addrid
}) })
def download_preload(request, addid): def download_preload(request, addid):

Loading…
Cancel
Save