1
0
mirror of https://github.com/fspc/workstand.git synced 2025-02-23 09:13:23 -05:00

Saner member sign-up!

This commit is contained in:
Drew Larson 2016-05-26 18:30:33 -06:00
parent 9f0da06756
commit f22f39f67f
4 changed files with 31 additions and 19 deletions

View File

@ -4,7 +4,7 @@ from registration.models import Member
class MemberForm(ModelForm): class MemberForm(ModelForm):
waiver_substitute = BooleanField(label='I have read and agree to the above terms & conditions.', widget=CheckboxInput(attrs={'class': 'mdl-checkbox__input'})) waiver_substitute = BooleanField(required=False, label='I have read and agree to the above terms & conditions.', widget=CheckboxInput(attrs={'class': 'mdl-checkbox__input'}))
class Meta: class Meta:
model = Member model = Member

View File

@ -2,16 +2,16 @@
{% load staticfiles %} {% load staticfiles %}
{% block styles %} {% block styles %}
<link rel="stylesheet" href="{% static 'vendor/md-date-time-picker/dist/css/md-date-time-picker.min.css' %}"> <link rel="stylesheet" href="{% static 'vendor/md-date-time-picker/dist/css/mdDateTimePicker.min.css' %}">
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<script src="{% static 'vendor/moment/min/moment.min.js' %}"></script> <script src="{% static 'vendor/moment/min/moment.min.js' %}"></script>
<script src="{% static 'vendor/object.observe/dist/object-observe-lite.min.js' %}"></script> <script src="{% static 'vendor/object.observe/dist/object-observe-lite.min.js' %}"></script>
<script src="{% static 'vendor/draggabilly/dist/draggabilly.pkgd.min.js' %}"></script> <script src="{% static 'vendor/draggabilly/dist/draggabilly.pkgd.min.js' %}"></script>
<script src="{% static 'vendor/md-date-time-picker/dist/js/md-date-time-picker.js' %}"></script> <script src="{% static 'vendor/md-date-time-picker/dist/js/mdDateTimePicker.min.js' %}"></script>
<script> <script>
var dateOfBirth = new mdDateTimePicker({ var dateOfBirth = new mdDateTimePicker.default({
type: 'date', type: 'date',
past: moment().subtract(100, 'years') past: moment().subtract(100, 'years')
}); });

View File

@ -2,16 +2,16 @@
{% load staticfiles %} {% load staticfiles %}
{% block styles %} {% block styles %}
<link rel="stylesheet" href="{% static 'vendor/md-date-time-picker/dist/css/md-date-time-picker.min.css' %}"> <link rel="stylesheet" href="{% static 'vendor/md-date-time-picker/dist/css/mdDateTimePicker.min.css' %}">
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<script src="{% static 'vendor/moment/min/moment.min.js' %}"></script> <script src="{% static 'vendor/moment/min/moment.min.js' %}"></script>
<script src="{% static 'vendor/object.observe/dist/object-observe-lite.min.js' %}"></script> <script src="{% static 'vendor/object.observe/dist/object-observe-lite.min.js' %}"></script>
<script src="{% static 'vendor/draggabilly/dist/draggabilly.pkgd.min.js' %}"></script> <script src="{% static 'vendor/draggabilly/dist/draggabilly.pkgd.min.js' %}"></script>
<script src="{% static 'vendor/md-date-time-picker/dist/js/md-date-time-picker.js' %}"></script> <script src="{% static 'vendor/md-date-time-picker/dist/js/mdDateTimePicker.min.js' %}"></script>
<script> <script>
var dateOfBirth = new mdDateTimePicker({ var dateOfBirth = new mdDateTimePicker.default({
type: 'date', type: 'date',
past: moment().subtract(100, 'years') past: moment().subtract(100, 'years')
}); });
@ -20,11 +20,11 @@
}); });
Object.observe(dateOfBirth, function(changes) { Object.observe(dateOfBirth, function(changes) {
var input = document.getElementById('{{ form.date_of_birth.id_for_label }}'); var input = document.getElementById('{{ form.date_of_birth.id_for_label }}');
input.value = dateOfBirth.time().format('YYYY-MM-DD'); input.value = dateOfBirth.time.format('YYYY-MM-DD');
input.parentNode.classList.add('is-dirty'); input.parentNode.classList.add('is-dirty');
var threshold = moment.duration(18, 'years'); var threshold = moment.duration(18, 'years');
var dob = dateOfBirth.time().clone(); var dob = dateOfBirth.time.clone();
if (dob.add(threshold).isAfter(moment())) { if (dob.add(threshold).isAfter(moment())) {
document.getElementById('{{ form.guardian_name.id_for_label }}').disabled = false; document.getElementById('{{ form.guardian_name.id_for_label }}').disabled = false;
@ -75,7 +75,9 @@
{% if form.non_field_errors %} {% if form.non_field_errors %}
<div> <div>
<span class="error">{{ form.errors }}</span> {% for errors in form.non_field_errors %}
<span class="mdl-textfield__error">{{ error }}</span>
{% endfor %}
</div> </div>
{% endif %} {% endif %}
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label {% if form.email.errors %}is-invalid{% endif %}"> <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label {% if form.email.errors %}is-invalid{% endif %}">

View File

@ -1,12 +1,13 @@
from django.shortcuts import get_object_or_404 from django.contrib import messages
from django.http import HttpResponseRedirect
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from django.utils import timezone
from django.views.generic import View from django.views.generic import View
from django.core.urlresolvers import reverse
from .forms import MemberForm from .forms import MemberForm
from .models import Member from .models import Member
import logging import logging
logger = logging.getLogger(__file__) logger = logging.getLogger('bikeshop')
class MemberFormView(View): class MemberFormView(View):
@ -17,18 +18,27 @@ class MemberFormView(View):
form = MemberForm(instance=member) form = MemberForm(instance=member)
except Member.DoesNotExist: except Member.DoesNotExist:
form = MemberForm() form = MemberForm()
member = None
context = dict(form=form) context = dict(form=form)
if form.instance: if member:
return TemplateResponse(request, 'edit_member_form.html', context=context) return TemplateResponse(request, 'edit_member_form.html', context=context)
return TemplateResponse(request, 'member_form.html', context=context) return TemplateResponse(request, 'member_form.html', context=context)
def post(self, request): def post(self, request, member_id=None):
form = MemberForm(request.POST) try:
logger.debug(member_id)
member = Member.objects.get(id=member_id)
form = MemberForm(request.POST, instance=member)
except Member.DoesNotExist:
form = MemberForm(request.POST)
logger.debug(form)
if form.is_valid(): if form.is_valid():
form.save() member_instance = form.save()
return TemplateResponse(request, 'member_created.html') logger.debug(member_instance)
return HttpResponseRedirect(reverse('member_edit', kwargs=dict(member_id=member_instance.id)))
logger.debug(form)
context = {'form': form} context = {'form': form}
return TemplateResponse(request, 'member_form.html', context=context) return TemplateResponse(request, 'member_form.html', context=context)