sdi/views.py
author nishanth
Thu, 22 Jul 2010 19:50:36 +0530
branchanoop
changeset 161 c7c5c727a483
parent 160 2f01af211af9
child 162 27dd4494e7b4
permissions -rw-r--r--
removed old template and copied send_sgd_cnf as send_wsp_cnf since both are same and fixed a bug in view
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15
1c2d2e702aee completed the register view
nishanth
parents: 14
diff changeset
     1
from django.shortcuts import render_to_response, redirect
98
e6140a4cac5d forgot to import http404 .. fixed it
nishanth
parents: 97
diff changeset
     2
from django.http import HttpResponse, Http404
65
0ca63c964237 now login is required for accessing stats and send_invi pages
nishanth
parents: 57
diff changeset
     3
from django.contrib.auth.decorators import login_required
97
bf16c82df506 forgot an import .. fixed it
nishanth
parents: 95
diff changeset
     4
from django.utils.datastructures import MultiValueDictKeyError
7
98f2b5c2abc9 added basic register view in views.py
nishanth
parents: 4
diff changeset
     5
67
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
     6
from django.contrib.auth import authenticate, login, logout
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
     7
120
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
     8
from sage_days.sdi.models import Registrant, RegistrantInfo, ParticipantInfo
124
d4a7644e7fe8 created a form for taking participant info and used it in the view
nishanth
parents: 123
diff changeset
     9
from sage_days.sdi.forms import RegisterForm, SearchForm, EmailForm, LoginForm, UserSelectForm, ParticipantInfoForm
149
1f53ccd82a21 included the send_cnf_email event in views but right now, it is commented
nishanth
parents: 148
diff changeset
    10
from sage_days.sdi.events import send_reg_complete_mail, mail_invi, send_sgd_ptc_confirm, send_cnf_email
72
3673ed3ca27c fixed a few bugs
nishanth
parents: 70
diff changeset
    11
from sage_days.settings import APACHE_URL_PREFIX as aup
7
98f2b5c2abc9 added basic register view in views.py
nishanth
parents: 4
diff changeset
    12
98f2b5c2abc9 added basic register view in views.py
nishanth
parents: 4
diff changeset
    13
def register(request):
98f2b5c2abc9 added basic register view in views.py
nishanth
parents: 4
diff changeset
    14
    """ The user register page.
98f2b5c2abc9 added basic register view in views.py
nishanth
parents: 4
diff changeset
    15
    """
98f2b5c2abc9 added basic register view in views.py
nishanth
parents: 4
diff changeset
    16
9
47f72774489e added the return statement for register view
nishanth
parents: 7
diff changeset
    17
    if request.method == "POST":
14
ee492a4b9ebd updated register view
nishanth
parents: 9
diff changeset
    18
        form = RegisterForm(request.POST)
ee492a4b9ebd updated register view
nishanth
parents: 9
diff changeset
    19
        if form.is_valid():
136
b68ff7095ca5 added the registrantinfo creation part in register view
nishanth
parents: 130
diff changeset
    20
            user = form.save()
53
b226923fbf64 added send_mail after registration
nishanth
parents: 48
diff changeset
    21
b226923fbf64 added send_mail after registration
nishanth
parents: 48
diff changeset
    22
            data = form.cleaned_data
b226923fbf64 added send_mail after registration
nishanth
parents: 48
diff changeset
    23
            first_name = data['first_name']
b226923fbf64 added send_mail after registration
nishanth
parents: 48
diff changeset
    24
            last_name = data['last_name']
b226923fbf64 added send_mail after registration
nishanth
parents: 48
diff changeset
    25
            email = data['email']
b226923fbf64 added send_mail after registration
nishanth
parents: 48
diff changeset
    26
            send_reg_complete_mail(email, first_name, last_name)
b226923fbf64 added send_mail after registration
nishanth
parents: 48
diff changeset
    27
136
b68ff7095ca5 added the registrantinfo creation part in register view
nishanth
parents: 130
diff changeset
    28
            user_info = RegistrantInfo()
b68ff7095ca5 added the registrantinfo creation part in register view
nishanth
parents: 130
diff changeset
    29
            user_info.registrant = user
b68ff7095ca5 added the registrantinfo creation part in register view
nishanth
parents: 130
diff changeset
    30
            user_info.status_of_attending_sagedays = "1"
b68ff7095ca5 added the registrantinfo creation part in register view
nishanth
parents: 130
diff changeset
    31
            user_info.status_of_attending_workshop = True if user.need_for_python_workshop else False
b68ff7095ca5 added the registrantinfo creation part in register view
nishanth
parents: 130
diff changeset
    32
            user_info.status_of_accomodation = "1" if user.acco_required else "0"
b68ff7095ca5 added the registrantinfo creation part in register view
nishanth
parents: 130
diff changeset
    33
            user_info.save()
b68ff7095ca5 added the registrantinfo creation part in register view
nishanth
parents: 130
diff changeset
    34
26
212fcba4459e changed the app to work with apache + added base.html, and did needed changes.
anoop
parents: 25
diff changeset
    35
            return redirect("/sage_days/registration/complete")
14
ee492a4b9ebd updated register view
nishanth
parents: 9
diff changeset
    36
        else:
ee492a4b9ebd updated register view
nishanth
parents: 9
diff changeset
    37
            return render_to_response("register.html", {"form":form})
9
47f72774489e added the return statement for register view
nishanth
parents: 7
diff changeset
    38
    else:
47f72774489e added the return statement for register view
nishanth
parents: 7
diff changeset
    39
        form = RegisterForm()
47f72774489e added the return statement for register view
nishanth
parents: 7
diff changeset
    40
        return render_to_response("register.html", {"form":form})
22
1df4b0e0d45c added the registration complete page
nishanth
parents: 15
diff changeset
    41
1df4b0e0d45c added the registration complete page
nishanth
parents: 15
diff changeset
    42
def reg_complete(request):
1df4b0e0d45c added the registration complete page
nishanth
parents: 15
diff changeset
    43
    """ Tell the registration is successful.
1df4b0e0d45c added the registration complete page
nishanth
parents: 15
diff changeset
    44
    """
1df4b0e0d45c added the registration complete page
nishanth
parents: 15
diff changeset
    45
1df4b0e0d45c added the registration complete page
nishanth
parents: 15
diff changeset
    46
    return render_to_response("reg_complete.html")
23
2aae8293f3a7 added list statiscs page
nishanth
parents: 22
diff changeset
    47
65
0ca63c964237 now login is required for accessing stats and send_invi pages
nishanth
parents: 57
diff changeset
    48
@login_required
23
2aae8293f3a7 added list statiscs page
nishanth
parents: 22
diff changeset
    49
def list_stats(request):
2aae8293f3a7 added list statiscs page
nishanth
parents: 22
diff changeset
    50
    """ List the statiscs of registered participants.
2aae8293f3a7 added list statiscs page
nishanth
parents: 22
diff changeset
    51
    """
2aae8293f3a7 added list statiscs page
nishanth
parents: 22
diff changeset
    52
24
f79be1dd4a22 added clean methods for each attribute in search form
nishanth
parents: 23
diff changeset
    53
    if request.method == "POST":
f79be1dd4a22 added clean methods for each attribute in search form
nishanth
parents: 23
diff changeset
    54
        form = SearchForm(request.POST)
f79be1dd4a22 added clean methods for each attribute in search form
nishanth
parents: 23
diff changeset
    55
        if form.is_valid():
25
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    56
            data = form.cleaned_data
79
064ff60025d9 removed the need_python_workshop and need_acco fields since they are very confusing
nishanth
parents: 77
diff changeset
    57
064ff60025d9 removed the need_python_workshop and need_acco fields since they are very confusing
nishanth
parents: 77
diff changeset
    58
            #need_workshop = data['need_for_python_workshop']
064ff60025d9 removed the need_python_workshop and need_acco fields since they are very confusing
nishanth
parents: 77
diff changeset
    59
            #acco_required = data['need_accomodation']
064ff60025d9 removed the need_python_workshop and need_acco fields since they are very confusing
nishanth
parents: 77
diff changeset
    60
            #db_query = "Registrant.objects.filter(need_for_python_workshop=%s, acco_required=%s)"%(need_workshop, acco_required)
064ff60025d9 removed the need_python_workshop and need_acco fields since they are very confusing
nishanth
parents: 77
diff changeset
    61
            db_query = "Registrant.objects"
25
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    62
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    63
            topics_include, topics_exclude = data['topics_interested']
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    64
            for number in topics_include:
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    65
                db_query += '.filter(topics_interested__contains="%s")'%number
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    66
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    67
            for number in topics_exclude:
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    68
                db_query += '.exclude(topics_interested__contains="%s")'%number
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    69
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    70
            start_python, stop_python = data['knowledge_of_python']
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    71
            if start_python and stop_python:
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    72
                db_query += '.filter(knowledge_of_python__gte="%s")'%start_python
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    73
                db_query += '.filter(knowledge_of_python__lte="%s")'%stop_python
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    74
            elif start_python:
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    75
                db_query += '.filter(knowledge_of_python__exact="%s")'%start_python
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    76
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    77
            start_sage, stop_sage = data['knowledge_of_sage']
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    78
            if start_sage and stop_sage:
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    79
                db_query += '.filter(knowledge_of_sage__gte="%s")'%start_sage
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    80
                db_query += '.filter(knowledge_of_sage__lte="%s")'%stop_sage
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    81
            elif start_sage:
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    82
                db_query += '.filter(knowledge_of_sage__exact="%s")'%start_sage
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    83
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    84
            start_likeliness, stop_likeliness = data['likeliness_of_attending']
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    85
            if start_likeliness and stop_likeliness:
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    86
                db_query += '.filter(likeliness_of_attending__gte="%s")'%start_likeliness
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    87
                db_query += '.filter(likeliness_of_attending__lte="%s")'%stop_likeliness
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    88
            elif start_likeliness:
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    89
                db_query += '.filter(likeliness_of_attending__exact="%s")'%start_likeliness
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    90
80
c200156c80a9 fixed a bug that arises when a query does not have any parameters to filter
nishanth
parents: 79
diff changeset
    91
            db_query += ".all()"
c200156c80a9 fixed a bug that arises when a query does not have any parameters to filter
nishanth
parents: 79
diff changeset
    92
25
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    93
            matches = eval(db_query)
30baf3c635c5 added list statiscs page
nishanth
parents: 24
diff changeset
    94
            return render_to_response("list_stats.html", {"form":form, 'matches':matches})
24
f79be1dd4a22 added clean methods for each attribute in search form
nishanth
parents: 23
diff changeset
    95
        else:
f79be1dd4a22 added clean methods for each attribute in search form
nishanth
parents: 23
diff changeset
    96
            return render_to_response("list_stats.html", {"form":form})
f79be1dd4a22 added clean methods for each attribute in search form
nishanth
parents: 23
diff changeset
    97
    else:
f79be1dd4a22 added clean methods for each attribute in search form
nishanth
parents: 23
diff changeset
    98
        form = SearchForm()
f79be1dd4a22 added clean methods for each attribute in search form
nishanth
parents: 23
diff changeset
    99
        return render_to_response("list_stats.html", {"form":form})
26
212fcba4459e changed the app to work with apache + added base.html, and did needed changes.
anoop
parents: 25
diff changeset
   100
65
0ca63c964237 now login is required for accessing stats and send_invi pages
nishanth
parents: 57
diff changeset
   101
@login_required
56
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   102
def send_invi(request):
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   103
    """ Take a list of csv email addresses and send mails to them.
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   104
    """
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   105
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   106
    if request.method == "POST":
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   107
        form = EmailForm(request.POST)
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   108
        if form.is_valid():
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   109
            to_emails = form.cleaned_data['emails']
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   110
            mail_invi(to_emails)
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   111
            return render_to_response("send_invi.html", {"emails":to_emails})
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   112
        else:
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   113
            return render_to_response("send_invi.html", {"form":form})
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   114
    else:
57
03150449a049 fixed a bug
nishanth
parents: 56
diff changeset
   115
        form = EmailForm()
56
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   116
        return render_to_response("send_invi.html", {"form":form})
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   117
86
1f0be76a18fc added a view for sending confirmation for workshop
nishanth
parents: 84
diff changeset
   118
@login_required
1f0be76a18fc added a view for sending confirmation for workshop
nishanth
parents: 84
diff changeset
   119
def send_workshop_confirm(request):
1f0be76a18fc added a view for sending confirmation for workshop
nishanth
parents: 84
diff changeset
   120
    """ Show a list of all the ppl who requested for a workshop and 
1f0be76a18fc added a view for sending confirmation for workshop
nishanth
parents: 84
diff changeset
   121
    send a confirmation mail to them if not sent.
1f0be76a18fc added a view for sending confirmation for workshop
nishanth
parents: 84
diff changeset
   122
    """
1f0be76a18fc added a view for sending confirmation for workshop
nishanth
parents: 84
diff changeset
   123
160
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   124
    not_selected_ppl = Registrant.objects.filter(need_for_python_workshop=True, registrantinfo__status_of_attending_workshop="1")
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   125
    not_confirmed_ppl = Registrant.objects.filter(need_for_python_workshop=True, registrantinfo__status_of_attending_workshop="2")
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   126
    attending_ppl = Registrant.objects.filter(need_for_python_workshop=True, registrantinfo__status_of_attending_workshop="3")
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   127
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   128
    choices = list(not_selected_ppl) + list(not_confirmed_ppl)
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   129
    form = UserSelectForm(choices, request.POST)
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   130
    if request.method == "POST" and form.is_valid():
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   131
        selected_users = form.cleaned_data['selected_users']
161
c7c5c727a483 removed old template and copied send_sgd_cnf as send_wsp_cnf since both are same and fixed a bug in view
nishanth
parents: 160
diff changeset
   132
        for user in selected_users:
160
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   133
            user_info = user.registrantinfo_set.all()[0]
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   134
            user_info.status_of_attending_workshop = "2"
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   135
            user_info.save()
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   136
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   137
        return render_to_response("sent_wsp_confirm.html", {"selected_users":selected_users})
86
1f0be76a18fc added a view for sending confirmation for workshop
nishanth
parents: 84
diff changeset
   138
    else:
160
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   139
        return render_to_response("send_wsp_cnf.html", {"attending": attending_ppl,
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   140
                                                        "not_confirmed": not_confirmed_ppl,
2f01af211af9 updated the view to look like send_sgd_cnf
nishanth
parents: 159
diff changeset
   141
                                                        "not_selected": not_selected_ppl,})
86
1f0be76a18fc added a view for sending confirmation for workshop
nishanth
parents: 84
diff changeset
   142
108
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   143
@login_required
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   144
def send_sagedays_confirm(request):
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   145
    """ filter out ppl depending on their status and display accordingly.
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   146
    """
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   147
146
a18ba6b30c43 fixed a bug in views
nishanth
parents: 144
diff changeset
   148
    attending_ppl = Registrant.objects.filter(registrantinfo__status_of_attending_sagedays ="3")
a18ba6b30c43 fixed a bug in views
nishanth
parents: 144
diff changeset
   149
    not_confirmed_ppl = Registrant.objects.filter(registrantinfo__status_of_attending_sagedays ="2")
a18ba6b30c43 fixed a bug in views
nishanth
parents: 144
diff changeset
   150
    not_selected_ppl = Registrant.objects.filter(registrantinfo__status_of_attending_sagedays ="1")
108
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   151
115
c03a2b66ea09 fixed a bug
nishanth
parents: 114
diff changeset
   152
    user_choices = list(not_selected_ppl) + list(not_confirmed_ppl)
108
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   153
    form = UserSelectForm(user_choices, request.POST)
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   154
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   155
    if request.method == "POST" and form.is_valid():
112
3cf5f668fca5 implemented the post part to an extent
nishanth
parents: 111
diff changeset
   156
        selected_users = form.cleaned_data['selected_users']
114
aa5c29984e84 now the send_sgd_cnf view does the updating of user record
nishanth
parents: 113
diff changeset
   157
        for user in selected_users:
117
af9472ab8f3e fixed a typo
nishanth
parents: 116
diff changeset
   158
            user_info = user.registrantinfo_set.all()[0]
114
aa5c29984e84 now the send_sgd_cnf view does the updating of user record
nishanth
parents: 113
diff changeset
   159
            user_info.status_of_attending_sagedays = "2"
aa5c29984e84 now the send_sgd_cnf view does the updating of user record
nishanth
parents: 113
diff changeset
   160
            user_info.save()
118
6c3602582f9f included the send_mail and created the corresponding event in events
nishanth
parents: 117
diff changeset
   161
137
02a5304a2c5f fixed a typo and corrected at various places accordingly
nishanth
parents: 136
diff changeset
   162
            send_sgd_ptc_confirm(user)
114
aa5c29984e84 now the send_sgd_cnf view does the updating of user record
nishanth
parents: 113
diff changeset
   163
        
116
54ced1b9e010 fixed a typo and added new template for confirmation of sending mail to selected participants
nishanth
parents: 115
diff changeset
   164
        return render_to_response("sent_sgd_confirm.html", {"selected_users":selected_users})
108
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   165
    else:
111
45f844723b7a fixed a bug
nishanth
parents: 110
diff changeset
   166
        return render_to_response("send_sgd_cnf.html", {"attending":attending_ppl, 
108
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   167
                                                "not_confirmed":not_confirmed_ppl,
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   168
                                                "not_selected":not_selected_ppl,
110
01b5184402c8 fixed a bug
nishanth
parents: 108
diff changeset
   169
                                               })
108
9363e5121f9b added the GET part of view for sending event confirmation emails
nishanth
parents: 107
diff changeset
   170
152
86bfdb64edb5 created basic view for sending acco and added corresponding url
nishanth
parents: 151
diff changeset
   171
def send_acco_confirm(request):
86bfdb64edb5 created basic view for sending acco and added corresponding url
nishanth
parents: 151
diff changeset
   172
    """ display list of confirmed participants who requested for accomodation
86bfdb64edb5 created basic view for sending acco and added corresponding url
nishanth
parents: 151
diff changeset
   173
    and let the admin decide.
86bfdb64edb5 created basic view for sending acco and added corresponding url
nishanth
parents: 151
diff changeset
   174
    """
153
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   175
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   176
    rejected_ppl = Registrant.objects.filter(registrantinfo__status_of_attending_sagedays ="3", 
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   177
                                             registrantinfo__status_of_accomodation="4")
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   178
    selected_not_confirmed_ppl = Registrant.objects.filter(registrantinfo__status_of_attending_sagedays ="3",
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   179
                                                           registrantinfo__status_of_accomodation="2")
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   180
    selected_confirmed_ppl = Registrant.objects.filter(registrantinfo__status_of_attending_sagedays ="3", 
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   181
                                                       registrantinfo__status_of_accomodation="3")
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   182
    not_selected_ppl = Registrant.objects.filter(registrantinfo__status_of_attending_sagedays ="3", 
155
c688c24392bf fixed another typo
nishanth
parents: 154
diff changeset
   183
                                                 registrantinfo__status_of_accomodation="1")
153
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   184
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   185
    user_choices = list(rejected_ppl) + list(selected_not_confirmed_ppl) + list(not_selected_ppl)
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   186
    form = UserSelectForm(user_choices, request.POST)
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   187
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   188
    if request.method == "POST" and form.is_valid():
156
cebb6ffb5f83 created the POST part of view. hav to implement the sending email part
nishanth
parents: 155
diff changeset
   189
        selected_users = form.cleaned_data['selected_users']
cebb6ffb5f83 created the POST part of view. hav to implement the sending email part
nishanth
parents: 155
diff changeset
   190
        for user in selected_users:
cebb6ffb5f83 created the POST part of view. hav to implement the sending email part
nishanth
parents: 155
diff changeset
   191
            user_info = user.registrantinfo_set.all()[0]
158
f39310ac2245 fixed a bug
nishanth
parents: 157
diff changeset
   192
            user_info.status_of_accomodation = "2"
156
cebb6ffb5f83 created the POST part of view. hav to implement the sending email part
nishanth
parents: 155
diff changeset
   193
            user_info.save()
cebb6ffb5f83 created the POST part of view. hav to implement the sending email part
nishanth
parents: 155
diff changeset
   194
        
159
f2f389e688fb created template for displaying the ppl whom acco confirm mail was sent to
nishanth
parents: 158
diff changeset
   195
        return render_to_response("sent_acco_confirm.html", {"selected_users":selected_users})
153
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   196
    else:
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   197
        return render_to_response("send_acco_cnf.html", {"rejected": rejected_ppl,
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   198
                                                        "selected_not_confirmed":selected_not_confirmed_ppl,
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   199
                                                        "selected_confirmed":selected_confirmed_ppl,
154
5cd25b1093ad fixed a typo
nishanth
parents: 153
diff changeset
   200
                                                        "not_selected":not_selected_ppl,
153
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   201
                                                       })
55f338569133 updated the view for GET part and created corresponding template
nishanth
parents: 152
diff changeset
   202
95
ab554d46fd34 created basic view for confirmation of wsp participation
nishanth
parents: 93
diff changeset
   203
def confirm_wsp_participation(request, uid):
ab554d46fd34 created basic view for confirmation of wsp participation
nishanth
parents: 93
diff changeset
   204
    """ match id versus email and take lappy details.
ab554d46fd34 created basic view for confirmation of wsp participation
nishanth
parents: 93
diff changeset
   205
    """
ab554d46fd34 created basic view for confirmation of wsp participation
nishanth
parents: 93
diff changeset
   206
99
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   207
    try:
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   208
        email = request.GET['email']
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   209
    except MultiValueDictKeyError:
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   210
        raise Http404
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   211
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   212
    try:
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   213
        user = Registrant.objects.get(id=uid, email=email)
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   214
    except Registrant.DoesNotExist:
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   215
        raise Http404
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   216
100
17e35783c8d6 fixed a bug
nishanth
parents: 99
diff changeset
   217
    user_info = user.registrantinfo_set.all()[0]
123
dd1a4022d5b1 fixed a typo
nishanth
parents: 122
diff changeset
   218
    status = user_info.status_of_attending_workshop
99
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   219
    if status == "3":
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   220
        return render_to_response("attending_wsp.html")
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   221
    elif status != "2":
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   222
        raise Http404
fdaed2cf5820 improvised the view
nishanth
parents: 98
diff changeset
   223
95
ab554d46fd34 created basic view for confirmation of wsp participation
nishanth
parents: 93
diff changeset
   224
    if request.method == "POST":
104
7630d7f3613a added template for thanking for participation in workshop
nishanth
parents: 102
diff changeset
   225
        try:
7630d7f3613a added template for thanking for participation in workshop
nishanth
parents: 102
diff changeset
   226
            has_laptop = request.POST['lap_status']
7630d7f3613a added template for thanking for participation in workshop
nishanth
parents: 102
diff changeset
   227
        except MultiValueDictKeyError:
7630d7f3613a added template for thanking for participation in workshop
nishanth
parents: 102
diff changeset
   228
            return render_to_response("cnf_wsp_ptc.html", {"user":user})
7630d7f3613a added template for thanking for participation in workshop
nishanth
parents: 102
diff changeset
   229
106
39b0b9a71778 confirm wsp_participation view is complete now
nishanth
parents: 104
diff changeset
   230
        user_info.status_of_attending_workshop = "3"
107
9fd140628988 fixed a bug
nishanth
parents: 106
diff changeset
   231
        user_info.has_laptop_for_workshop = True if has_laptop == "True" else False
106
39b0b9a71778 confirm wsp_participation view is complete now
nishanth
parents: 104
diff changeset
   232
        user_info.save()
39b0b9a71778 confirm wsp_participation view is complete now
nishanth
parents: 104
diff changeset
   233
104
7630d7f3613a added template for thanking for participation in workshop
nishanth
parents: 102
diff changeset
   234
        return render_to_response("attending_wsp.html")
95
ab554d46fd34 created basic view for confirmation of wsp participation
nishanth
parents: 93
diff changeset
   235
    else:
102
ef0012eb7695 improvised the template of confirm participation
nishanth
parents: 100
diff changeset
   236
        return render_to_response("cnf_wsp_ptc.html", {"user":user})
95
ab554d46fd34 created basic view for confirmation of wsp participation
nishanth
parents: 93
diff changeset
   237
120
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   238
def confirm_sgd_participation(request, uid):
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   239
    """ match id versus email and take lappy details.
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   240
    """
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   241
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   242
    try:
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   243
        email = request.GET['email']
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   244
    except MultiValueDictKeyError:
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   245
        raise Http404
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   246
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   247
    try:
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   248
        user = Registrant.objects.get(id=uid, email=email)
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   249
    except Registrant.DoesNotExist:
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   250
        raise Http404
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   251
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   252
    user_info = user.registrantinfo_set.all()[0]
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   253
    status = user_info.status_of_attending_sagedays
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   254
    if status == "3":
139
7eaaecef80f6 replaced acco_required with user.acco_required in template and made change accordingly
nishanth
parents: 138
diff changeset
   255
        return render_to_response("attending_sgd.html", {"user":user})
123
dd1a4022d5b1 fixed a typo
nishanth
parents: 122
diff changeset
   256
    elif status != "2":
120
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   257
        raise Http404
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   258
124
d4a7644e7fe8 created a form for taking participant info and used it in the view
nishanth
parents: 123
diff changeset
   259
    participant_info = ParticipantInfo()
d4a7644e7fe8 created a form for taking participant info and used it in the view
nishanth
parents: 123
diff changeset
   260
    participant_info.participant = user
d4a7644e7fe8 created a form for taking participant info and used it in the view
nishanth
parents: 123
diff changeset
   261
128
16b3557b4260 added the new object creation to the view
nishanth
parents: 126
diff changeset
   262
    form = ParticipantInfoForm(request.POST)
16b3557b4260 added the new object creation to the view
nishanth
parents: 126
diff changeset
   263
    if request.method == "POST" and form.is_valid():
16b3557b4260 added the new object creation to the view
nishanth
parents: 126
diff changeset
   264
        data = form.cleaned_data
130
384049c3bcb8 fixed a typo
nishanth
parents: 129
diff changeset
   265
        participant_info.has_laptop_for_sagedays = True if data['has_laptop_for_sagedays'] == "Yes" else False
128
16b3557b4260 added the new object creation to the view
nishanth
parents: 126
diff changeset
   266
        participant_info.sprinted_already = True if data['sprinted_already'] == "Yes" else False
16b3557b4260 added the new object creation to the view
nishanth
parents: 126
diff changeset
   267
        participant_info.will_sprint = data['will_sprint']
129
b5dfde8e43a9 fixed a typo and improvised the view
nishanth
parents: 128
diff changeset
   268
        participant_info.save()
b5dfde8e43a9 fixed a typo and improvised the view
nishanth
parents: 128
diff changeset
   269
b5dfde8e43a9 fixed a typo and improvised the view
nishanth
parents: 128
diff changeset
   270
        user_info.status_of_attending_sagedays = "3"
b5dfde8e43a9 fixed a typo and improvised the view
nishanth
parents: 128
diff changeset
   271
        user_info.save()
b5dfde8e43a9 fixed a typo and improvised the view
nishanth
parents: 128
diff changeset
   272
151
c5915459e48b uncommented the sending email thingy
nishanth
parents: 149
diff changeset
   273
        send_cnf_email(user)
149
1f53ccd82a21 included the send_cnf_email event in views but right now, it is commented
nishanth
parents: 148
diff changeset
   274
139
7eaaecef80f6 replaced acco_required with user.acco_required in template and made change accordingly
nishanth
parents: 138
diff changeset
   275
        return render_to_response("attending_sgd.html", {"user":user})
120
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   276
    else:
126
98eb8dc364ba now form is not rendered via form.as_p
nishanth
parents: 125
diff changeset
   277
        return render_to_response("cnf_sgd_ptc.html", {"user":user})
120
f9408ab30ace created the basic view and template for confirming participation in sage days
nishanth
parents: 118
diff changeset
   278
67
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   279
def admin_login(request):
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   280
    """ basic login.
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   281
    """
56
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   282
72
3673ed3ca27c fixed a few bugs
nishanth
parents: 70
diff changeset
   283
    redirect_url = "/%s/registration/stats"%aup
3673ed3ca27c fixed a few bugs
nishanth
parents: 70
diff changeset
   284
3673ed3ca27c fixed a few bugs
nishanth
parents: 70
diff changeset
   285
    user = request.user
3673ed3ca27c fixed a few bugs
nishanth
parents: 70
diff changeset
   286
    if user.is_authenticated():
3673ed3ca27c fixed a few bugs
nishanth
parents: 70
diff changeset
   287
        return redirect(redirect_url)
3673ed3ca27c fixed a few bugs
nishanth
parents: 70
diff changeset
   288
67
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   289
    if request.method == "POST":
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   290
        form = LoginForm(request.POST)
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   291
        if form.is_valid():
72
3673ed3ca27c fixed a few bugs
nishanth
parents: 70
diff changeset
   292
            data = form.cleaned_data
67
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   293
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   294
            username = data['username']
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   295
            password = data['password']
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   296
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   297
            user = authenticate(username=username, password=password)
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   298
            login(request, user)
72
3673ed3ca27c fixed a few bugs
nishanth
parents: 70
diff changeset
   299
            return redirect(redirect_url)
67
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   300
        else:
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   301
            return render_to_response("login.html", {"form":form})
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   302
    else:
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   303
        form = LoginForm()
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   304
        return render_to_response("login.html", {"form":form})
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   305
70
58cafee2ee89 now only logged in users can logout
nishanth
parents: 67
diff changeset
   306
@login_required
67
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   307
def admin_logout(request):
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   308
    """ simply logout.
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   309
    """
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   310
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   311
    logout(request)
b9690fbf78af created views for login and logout
nishanth
parents: 65
diff changeset
   312
    return render_to_response("logout.html")
56
7dfacad8adee provided an interface for sending out emails
nishanth
parents: 53
diff changeset
   313
26
212fcba4459e changed the app to work with apache + added base.html, and did needed changes.
anoop
parents: 25
diff changeset
   314
def homepage(request):
91
9fab907060a7 added talks proposed page.
anoop
parents: 85
diff changeset
   315
    return render_to_response("index.html")
26
212fcba4459e changed the app to work with apache + added base.html, and did needed changes.
anoop
parents: 25
diff changeset
   316
31
ec540dfbfe78 added more pages.
anoop
parents: 26
diff changeset
   317
def schedule(request):
91
9fab907060a7 added talks proposed page.
anoop
parents: 85
diff changeset
   318
    return render_to_response("schedule.html")
31
ec540dfbfe78 added more pages.
anoop
parents: 26
diff changeset
   319
ec540dfbfe78 added more pages.
anoop
parents: 26
diff changeset
   320
def organizers(request):
91
9fab907060a7 added talks proposed page.
anoop
parents: 85
diff changeset
   321
    return render_to_response("organizers.html")
31
ec540dfbfe78 added more pages.
anoop
parents: 26
diff changeset
   322
ec540dfbfe78 added more pages.
anoop
parents: 26
diff changeset
   323
def venue(request):
91
9fab907060a7 added talks proposed page.
anoop
parents: 85
diff changeset
   324
    return render_to_response("about_venue.html")
31
ec540dfbfe78 added more pages.
anoop
parents: 26
diff changeset
   325
ec540dfbfe78 added more pages.
anoop
parents: 26
diff changeset
   326
def contact(request):
91
9fab907060a7 added talks proposed page.
anoop
parents: 85
diff changeset
   327
    return render_to_response("contact.html")
31
ec540dfbfe78 added more pages.
anoop
parents: 26
diff changeset
   328
ec540dfbfe78 added more pages.
anoop
parents: 26
diff changeset
   329
def about(request):
91
9fab907060a7 added talks proposed page.
anoop
parents: 85
diff changeset
   330
    return render_to_response("about.html")
48
a3e6f9470549 made some changes to links and added accomodation page.
anoop
parents: 31
diff changeset
   331
	
a3e6f9470549 made some changes to links and added accomodation page.
anoop
parents: 31
diff changeset
   332
def accomodation(request):
91
9fab907060a7 added talks proposed page.
anoop
parents: 85
diff changeset
   333
    return render_to_response("accomodation.html")
84
7007ec492eac added more information about venue.
anoop
parents: 80
diff changeset
   334
7007ec492eac added more information about venue.
anoop
parents: 80
diff changeset
   335
def about_mumbai(request):
7007ec492eac added more information about venue.
anoop
parents: 80
diff changeset
   336
    return render_to_response("about_mumbai.html")
7007ec492eac added more information about venue.
anoop
parents: 80
diff changeset
   337
7007ec492eac added more information about venue.
anoop
parents: 80
diff changeset
   338
def reaching_iitb(request):
7007ec492eac added more information about venue.
anoop
parents: 80
diff changeset
   339
    return render_to_response("reaching_iitb.html")
91
9fab907060a7 added talks proposed page.
anoop
parents: 85
diff changeset
   340
9fab907060a7 added talks proposed page.
anoop
parents: 85
diff changeset
   341
def talks_proposed(request):
9fab907060a7 added talks proposed page.
anoop
parents: 85
diff changeset
   342
    return render_to_response("talks_proposed.html")
143
a752dc99e23c added link to sprint_info and created a basic template
nishanth
parents: 139
diff changeset
   343
a752dc99e23c added link to sprint_info and created a basic template
nishanth
parents: 139
diff changeset
   344
def sprint_info(request):
a752dc99e23c added link to sprint_info and created a basic template
nishanth
parents: 139
diff changeset
   345
    """ display info on what a sprint is.
a752dc99e23c added link to sprint_info and created a basic template
nishanth
parents: 139
diff changeset
   346
    """
a752dc99e23c added link to sprint_info and created a basic template
nishanth
parents: 139
diff changeset
   347
144
cb81b0f7e707 ixed a bug
nishanth
parents: 143
diff changeset
   348
    return render_to_response("sprint_info.html")