Skip to content

Commit 85f2e41

Browse files
Merge pull request #171 from redkyn/canvas-username-column
Change default column for student repo backend username and add optional argument
2 parents b5ce9f7 + 83ac28a commit 85f2e41

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

assigner/commands/canvas.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def import_from_canvas(conf, backend, args):
4141
course_id = args.id
4242
section = args.section
4343
force = args.force
44+
username_column = args.username_column
4445

4546
canvas = CanvasAPI(conf["canvas-token"], conf["canvas-host"])
4647

@@ -60,15 +61,16 @@ def import_from_canvas(conf, backend, args):
6061
return
6162

6263
for s in students:
63-
if 'sis_user_id' not in s or not s['sis_user_id']:
64+
logger.debug(s)
65+
if username_column not in s or not s[username_column]:
6466
logger.error("Could not get username for %s", s['sortable_name'])
6567

6668
try:
6769
add_to_roster(
68-
conf, backend, conf.roster, s['sortable_name'], s['sis_user_id'], section, force, s['id']
70+
conf, backend, conf.roster, s['sortable_name'], s[username_column], section, force, s['id']
6971
)
7072
except DuplicateUserError:
71-
logger.warning("User %s is already in the roster, skipping", s['sis_user_id'])
73+
logger.warning("User %s is already in the roster, skipping", s[username_column])
7274

7375
print("Imported {} students.".format(len(students)))
7476

@@ -121,6 +123,9 @@ def setup_parser(parser):
121123
import_parser.add_argument(
122124
"--force", action="store_true", help="Import duplicate students anyway"
123125
)
126+
import_parser.add_argument(
127+
"-u", "--username-column", metavar="username_column", nargs="?", default="login_id"
128+
)
124129
import_parser.set_defaults(run=import_from_canvas)
125130

126131
make_help_parser(

0 commit comments

Comments
 (0)