diff --git a/nbgrader/exchange/default/list.py b/nbgrader/exchange/default/list.py index 549fb30f7..cdb08bea2 100644 --- a/nbgrader/exchange/default/list.py +++ b/nbgrader/exchange/default/list.py @@ -172,8 +172,13 @@ def parse_assignments(self): info['has_exchange_feedback'] = has_exchange_feedback info['feedback_updated'] = feedback_updated if has_local_feedback: - info['local_feedback_path'] = os.path.join( - assignment_dir, 'feedback', info['timestamp']) + full_path_assignment_dir = os.path.abspath(assignment_dir) + if os.path.exists(full_path_assignment_dir): + info['local_feedback_path'] = os.path.join( + full_path_assignment_dir, 'feedback', info['timestamp']) + else: + info['local_feedback_path'] = os.path.join( + assignment_dir, 'feedback', info['timestamp']) else: info['local_feedback_path'] = None diff --git a/nbgrader/server_extensions/assignment_list/handlers.py b/nbgrader/server_extensions/assignment_list/handlers.py index 5f88f0c00..49a132ed0 100644 --- a/nbgrader/server_extensions/assignment_list/handlers.py +++ b/nbgrader/server_extensions/assignment_list/handlers.py @@ -140,6 +140,14 @@ def list_submitted_assignments(self, course_id=None): } else: for assignment in assignments: + for submission in assignment["submissions"]: + if submission['local_feedback_path'] \ + and os.path.exists(submission['local_feedback_path']): + submission['local_feedback_path'] = \ + os.path.relpath( + submission['local_feedback_path'], + self.parent.notebook_dir + ) assignment["submissions"] = sorted( assignment["submissions"], key=lambda x: x["timestamp"])