project/scipycon/registration/views.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Tue, 30 Nov 2010 16:17:05 +0530
changeset 318 6963bc54d5c2
parent 310 3541adaa5cd3
child 342 21dc37050a37
permissions -rw-r--r--
Fix preceding accommodation which were stolen away by magic.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
310
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
     1
import datetime
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
     2
import time
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
     3
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
     4
from django.contrib.auth import authenticate
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
     5
from django.contrib.auth import login
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     6
from django.contrib.auth.decorators import login_required
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     7
from django.contrib.auth.forms import AuthenticationForm
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     8
from django.contrib.auth.models import User
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     9
from django.core.exceptions import ObjectDoesNotExist
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    10
from django.core.urlresolvers import reverse
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    11
from django.shortcuts import render_to_response
291
182b03a1e6fe Add a way to send mail as confirmation for users for manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 276
diff changeset
    12
from django.template import loader
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    13
from django.template import RequestContext
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    14
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    15
from project.scipycon.base.models import Event
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    16
from project.scipycon.registration.forms import RegistrationEditForm
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    17
from project.scipycon.registration.forms import RegistrationSubmitForm
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
    18
from project.scipycon.registration.forms import AccommodationForm
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
    19
from project.scipycon.registration.forms import PaymentForm
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    20
from project.scipycon.registration.forms import WifiForm
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
    21
from project.scipycon.registration.models import Accommodation
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
    22
from project.scipycon.registration.models import Payment
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    23
from project.scipycon.registration.models import Registration
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    24
from project.scipycon.registration.models import Wifi
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    25
from project.scipycon.registration.utils import send_confirmation
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    26
from project.scipycon.user.forms import RegistrantForm
96
178b89a3ca4f Removed unwanted files and made more changes to make SciPyCon a clean app.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
    27
from project.scipycon.user.models import UserProfile
178b89a3ca4f Removed unwanted files and made more changes to make SciPyCon a clean app.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
    28
from project.scipycon.user.utils import scipycon_createregistrant
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    29
from project.scipycon.utils import set_message_cookie
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    30
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    31
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    32
REG_TOTAL = 1000
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    33
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    34
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    35
@login_required
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    36
def registrations(request, scope, 
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    37
                  template_name='registration/registrations.html'):
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    38
    """Simple page to count registrations"""
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    39
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    40
    registrations = Registration.objects.all().count()
142
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    41
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    42
    user = request.user
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    43
    if user.is_authenticated():
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    44
        registration = Registration.objects.get(registrant=user)
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    45
    else:
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    46
        registration = None
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    47
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    48
    event = Event.objects.get(scope=scope)
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    49
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    50
    return render_to_response(template_name, RequestContext(request, {
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    51
        'params': {'scope': scope},
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    52
        'over_reg' : registrations >= REG_TOTAL and True or False,
142
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    53
        'registrations' : registrations,
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    54
        'registration': registration,
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
    55
        'event': event}))
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    56
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    57
@login_required
111
0e2c94c6a9e8 Adjusted views to send the scope in params.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 106
diff changeset
    58
def edit_registration(request, scope, id,
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    59
                      template_name='registration/edit-registration.html'):
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    60
    """Allows users that submitted a registration to edit it.
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    61
    """
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    62
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
    63
    scope_entity = Event.objects.get(scope=scope)
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
    64
233
394576ff8a2f Fix major bug: Change hard coded registration form redirect to based on User and do int conversions for ids.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 231
diff changeset
    65
    reg = Registration.objects.get(pk=int(id))
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    66
    wifi = Wifi.objects.get(user=reg.registrant)
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    67
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
    68
    # TODO: This is an ugly hack to add accommodation and payment forms
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
    69
    # details at later stage for SciPy.in 2010. This must be removed for
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
    70
    # SciPy.in 2011
247
2907855f18c4 Rename created variable name to acco_created for acco object creation in edit registration view function.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 202
diff changeset
    71
    acco, acco_created = Accommodation.objects.get_or_create(
2907855f18c4 Rename created variable name to acco_created for acco object creation in edit registration view function.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 202
diff changeset
    72
        user=reg.registrant, scope=scope_entity)
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
    73
    payment, payment_created = Payment.objects.get_or_create(
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
    74
        user=reg.registrant, scope=scope_entity)
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
    75
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    76
    if reg.registrant != request.user:
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    77
        redirect_to = reverse('scipycon_account', kwargs={'scope': scope})
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    78
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    79
        return set_message_cookie(
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    80
            redirect_to,
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
    81
            msg = u'Redirected because the registration you selected' \
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    82
                      + ' is not your own.')
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    83
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    84
    if request.method == 'POST':
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    85
        registration_form = RegistrationEditForm(data=request.POST)
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    86
        wifi_form = WifiForm(data=request.POST)
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
    87
        acco_form = AccommodationForm(data=request.POST)
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
    88
        payment_form = PaymentForm(data=request.POST)
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    89
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
    90
        if (registration_form.is_valid() and wifi_form.is_valid() and
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
    91
            acco_form.is_valid() and payment_form.is_valid()):
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    92
            reg.organisation = registration_form.data.get('organisation')
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    93
            reg.occupation = registration_form.data.get('occupation')
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    94
            reg.city = registration_form.data.get('city')
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    95
            reg.phone_num = registration_form.data.get('phone_num')
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    96
            reg.postcode = registration_form.data.get('postcode')
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    97
            #reg.tshirt = registration_form.data.get('tshirt')
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    98
            reg.allow_contact = registration_form.data.get(
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
    99
                'allow_contact') and True or False
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   100
            reg.conference = registration_form.data.get(
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   101
                'conference') and True or False
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   102
            reg.tutorial = registration_form.data.get(
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   103
                'tutorial') and True or False
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   104
            reg.sprint = registration_form.data.get(
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   105
                'sprint') and True or False
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   106
            reg.save()
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   107
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   108
            wifi = wifi_form.save(reg.registrant, reg.scope)
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   109
            acco = acco_form.save(reg.registrant, reg.scope)
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   110
            payment = payment_form.save(reg.registrant, reg.scope)
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   111
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   112
            # Saved.. redirect
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   113
            redirect_to = reverse('scipycon_account', kwargs={'scope': scope})
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   114
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   115
            return set_message_cookie(redirect_to,
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   116
                msg = u'Your changes have been saved.')
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   117
    else:
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   118
        registration_form = RegistrationEditForm(initial={
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   119
            'id' : id,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   120
            'organisation' : reg.organisation,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   121
            'occupation' : reg.occupation,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   122
            'city' : reg.city,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   123
            'phone_num': reg.phone_num,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   124
            #'tshirt' : reg.tshirt,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   125
            'conference': reg.conference,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   126
            'tutorial': reg.tutorial,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   127
            'postcode' : reg.postcode,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   128
            'sprint' : reg.sprint,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   129
            'allow_contact' : reg.allow_contact,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   130
            })
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   131
        wifi_form = WifiForm(initial={
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   132
            'user': wifi.user,
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   133
            'scope': wifi.scope,
273
5129e1427557 Add registration_id field to initial form in the field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 233
diff changeset
   134
            'wifi': wifi.wifi,
5129e1427557 Add registration_id field to initial form in the field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 233
diff changeset
   135
            'registration_id': wifi.registration_id
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   136
            })
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   137
        acco_form = AccommodationForm(initial={
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   138
            'user': acco.user,
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   139
            'scope': acco.scope,
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   140
            'sex': acco.sex,
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   141
            'accommodation_required': acco.accommodation_required,
318
6963bc54d5c2 Fix preceding accommodation which were stolen away by magic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 310
diff changeset
   142
            'accommodation_on_1st': acco.accommodation_on_1st,
6963bc54d5c2 Fix preceding accommodation which were stolen away by magic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 310
diff changeset
   143
            'accommodation_on_2nd': acco.accommodation_on_2nd,
6963bc54d5c2 Fix preceding accommodation which were stolen away by magic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 310
diff changeset
   144
            'accommodation_on_3rd': acco.accommodation_on_3rd,
6963bc54d5c2 Fix preceding accommodation which were stolen away by magic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 310
diff changeset
   145
            'accommodation_on_4th': acco.accommodation_on_4th,
6963bc54d5c2 Fix preceding accommodation which were stolen away by magic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 310
diff changeset
   146
            'accommodation_on_5th': acco.accommodation_on_5th,
6963bc54d5c2 Fix preceding accommodation which were stolen away by magic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 310
diff changeset
   147
            'accommodation_on_6th': acco.accommodation_on_6th,
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   148
            })
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   149
        payment_form = PaymentForm(initial={
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   150
            'user': payment.user,
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   151
            'scope': payment.scope,
263
02593358eddc Made adjustments in the view to make paid field a dummy form field and not a model field. Also added confirmed field as model field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 257
diff changeset
   152
            'paid': payment.type or payment.details,
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   153
            'type': payment.type,
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   154
            'details': payment.details,
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   155
            })
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   156
111
0e2c94c6a9e8 Adjusted views to send the scope in params.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 106
diff changeset
   157
    return render_to_response(
0e2c94c6a9e8 Adjusted views to send the scope in params.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 106
diff changeset
   158
        template_name, RequestContext(request, {
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   159
        'params': {'scope': scope},
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   160
        'registration': {'id': id},
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   161
        'registration_form': registration_form,
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   162
        'wifi_form': wifi_form,
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   163
        'acco_form': acco_form,
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   164
        'payment_form': payment_form}))
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   165
106
3a31881564ba Add a scope pattern to the URLs.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 96
diff changeset
   166
def submit_registration(request, scope,
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   167
        template_name='registration/submit-registration.html'):
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   168
    """Allows user to edit registration
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   169
    """
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   170
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   171
    user = request.user
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   172
    reg_count = Registration.objects.all().count()
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   173
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   174
    scope_entity = Event.objects.get(scope=scope)
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   175
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   176
    if user.is_authenticated():
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   177
        try:
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   178
            profile = user.get_profile()
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   179
        except:
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   180
            profile, new = UserProfile.objects.get_or_create(
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   181
                user=user, scope=scope_entity)
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   182
            if new:
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   183
                profile.save()
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   184
        try:
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   185
            registration = Registration.objects.get(registrant=user)
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   186
            if registration:
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   187
                redirect_to = reverse('scipycon_account',
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   188
                                      kwargs={'scope': scope})
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   189
                return set_message_cookie(
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   190
                    redirect_to, msg = u'You have already been registered.')
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   191
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   192
        except ObjectDoesNotExist:
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   193
            pass
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   194
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   195
    message = None
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   196
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   197
    if request.method == 'POST':
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   198
        registration_form = RegistrationSubmitForm(data=request.POST)
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   199
        registrant_form = RegistrantForm(data=request.POST)
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   200
        wifi_form = WifiForm(data=request.POST)
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   201
        acco_form = AccommodationForm(data=request.POST)
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   202
        payment_form = PaymentForm(data=request.POST)
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   203
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   204
        if request.POST.get('action', None) == 'login':
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   205
            login_form = AuthenticationForm(data=request.POST)
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   206
            if login_form.is_valid():
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   207
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   208
                login(request, login_form.get_user())
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   209
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   210
                redirect_to = reverse('scipycon_submit_registration',
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   211
                                      kwargs={'scope': scope})
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   212
                return set_message_cookie(redirect_to,
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   213
                        msg = u'You have been logged in please continue' + \
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   214
                               'with registration.')
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   215
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   216
        newuser = None
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   217
        passwd = None
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   218
        if not user.is_authenticated():
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   219
            if registrant_form.is_valid():
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   220
                newuser = scipycon_createregistrant(
142
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
   221
                    request, registrant_form.data, scope)
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   222
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   223
                # Log in user
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   224
                passwd = User.objects.make_random_password()
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   225
                newuser.set_password(passwd)
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   226
                newuser.save()
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   227
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   228
                user = authenticate(username=newuser.username, password=passwd)
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   229
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   230
                login(request, user)
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   231
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   232
                newuser = user
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   233
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   234
        else:
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   235
            newuser = user
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   236
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   237
        if (registration_form.is_valid() and newuser and wifi_form.is_valid()
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   238
            and acco_form.is_valid() and payment_form.is_valid()):
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   239
            allow_contact = registration_form.cleaned_data.get(
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   240
                'allow_contact') and True or False
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   241
            conference = registration_form.cleaned_data.get(
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   242
                'conference') and True or False
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   243
            tutorial = registration_form.cleaned_data.get('tutorial') and \
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   244
                True or False
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   245
            sprint = registration_form.cleaned_data.get('sprint') and \
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   246
                True or False
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   247
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   248
            registrant = User.objects.get(pk=newuser.id)
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   249
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   250
            reg = Registration(
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   251
                scope=scope_entity,
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   252
                registrant = registrant,
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   253
                organisation = registration_form.cleaned_data.get(
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   254
                    'organisation'),
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   255
                occupation = registration_form.cleaned_data.get('occupation'),
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   256
                city = registration_form.cleaned_data.get('city'),
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   257
                #tshirt = registration_form.data.get('tshirt'),
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   258
                postcode = registration_form.cleaned_data.get('postcode'),
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   259
                phone_num = registration_form.cleaned_data.get('phone_num'),
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   260
                allow_contact = allow_contact,
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   261
                conference = conference,
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   262
                tutorial = tutorial,
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   263
                sprint = sprint)
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   264
            reg.save() 
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   265
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   266
            # get id and use as slug and invoice number
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   267
            id = reg.id
142
70fcb57d8d15 Added event and registrants to Registration summary page.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 137
diff changeset
   268
            slug = 'SCIPYIN2010%04d' % id
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   269
            reg.slug = slug
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   270
            reg.save()
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   271
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   272
            wifi = wifi_form.save(registrant, scope_entity)
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   273
            acco = acco_form.save(registrant, scope_entity)
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   274
            payment = payment_form.save(registrant, scope_entity)
137
ec6e58c639bf Added phone number, modified Occupation to be choice field.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 126
diff changeset
   275
231
839dd1745ad2 Fix style issues.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 202
diff changeset
   276
            send_confirmation(registrant, scope_entity, password=passwd)
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   277
126
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   278
            redirect_to = reverse('scipycon_registrations',
f185cb8316cf Added scope to all URLs, all reverse functions and all view methods and removed unnecessary functions.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 111
diff changeset
   279
                                  kwargs={'scope': scope})
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   280
            return set_message_cookie(redirect_to,
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   281
                    msg = u'Thank you, your registration has been submitted '\
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   282
                           'and an email has been sent with payment details.')
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   283
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   284
    else:
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   285
        registration_form = RegistrationSubmitForm()
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   286
        registrant_form = RegistrantForm()
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   287
        wifi_form = WifiForm()
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   288
        acco_form = AccommodationForm()
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   289
        payment_form = PaymentForm()
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   290
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   291
    login_form = AuthenticationForm()
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   292
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   293
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   294
    return render_to_response(template_name, RequestContext(request, {
111
0e2c94c6a9e8 Adjusted views to send the scope in params.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 106
diff changeset
   295
        'params': {'scope': scope},
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   296
        'registration_form': registration_form,
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   297
        'registrant_form' : registrant_form,
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   298
        'over_reg' : reg_count >= REG_TOTAL and True or False,
202
b4391b3d5fcc Edit views to make room for accommodation forms.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 194
diff changeset
   299
        'acco_form': acco_form,
251
b99607287a52 Add payment forms and object details in edit and submit registration views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 247
diff changeset
   300
        'payment_form': payment_form,
94
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   301
        'wifi_form' : wifi_form,
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   302
        'message' : message,
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   303
        'login_form' : login_form
87e77aa18610 Moved the files to new Django app named scipycon and modified settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   304
    }))
193
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   305
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   306
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   307
@login_required
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   308
def regstats(request, scope,
194
808abc104b55 View to calculate the number of registrants per event.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 193
diff changeset
   309
             template_name='registration/regstats.html'):
193
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   310
    """View that gives the statistics of registrants.
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   311
    """
194
808abc104b55 View to calculate the number of registrants per event.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 193
diff changeset
   312
193
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   313
    if not request.user.is_staff:
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   314
        redirect_to = reverse('scipycon_login', kwargs={'scope': scope})
255
b20d55891709 Add cookie and return message for regstats view function.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 251
diff changeset
   315
        return set_message_cookie(
b20d55891709 Add cookie and return message for regstats view function.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 251
diff changeset
   316
            redirect_to, msg = u'You must be a staff on this website to '
b20d55891709 Add cookie and return message for regstats view function.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 251
diff changeset
   317
            'access this page.')
193
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   318
194
808abc104b55 View to calculate the number of registrants per event.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 193
diff changeset
   319
    q = Registration.objects.all()
808abc104b55 View to calculate the number of registrants per event.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 193
diff changeset
   320
    conf_num = q.filter(conference=True).count()
808abc104b55 View to calculate the number of registrants per event.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 193
diff changeset
   321
    tut_num = q.filter(tutorial=True).count()
808abc104b55 View to calculate the number of registrants per event.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 193
diff changeset
   322
    sprint_num = q.filter(sprint=True).count()
193
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   323
ed5828a90109 Copy the download csv code that was earlier written but scraped.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 186
diff changeset
   324
    return render_to_response(template_name, RequestContext(request,
194
808abc104b55 View to calculate the number of registrants per event.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 193
diff changeset
   325
        {'params': {'scope': scope},
808abc104b55 View to calculate the number of registrants per event.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 193
diff changeset
   326
         'conf_num': conf_num, 
808abc104b55 View to calculate the number of registrants per event.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 193
diff changeset
   327
         'tut_num': tut_num,
808abc104b55 View to calculate the number of registrants per event.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 193
diff changeset
   328
         'sprint_num': sprint_num,
236
29ecd3dd6565 Merging heads
Amit Sethi
parents: 194
diff changeset
   329
         }))
257
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   330
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   331
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   332
@login_required
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   333
def manage_payments(request, scope,
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   334
                    template_name='registration/manage_payments.html'):
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   335
    """View that gives a form to manage payments.
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   336
    """
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   337
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   338
    if not request.user.is_superuser:
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   339
        redirect_to = reverse('scipycon_login', kwargs={'scope': scope})
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   340
        return set_message_cookie(
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   341
            redirect_to, msg = u'You must be an admin on this website to '
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   342
            'access this page.')
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   343
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   344
    message = None
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   345
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   346
    scope_entity = Event.objects.get(scope=scope)
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   347
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   348
    if request.method == 'POST':
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   349
        post_data = request.POST
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   350
        list_user_ids = []
291
182b03a1e6fe Add a way to send mail as confirmation for users for manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 276
diff changeset
   351
182b03a1e6fe Add a way to send mail as confirmation for users for manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 276
diff changeset
   352
        mail_subject = 'SciPy.in 2010: Confirmation of fee payment'
182b03a1e6fe Add a way to send mail as confirmation for users for manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 276
diff changeset
   353
        mail_template = 'notifications/payment_confirmation2010.html'
182b03a1e6fe Add a way to send mail as confirmation for users for manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 276
diff changeset
   354
310
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   355
        def parse_form():
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   356
            """Helper function that gets the User ID from the
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   357
            form name
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   358
            """
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   359
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   360
            confirmed_ids = []
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   361
            acco_ids = []
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   362
            date_ids = {}
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   363
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   364
            for name_string in post_data:
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   365
                id_str_list = name_string.split('_')
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   366
                if (len(id_str_list) == 3 and id_str_list[1] == 'id'):
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   367
                    if id_str_list[0] == 'confirmed':
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   368
                        confirmed_ids.append(int(id_str_list[2]))
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   369
                    if id_str_list[0] == 'acco':
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   370
                        acco_ids.append(int(id_str_list[2]))
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   371
                    if id_str_list[0] == 'date':
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   372
                        date_str = post_data.get(name_string, None)
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   373
                        if date_str:
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   374
                            date_ids[int(id_str_list[2])] = post_data.get(
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   375
                              name_string, '')
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   376
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   377
            return confirmed_ids, acco_ids, date_ids
257
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   378
310
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   379
        confirmed_ids, acco_ids, date_ids = parse_form()
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   380
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   381
        confirmed_users = set(User.objects.filter(id__in=confirmed_ids))
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   382
        acco_users = set(User.objects.filter(id__in=acco_ids))
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   383
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   384
        # Users for whom both registration and accommodation is confirmed
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   385
        for user in confirmed_users & acco_users:
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   386
            payment, created = user.payment_set.get_or_create(
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   387
              user=user, scope=scope_entity)
257
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   388
310
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   389
            payment.confirmed = True
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   390
            payment.acco_confirmed = True
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   391
            payment.save()
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   392
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   393
            if not payment.confirmed_mail and not payment.acco_confirmed_mail:
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   394
                mail_message = loader.render_to_string(
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   395
                  mail_template,
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   396
                  dictionary={'name': user.get_full_name(),
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   397
                            'acco': True,
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   398
                            'reg': True})
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   399
                user.email_user(mail_subject, mail_message,
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   400
                                from_email='admin@scipy.in')
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   401
                payment.confirmed_mail =True
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   402
                payment.acco_confirmed_mail = True
257
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   403
                payment.save()
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   404
310
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   405
        # Users for whom only registration is confirmed
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   406
        for user in confirmed_users - acco_users:
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   407
            payment, created = user.payment_set.get_or_create(
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   408
              user=user, scope=scope_entity)
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   409
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   410
            payment.confirmed = True
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   411
            payment.save()
257
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   412
310
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   413
            if not payment.confirmed_mail:
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   414
                mail_message = loader.render_to_string(
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   415
                  mail_template,
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   416
                  dictionary={'name': user.get_full_name(),
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   417
                          'reg': True})
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   418
                user.email_user(mail_subject, mail_message,
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   419
                                from_email='admin@scipy.in')
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   420
                payment.confirmed_mail =True
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   421
                payment.save()
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   422
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   423
        # Users for whom only accommodation is confirmed
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   424
        for user in acco_users - confirmed_users:
257
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   425
            payment, created = user.payment_set.get_or_create(
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   426
              user=user, scope=scope_entity)
310
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   427
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   428
            payment.acco_confirmed = True
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   429
            payment.save()
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   430
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   431
            if not payment.acco_confirmed_mail:
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   432
                mail_message = loader.render_to_string(
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   433
                  mail_template,
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   434
                  dictionary={'name': user.get_full_name(),
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   435
                          'acco': True})
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   436
                user.email_user(mail_subject, mail_message,
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   437
                                from_email='admin@scipy.in')
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   438
                payment.acco_confirmed_mail = True
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   439
                payment.save()
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   440
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   441
        # Users for whom fee payment date is updated
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   442
        for id in date_ids:
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   443
            user = User.objects.get(id=id)
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   444
            payment, created = user.payment_set.get_or_create(
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   445
              user=user, scope=scope_entity)
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   446
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   447
            time_format = "%m/%d/%Y"
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   448
            date = datetime.datetime.fromtimestamp(time.mktime(
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   449
              time.strptime(date_ids[id], time_format)))
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   450
3541adaa5cd3 Provide Javascript support and add all view related changes for form.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 291
diff changeset
   451
            payment.date_confirmed = date
257
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   452
            payment.save()
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   453
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   454
    registrants = Registration.objects.all()
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   455
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   456
    return render_to_response(template_name, RequestContext(request,
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   457
        {'params': {'scope': scope},
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   458
         'registrants': registrants,
e2ff0c70014d Add a view to manage payments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 255
diff changeset
   459
         }))