chore: linting as a separate commit (#36179)
I'm letting autoformat hit this file to make it match our current standards before I actually make any code changes.
This commit is contained in:
@@ -7,6 +7,7 @@ rolling out for the first time.
|
||||
This management command will manually trigger the receivers we care about. (We don't want to trigger all receivers
|
||||
for these signals, since these are busy signals.)
|
||||
"""
|
||||
|
||||
import logging
|
||||
import shlex
|
||||
|
||||
@@ -58,6 +59,7 @@ class Command(BaseCommand):
|
||||
course-v1:edX+RecordsSelfPaced+1 for user 17
|
||||
course-v1:edX+RecordsSelfPaced+1 for user 18
|
||||
"""
|
||||
|
||||
help = (
|
||||
"Simulate certificate/grade changes without actually modifying database "
|
||||
"content. Specifically, trigger the handlers that send data to Credentials."
|
||||
@@ -65,98 +67,98 @@ class Command(BaseCommand):
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument(
|
||||
'--dry-run',
|
||||
action='store_true',
|
||||
help='Just show a preview of what would happen.',
|
||||
"--dry-run",
|
||||
action="store_true",
|
||||
help="Just show a preview of what would happen.",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--site',
|
||||
"--site",
|
||||
default=None,
|
||||
help="Site domain to notify for (if not specified, all sites are notified). Uses course_org_filter.",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--courses',
|
||||
nargs='+',
|
||||
help='Send information only for specific course runs.',
|
||||
"--courses",
|
||||
nargs="+",
|
||||
help="Send information only for specific course runs.",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--program_uuids',
|
||||
nargs='+',
|
||||
help='Send user data for course runs for courses within a program based on program uuids provided.',
|
||||
"--program_uuids",
|
||||
nargs="+",
|
||||
help="Send user data for course runs for courses within a program based on program uuids provided.",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--start-date',
|
||||
"--start-date",
|
||||
type=parsetime,
|
||||
help='Send information only for certificates or grades that have changed since this date.',
|
||||
help="Send information only for certificates or grades that have changed since this date.",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--end-date',
|
||||
"--end-date",
|
||||
type=parsetime,
|
||||
help='Send information only for certificates or grades that have changed before this date.',
|
||||
help="Send information only for certificates or grades that have changed before this date.",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--delay',
|
||||
"--delay",
|
||||
type=float,
|
||||
default=0,
|
||||
help="Number of seconds to sleep between processing queries, so that we don't flood our queues.",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--page-size',
|
||||
"--page-size",
|
||||
type=int,
|
||||
default=100,
|
||||
help="Number of items to query at once.",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--auto',
|
||||
action='store_true',
|
||||
help='Use to run the management command periodically',
|
||||
"--auto",
|
||||
action="store_true",
|
||||
help="Use to run the management command periodically",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--args-from-database',
|
||||
action='store_true',
|
||||
help='Use arguments from the NotifyCredentialsConfig model instead of the command line.',
|
||||
"--args-from-database",
|
||||
action="store_true",
|
||||
help="Use arguments from the NotifyCredentialsConfig model instead of the command line.",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--verbose',
|
||||
action='store_true',
|
||||
help='Run grade/cert change signal in verbose mode',
|
||||
"--verbose",
|
||||
action="store_true",
|
||||
help="Run grade/cert change signal in verbose mode",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--notify_programs',
|
||||
action='store_true',
|
||||
help='Send program award notifications with course notification tasks',
|
||||
"--notify_programs",
|
||||
action="store_true",
|
||||
help="Send program award notifications with course notification tasks",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--user_ids',
|
||||
"--user_ids",
|
||||
default=None,
|
||||
nargs='+',
|
||||
help='Run the command for the given user or list of users',
|
||||
nargs="+",
|
||||
help="Run the command for the given user or list of users",
|
||||
)
|
||||
parser.add_argument(
|
||||
'--revoke_program_certs',
|
||||
action='store_true',
|
||||
help="If true, system will check if any program certificates need to be revoked from learners"
|
||||
"--revoke_program_certs",
|
||||
action="store_true",
|
||||
help="If true, system will check if any program certificates need to be revoked from learners",
|
||||
)
|
||||
|
||||
def get_args_from_database(self):
|
||||
""" Returns an options dictionary from the current NotifyCredentialsConfig model. """
|
||||
"""Returns an options dictionary from the current NotifyCredentialsConfig model."""
|
||||
config = NotifyCredentialsConfig.current()
|
||||
if not config.enabled:
|
||||
raise CommandError('NotifyCredentialsConfig is disabled, but --args-from-database was requested.')
|
||||
raise CommandError("NotifyCredentialsConfig is disabled, but --args-from-database was requested.")
|
||||
|
||||
# This split will allow for quotes to wrap datetimes, like "2020-10-20 04:00:00" and other
|
||||
# arguments as if it were the command line
|
||||
argv = shlex.split(config.arguments)
|
||||
parser = self.create_parser('manage.py', 'notify_credentials')
|
||||
return parser.parse_args(argv).__dict__ # we want a dictionary, not a non-iterable Namespace object
|
||||
parser = self.create_parser("manage.py", "notify_credentials")
|
||||
return parser.parse_args(argv).__dict__ # we want a dictionary, not a non-iterable Namespace object
|
||||
|
||||
def handle(self, *args, **options):
|
||||
if options['args_from_database']:
|
||||
if options["args_from_database"]:
|
||||
options = self.get_args_from_database()
|
||||
|
||||
if options['auto']:
|
||||
options['end_date'] = datetime.now().replace(minute=0, second=0, microsecond=0)
|
||||
options['start_date'] = options['end_date'] - timedelta(hours=4)
|
||||
if options["auto"]:
|
||||
options["end_date"] = datetime.now().replace(minute=0, second=0, microsecond=0)
|
||||
options["start_date"] = options["end_date"] - timedelta(hours=4)
|
||||
|
||||
log.info(
|
||||
f"notify_credentials starting, dry-run={options['dry_run']}, site={options['site']}, "
|
||||
@@ -176,14 +178,9 @@ class Command(BaseCommand):
|
||||
course_runs.extend(program_course_run_keys)
|
||||
|
||||
course_run_keys = self._get_validated_course_run_keys(course_runs)
|
||||
if not (
|
||||
course_run_keys or
|
||||
options['start_date'] or
|
||||
options['end_date'] or
|
||||
options['user_ids']
|
||||
):
|
||||
if not (course_run_keys or options["start_date"] or options["end_date"] or options["user_ids"]):
|
||||
raise CommandError(
|
||||
'You must specify a filter (e.g. --courses, --program_uuids, --start-date, or --user_ids)'
|
||||
"You must specify a filter (e.g. --courses, --program_uuids, --start-date, or --user_ids)"
|
||||
)
|
||||
|
||||
handle_notify_credentials.delay(options, course_run_keys)
|
||||
|
||||
Reference in New Issue
Block a user