Add staff grading notifications
This commit is contained in:
@@ -22,6 +22,7 @@ from courseware.access import has_access
|
||||
from static_replace import replace_urls
|
||||
|
||||
from open_ended_grading.peer_grading_service import PeerGradingService
|
||||
from open_ended_grading.staff_grading_service import StaffGradingService
|
||||
from student.models import unique_id_for_user
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
@@ -108,7 +109,24 @@ def _textbooks(tab, user, course, active_page):
|
||||
def _staff_grading(tab, user, course, active_page):
|
||||
if has_access(user, course, 'staff'):
|
||||
link = reverse('staff_grading', args=[course.id])
|
||||
return [CourseTab('Staff grading', link, active_page == "staff_grading")]
|
||||
staff_gs = StaffGradingService(settings.STAFF_GRADING_INTERFACE)
|
||||
pending_grading=False
|
||||
tab_name = "Staff grading"
|
||||
img_path= ""
|
||||
try:
|
||||
notifications = json.loads(staff_gs.get_notifications(course.id))
|
||||
if notifications['success']:
|
||||
if notifications['staff_needs_to_grade']:
|
||||
pending_grading=True
|
||||
except:
|
||||
#Non catastrophic error, so no real action
|
||||
log.info("Problem with getting notifications from staff grading service.")
|
||||
|
||||
if pending_grading:
|
||||
img_path = "/static/images/slider-handle.png"
|
||||
|
||||
tab = [CourseTab(tab_name, link, active_page == "staff_grading", pending_grading, img_path)]
|
||||
return tab
|
||||
return []
|
||||
|
||||
def _peer_grading(tab, user, course, active_page):
|
||||
|
||||
@@ -66,6 +66,7 @@ class StaffGradingService(GradingService):
|
||||
self.get_next_url = self.url + '/get_next_submission/'
|
||||
self.save_grade_url = self.url + '/save_grade/'
|
||||
self.get_problem_list_url = self.url + '/get_problem_list/'
|
||||
self.get_notifications_url = self.url + "/get_notifications/"
|
||||
|
||||
|
||||
def get_problem_list(self, course_id, grader_id):
|
||||
@@ -132,6 +133,12 @@ class StaffGradingService(GradingService):
|
||||
|
||||
return self.post(self.save_grade_url, data=data)
|
||||
|
||||
def get_notifications(self, course_id):
|
||||
params = {'course_id': course_id}
|
||||
response = self.get(self.get_notifications_url, params)
|
||||
return response
|
||||
|
||||
|
||||
# don't initialize until staff_grading_service() is called--means that just
|
||||
# importing this file doesn't create objects that may not have the right config
|
||||
_service = None
|
||||
|
||||
Reference in New Issue
Block a user