From 39c61070eda7a5118fcbaf4ddb07cdfdcd877ead Mon Sep 17 00:00:00 2001 From: ichuang Date: Mon, 28 May 2012 11:25:12 -0400 Subject: [PATCH] new feature - load course.xml + html + problems etc from git (see courseware.views.quickedit_git_reload) --- djangoapps/courseware/views.py | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/djangoapps/courseware/views.py b/djangoapps/courseware/views.py index 4274ae830f..6aff13c33e 100644 --- a/djangoapps/courseware/views.py +++ b/djangoapps/courseware/views.py @@ -319,6 +319,9 @@ def quickedit(request, id=None, qetemplate='quickedit.html',coursename=None): if not ('dogfood_id' in request.session and request.session['dogfood_id']==id): return redirect('/') + if id=='course.xml': + return quickedit_git_reload(request) + # get coursename if stored if not coursename: coursename = multicourse_settings.get_coursename_from_request(request) @@ -414,3 +417,37 @@ def quickedit(request, id=None, qetemplate='quickedit.html',coursename=None): result = render_to_response(qetemplate, context) return result + +def quickedit_git_reload(request): + ''' + reload course.xml and all courseware files for this course, from the git repo. + assumes the git repo has already been setup. + staff only. + ''' + if not request.user.is_staff: + return redirect('/') + + # get coursename if stored + coursename = multicourse_settings.get_coursename_from_request(request) + xp = multicourse_settings.get_course_xmlpath(coursename) # path to XML for the course + + msg = "" + if 'cancel' in request.POST: + return redirect("/courseware") + + if 'gitupdate' in request.POST: + import os # FIXME - put at top? + cmd = "cd ../data%s; git pull origin %s" % (xp,xp.replace('/','')) + msg += '

cmd: %s

' % cmd + ret = os.popen(cmd).read() + msg += '

%s

' % ret.replace('<','<') + msg += "

git update done!

" + + context = {'id':id, + 'msg' : msg, + 'coursename' : coursename, + 'csrf':csrf(request)['csrf_token'], + } + + result = render_to_response("gitupdate.html", context) + return result