Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
9c4a9d8f
Commit
9c4a9d8f
authored
Jan 31, 2014
by
Jay Zoldak
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make code safe for unicode course ids
parent
65997d0f
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
13 deletions
+15
-13
lms/djangoapps/bulk_email/tasks.py
+8
-6
lms/djangoapps/instructor_task/tasks_helper.py
+7
-7
No files found.
lms/djangoapps/bulk_email/tasks.py
View file @
9c4a9d8f
...
...
@@ -159,8 +159,9 @@ def perform_delegate_email_batches(entry_id, course_id, task_input, action_name)
# Perfunctory check, since expansion is made for convenience of other task
# code that doesn't need the entry_id.
if
course_id
!=
entry
.
course_id
:
format_msg
=
"Course id conflict: explicit value {} does not match task value {}"
raise
ValueError
(
format_msg
.
format
(
course_id
,
entry
.
course_id
))
format_msg
=
u"Course id conflict: explicit value {} does not match task value {}"
log
.
warning
(
"Task
%
s:
%
s"
,
task_id
,
format_msg
.
format
(
course_id
,
entry
.
course_id
))
raise
ValueError
(
"Course id conflict: explicit value does not match task value"
)
# Fetch the CourseEmail.
email_id
=
task_input
[
'email_id'
]
...
...
@@ -186,8 +187,9 @@ def perform_delegate_email_batches(entry_id, course_id, task_input, action_name)
# Sanity check that course for email_obj matches that of the task referencing it.
if
course_id
!=
email_obj
.
course_id
:
format_msg
=
"Course id conflict: explicit value {} does not match email value {}"
raise
ValueError
(
format_msg
.
format
(
course_id
,
email_obj
.
course_id
))
format_msg
=
u"Course id conflict: explicit value {} does not match email value {}"
log
.
warning
(
"Task
%
s:
%
s"
,
task_id
,
format_msg
.
format
(
course_id
,
entry
.
course_id
))
raise
ValueError
(
"Course id conflict: explicit value does not match email value"
)
# Fetch the course object.
try
:
...
...
@@ -219,7 +221,7 @@ def perform_delegate_email_batches(entry_id, course_id, task_input, action_name)
recipient_qset
=
_get_recipient_queryset
(
user_id
,
to_option
,
course_id
,
course
.
location
)
recipient_fields
=
[
'profile__name'
,
'email'
]
log
.
info
(
"Task
%
s: Preparing to queue subtasks for sending emails for course
%
s, email
%
s, to_option
%
s"
,
log
.
info
(
u
"Task
%
s: Preparing to queue subtasks for sending emails for course
%
s, email
%
s, to_option
%
s"
,
task_id
,
course_id
,
email_id
,
to_option
)
progress
=
queue_subtasks_for_query
(
...
...
@@ -374,7 +376,7 @@ def _get_source_address(course_id, course_title):
invalid_chars
=
re
.
compile
(
r"[^\w.-]"
)
course_num
=
invalid_chars
.
sub
(
'_'
,
course_num
)
from_addr
=
'"{0}" Course Staff <{1}-{2}>'
.
format
(
course_title_no_quotes
,
course_num
,
settings
.
BULK_EMAIL_DEFAULT_FROM_EMAIL
)
from_addr
=
u
'"{0}" Course Staff <{1}-{2}>'
.
format
(
course_title_no_quotes
,
course_num
,
settings
.
BULK_EMAIL_DEFAULT_FROM_EMAIL
)
return
from_addr
...
...
lms/djangoapps/instructor_task/tasks_helper.py
View file @
9c4a9d8f
...
...
@@ -181,7 +181,7 @@ def run_main_task(entry_id, task_fcn, action_name):
task_input
=
json
.
loads
(
entry
.
task_input
)
# construct log message:
fmt
=
'task "{task_id}": course "{course_id}" input "{task_input}"'
fmt
=
u
'task "{task_id}": course "{course_id}" input "{task_input}"'
task_info_string
=
fmt
.
format
(
task_id
=
task_id
,
course_id
=
course_id
,
task_input
=
task_input
)
TASK_LOG
.
info
(
'Starting update (nothing
%
s yet):
%
s'
,
action_name
,
task_info_string
)
...
...
@@ -190,7 +190,7 @@ def run_main_task(entry_id, task_fcn, action_name):
# that is running.
request_task_id
=
_get_current_task
()
.
request
.
id
if
task_id
!=
request_task_id
:
fmt
=
'Requested task did not match actual task "{actual_id}": {task_info}'
fmt
=
u
'Requested task did not match actual task "{actual_id}": {task_info}'
message
=
fmt
.
format
(
actual_id
=
request_task_id
,
task_info
=
task_info_string
)
TASK_LOG
.
error
(
message
)
raise
ValueError
(
message
)
...
...
@@ -416,15 +416,15 @@ def rescore_problem_module_state(xmodule_instance_args, module_descriptor, stude
if
'success'
not
in
result
:
# don't consider these fatal, but false means that the individual call didn't complete:
TASK_LOG
.
warning
(
u"error processing rescore call for course {course}, problem {loc} and student {student}: "
"unexpected response {msg}"
.
format
(
msg
=
result
,
course
=
course_id
,
loc
=
module_state_key
,
student
=
student
))
u
"unexpected response {msg}"
.
format
(
msg
=
result
,
course
=
course_id
,
loc
=
module_state_key
,
student
=
student
))
return
UPDATE_STATUS_FAILED
elif
result
[
'success'
]
not
in
[
'correct'
,
'incorrect'
]:
TASK_LOG
.
warning
(
u"error processing rescore call for course {course}, problem {loc} and student {student}: "
"{msg}"
.
format
(
msg
=
result
[
'success'
],
course
=
course_id
,
loc
=
module_state_key
,
student
=
student
))
u
"{msg}"
.
format
(
msg
=
result
[
'success'
],
course
=
course_id
,
loc
=
module_state_key
,
student
=
student
))
return
UPDATE_STATUS_FAILED
else
:
TASK_LOG
.
debug
(
u"successfully processed rescore call for course {course}, problem {loc} and student {student}: "
"{msg}"
.
format
(
msg
=
result
[
'success'
],
course
=
course_id
,
loc
=
module_state_key
,
student
=
student
))
u
"{msg}"
.
format
(
msg
=
result
[
'success'
],
course
=
course_id
,
loc
=
module_state_key
,
student
=
student
))
return
UPDATE_STATUS_SUCCEEDED
...
...
@@ -558,7 +558,7 @@ def push_grades_to_s3(_xmodule_instance_args, _entry_id, course_id, _task_input,
grades_store
=
GradesStore
.
from_config
()
grades_store
.
store_rows
(
course_id
,
"{}_grade_report_{}.csv"
.
format
(
course_id_prefix
,
timestamp_str
),
u
"{}_grade_report_{}.csv"
.
format
(
course_id_prefix
,
timestamp_str
),
rows
)
...
...
@@ -566,7 +566,7 @@ def push_grades_to_s3(_xmodule_instance_args, _entry_id, course_id, _task_input,
if
len
(
err_rows
)
>
1
:
grades_store
.
store_rows
(
course_id
,
"{}_grade_report_{}_err.csv"
.
format
(
course_id_prefix
,
timestamp_str
),
u
"{}_grade_report_{}_err.csv"
.
format
(
course_id_prefix
,
timestamp_str
),
err_rows
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment