diff --git a/lms/djangoapps/bulk_email/models.py b/lms/djangoapps/bulk_email/models.py index 91ed2835d8..dab9d07bf6 100644 --- a/lms/djangoapps/bulk_email/models.py +++ b/lms/djangoapps/bulk_email/models.py @@ -198,14 +198,12 @@ class CourseModeTarget(Target): return "{}-{}".format(self.target_type, self.track.mode_slug) # pylint: disable=no-member def long_display(self): - all_modes = CourseMode.objects.filter( - course_id=self.track.course_id, - mode_slug=self.track.mode_slug, # pylint: disable=no-member - ) - return "Course mode: {}, Currencies: {}".format( - self.track.mode_display_name, # pylint: disable=no-member - ", ".join([mode.currency for mode in all_modes]) - ) + course_mode = self.track + long_course_mode_display = 'Course mode: {}'.format(course_mode.mode_display_name) + if course_mode.mode_slug not in CourseMode.AUDIT_MODES: + mode_currency = 'Currency: {}'.format(course_mode.currency) + long_course_mode_display = '{}, {}'.format(long_course_mode_display, mode_currency) + return long_course_mode_display @classmethod def ensure_valid_mode(cls, mode_slug, course_id): diff --git a/lms/djangoapps/bulk_email/tests/test_models.py b/lms/djangoapps/bulk_email/tests/test_models.py index 76043abc2b..40074241dc 100644 --- a/lms/djangoapps/bulk_email/tests/test_models.py +++ b/lms/djangoapps/bulk_email/tests/test_models.py @@ -100,7 +100,36 @@ class CourseEmailTest(ModuleStoreTestCase): target = email.targets.all()[0] self.assertEqual(target.target_type, SEND_TO_TRACK) self.assertEqual(target.short_display(), 'track-test') - self.assertEqual(target.long_display(), 'Course mode: Test, Currencies: usd') + self.assertEqual(target.long_display(), 'Course mode: Test, Currency: usd') + + @ddt.data( + CourseMode.AUDIT, + CourseMode.HONOR, + ) + def test_track_target_with_free_mode(self, free_mode): + """ + Tests that when emails are sent to a free track the track display + should not contain currency. + """ + course = CourseFactory.create() + mode_display_name = free_mode.capitalize + course_id = course.id + sender = UserFactory.create() + to_option = 'track:{}'.format(free_mode) + subject = "dummy subject" + html_message = "dummy message" + CourseMode.objects.create( + mode_slug=free_mode, + mode_display_name=mode_display_name, + course_id=course_id, + ) + + email = CourseEmail.create(course_id, sender, [to_option], subject, html_message) + self.assertEqual(len(email.targets.all()), 1) + target = email.targets.all()[0] + self.assertEqual(target.target_type, SEND_TO_TRACK) + self.assertEqual(target.short_display(), 'track-{}'.format(free_mode)) + self.assertEqual(target.long_display(), 'Course mode: {}'.format(mode_display_name)) def test_cohort_target(self): course_id = CourseKey.from_string('abc/123/doremi')