def dismiss_welcome_message(request, course_id): """ Given the course_id in the request, disable displaying the welcome message for the user. """ course_key = CourseKey.from_string(course_id) course = get_course_with_access(request.user, 'load', course_key, check_if_enrolled=True) dismiss_current_update_for_user(request, course) return HttpResponse()
def test_get_current_update_when_dismissed_but_edited(self): """Tests that a dismissed but edited update is returned.""" self.create_course_update('Original') dismiss_current_update_for_user(self.request, self.course) assert get_current_update_for_user(self.request, self.course) is None self.edit_course_update(1, content='Edited') assert get_current_update_for_user(self.request, self.course) is not None
def test_dismissal_hashing(self): """Confirm that the stored dismissal values are what we expect, to catch accidentally changing formats.""" self.create_course_update('First') dismiss_current_update_for_user(self.request, self.course) self.create_course_update('Second') dismiss_current_update_for_user(self.request, self.course) tag = get_course_tag(self.user, self.course.id, self.UPDATES_TAG) assert tag == '7fb55ed0b7a30342ba6da306428cae04,c22cf8376b1893dcfcef0649fe1a7d87'
def dismiss_welcome_message(request): course_id = request.data.get('course_id', None) # If body doesn't contain 'course_id', return 400 to client. if not course_id: raise ParseError(_("'course_id' is required.")) # If body contains params other than 'course_id', return 400 to client. if len(request.data) > 1: raise ParseError(_("Only 'course_id' is expected.")) try: course_key = CourseKey.from_string(course_id) course = get_course_with_access(request.user, 'load', course_key, check_if_enrolled=True) dismiss_current_update_for_user(request, course) return Response({'message': _('Welcome message successfully dismissed.')}) except Exception: raise UnableToDismissWelcomeMessage
def test_get_current_update_remembers_dismissals(self): """Tests that older dismissed updates are remembered.""" self.create_course_update('First') self.create_course_update('Second') dismiss_current_update_for_user(self.request, self.course) self.create_course_update('Third') dismiss_current_update_for_user(self.request, self.course) self.create_course_update('Fourth') assert get_current_update_for_user(self.request, self.course) == 'Fourth' self.edit_course_update(4, deleted=True) assert get_current_update_for_user(self.request, self.course) is None self.edit_course_update(3, deleted=True) assert get_current_update_for_user(self.request, self.course) is None self.edit_course_update(2, deleted=True) assert get_current_update_for_user(self.request, self.course) == 'First'
def test_get_current_update_when_dismissed(self): """Tests that a dismissed update is not returned.""" self.create_course_update('Dismissed') dismiss_current_update_for_user(self.request, self.course) self.assertIsNone( get_current_update_for_user(self.request, self.course))
def test_ordered_update_includes_dismissed_updates(self): """Ordered update list should still have dismissed updates.""" self.create_course_update('Dismissed') dismiss_current_update_for_user(self.request, self.course) updates = get_ordered_updates(self.request, self.course) self.assertEqual(len(updates), 1)