feedback/views.py
author nishanth
Thu, 15 Apr 2010 12:36:21 +0530
changeset 39 61d558a69b0d
parent 38 b63b78017225
child 41 ab0a8a72b069
permissions -rw-r--r--
implemented listing of feedbacks.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
     1
from django.shortcuts import render_to_response, redirect
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
     2
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
     3
from workshop.reg.models import Event
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
     4
5
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
     5
from workshop.feedback.models import Feedback
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
     6
from workshop.feedback.forms import FeedbackForm
38
b63b78017225 added date tags in view event template and open_feedback template is now a lil better .
nishanth
parents: 36
diff changeset
     7
from workshop.feedback.utils import compile_report
5
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
     8
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
     9
from django.http import HttpResponse
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    10
10
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 5
diff changeset
    11
def submit_feedback(request, event_key):
5
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    12
    """ see if the ip address has already submitted a feedback.
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    13
    if not, collect the feedback.
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    14
    """
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    15
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    16
    try:
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    17
        event = Event.objects.get(key=event_key)
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    18
    except Event.DoesNotExist:
35
79dc44b6edd4 made a few redirects to 404
nishanth
parents: 11
diff changeset
    19
        raise Http404
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    20
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    21
    if event.feedback_status == "0":
35
79dc44b6edd4 made a few redirects to 404
nishanth
parents: 11
diff changeset
    22
        raise Http404
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    23
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    24
    user_ip = request.META["REMOTE_ADDR"]
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    25
    try:
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    26
        old_feedback = Feedback.objects.get(day=event.feedback_status, user_ip=user_ip)
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    27
        return render_to_response('feedback.html', {'submitted':True})
35
79dc44b6edd4 made a few redirects to 404
nishanth
parents: 11
diff changeset
    28
    except Feedback.DoesNotExist:
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    29
        new_feedback = Feedback(event=event, user_ip=user_ip, day=event.feedback_status)
5
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    30
    
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    31
    if request.method == "POST":
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    32
        form = FeedbackForm(request.POST)
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    33
        if form.is_valid():
11
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    34
            data = form.cleaned_data
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    35
            new_feedback.topics = data['topics']  
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    36
            new_feedback.depth = data['depth']
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    37
            new_feedback.methodology = data['methodology']
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    38
            new_feedback.pace = data['pace']
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    39
            new_feedback.applicability = data['applicability']
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    40
            new_feedback.problems = data['problems']
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    41
            new_feedback.exercises = data['exercises']
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    42
            new_feedback.comments = data['comments']
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    43
            new_feedback.save()
334550460bd7 added the view event functionality and submitting feedback according to the status .
nishanth
parents: 10
diff changeset
    44
            return render_to_response('feedback.html', {'submitted':True})
5
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    45
        else:
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    46
            return render_to_response('feedback.html',{'form':form})
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    47
    else:
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    48
        form = FeedbackForm()
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    49
        return render_to_response('feedback.html',{'form':form})
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    50
10
c52d170969f0 quite a few changes. modified models and feedback views .
nishanth
parents: 5
diff changeset
    51
def list_feedbacks(request, event_key):
5
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    52
    """ print a list of all the feedbacks collected.
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    53
    """
37e4027fba48 submit and list feedback done
nishanth
parents: 0
diff changeset
    54
36
cd0f61fa31f1 removed quiz links from view event template .
nishanth
parents: 35
diff changeset
    55
    user = request.user
cd0f61fa31f1 removed quiz links from view event template .
nishanth
parents: 35
diff changeset
    56
    
cd0f61fa31f1 removed quiz links from view event template .
nishanth
parents: 35
diff changeset
    57
    try:
cd0f61fa31f1 removed quiz links from view event template .
nishanth
parents: 35
diff changeset
    58
        event = Event.objects.get(key__iexact=event_key)
cd0f61fa31f1 removed quiz links from view event template .
nishanth
parents: 35
diff changeset
    59
    except Event.DoesNotExist:
cd0f61fa31f1 removed quiz links from view event template .
nishanth
parents: 35
diff changeset
    60
        raise Http404
cd0f61fa31f1 removed quiz links from view event template .
nishanth
parents: 35
diff changeset
    61
cd0f61fa31f1 removed quiz links from view event template .
nishanth
parents: 35
diff changeset
    62
    if not user in event.organizers.all():
cd0f61fa31f1 removed quiz links from view event template .
nishanth
parents: 35
diff changeset
    63
        raise Http404
cd0f61fa31f1 removed quiz links from view event template .
nishanth
parents: 35
diff changeset
    64
38
b63b78017225 added date tags in view event template and open_feedback template is now a lil better .
nishanth
parents: 36
diff changeset
    65
    no_of_days = (event.stop_date - event.start_date).days
39
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    66
    days = range(1,no_of_days+2)
38
b63b78017225 added date tags in view event template and open_feedback template is now a lil better .
nishanth
parents: 36
diff changeset
    67
39
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    68
    feeds_list = []
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    69
    for day in days:
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    70
        day_feeds = Feedback.objects.filter(event=event,day=day)
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    71
        if day_feeds.count():
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    72
            day_list = []
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    73
            for feed in day_feeds:
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    74
                day_list.append(" ".join((feed.topics, feed.depth, feed.methodology, feed.pace,
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    75
                                feed.applicability, feed.problems, feed.exercises, feed.comments)))
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    76
            feeds_list.append(["Day %s"%day, day_list])
38
b63b78017225 added date tags in view event template and open_feedback template is now a lil better .
nishanth
parents: 36
diff changeset
    77
39
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    78
    return render_to_response('list_feedbacks.html',{'user':user, 'event':event, 'feeds_list':feeds_list})
61d558a69b0d implemented listing of feedbacks.
nishanth
parents: 38
diff changeset
    79