feedback/views.py
author nishanth
Thu, 15 Apr 2010 14:50:47 +0530
changeset 44 7d748db0c7c3
parent 41 ab0a8a72b069
child 55 53ff84c9192d
permissions -rw-r--r--
now show report page does not show report if there are no 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
41
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
     7
from workshop.feedback.utils import make_day_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)))
41
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    76
            feeds_list.extend(["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
41
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    80
def view_report(request, event_key):
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    81
    """ compile the report and display it.
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    82
    """
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    83
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    84
    user = request.user
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    85
    
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    86
    try:
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    87
        event = Event.objects.get(key__iexact=event_key)
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    88
    except Event.DoesNotExist:
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    89
        raise Http404
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    90
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    91
    if not user in event.organizers.all():
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    92
        raise Http404
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    93
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    94
    no_of_days = (event.stop_date - event.start_date).days
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    95
    days = range(1,no_of_days+2)
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    96
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    97
    workshop_report = []
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    98
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
    99
    for day in days:
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
   100
        day_num = str(day)
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
   101
        day_feeds = Feedback.objects.filter(event=event,day=day_num)
44
7d748db0c7c3 now show report page does not show report if there are no feedbacks .
nishanth
parents: 41
diff changeset
   102
        day_report = make_day_report(day_feeds) 
7d748db0c7c3 now show report page does not show report if there are no feedbacks .
nishanth
parents: 41
diff changeset
   103
        if day_report:
7d748db0c7c3 now show report page does not show report if there are no feedbacks .
nishanth
parents: 41
diff changeset
   104
            workshop_report.extend( [ "Day %s"%day_num, day_report] )
41
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
   105
ab0a8a72b069 added view report functionality. have to make it look better.
nishanth
parents: 39
diff changeset
   106
    return render_to_response("show_report.html", {"user":user, "event":event, "workshop_report":workshop_report})