[LON-CAPA-admin] Question about Case of Student IDs

Stuart Raeburn raeburn at msu.edu
Tue Dec 29 15:18:24 EST 2015


> 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).


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