Commit 7f57528d by Piotr Mitros

Untested patch to eliminate AJAX DB writes

--HG--
branch : pmitros_cut_writes
parent a4008de4
...@@ -55,6 +55,8 @@ def modx_dispatch(request, module=None, dispatch=None, id=None): ...@@ -55,6 +55,8 @@ def modx_dispatch(request, module=None, dispatch=None, id=None):
raise Http404 raise Http404
s=s[0] s=s[0]
oldgrade = s.grade
oldstate = s.state
dispatch=dispatch.split('?')[0] dispatch=dispatch.split('?')[0]
...@@ -65,9 +67,9 @@ def modx_dispatch(request, module=None, dispatch=None, id=None): ...@@ -65,9 +67,9 @@ def modx_dispatch(request, module=None, dispatch=None, id=None):
# Create the module # Create the module
instance=courseware.modules.get_module_class(module)(xml, instance=courseware.modules.get_module_class(module)(xml,
s.module_id, id,
ajax_url=ajax_url, ajax_url=ajax_url,
state=s.state, state=oldstate,
track_function = make_track_function(request), track_function = make_track_function(request),
render_function = None) render_function = None)
# Let the module handle the AJAX # Let the module handle the AJAX
...@@ -76,6 +78,7 @@ def modx_dispatch(request, module=None, dispatch=None, id=None): ...@@ -76,6 +78,7 @@ def modx_dispatch(request, module=None, dispatch=None, id=None):
s.state=instance.get_state() s.state=instance.get_state()
if instance.get_score(): if instance.get_score():
s.grade=instance.get_score()['score'] s.grade=instance.get_score()['score']
if s.grade != oldgrade or s.state != oldstate:
s.save() s.save()
# Return whatever the module wanted to return to the client/caller # Return whatever the module wanted to return to the client/caller
return HttpResponse(ajax_return) return HttpResponse(ajax_return)
...@@ -113,7 +116,7 @@ def render_x_module(user, request, xml_module, module_object_preload): ...@@ -113,7 +116,7 @@ def render_x_module(user, request, xml_module, module_object_preload):
module_type = module_type, module_type = module_type,
module_id=module_id, module_id=module_id,
state=instance.get_state()) state=instance.get_state())
smod.save() # This may be optional (at least in the case of no instance in the dB) smod.save()
module_object_preload.append(smod) module_object_preload.append(smod)
# Grab content # Grab content
content = instance.get_html() content = instance.get_html()
......
import time
import json import json
import logging import logging
import os import os
...@@ -39,6 +40,7 @@ def user_track(request): ...@@ -39,6 +40,7 @@ def user_track(request):
"event" : request.GET['event'], "event" : request.GET['event'],
"agent" : agent, "agent" : agent,
"page" : request.GET['page'], "page" : request.GET['page'],
"time": time.time()
} }
log_event(event) log_event(event)
return HttpResponse('success') return HttpResponse('success')
...@@ -62,5 +64,6 @@ def server_track(request, event_type, event, page=None): ...@@ -62,5 +64,6 @@ def server_track(request, event_type, event, page=None):
"event" : event, "event" : event,
"agent" : agent, "agent" : agent,
"page" : page, "page" : page,
"time": time.time()
} }
log_event(event) log_event(event)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment