Skip to content

Commit

Permalink
Merge branch 'master' into repo-tools/upgrade-python-requirements-a2e…
Browse files Browse the repository at this point in the history
…2959
  • Loading branch information
BrandonHBodine authored Sep 24, 2024
2 parents 42cd6cc + 84d2ad9 commit 65f66f0
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 31 deletions.
30 changes: 13 additions & 17 deletions lms/djangoapps/bulk_email/signals.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
"""
Signal handlers for the bulk_email app
"""
from django.contrib.auth import get_user_model
from django.dispatch import receiver
from eventtracking import tracker

Expand Down Expand Up @@ -32,29 +31,26 @@ def ace_email_sent_handler(sender, **kwargs):
"""
When an email is sent using ACE, this method will create an event to detect ace email success status
"""
# Fetch the message object from kwargs, defaulting to None if not present
message = kwargs.get('message', None)

user_model = get_user_model()
try:
user_id = user_model.objects.get(email=message.recipient.email_address).id
except user_model.DoesNotExist:
user_id = None
course_email = message.context.get('course_email', None)
course_id = message.context.get('course_id')
# Fetch the message dictionary from kwargs, defaulting to {} if not present
message = kwargs.get('message', {})
recipient = message.get('recipient', {})
message_name = message.get('name', None)
context = message.get('context', {})
email_address = recipient.get('email', None)
user_id = recipient.get('user_id', None)
channel = message.get('channel', None)
course_id = context.get('course_id', None)
if not course_id:
course_email = context.get('course_email', None)
course_id = course_email.course_id if course_email else None
try:
channel = sender.__class__.__name__
except AttributeError:
channel = 'Other'

tracker.emit(
'edx.ace.message_sent',
{
'message_type': message.name,
'message_type': message_name,
'channel': channel,
'course_id': course_id,
'user_id': user_id,
'user_email': message.recipient.email_address,
'user_email': email_address,
}
)
8 changes: 4 additions & 4 deletions lms/djangoapps/grades/rest_api/v1/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ def setUpClass(cls):
+ [
{
'category': 'Homework',
'detail': 'Homework Average = 0%',
'detail': 'Homework Average = 0.00%',
'label': 'HW Avg', 'percent': 0.0,
'prominent': True
}
Expand Down Expand Up @@ -332,21 +332,21 @@ def setUpClass(cls):
},
{
'category': 'Lab',
'detail': 'Lab Average = 0%',
'detail': 'Lab Average = 0.00%',
'label': 'Lab Avg',
'percent': 0.0,
'prominent': True
},
{
'category': 'Midterm Exam',
'detail': 'Midterm Exam = 0%',
'detail': 'Midterm Exam = 0.00%',
'label': 'Midterm',
'percent': 0.0,
'prominent': True
},
{
'category': 'Final Exam',
'detail': 'Final Exam = 0%',
'detail': 'Final Exam = 0.00%',
'label': 'Final',
'percent': 0.0,
'prominent': True
Expand Down
4 changes: 2 additions & 2 deletions lms/djangoapps/grades/scores.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,8 @@ def compute_percent(earned, possible):
Returns the percentage of the given earned and possible values.
"""
if possible > 0:
# Rounds to two decimal places.
return around(earned / possible, decimals=2)
# Rounds to four decimal places.
return around(earned / possible, decimals=4)
else:
return 0.0

Expand Down
8 changes: 4 additions & 4 deletions lms/djangoapps/grades/tests/test_course_grade_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,26 +185,26 @@ def test_course_grade_summary(self):
'section_breakdown': [
{
'category': 'Homework',
'detail': 'Homework 1 - Test Sequential X with an & Ampersand - 50% (1/2)',
'detail': 'Homework 1 - Test Sequential X with an & Ampersand - 50.00% (1/2)',
'label': 'HW 01',
'percent': 0.5
},
{
'category': 'Homework',
'detail': 'Homework 2 - Test Sequential A - 0% (0/1)',
'detail': 'Homework 2 - Test Sequential A - 0.00% (0/1)',
'label': 'HW 02',
'percent': 0.0
},
{
'category': 'Homework',
'detail': 'Homework Average = 25%',
'detail': 'Homework Average = 25.00%',
'label': 'HW Avg',
'percent': 0.25,
'prominent': True
},
{
'category': 'NoCredit',
'detail': 'NoCredit Average = 0%',
'detail': 'NoCredit Average = 0.00%',
'label': 'NC Avg',
'percent': 0,
'prominent': True
Expand Down
2 changes: 1 addition & 1 deletion lms/djangoapps/grades/tests/test_subsection_grade.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
@ddt
class SubsectionGradeTest(GradeTestBase): # lint-amnesty, pylint: disable=missing-class-docstring

@data((50, 100, .50), (59.49, 100, .59), (59.51, 100, .60), (59.50, 100, .60), (60.5, 100, .60))
@data((50, 100, .5), (.5949, 100, .0059), (.5951, 100, .006), (.595, 100, .0059), (.605, 100, .006))
@unpack
def test_create_and_read(self, mock_earned, mock_possible, expected_result):
with mock_get_score(mock_earned, mock_possible):
Expand Down
6 changes: 3 additions & 3 deletions xmodule/graders.py
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ def grade(self, grade_sheet, generate_random_scores=False):
section_name = scores[i].display_name

percentage = scores[i].percent_graded
summary_format = "{section_type} {index} - {name} - {percent:.0%} ({earned:.3n}/{possible:.3n})"
summary_format = "{section_type} {index} - {name} - {percent:.2%} ({earned:.3n}/{possible:.3n})"
summary = summary_format.format(
index=i + self.starting_index,
section_type=self.section_type,
Expand Down Expand Up @@ -421,7 +421,7 @@ def grade(self, grade_sheet, generate_random_scores=False):
if len(breakdown) == 1:
# if there is only one entry in a section, suppress the existing individual entry and the average,
# and just display a single entry for the section.
total_detail = "{section_type} = {percent:.0%}".format(
total_detail = "{section_type} = {percent:.2%}".format(
percent=total_percent,
section_type=self.section_type,
)
Expand All @@ -430,7 +430,7 @@ def grade(self, grade_sheet, generate_random_scores=False):
'detail': total_detail, 'category': self.category, 'prominent': True}, ]
else:
# Translators: "Homework Average = 0%"
total_detail = _("{section_type} Average = {percent:.0%}").format(
total_detail = _("{section_type} Average = {percent:.2%}").format(
percent=total_percent,
section_type=self.section_type
)
Expand Down

0 comments on commit 65f66f0

Please sign in to comment.