Merge pull request #23550 from edx/ndalfonso/AA-85-reset-dates-mobile
AA-85 mobile reset dates
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
|
||||
|
||||
import ast
|
||||
import json
|
||||
import logging
|
||||
import sys
|
||||
@@ -10,10 +11,15 @@ import crum
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import Http404, HttpResponse, HttpResponseForbidden, HttpResponseServerError
|
||||
from django.views.decorators.csrf import requires_csrf_token
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie, requires_csrf_token
|
||||
from django.views.defaults import server_error
|
||||
from django.shortcuts import redirect
|
||||
from django.urls import reverse
|
||||
from lms.djangoapps.courseware.access import has_access
|
||||
from lms.djangoapps.courseware.masquerade import setup_masquerade
|
||||
from opaque_keys import InvalidKeyError
|
||||
from opaque_keys.edx.keys import CourseKey, UsageKey
|
||||
from openedx.core.djangoapps.schedules.utils import reset_self_paced_schedule
|
||||
from six.moves import map
|
||||
|
||||
import track.views
|
||||
@@ -187,3 +193,34 @@ def add_p3p_header(view_func):
|
||||
response['P3P'] = settings.P3P_HEADER
|
||||
return response
|
||||
return inner
|
||||
|
||||
|
||||
@ensure_csrf_cookie
|
||||
def reset_course_deadlines(request):
|
||||
"""
|
||||
Set the start_date of a schedule to today, which in turn will adjust due dates for
|
||||
sequentials belonging to a self paced course
|
||||
"""
|
||||
from lms.urls import RENDER_XBLOCK_NAME
|
||||
from openedx.features.course_experience.urls import COURSE_HOME_VIEW_NAME
|
||||
|
||||
detail_id_dict = ast.literal_eval(request.POST.get('reset_deadlines_redirect_url_id_dict'))
|
||||
print('***************', detail_id_dict)
|
||||
redirect_url = request.POST.get('reset_deadlines_redirect_url_base', COURSE_HOME_VIEW_NAME)
|
||||
course_key = CourseKey.from_string(detail_id_dict['course_id'])
|
||||
masquerade_details, masquerade_user = setup_masquerade(
|
||||
request,
|
||||
course_key,
|
||||
has_access(request.user, 'staff', course_key)
|
||||
)
|
||||
if masquerade_details and masquerade_details.role == 'student' and masquerade_details.user_name and (
|
||||
redirect_url == COURSE_HOME_VIEW_NAME
|
||||
):
|
||||
# Masquerading as a specific student, so reset that student's schedule
|
||||
user = masquerade_user
|
||||
else:
|
||||
user = request.user
|
||||
reset_self_paced_schedule(user, course_key)
|
||||
if redirect_url == RENDER_XBLOCK_NAME:
|
||||
detail_id_dict.pop('course_id')
|
||||
return redirect(reverse(redirect_url, kwargs=detail_id_dict))
|
||||
|
||||
Reference in New Issue
Block a user