reg/views.py
author nishanth
Mon, 12 Apr 2010 18:15:21 +0530
changeset 18 7dae32a2439b
parent 17 125b6fc8f20b
child 19 115860e87238
permissions -rw-r--r--
prettified the home page and moved workshops to another page called workshops.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
     1
from datetime import datetime
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
     2
4
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
     3
from django.contrib.auth.models import User
3
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
     4
from django.contrib.auth import authenticate, login, logout
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
     5
from django.contrib.auth.decorators import login_required
2
c11afa8623f7 incorporated gen_key .
nishanth
parents: 0
diff changeset
     6
4
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
     7
from django.shortcuts import render_to_response, redirect
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
     8
6
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
     9
from workshop.reg.models import Event
3
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    10
from workshop.reg import forms as reg_forms
6
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    11
from workshop.reg import events as reg_events
3
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    12
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    13
from workshop.feedback.models import Feedback
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    14
4
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    15
from django.http import HttpResponse
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    16
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    17
def homepage(request):
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    18
    """ see if the user is active.
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    19
    If not, only show the re send activation email link.
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    20
    else show all the options in homepage.
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    21
    """
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    22
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    23
    user = request.user
6
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    24
18
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
    25
    return render_to_response('index.html', {'user':user})
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    26
4
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    27
def user_login(request):
3
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    28
    """ get the user object from e-mail and then check for password.
2
c11afa8623f7 incorporated gen_key .
nishanth
parents: 0
diff changeset
    29
    """
c11afa8623f7 incorporated gen_key .
nishanth
parents: 0
diff changeset
    30
3
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    31
    user = request.user
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    32
    if user.is_authenticated():
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    33
        return redirect('/reg')
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    34
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    35
    if request.method == "POST":
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    36
        form = reg_forms.LoginForm(request.POST)
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    37
        if form.is_valid():
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    38
            email = form.cleaned_data['email']
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    39
            password = form.cleaned_data['password']
4
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    40
            username = User.objects.get(email__iexact=email).username
3
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    41
4
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    42
            user = authenticate(username=username, password=password)
3
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    43
            login(request, user)
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    44
            return redirect('/reg')
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    45
        else:
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
    46
            return render_to_response('login.html', {'user':user, 'form':form})
3
182f216da4a8 made the login view. have to write templates and check it.
nishanth
parents: 2
diff changeset
    47
    else:
4
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    48
        form = reg_forms.LoginForm()
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
    49
        return render_to_response('login.html', {'user':user, 'form':form})
4
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    50
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    51
def user_logout(request):
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    52
    """ simply logout the user and redirect to homepage.
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    53
    """
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    54
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    55
    logout(request)
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    56
    return redirect('/reg')
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    57
6
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    58
def user_register(request):
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    59
    """ take the credentials like name, college and gender here itself.
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    60
    """
4
ededea9ad08b login and logout works .
nishanth
parents: 3
diff changeset
    61
6
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    62
    if request.method == "POST":
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    63
        form = reg_forms.RegisterForm(request.POST)
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    64
        if form.is_valid():
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    65
            data = form.cleaned_data
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    66
            reg_events.create_user(email=data['email'], 
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    67
                                   password=data['password'],
17
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
    68
                                   first_name=data['first_name'],
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
    69
                                   last_name=data['last_name'], 
6
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    70
                                   gender=data['gender'], 
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    71
                                   profession=data['profession'], 
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    72
                                   affiliated_to=data['affiliated_to'], 
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    73
                                   interests=data['interests']
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    74
                                  )
15
b06f0fefbd20 fixed a bug in register user view .
nishanth
parents: 14
diff changeset
    75
            return render_to_response('account_created.html')
6
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    76
        else:
15
b06f0fefbd20 fixed a bug in register user view .
nishanth
parents: 14
diff changeset
    77
            return render_to_response('register.html', {'form':form})
6
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    78
    else:
057498d12450 users can now register but still there is no concept of activation e-mail .
nishanth
parents: 5
diff changeset
    79
        form = reg_forms.RegisterForm()
15
b06f0fefbd20 fixed a bug in register user view .
nishanth
parents: 14
diff changeset
    80
        return render_to_response('register.html', {'form':form})
8
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    81
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    82
def create_event(request):
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    83
    """ see if the user is a staff and only then let him do it.
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    84
    """
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    85
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    86
    user = request.user
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    87
    if user.is_authenticated() and user.is_staff:
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    88
        if request.method ==  "POST":
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    89
            form = reg_forms.EventCreateForm(request.POST)
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    90
            if form.is_valid():
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    91
                data = form.cleaned_data
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    92
                new_event = reg_events.create_event(title=data['title'],
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    93
                                                    description=data['description'],
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    94
                                                    start_date=data['start_date'],
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    95
                                                    stop_date=data['stop_date'],
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    96
                                                    created_by=user,
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    97
                                                   )
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    98
                event_url = "/reg/event/view/%s"%(new_event.key)
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
    99
                return redirect(event_url)
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   100
            else:
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   101
                return render_to_response('event_create.html', {'user':user, 'form':form})
8
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   102
        else:
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   103
            form = reg_forms.EventCreateForm()
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   104
            return render_to_response('event_create.html', {'user':user, 'form':form})
8
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   105
    else:
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   106
        return redirect('/reg')
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   107
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   108
def view_event(request, key):
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   109
    """ get the event by its key and display it.
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   110
    """
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   111
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   112
    user = request.user
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
   113
    user_ip = request.META['REMOTE_ADDR']
8
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   114
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   115
    try:
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   116
        event = Event.objects.get(key__iexact=key)
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   117
    except Event.DoesNotExist:
10
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 9
diff changeset
   118
        return redirect("/reg")
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 9
diff changeset
   119
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 9
diff changeset
   120
    is_guest = False if user.is_authenticated() else True
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 9
diff changeset
   121
    is_attendee = True if user in event.attendees.all() else False
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 9
diff changeset
   122
    is_org = True if user in event.organizers.all() else False
8
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   123
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
   124
    can_submit_feedback = False
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
   125
    if not event.feedback_status == "0":
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
   126
        try:
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
   127
            event.feedback.get(user_ip__iexact=user_ip, day=event.feedback_status)
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
   128
        except Feedback.DoesNotExist:
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
   129
            can_submit_feedback = True 
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
   130
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   131
    context = {'user': user,
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   132
               'is_guest': is_guest,
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
   133
               'event': event,
10
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 9
diff changeset
   134
               'is_attendee': is_attendee,
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 9
diff changeset
   135
               'is_org': is_org,
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
   136
               'can_submit_feedback': can_submit_feedback,
10
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 9
diff changeset
   137
              }
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 9
diff changeset
   138
    return render_to_response('view_event.html', context)
8
e2699e042129 now a user can create an event if he is a staff
nishanth
parents: 6
diff changeset
   139
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   140
def reset_password(request):
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   141
    """ check for the existance of e-mail.
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   142
    Then call the event.
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   143
    """
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   144
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   145
    user = request.user
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   146
    if user.is_authenticated():
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   147
        return redirect('/reg')
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   148
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   149
    if request.method == "POST":
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   150
        form = reg_forms.PasswordResetForm(request.POST)
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   151
        if form.is_valid():
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   152
            email = form.cleaned_data['email']
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   153
            user = User.objects.get(email__iexact=email)
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   154
            new_password = reg_events.reset_password(user)
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   155
            return render_to_response('password_reset.html', {'user':user, 'new_password':new_password})
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   156
        else:
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   157
            return render_to_response('password_reset.html', {'user':user, 'form':form})
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   158
    else:
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   159
        form = reg_forms.PasswordResetForm()
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   160
        return render_to_response('password_reset.html', {'user':user, 'form':form})
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   161
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   162
def change_password(request):
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   163
    """ check for the password and then set the new password.
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   164
    """
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   165
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   166
    user = request.user
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   167
    if not user.is_authenticated():
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   168
        return redirect('/reg')
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   169
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   170
    if request.method == "POST":
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   171
        data = request.POST.copy()
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   172
        data.__setitem__('username', user.username)
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   173
        form = reg_forms.PasswordChangeForm(data)
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   174
        if form.is_valid():
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   175
            new_password = form.cleaned_data['new_password']
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   176
            reg_events.change_password(user, new_password)
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   177
            return render_to_response('password_change.html', {'user':user, 'password_changed': True})
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   178
        else:
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   179
            return render_to_response('password_change.html', {'user':user, 'form':form})
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   180
    else:
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   181
        form = reg_forms.PasswordChangeForm()
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   182
        return render_to_response('password_change.html', {'user':user, 'form':form})
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   183
12
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   184
def open_feedback(request, event_key):
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   185
    """ see if the event exists.
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   186
    then see if feedback is closed.
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   187
    then give option for opening the feedback.
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   188
    Any feedback can be opened on any day.
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   189
    """
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   190
12
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   191
    user = request.user
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   192
    try:
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   193
        event = Event.objects.get(key__iexact=event_key)
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   194
    except Event.DoesNotExist:
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   195
        return redirect("/reg")
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   196
12
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   197
    is_org = True if user in event.organizers.all() else False
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   198
12
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   199
    if is_org and event.feedback_status == '0':
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   200
        #days = event.stop_date.day() - event.start_date.day() + 1
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   201
        days = 2
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   202
        if request.method == "POST":
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   203
            day = request.POST['day']
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   204
            event.feedback_status = day
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   205
            event.save()
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   206
            return render_to_response('open_feedback.html', {'user':user, 'success': True, 'day':day, 'event':event})
12
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   207
        else:
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   208
            return render_to_response('open_feedback.html', {'user':user, 'event': event, 'days': range(1,days+1)})
12
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   209
    else:
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   210
        return redirect('/reg')
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   211
12
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   212
def close_feedback(request, event_key):
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   213
    """ check if the user is org.
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   214
    and then check if the feedback is open already.
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   215
    """
9
e29ecb7819e7 password change and password reset have been done.
nishanth
parents: 8
diff changeset
   216
12
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   217
    user = request.user
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   218
    try:
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   219
        event = Event.objects.get(key__iexact=event_key)
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   220
    except Event.DoesNotExist:
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   221
        return redirect("/reg")
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   222
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   223
    is_org = True if user in event.organizers.all() else False
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   224
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   225
    if is_org:
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   226
        day = event.feedback_status
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   227
        event.feedback_status = '0'
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   228
        event.save()
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   229
        return render_to_response('close_feedback.html', {'user':user, 'event': event, 'day':day})
12
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   230
    else:
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   231
        return redirect('/reg')
f57b0a7f24d9 added closing and opening of feedback.
nishanth
parents: 11
diff changeset
   232
13
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   233
def open_registration(request, event_key):
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   234
    """ simply check for is_org and then set the registration_is_open flag.
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   235
    """
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   236
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   237
    user = request.user
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   238
    try:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   239
        event = Event.objects.get(key__iexact=event_key)
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   240
    except Event.DoesNotExist:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   241
        return redirect("/reg")
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   242
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   243
    is_org = True if user in event.organizers.all() else False
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   244
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   245
    if is_org:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   246
        event.registration_is_open = True
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   247
        event.save()
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   248
        return render_to_response('reg_open.html', {'user':user, 'event': event})
13
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   249
    else:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   250
        return redirect('/reg')
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   251
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   252
def close_registration(request, event_key):
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   253
    """ simply check for is_org and then unset the registration_is_open flag.
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   254
    """
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   255
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   256
    user = request.user
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   257
    try:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   258
        event = Event.objects.get(key__iexact=event_key)
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   259
    except Event.DoesNotExist:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   260
        return redirect("/reg")
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   261
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   262
    is_org = True if user in event.organizers.all() else False
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   263
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   264
    if is_org:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   265
        event.registration_is_open = False
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   266
        event.save()
14
cd6911eaac2c moved templates into templates directory and added user in context .
nishanth
parents: 13
diff changeset
   267
        return render_to_response('reg_close.html', {'user':user, 'event': event})
13
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   268
    else:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   269
        return redirect('/reg')
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   270
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   271
def register_for_event(request, event_key):
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   272
    """ check if the user is logged in.
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   273
    simply add him to the attendees list.
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   274
    """
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   275
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   276
    user = request.user
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   277
    if user.is_authenticated():
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   278
        try:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   279
            event = Event.objects.get(key__iexact=event_key)
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   280
        except Event.DoesNotExist:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   281
            return redirect("/reg")
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   282
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   283
        event.attendees.add(user)
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   284
        return render_to_response("event_register.html", {"user":user, 'event':event})
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   285
    else:
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   286
        return redirect("/reg")
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   287
17
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   288
def view_profile(request):
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   289
    """ check if user is logged in.
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   290
    then show the profile.
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   291
    """
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   292
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   293
    user = request.user
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   294
    if not user.is_authenticated():
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   295
        return redirect('/reg')
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   296
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   297
    user_profile = user.get_profile()
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   298
    return render_to_response('view_profile.html', {'user':user, 'user_profile':user_profile})
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   299
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   300
def edit_profile(request):
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   301
    """ check if user is logged in.
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   302
    """
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   303
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   304
    user = request.user
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   305
    if not user.is_authenticated():
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   306
        return redirect('/reg')
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   307
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   308
    user_profile = user.get_profile()
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   309
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   310
    if request.method == "POST":
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   311
        form = reg_forms.EditProfileForm(request.POST)
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   312
        if form.is_valid():
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   313
            reg_events.update_profile(user, form.cleaned_data)
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   314
            return redirect('/reg/profile/view')
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   315
        else:
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   316
            return render_to_response('edit_profile.html', {'user':user, 'form':form})
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   317
    else:
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   318
        old_info = {'first_name': user.first_name,
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   319
                    'last_name': user.last_name,
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   320
                    'gender':user_profile.gender,
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   321
                    'profession': user_profile.profession,
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   322
                    'affiliated_to': user_profile.affiliated_to,
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   323
                    'interests': user_profile.interests,
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   324
                   }
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   325
        form = reg_forms.EditProfileForm(old_info)
125b6fc8f20b users can view and edit profile .
nishanth
parents: 16
diff changeset
   326
        return render_to_response('edit_profile.html', {'user':user, 'form':form})
13
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   327
18
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   328
def list_events(request):
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   329
    """ Get all the events including those that are over and list them.
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   330
    """
13
05248e27104a added closing registration and registering for a workshop .
nishanth
parents: 12
diff changeset
   331
18
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   332
    user = request.user
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   333
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   334
    today = datetime.now()
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   335
    context = {'user':user,
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   336
               'upcoming_events': Event.objects.filter(start_date__gt=today),
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   337
               'ongoing_events': Event.objects.filter(start_date__lte=today, stop_date__gte=today),
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   338
               'previous_events': Event.objects.filter(stop_date__lt=today),
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   339
              }
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   340
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   341
    return render_to_response('list_events.html', context)
7dae32a2439b prettified the home page and moved workshops to another page called workshops.
nishanth
parents: 17
diff changeset
   342