Example #1
0
def program(request,uri):
    if request.user.is_authenticated():
        s = SimpleSequencing()
        # First, the requested_activity  exists??
        # Gets the Learning Activity object from uri
        requested_activity = _get_ula(request, s)

        if not requested_activity:
            return HttpResponseNotFound('<h1>Activity not found</h1>')

        # Gets the root of the User Learning Activity
        root = UserLearningActivity.objects.filter(learning_activity = requested_activity.learning_activity.get_root() ,user = request.user )[0]

        if request.method == 'GET':
            # Exits last activity, and sets requested activity as current
            # if choice_exit consider complete
            _set_current(request,requested_activity, root, s, objective_status=None, progress_status=None)

        if request.method == 'POST' and 'nav_event' in request.POST:
        # We are going to exit activity, get objective measure
            objective_measure = float(request.POST['objective_measure'])



            next_uri = None
            if  request.POST['nav_event'] == 'next':
                # Go TO NEXT ACTIVITY
                next_uri = s.get_next(root)
                pool_writting(next_uri,request.user)
            elif request.POST['nav_event'] == 'prev':
                # Go TO PREV ACTIVITY
                next_uri = s.get_prev(root)
            print next_uri

            if next_uri is None:
                    #No more activities ?
                return HttpResponseRedirect( root.learning_activity.uri)

            else:
                s.exit( requested_activity, progress_status = 'complete', objective_status = 'satisfied', objective_measure = objective_measure)
                next_activity = UserLearningActivity.objects.filter(learning_activity__uri = next_uri ,user = request.user )[0]
                return HttpResponseRedirect(next_activity.learning_activity.uri)


        # Gets the current navegation tree as HTML
        nav = s.get_nav(root)
        navegation_tree = s.nav_to_html(nav)



        return render_to_response('activitytree/program.html', {'program_quiz':activities[request.path],
                                                                'activity_uri':request.path,
                                                                'navegation': navegation_tree
                                                                },
                                  context_instance=RequestContext(request))

    else:
        return HttpResponseRedirect('/login/?next=%s' % request.path)
Example #2
0
def activity(request,uri):
    if request.user.is_authenticated():
        s = SimpleSequencing()
        # First, the requested_activity  exists??
        # Gets the Learning Activity object from uri

        #print "hasta aqui"
        requested_activity = _get_ula(request, s)


        if not requested_activity:
            return HttpResponseNotFound('<h1>Activity not found</h1>')

        # Gets the root of the User Learning Activity
        root = UserLearningActivity.objects.filter(learning_activity = requested_activity.learning_activity.get_root() ,user = request.user )[0]
        #Aqui mando la actividad actual a redis para que la escuche el script que manejara la actividad de el muestreo de kinect



        if request.method == 'GET':
            # Exits last activity, and sets requested activity as current
            # if choice_exit consider complete
            _set_current(request,requested_activity, root, s, objective_status=None, progress_status=None)

        if request.method == 'POST' and 'nav_event' in request.POST:

            if requested_activity.learning_activity.is_container:
                progress_status = None
                objective_status = None
            else:
                ###
                ###  What if status in POST??
                ###
                progress_status = 'complete'
                objective_status = 'satisfied'
            if request.POST['nav_event'] == 'next':
                # Go TO NEXT ACTIVITY

                next_uri = s.get_next(root)
                #az.set(request.user,next_uri)
                az.set("user",request.user)
                az.set("activity",next_uri)
                #
                if next_uri=="/activity/POO" or next_uri==None:
                    actividad=""
                else:
                    actividad=next_uri

                print actividad,request.user
                pool_writting(actividad,request.user)
            elif request.POST['nav_event'] == 'prev':
                # Go TO PREV ACTIVITY
                next_uri = s.get_prev(root)

            if next_uri is None:
                    #No more activities ?
                return HttpResponseRedirect( root.learning_activity.uri)

            else:

                s.exit( requested_activity, progress_status = progress_status, objective_status = objective_status)
                next_activity = UserLearningActivity.objects.filter(learning_activity__uri = next_uri ,user = request.user )[0]
                return HttpResponseRedirect(next_activity.learning_activity.uri)


        # Gets the current navegation tree as HTML
        nav = s.get_nav(root)
        navegation_tree = s.nav_to_html(nav)

        ####
        ####
        ####

        print requested_activity.learning_activity.uri
        content = activities[requested_activity.learning_activity.uri]

        return render_to_response('activitytree/'+ (requested_activity.learning_activity.uri).split('/')[1]+'.html',

                                  {'navegation': navegation_tree,
                                   'uri':requested_activity.learning_activity.uri,
                                   'content':content},
                                    context_instance=RequestContext(request))

        #####
        #####
        #####



    else:
        return HttpResponseRedirect('/login/?next=%s' % request.path)
Example #3
0
def test(request, uri, objective_status = None):
    if request.user.is_authenticated():
        s = SimpleSequencing()
        # First, the requested_activity  exists??
        # Gets the Learning Activity object from uri
        requested_activity = _get_ula(request, s)

        if not requested_activity:
            return HttpResponseNotFound('<h1>Activity not found</h1>')

        # Gets the root of the User Learning Activity
        root = UserLearningActivity.objects.filter(learning_activity = requested_activity.learning_activity.get_root() ,user = request.user )[0]

        feedback = None

        if request.method == 'GET':
            # Exits last activity, and sets requested activity as current
            # if choice_exit consider complete
            _set_current(request,requested_activity, root, s, objective_status=None, progress_status=None)

        elif request.method == 'POST':
            if 'check' in request.POST:
                feedback = _check_quiz(request.POST, activities[requested_activity.learning_activity.uri])
                # Exits the current Learning Activity
                objective_measure = feedback['total_correct']
                if objective_measure >= activities[requested_activity.learning_activity.uri]['satisfied_at_least']:
                    objective_status='satisfied'
                else:
                    objective_status='notSatisfied'
                print requested_activity.learning_activity.uri, objective_measure,objective_status

                s.update(requested_activity, progress_status = None, objective_status = objective_status, objective_measure = objective_measure)


            elif 'nav_event' in request.POST:
                next_uri = None

                if request.POST['nav_event'] == 'next' :
                    # Go TO NEXT ACTIVITY
                    next_uri = s.get_next(root)
                    progress_status = 'complete'
                    pool_writting(next_uri,request.user)
                elif request.POST['nav_event'] == 'prev':
                    # Go TO PREV ACTIVITY
                    next_uri = s.get_prev(root)
                    pool_writting(next_uri)
                if next_uri is None:
                        #No more activities ?
                    return HttpResponseRedirect( root.learning_activity.uri)
                else:
                    next_activity = UserLearningActivity.objects.filter(learning_activity__uri = next_uri ,user = request.user )[0]
                    return HttpResponseRedirect(next_activity.learning_activity.uri)

       # Gets the current navegation tree as HTML

        nav = s.get_nav(root)
        navegation_tree = s.nav_to_html(nav)

        content = activities[requested_activity.learning_activity.uri]
        if feedback:
            for q in content['questions']:
                if q['id'] in feedback:
                    q['feedback'] = feedback[q['id']]
                    if q['interaction']  in ['choiceInteraction','simpleChoice']:
                        q['feedback_options'] = zip(q['options'], feedback[q['id']]['user_answer'], feedback[q['id']]['checked'])

        return render_to_response('activitytree/'+(requested_activity.learning_activity.uri).split('/')[1]+'.html',
                                  {'navegation': navegation_tree,
                                   'uri':requested_activity.learning_activity.uri,
                                   'content':content,
                                   'feedback':feedback},
                                    context_instance=RequestContext(request))
    else:      
        return HttpResponseRedirect('/login/?next=%s' % request.path)