mirror of
https://github.com/fspc/workstand.git
synced 2025-02-23 09:13:23 -05:00
Add membership to member.
This commit is contained in:
parent
02ef99b2b8
commit
40b88097d1
@ -1,9 +1,15 @@
|
||||
from django.forms import ModelForm, TextInput, DateInput, CheckboxSelectMultiple, CharField, BooleanField, CheckboxInput
|
||||
import logging
|
||||
from django.forms import BooleanField, CharField, CheckboxInput, RadioSelect, ModelForm, TextInput, HiddenInput
|
||||
|
||||
from core.models import Membership
|
||||
from registration.models import Member
|
||||
|
||||
from .models import Membership
|
||||
|
||||
logger = logging.getLogger('bikeshop')
|
||||
|
||||
|
||||
class MembershipForm(ModelForm):
|
||||
member = CharField(required=True, widget=HiddenInput())
|
||||
self_ident_other = CharField(required=False, label='Self identification', widget=TextInput(attrs={'class': 'mdl-textfield__input'}))
|
||||
gender_other = CharField(required=False, label='Other', widget=TextInput(attrs={'class': 'mdl-textfield__input'}))
|
||||
safe_space = BooleanField(required=True, widget=CheckboxInput(
|
||||
@ -27,18 +33,35 @@ class MembershipForm(ModelForm):
|
||||
('First Nations; Métis; or Inuit', 'First Nations; Métis; or Inuit'),
|
||||
('visible minority', 'Visible Minority'),
|
||||
('caucasian', 'Caucasian'),
|
||||
('Other', 'Other')
|
||||
('other', 'Other')
|
||||
)
|
||||
|
||||
gender_choices = (
|
||||
('male', 'Male'),
|
||||
('female', 'Female'),
|
||||
('other', 'other')
|
||||
('other', 'Other')
|
||||
)
|
||||
|
||||
widgets = {
|
||||
'self_identification': CheckboxSelectMultiple(choices=self_ident_choices,
|
||||
attrs={'class': 'mdl-checkbox__input'}),
|
||||
'gender': CheckboxSelectMultiple(choices=gender_choices, attrs={'class': 'mdl-checkbox__input'}),
|
||||
'self_identification': RadioSelect(choices=self_ident_choices, attrs={'class': 'mdl-radio__button'}),
|
||||
'gender': RadioSelect(choices=gender_choices, attrs={'class': 'mdl-radio__button'}),
|
||||
'renewed_at': TextInput(attrs={'class': 'mdl-textfield__input'}),
|
||||
}
|
||||
|
||||
def save(self, commit=True):
|
||||
instance = super(MembershipForm, self).save(commit=False)
|
||||
member = Member.objects.get(id=self.cleaned_data['member'])
|
||||
instance.member = member
|
||||
logger.debug(self.cleaned_data['self_identification'])
|
||||
logger.debug(self.cleaned_data['gender'])
|
||||
|
||||
if self.cleaned_data['gender_other']:
|
||||
instance.gender = self.cleaned_data['gender_other']
|
||||
|
||||
if self.cleaned_data['self_ident_other']:
|
||||
instance.self_identification = self.cleaned_data['self_ident_other']
|
||||
|
||||
if commit:
|
||||
instance.save()
|
||||
|
||||
return instance
|
||||
|
@ -7,6 +7,7 @@
|
||||
@import "vendor/material-design-lite/src/layout/layout";
|
||||
@import "vendor/material-design-lite/src/footer/mega_footer";
|
||||
@import "vendor/material-design-lite/src/checkbox/checkbox";
|
||||
@import "vendor/material-design-lite/src/radio/radio";
|
||||
@import "vendor/material-design-lite/src/button/button";
|
||||
@import "vendor/material-design-lite/src/palette/palette";
|
||||
@import "vendor/material-design-lite/src/menu/menu";
|
||||
|
@ -10,6 +10,7 @@
|
||||
<h1>New Membership</h1>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{{ form.member }}
|
||||
<p>The Bridge City Bicycle Cooperative aims to be a safe and respectful environment geared towards education, empowerment and communitybuilding. In order to do so we need your input and support.</p>
|
||||
|
||||
<h4>Member Privileges</h4>
|
||||
@ -85,9 +86,9 @@
|
||||
barriers to certain groups’ participation. Thank you! Do you identify as: (In each category, check
|
||||
all that apply)</p>
|
||||
{% for checkbox in form.self_identification %}
|
||||
<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="{{ checkbox.id_for_label }}">
|
||||
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="{{ checkbox.id_for_label }}">
|
||||
{{ checkbox }}
|
||||
<span class="mdl-checkbox__label">{{ checkbox.label }}</span>
|
||||
<span class="mdl-radio__label">{{ checkbox.label }}</span>
|
||||
</label>
|
||||
{% endfor %}
|
||||
{% if form.self_identification.errors %}
|
||||
@ -106,9 +107,9 @@
|
||||
<div class="">
|
||||
<h3 class="template__header mdl-typography--body-2">Gender Identification</h3>
|
||||
{% for checkbox in form.gender %}
|
||||
<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="{{ checkbox.id_for_label }}">
|
||||
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="{{ checkbox.id_for_label }}">
|
||||
{{ checkbox }}
|
||||
<span class="mdl-checkbox__label">{{ checkbox.label }}</span>
|
||||
<span class="mdl-radio__label">{{ checkbox.label }}</span>
|
||||
</label>
|
||||
{% endfor %}
|
||||
</div>
|
||||
@ -168,6 +169,9 @@
|
||||
var submitButton = document.getElementById('submit');
|
||||
submitButton.disabled = !allAgreed;
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", checkResponsiblities);
|
||||
|
||||
responsibilities.forEach(function (checkbox) {
|
||||
checkbox.addEventListener('click', checkResponsiblities)
|
||||
})
|
||||
|
@ -1,10 +1,16 @@
|
||||
import logging
|
||||
|
||||
from django.contrib import messages
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.template.response import TemplateResponse
|
||||
from django.views.generic import TemplateView, View
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
from core.forms import MembershipForm
|
||||
from registration.models import Member
|
||||
|
||||
from .forms import MembershipForm
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DashboardView(View):
|
||||
@ -14,17 +20,18 @@ class DashboardView(View):
|
||||
|
||||
class NewMembershipView(TemplateView):
|
||||
template_name = 'membership_form.html'
|
||||
def get(self, request):
|
||||
form = MembershipForm()
|
||||
|
||||
def get(self, request, member_id):
|
||||
form = MembershipForm(initial=dict(member=member_id))
|
||||
return self.render_to_response(dict(form=form))
|
||||
|
||||
def post(self, request):
|
||||
form = MembershipForm(request.POST)
|
||||
def post(self, request, member_id):
|
||||
form = MembershipForm(request.POST, initial=dict(member=member_id))
|
||||
member = Member.objects.get(id=member_id)
|
||||
|
||||
if form.is_valid():
|
||||
member = form.save()
|
||||
form.save()
|
||||
messages.add_message(request, messages.SUCCESS, 'Successfully created our newest member, {first} {last}'
|
||||
.format(first=member.first_name, last=member.last_name))
|
||||
return HttpResponseRedirect(reverse('new_membership'))
|
||||
|
||||
return HttpResponseRedirect(reverse('member_edit', kwargs=dict(member_id=member_id)))
|
||||
return self.render_to_response(dict(form=form))
|
||||
|
Loading…
x
Reference in New Issue
Block a user