p = User.objects.create_user('paul', '*****@*****.**', '1234') p.is_active = True p.save() lsj=LearningStyleInventory(visual=12,verbal=11,aural=15,physical=9,logical=11, social=9, solitary=10, user = j) lsj.save() lsp=LearningStyleInventory(visual=12,verbal=11,aural=20,physical=9,logical=11, social=9, solitary=7, user = p) lsp.save() s = SimpleSequencing() s.assignActivityTree(j,POO) s.assignActivityTree(p,POO) estudiantes = [ ] for e in estudiantes: User.objects.filter(username=e[0]).delete() u = User.objects.create_user(e[0],e[0], e[1]) u.is_active = True u.save() lsu=LearningStyleInventory(visual=e[2],verbal=e[3],aural=e[4],physical=e[5],logical=e[6], social=e[7], solitary=e[8], user = u) lsu.save() ss = SimpleSequencing()
__author__ = 'frank' if __name__ == "__main__": import os print "####### DJANGO SETTINGS" os.environ.setdefault("DJANGO_SETTINGS_MODULE", "protoboard.settings") from activitytree.models import LearningStyleInventory, LearningActivity, Course, UserLearningActivity from django.contrib.auth.models import User from activitytree.interaction_handler import SimpleSequencing User.objects.filter(username='******').delete() for i in range(200): nombre = "a"+str(i) edad = 8 grado = 8 correo='*****@*****.**' j = User.objects.create_user(nombre,correo,'1234' ) j.is_active = True j.save() lsu=LearningStyleInventory(visual=0,verbal=0,aural=0,physical=0,logical=0, social=0, solitary=0, age=edad, aca_lvl=grado, user = j) lsu.save() s = SimpleSequencing() a=LearningActivity.objects.all() print a[0] s.assignActivityTree(j,a[0])
p = User.objects.create_user('paul', '*****@*****.**', '1234') p.is_active = True p.save() lsj=LearningStyleInventory(visual=12,verbal=11,aural=15,physical=9,logical=11, social=9, solitary=10, age=5, aca_lvl=3, user = j) lsj.save() lsp=LearningStyleInventory(visual=12,verbal=11,aural=20,physical=9,logical=11, social=9, solitary=7, age=15, aca_lvl=15, user = p) lsp.save() s = SimpleSequencing() s.assignActivityTree(j,tec) s.assignActivityTree(p,tec) estudiantes = [ ('edgar', '1234',17,13,16,12,14,16,9, 25, 21), ('osuna', '1234',15,12,14,18,14,19,8, 15, 4), ('malu', '1234', 7,10, 4, 8,17,14,16, 12, 4), ('jose', '1234',17, 6,16,13,14,11, 8, 18, 4), ('david', '1234',15,10,13,14,17,15,11, 18, 4), ('juan', '1234',11,13,11,10,13,18, 8, 18, 4), ('cota', '1234',13, 7,18,14,12,10,13, 18, 4), ('omar', '1234', 7, 3, 7,12,16,17, 6, 18, 4), ('santana', '1234',10, 9,13,13,13,14,13, 18, 4), ('hector', '1234', 1,11,11,11,18,13,13, 18, 4), ('edie', '1234',14, 6,16,12,12,13,12, 18, 4),
('omar', '1234', 7, 3, 7,12,16,17, 6), ('santana', '1234',10, 9,13,13,13,14,13), ('hector', '1234', 1,11,11,11,18,13,13), ('edie', '1234',14, 6,16,12,12,13,12), ('baby', '1234',15,18,20,17,13,18,17), ('saul', '1234',13,11,14,11,14,14,13), ('brenda', '1234',17,13,20,12,14,11,16), ('samara', '1234',14,15,13,12,15,16,12), ('daniel', '1234', 9, 8,15,11,13,14,13), ('jorge', '1234',17,12,14,17,19,18,14), ('mike', '1234',15,16,17,18,18,13,11), ('luis', '1234',11, 7,11,10,11,12, 6), ('*****@*****.**', '1234',12,10,12,13,10,18,10)] for e in estudiantes: User.objects.filter(username=e[0]).delete() u = User.objects.create_user(e[0],e[0], e[1]) u.is_active = True u.save() lsu=LearningStyleInventory(visual=e[2],verbal=e[3],aural=e[4],physical=e[5],logical=e[6], social=e[7], solitary=e[8], user = u) lsu.save() ss = SimpleSequencing() ss.assignActivityTree(u,PPP) import os if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "protoboard.settings")
def path_activity(request, path_id, uri): learning_activity = None try: learning_activity = LearningActivity.objects.get(pk=path_id) except ObjectDoesNotExist: return HttpResponseNotFound("<h1>Learning Activity not found</h1>") if request.user.is_authenticated(): root = None s = SimpleSequencing() requested_activity = None if request.method == "GET": try: requested_activity = UserLearningActivity.objects.get(learning_activity__id=path_id, user=request.user) except (ObjectDoesNotExist, IndexError) as e: requested_activity = None # The requested_activity was NOT FOUND if not requested_activity: # The requested_activity was not found # Maybe a # 'start' REQUEST? # if 'nav' in request.GET and request.GET['nav'] == 'start': if learning_activity and learning_activity.root is None: s.assignActivityTree(request.user, learning_activity) requested_activity = UserLearningActivity.objects.get( learning_activity__id=path_id, user=request.user ) _set_current(request, requested_activity, requested_activity, s) return HttpResponseRedirect("/%s%s" % (path_id, uri)) # If is not a root learning activity then sorry, not found else: return HttpResponseNotFound("<h1>Activity not found</h1>") # Else NOT FOUND # else: # return HttpResponseNotFound('<h1>Activity not found</h1>') # We have a valid requested_activity, lets handle OTHER NAVIGATION REQUEST # Get root of activity tree root = UserLearningActivity.objects.filter( learning_activity=requested_activity.learning_activity.get_root(), user=request.user )[0] # 'continue' REQUEST? if requested_activity.is_root() and "nav" in request.GET and request.GET["nav"] == "continue": current_activity = s.get_current(requested_activity) if current_activity: requested_activity = current_activity return HttpResponseRedirect( "/%s%s" % (requested_activity.learning_activity.id, requested_activity.learning_activity.uri) ) else: _set_current(request, requested_activity, root, s, objective_status=None, progress_status=None) # Else is a # 'choice' REQUEST else: _set_current(request, requested_activity, root, s) if request.method == "POST" and "nav_event" in request.POST: # Get root of activity tree root = None try: root = UserLearningActivity.objects.get(learning_activity__id=path_id, user=request.user) except (ObjectDoesNotExist, IndexError) as e: root = None if not root or not root.is_root(): return HttpResponseNotFound("<h1>Activity not found</h1>") current_activity = s.get_current(root) if current_activity.learning_activity.choice_exit: objective_status = "satisfied" progress_status = "complete" else: progress_status = None objective_status = None # 'next' REQUEST if request.POST["nav_event"] == "next": # Go TO NEXT ACTIVITY s.exit(current_activity, progress_status=progress_status, objective_status=objective_status) next_uri = s.get_next(root, current_activity) # 'prev' REQUEST elif request.POST["nav_event"] == "prev": # Go TO PREV ACTIVITY s.exit(current_activity, progress_status=progress_status, objective_status=objective_status) next_uri = s.get_prev(root, current_activity) # No more activities ? if next_uri is None: return HttpResponseRedirect("/%s%s" % (root.learning_activity.id, root.learning_activity.uri)) else: next_activity = UserLearningActivity.objects.get(learning_activity__id=next_uri, user=request.user) return HttpResponseRedirect( "/%s%s" % (next_activity.learning_activity.id, next_activity.learning_activity.uri) ) _XML = get_nav(root) # Escape for javascript XML = ET.tostring(_XML, "utf-8").replace('"', r"\"") breadcrumbs = s.get_current_path(requested_activity) rating_totals = LearningActivityRating.objects.filter( learning_activity__uri=requested_activity.learning_activity.uri ).aggregate(Count("rating"), Avg("rating")) activity_content = Activity.get(requested_activity.learning_activity.uri) if activity_content and "content" in activity_content: content = activity_content["content"] else: content = "" update_pool(requested_activity.learning_activity.uri) if (requested_activity.learning_activity.uri).split("/")[2] == "video": return render_to_response( "activitytree/video.html", { "XML_NAV": XML, "uri": requested_activity.learning_activity.uri, "uri_id": requested_activity.learning_activity.id, "video": activity_content, "breadcrumbs": breadcrumbs, "root": requested_activity.learning_activity.get_root().uri, "root_id": "/%s" % requested_activity.learning_activity.get_root().id, "rating_totals": rating_totals, }, context_instance=RequestContext(request), ) elif requested_activity.learning_activity.is_container: return render_to_response( "activitytree/container.html", { "XML_NAV": XML, "children": requested_activity.get_children(), "uri": requested_activity.learning_activity.uri, "uri_id": "/%s" % requested_activity.learning_activity.id, "content": content, "root": requested_activity.learning_activity.get_root().uri, "root_id": "/%s" % requested_activity.learning_activity.get_root().id, "breadcrumbs": breadcrumbs, }, context_instance=RequestContext(request), ) else: return render_to_response( "activitytree/activity.html", { "XML_NAV": XML, "uri": requested_activity.learning_activity.uri, "uri_id": "/%s" % requested_activity.learning_activity.id, "content": content, "root": requested_activity.learning_activity.get_root().uri, "root_id": "/%s" % requested_activity.learning_activity.get_root().id, "breadcrumbs": breadcrumbs, "rating_totals": rating_totals, }, context_instance=RequestContext(request), ) else: return HttpResponseRedirect("/login/?next=%s" % request.path)