Merge forms into one form.

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

@ -1,11 +1,15 @@
from django import forms
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(
attrs={'placeholder': '123A56'}
))
attrs={'placeholder': '123 Main St.'}
))
email = forms.EmailField(label='Email', max_length=32, required=True,
widget=forms.TextInput(
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' %}
{% block body %}
<h1>Type In Your Code</h1>
<form action="{% url 'download_f' id %}" method="POST">
<form action="{% url 'download' %}" method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</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 %}

@ -2,8 +2,8 @@ from django.urls import path
from . import views
urlpatterns = [
path('', views.starter, name='download'),
path('d/<addrid>/', views.download, name='download_f'),
path('', views.download, name='download'),
#path('d/<addrid>/', views.download, name='download_f'),
path('dp/<addrid>/', views.download_preload, name='download_f_plus'),
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()
)
def download(request, addrid):
def download(request):
if request.method == 'POST':
form = CodeForm(request.POST)
if form.is_valid():
# get addr by id
addr = Address.objects.filter(id=addrid)
addr = Address.objects.filter(address=form.cleaned_data['address'])
if len(addr) == 0:
return render(request, 'common/not-found.html')
# only get first addr
@ -119,7 +119,7 @@ def download(request, addrid):
except Exception as e:
print(e)
return render(request, 'download/email-not-sent.html', {
'id': addrid,
'id': addr.id,
'code': form.cleaned_data['code']
})
# only saves email if it sent
@ -131,8 +131,7 @@ def download(request, addrid):
else:
form = CodeForm()
return render(request, 'download/code-form.html', {
'form': form,
'id': addrid
'form': form
})
def download_preload(request, addid):

Loading…
Cancel
Save