Example #1
0
def course_activity_view(request, course_id, activity_id):
    course = check_can_view(request, course_id)
    activity = Activity.objects.get(pk=activity_id)
    
    # log the activity in the tracker
    tracker = Tracker()
    tracker.user = request.user
    tracker.course = course
    tracker.type = activity.type 
    tracker.data = ""
    tracker.ip = request.META.get('REMOTE_ADDR','0.0.0.0')
    tracker.agent = request.META.get('HTTP_USER_AGENT','unknown')
    tracker.activity_title = activity.title
    tracker.section_title = activity.section.title
    tracker.save()
    
    if activity.type == "page":
        activity_content_file = activity.get_content()
        
        with codecs.open(settings.MEDIA_ROOT + "courses/" + course.shortname + "/" + activity_content_file, "r", "utf-8") as f:
            s = f.read()
        
        template = re.compile('\<body(?P<body>.*?)>(?P<content>.*)\<\/body\>', re.DOTALL)
        
        activity_content = template.search(s).group('content')
        activity_content =  activity_content.replace("images/",settings.MEDIA_URL + "courses/" + course.shortname + "/images/")
        
        return render_to_response('oppia/preview/course_activity_page.html',
                                  {'course': course, 'activity': activity , 'content' : activity_content }, 
                                  context_instance=RequestContext(request))
    else:
        activity_content= None
        return render_to_response('oppia/preview/course_activity_not_supported.html',
                                  {'course': course, 'activity': activity , 'content' : activity_content }, 
                                  context_instance=RequestContext(request)) 
Example #2
0
def course_home_view(request, id):
    course = check_can_view(request, id)
    return render_to_response('oppia/preview/course_home.html',
                              {'course': course }, 
                              context_instance=RequestContext(request))