diff -r 4cff1f43e4e1 -r 0149f28a4f74 project/scipycon/registration/views.py --- a/project/scipycon/registration/views.py Thu Nov 18 01:20:54 2010 +0530 +++ b/project/scipycon/registration/views.py Thu Nov 18 01:29:38 2010 +0530 @@ -11,7 +11,9 @@ from project.scipycon.base.models import Event from project.scipycon.registration.forms import RegistrationEditForm from project.scipycon.registration.forms import RegistrationSubmitForm +from project.scipycon.registration.forms import AccommodationForm from project.scipycon.registration.forms import WifiForm +from project.scipycon.registration.models import Accommodation from project.scipycon.registration.models import Registration from project.scipycon.registration.models import Wifi from project.scipycon.registration.utils import send_confirmation @@ -52,9 +54,17 @@ """Allows users that submitted a registration to edit it. """ - reg = Registration.objects.get(pk=id) + scope_entity = Event.objects.get(scope=scope) + + reg = Registration.objects.get(pk=int(id)) wifi = Wifi.objects.get(user=reg.registrant) + # TODO: This is an ugly hack to add accommodation form + # details at later stage for SciPy.in 2010. This must be + # removed for SciPy.in 2011 + acco, created = Accommodation.objects.get_or_create(user=reg.registrant, + scope=scope_entity) + if reg.registrant != request.user: redirect_to = reverse('scipycon_account', kwargs={'scope': scope}) @@ -66,8 +76,10 @@ if request.method == 'POST': registration_form = RegistrationEditForm(data=request.POST) wifi_form = WifiForm(data=request.POST) + acco_form = AccommodationForm(data=request.POST) - if registration_form.is_valid() and wifi_form.is_valid(): + if (registration_form.is_valid() and wifi_form.is_valid() and + acco_form.is_valid()): reg.organisation = registration_form.data.get('organisation') reg.occupation = registration_form.data.get('occupation') reg.city = registration_form.data.get('city') @@ -85,16 +97,13 @@ reg.save() wifi = wifi_form.save(reg.registrant, reg.scope) + acco = acco_form.save(reg.registrant, reg.scope) # Saved.. redirect redirect_to = reverse('scipycon_account', kwargs={'scope': scope}) return set_message_cookie(redirect_to, msg = u'Your changes have been saved.') - else: - import logging - logging.error(registration_form.data) - raise "Bow Bow" else: registration_form = RegistrationEditForm(initial={ 'id' : id, @@ -114,13 +123,21 @@ 'scope': wifi.scope, 'wifi': wifi.wifi }) + acco_form = AccommodationForm(initial={ + 'user': acco.user, + 'scope': acco.scope, + 'sex': acco.sex, + 'accommodation_required': acco.accommodation_required, + 'accommodation_days': acco.accommodation_days, + }) return render_to_response( template_name, RequestContext(request, { 'params': {'scope': scope}, 'registration': {'id': id}, 'registration_form': registration_form, - 'wifi_form': wifi_form})) + 'wifi_form': wifi_form, + 'acco_form': acco_form})) def submit_registration(request, scope, template_name='registration/submit-registration.html'): @@ -157,6 +174,7 @@ registration_form = RegistrationSubmitForm(data=request.POST) registrant_form = RegistrantForm(data=request.POST) wifi_form = WifiForm(data=request.POST) + acco_form = AccommodationForm(data=request.POST) if request.POST.get('action', None) == 'login': login_form = AuthenticationForm(data=request.POST) @@ -191,7 +209,8 @@ else: newuser = user - if registration_form.is_valid() and newuser and wifi_form.is_valid(): + if (registration_form.is_valid() and newuser and wifi_form.is_valid() + and acco_form.is_valid()): allow_contact = registration_form.cleaned_data.get( 'allow_contact') and True or False conference = registration_form.cleaned_data.get( @@ -226,9 +245,8 @@ reg.save() wifi = wifi_form.save(registrant, scope_entity) - - # send_confirmation(registrant, scope_entity,password=passwd) - + acco = acco_form.save(registrant, scope_entity) + send_confirmation(registrant, scope_entity, password=passwd) redirect_to = reverse('scipycon_registrations', kwargs={'scope': scope}) return set_message_cookie(redirect_to, @@ -239,6 +257,7 @@ registration_form = RegistrationSubmitForm() registrant_form = RegistrantForm() wifi_form = WifiForm() + acco_form = AccommodationForm() login_form = AuthenticationForm() @@ -248,6 +267,7 @@ 'registration_form': registration_form, 'registrant_form' : registrant_form, 'over_reg' : reg_count >= REG_TOTAL and True or False, + 'acco_form': acco_form, 'wifi_form' : wifi_form, 'message' : message, 'login_form' : login_form