[LON-CAPA-admin] Question about Case of Student IDs
Stuart Raeburn
raeburn at msu.edu
Tue Dec 29 15:18:24 EST 2015
Mark,
> I think the transliteration of the ID is done in Enrollment.pm:
Yes, the line:
$enrollinfo{$uname}[ $place{'studentID'} ] =~ tr/A-Z/a-z/;
which you found in Enrollment.pm does indeed lowercase institutional
studentIDs when performing automated enrollment in LON-CAPA.
Detection of a username change for a student during automated
enrollment relies on catching where a particular studentID is used for
two different usernames -- the "old" username currently in the
LON-CAPA roster, and the "new" username not currently in the roster
(but now found in the institutional classlist).
(See:
http://mail.lon-capa.org/pipermail/lon-capa-users/2015-October/004957.html
)
Stuart Raeburn
LON-CAPA Academic Consortium
Quoting "Lucas, Mark" <lucasm at ohio.edu>:
> Hi,
>
> I've got a quick question about student IDs. Is the case of any letters
> automatically translated to lowercase by automatic enrollment?
>
> Here is the situation:
> * Our student ids have a P prefixed to the ID.
> For example, P001395258.
>
> * Early on I converted that to lowercase within my own auto enrollment
> code. This was probably not the smartest move as it now turns out
> there are automatic upload capabilities for things like grades that
> require the upper case version of the PID. It would be a lot easier
> to be able to download the PID with the classlist and not have to
> bump it back to upper case.
>
> * I fixed my localenroll.pm code to keep the capital P throughout,
> but I realized that even though the classlist files (the xml code)
> have the capital P, it doesn't make it into the classlist that way.
>
> I think the transliteration of the ID is done in Enrollment.pm:
>
> ------------------
> # Get mapping of student/employee IDs to usernames for users in
> institutional data for this class
> my @allINids = ();
> my %unameFromINid = ();
> foreach my $uname (@okusers) {
> $enrollinfo{$uname}[ $place{'studentID'} ] =~ tr/A-Z/a-z/;
> my $stuID = $enrollinfo{$uname}[ $place{'studentID'} ];
> if (grep/^$stuID$/, at allINids) {
> push @{$unameFromINid{$stuID}},$uname;
> } else {
> push @allINids, $stuID;
> @{$unameFromINid{$stuID}} = $uname;
> }
> }
> ------------------
> ... but I'm not totally certain.
>
> So the question remains, is the lower case forced by the system
> or have I missed something in my own code that is doing this.
>
> Thanks!
> Mark
>
> --
> Mark Lucas email: lucasm at ohiou.edu
> 252D Clippinger Lab phone: (740)597-2984
> Department of Physics and Astronomy fax: (740)593-0433
> Ohio University
> Athens, OH 45701
More information about the LON-CAPA-admin
mailing list