[LON-CAPA-cvs] cvs: loncom /interface lonuserutils.pm /localize/localize de.pm zh.pm
bisitz
bisitz@source.lon-capa.org
Mon, 03 Aug 2009 15:57:35 -0000
This is a MIME encoded message
--bisitz1249315055
Content-Type: text/plain
bisitz Mon Aug 3 15:57:35 2009 EDT
Modified files:
/loncom/interface lonuserutils.pm
/loncom/localize/localize de.pm zh.pm
Log:
Upload Classlist/Upload User lists - Consistent and nicer layout: use pick_box
And more optimizations:
- Added headline text "Options" to all options which are now together in one pick_box
- Optimized if/elsif structure for $context (DC/AU/CC) sensitive options
- Added <hr> to separate options pick_box from Button, especially helpful for screens with high horizontal resolution where content floats in two columns.
- Wrapped total number of records message in paragraph
- Added some code line breaks for better readability
- Found $home_server_pick broken - added comment in code
- Wording:
- Little wording optimizations
- Optimized some German translations
- Corresponding adjustments in zh.pm
--bisitz1249315055
Content-Type: text/plain
Content-Disposition: attachment; filename="bisitz-20090803155735.txt"
Index: loncom/interface/lonuserutils.pm
diff -u loncom/interface/lonuserutils.pm:1.94 loncom/interface/lonuserutils.pm:1.95
--- loncom/interface/lonuserutils.pm:1.94 Fri Jun 5 12:49:50 2009
+++ loncom/interface/lonuserutils.pm Mon Aug 3 15:57:25 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Utility functions for managing LON-CAPA user accounts
#
-# $Id: lonuserutils.pm,v 1.94 2009/06/05 12:49:50 bisitz Exp $
+# $Id: lonuserutils.pm,v 1.95 2009/08/03 15:57:25 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -329,8 +329,10 @@
$env{'request.role.domain'},$context,
$groupslist);
my $checked=(($env{'form.noFirstLine'})?' checked="checked"':'');
- $r->print(&mt('Total number of records found in file: [_1]','<b>'.$distotal.'</b>').
- "<br />\n");
+ $r->print('<p>'
+ .&mt('Total number of records found in file: [_1]'
+ ,'<b>'.$distotal.'</b>')
+ ."</p>\n");
$r->print('<div class="LC_left_float"><h3>'.
&mt('Identify fields in uploaded list')."</h3>\n");
$r->print(&mt('Enter as many fields as you can.<br /> The system will inform you and bring you back to this page, <br /> if the data selected are insufficient to add users.')."<br />\n");
@@ -757,78 +759,136 @@
my $locform = &Apache::loncommon::authform_local(%param);
my $date_table = &date_setting_table(undef,undef,$context,undef,
$formname,$permission);
+
my $Str = "\n".'<div class="LC_left_float">';
$Str .= &hidden_input('nfields',$i);
$Str .= &hidden_input('keyfields',$keyfields);
- $Str .= "<h3>".&mt('Login Type')."</h3>\n";
+
+ $Str .= '<h3>'.&mt('Options').'</h3>'
+ .&Apache::lonhtmlcommon::start_pick_box();
+
+ $Str .= &Apache::lonhtmlcommon::row_title(&mt('Login Type'));
if ($context eq 'domain') {
- $Str .= '<p>'.&mt('Change authentication for existing users in domain "[_1]" to these settings?',$defdom).' <span class="LC_nobreak"><label><input type="radio" name="changeauth" value="No" checked="checked" />'.&mt('No').'</label> <label><input type="radio" name="changeauth" value="Yes" />'.&mt('Yes').'</label></span></p>';
+ $Str .= '<p>'
+ .&mt('Change authentication for existing users in domain "[_1]" to these settings?'
+ ,$defdom)
+ .' <span class="LC_nobreak"><label>'
+ .'<input type="radio" name="changeauth" value="No" checked="checked" />'
+ .&mt('No').'</label>'
+ .' <label>'
+ .'<input type="radio" name="changeauth" value="Yes" />'
+ .&mt('Yes').'</label>'
+ .'</span></p>';
} else {
- $Str .= "<p>\n".
- &mt('Note: This will not take effect if the user already exists.').
+ $Str .= '<p class="LC_info">'."\n".
+ &mt('This will not take effect if the user already exists.').
&Apache::loncommon::help_open_topic('Auth_Options').
"</p>\n";
}
- $Str .= &set_login($defdom,$krbform,$intform,$locform);
+ $Str .= &set_login($defdom,$krbform,$intform,$locform)
+ .&Apache::lonhtmlcommon::row_closure();
+
my ($home_server_pick,$numlib) =
&Apache::loncommon::home_server_form_item($defdom,'lcserver',
'default','hide');
+#FIXME: Broken?!? $home_server_pick returns empty value on prod (2.8.1) and on dev server. SB 2009-08-03
if ($numlib > 1) {
- $Str .= '<h3>'.&mt('LON-CAPA Home Server for New Users')."</h3>\n".
- &mt('LON-CAPA domain: [_1] with home server: [_2]',$defdom,
- $home_server_pick).'<br />';
- } else {
- $Str .= $home_server_pick;
- }
- $Str .= '<h3>'.&mt('Default domain').'</h3>'."\n".
- &Apache::loncommon::select_dom_form($defdom,'defaultdomain',undef,1);
- $Str .= '<h3>'.&mt('Starting and Ending Dates').
- "</h3>\n";
- $Str .= "<p>\n".$date_table."</p>\n";
+ $Str .= &Apache::lonhtmlcommon::row_title(
+ &mt('LON-CAPA Home Server for New Users'))
+ .&mt('LON-CAPA domain: [_1] with home server:','"'.$defdom.'"')
+ .$home_server_pick
+ .&Apache::lonhtmlcommon::row_closure();
+ } else {
+ $Str .= &Apache::lonhtmlcommon::row_title(&mt('Home Server'))
+ .$home_server_pick
+ .&Apache::lonhtmlcommon::row_closure();
+ }
+
+ $Str .= &Apache::lonhtmlcommon::row_title(&mt('Default domain'))
+ .&Apache::loncommon::select_dom_form($defdom,'defaultdomain',undef,1)
+ .&Apache::lonhtmlcommon::row_closure();
+
+ $Str .= &Apache::lonhtmlcommon::row_title(&mt('Starting and Ending Dates'))
+ ."<p>\n".$date_table."</p>\n"
+ .&Apache::lonhtmlcommon::row_closure();
+
if ($context eq 'domain') {
- $Str .= '<h3>'.&mt('Settings for assigning roles:').'</h3>'."\n".
- &mt('Pick the action to take on roles for these users:').'<br /><span class="LC_nobreak"><label><input type="radio" name="roleaction" value="norole" checked="checked" /> '.&mt('No role changes').'</label> <label><input type="radio" name="roleaction" value="domain" /> '.&mt('Add a domain role').'</label> <label><input type="radio" name="roleaction" value="course" /> '.&mt('Add a course role').'</label></span>';
- }
- if ($context eq 'author') {
- $Str .= '<h3>'.&mt('Default role')."</h3>\n".
- &mt('Choose the role to assign to users without a value specified in the uploaded file');
+ $Str .= &Apache::lonhtmlcommon::row_title(
+ &mt('Settings for assigning roles'))
+ .&mt('Pick the action to take on roles for these users:').'<br />'
+ .'<span class="LC_nobreak"><label>'
+ .'<input type="radio" name="roleaction" value="norole" checked="checked" />'
+ .' '.&mt('No role changes').'</label>'
+ .' <label>'
+ .'<input type="radio" name="roleaction" value="domain" />'
+ .' '.&mt('Add a domain role').'</label>'
+ .' <label>'
+ .'<input type="radio" name="roleaction" value="course" />'
+ .' '.&mt('Add a course role').'</label>'
+ .'</span>';
+ } elsif ($context eq 'author') {
+ $Str .= &Apache::lonhtmlcommon::row_title(
+ &mt('Default role'))
+ .&mt('Choose the role to assign to users without a value specified in the uploaded file.')
} elsif ($context eq 'course') {
- $Str .= '<h3>'.&mt('Default role and section')."</h3>\n".
- &mt('Choose the role and/or section(s) to assign to users without values specified in the uploaded file');
- } else {
- $Str .= '<br /><br /><b>'.&mt('Default role and/or section(s)')."</b><br />\n".
- &mt('Role and/or section(s) for users without values specified in the uploaded file.');
+ $Str .= &Apache::lonhtmlcommon::row_title(
+ &mt('Default role and section'))
+ .&mt('Choose the role and/or section(s) to assign to users without values specified in the uploaded file.');
+ } else {
+ $Str .= &Apache::lonhtmlcommon::row_title(
+ &mt('Default role and/or section(s)'))
+ .&mt('Role and/or section(s) for users without values specified in the uploaded file.');
}
- $Str .= '<br />';
if (($context eq 'domain') || ($context eq 'author')) {
+ $Str .= '<br />';
my ($options,$cb_script,$coursepick) = &default_role_selector($context,1);
if ($context eq 'domain') {
- $Str .= '<span class="LC_role_level">'.&mt('Domain Level').'</span><br />'.$options.'<br /><br /><span class="LC_role_level">'.&mt('Course Level').'</span><br />'.$cb_script.$coursepick;
+ $Str .= '<p>'
+ .'<b>'.&mt('Domain Level').'</b><br />'
+ .$options
+ .'</p><p>'
+ .'<b>'.&mt('Course Level').'</b>'
+ .'</p>'
+ .$cb_script.$coursepick
+ .&Apache::lonhtmlcommon::row_closure();
} elsif ($context eq 'author') {
- $Str .= $options;
+ $Str .= $options
+ .&Apache::lonhtmlcommon::row_closure(1); # last row in pick_box
}
} else {
my ($cnum,$cdom) = &get_course_identity();
my $rowtitle = &mt('section');
my $secbox = §ion_picker($cdom,$cnum,'Any',$rowtitle,
$permission,$context,'upload');
- $Str .= $secbox."<h3>".&mt('Full Update')."</h3>\n".
- '<p><label><input type="checkbox" name="fullup" value="yes" />'.
- ' '.&mt('Display students with current/future access who are not in the uploaded file.').'</label><br />'.&mt('Students selected from this list can be dropped.').'</p>'."\n";
+ $Str .= $secbox
+ .&Apache::lonhtmlcommon::row_closure();
+
+ $Str .= &Apache::lonhtmlcommon::row_title(&mt('Full Update'))
+ .'<label><input type="checkbox" name="fullup" value="yes" />'.
+ ' '.&mt('Display students with current/future access who are not in the uploaded file.')
+ .'</label><br />'
+ .&mt('Students selected from this list can be dropped.')
+ .&Apache::lonhtmlcommon::row_closure();
}
if ($context eq 'course' || $context eq 'domain') {
$Str .= &forceid_change($context);
}
+
+ $Str .= &Apache::lonhtmlcommon::end_pick_box();
$Str .= '</div>';
- $Str .= '<div class="LC_clear_float_footer">';
+
+ # Footer
+ $Str .= '<div class="LC_clear_float_footer">'
+ .'<hr />';
if ($context eq 'course') {
- $Str .= '<div class="LC_info">'
+ $Str .= '<p class="LC_info">'
.&mt('Note: For large courses, this operation may be time consuming.')
- .'</div>';
+ .'</p>';
}
- $Str .= '<input type="button"'
+ $Str .= '<p><input type="button"'
.'onClick="javascript:verify(this.form,this.form.csec)" '
- .'value="'.&mt('Update Users').'" />'."\n"
+ .'value="'.&mt('Update Users').'" />'
+ .'</p>'."\n"
.'</div>';
$r->print($Str);
return;
@@ -837,18 +897,18 @@
sub forceid_change {
my ($context) = @_;
my $output =
- "<h3>".&mt('Student/Employee ID')."</h3>\n".
- "<p>\n".'<label><input type="checkbox" name="forceid" value="yes" />'.
- &mt('Disable Student/Employee ID Safeguard and force change of conflicting IDs').
- '</label><br />'."\n".
- &mt('(only do if you know what you are doing.)')."\n";
+ &Apache::lonhtmlcommon::row_title(&mt('Student/Employee ID'))
+ .'<label><input type="checkbox" name="forceid" value="yes" />'
+ .&mt('Disable Student/Employee ID Safeguard and force change of conflicting IDs')
+ .'</label><br />'."\n"
+ .&mt('(only do if you know what you are doing.)')."\n";
if ($context eq 'domain') {
$output .= '<br /><label><input type="checkbox" name="recurseid"'.
' value="yes" />'.
&mt('Update student/employee ID in courses in which user is active/future student,[_1](if forcing change).','<br />').
'</label>'."\n";
}
- $output .= '</p>';
+ $output .= &Apache::lonhtmlcommon::row_closure(1); # last row in pick_box
return $output;
}
@@ -3417,24 +3477,39 @@
$str = '<input type="hidden" name="phase" value="two" />';
$str .= '<input type="hidden" name="action" value="upload" />';
$str .= '<input type="hidden" name="state" value="got_file" />';
+
$str .= '<h2>'.&mt('Upload a file containing information about users').'</h2>'."\n";
- $str .= '<p class="LC_info">'
- .&mt('Please upload an UTF8 encoded file to ensure a correct character encoding in your classlist.')
- .'</p>'."\n";
- $str .= &Apache::loncommon::upfile_select_html();
- $str .= '<p>';
- $str .= &Apache::loncommon::help_open_topic("Course_Create_Class_List",
- &mt("How do I create a users list from a spreadsheet")).
- "<br />\n";
- $str .= &Apache::loncommon::help_open_topic("Course_Convert_To_CSV",
- &mt("How do I create a CSV file from a spreadsheet"));
- $str .= "</p>\n";
- $str .= "<p>\n";
- $str .= '<label><input type="checkbox" name="noFirstLine" /> '.
- &mt('Ignore First Line')."</label></p>\n";
- $str .= '<input type="submit" name="fileupload" value="'.
- &mt('Next').'" />'."<br />\n";
+
+ # Excel and CSV Help
+ $str .= '<p>'
+ .&Apache::loncommon::help_open_topic("Course_Create_Class_List",
+ &mt("How do I create a users list from a spreadsheet"))
+ ."<br />\n"
+ .&Apache::loncommon::help_open_topic("Course_Convert_To_CSV",
+ &mt("How do I create a CSV file from a spreadsheet"))
+ ."</p>\n";
+
+ $str .= &Apache::lonhtmlcommon::start_pick_box()
+ .&Apache::lonhtmlcommon::row_title(&mt('File'))
+ .'<p class="LC_info">'."\n"
+ .&mt('Please upload an UTF8 encoded file to ensure a correct character encoding in your classlist.')."\n"
+ .'</p>'."\n"
+ .&Apache::loncommon::upfile_select_html()
+ .&Apache::lonhtmlcommon::row_closure()
+ .&Apache::lonhtmlcommon::row_title(
+ '<label for="noFirstLine">'
+ .&mt('Ignore First Line')
+ .'</label>')
+ .'<input type="checkbox" name="noFirstLine" id="noFirstLine" />'
+ .&Apache::lonhtmlcommon::row_closure(1)
+ .&Apache::lonhtmlcommon::end_pick_box();
+
+ $str .= '<p>'
+ .'<input type="submit" name="fileupload" value="'.&mt('Next').'" />'
+ .'</p>';
+
$str .= &Apache::loncommon::end_page();
+
$r->print($str);
return;
}
Index: loncom/localize/localize/de.pm
diff -u loncom/localize/localize/de.pm:1.319 loncom/localize/localize/de.pm:1.320
--- loncom/localize/localize/de.pm:1.319 Fri Jul 31 16:01:55 2009
+++ loncom/localize/localize/de.pm Mon Aug 3 15:57:34 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# German Localization Lexicon
#
-# $Id: de.pm,v 1.319 2009/07/31 16:01:55 bisitz Exp $
+# $Id: de.pm,v 1.320 2009/08/03 15:57:34 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2829,8 +2829,8 @@
'Note: For large courses, this operation may be time consuming.'
=> 'Beachten Sie, dass die Ausführung für große Kurse lange dauern könnte.',
- 'Note: This will not take effect if the user already exists.'
-=> 'Anmerkung: Diese Einstellung bleibt ohne Wirkung, falls der Benutzer bereits existiert.',
+ 'This will not take effect if the user already exists.'
+=> 'Diese Einstellung bleibt ohne Wirkung, falls der Benutzer bereits existiert.',
'Processed [quant,_1,student].'
=> '[quant,_1,Student/in,Studierende] bearbeitet.',
@@ -3681,7 +3681,7 @@
=> 'Inhaltszus./Verzeichnis', # 'Inhaltszus.-/Verzeichnis-Ebene',
'Course Level'
-=> 'Kurs', # 'Kurs-Ebene',
+=> 'Kurs-Ebene',
'Course Search'
=> 'Suche im Kurs',
@@ -8780,8 +8780,8 @@
'Refresh'
=> 'Aktualisieren', # n.t.
- 'Custom metadata [_1]: '
-=> 'Eigene Metadaten [_1]: ',
+ 'Custom metadata [_1]'
+=> 'Eigene Metadaten [_1]',
'Question/Comment/Feedback about course content'
=> 'Frage/Anmerkung/Feedback zum Kursinhalt',
@@ -11807,11 +11807,11 @@
'LON-CAPA Home Server for New Users'
=> 'LON-CAPA-Heimatserver für neue Benutzer',
- 'LON-CAPA domain: [_1] with home server: [_2]'
-=> 'LON-CAPA-Domäne: [_1] mit Heimatserver: [_2]',
+ 'LON-CAPA domain: [_1] with home server:'
+=> 'LON-CAPA-Domäne [_1] mit Heimatserver:',
- 'Settings for assigning roles:'
-=> 'Einstellungen für Rollenzuweisungen:', # ???
+ 'Settings for assigning roles'
+=> 'Einstellungen für Rollenzuweisungen',
'Pick the action to take on roles for these users:'
=> 'Wählen Sie die Aktion aus, die bei neuen Rollen für diesen Benutzer ausgeführt werden soll:',
@@ -11828,14 +11828,14 @@
'Default role'
=> 'Voreingesstellte Rolle',
- 'Choose the role to assign to users without a value specified in the uploaded file'
-=> 'Wählen Sie die Rolle, die Benutzern zugewiesen werden sollen, für die kein Wert in der hochgeladenen Datei angegeben wurde',
+ 'Choose the role to assign to users without a value specified in the uploaded file.'
+=> 'Wählen Sie die Rolle, die Benutzern zugewiesen werden sollen, für die kein Wert in der hochgeladenen Datei angegeben ist.',
'Default role and section'
=> 'Voreingestellte Rolle und Sektion',
- 'Choose the role and/or section(s) to assign to users without values specified in the uploaded file'
-=> 'Wählen Sie die Rolle und/oder Sektion(en), die Benutzern zugewiesen werden sollen, für die keine Werte in der hochgeladenen Datei angegeben wurden',
+ 'Choose the role and/or section(s) to assign to users without values specified in the uploaded file.'
+=> 'Wählen Sie die Rolle und/oder Sektion(en), die Benutzern zugewiesen werden sollen, für die keine Werte in der hochgeladenen Datei angegeben wurden.',
'Default role and/or section(s)'
=> 'Voreingestellte Rolle und/oder Sektion(en)',
@@ -11847,7 +11847,7 @@
=> 'Anzeige von Studierenden mit aktuellem/zukünftigem Zugriff, die nicht in der hochgeladenen Datei sind.',
'Students selected from this list can be dropped.'
-=> 'Studierende, die von dieser Liste gewählt wurden, können aus dem Kurs ausgeschlossen werden.',
+=> 'Studierende können von dieser Liste gewählt und aus dem Kurs ausgeschlossen werden.',
'Update student/employee ID in courses in which user is active/future student,[_1](if forcing change).'
=> 'Aktualisierung der Studierenden-/Mitarbeiter-ID in Kursen, in denen der Benutzer aktueller/zukünftige/r Student/in ist<br />(falls Änderung erzwungen wird).',
Index: loncom/localize/localize/zh.pm
diff -u loncom/localize/localize/zh.pm:1.72 loncom/localize/localize/zh.pm:1.73
--- loncom/localize/localize/zh.pm:1.72 Fri Jul 31 16:01:55 2009
+++ loncom/localize/localize/zh.pm Mon Aug 3 15:57:34 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Chinese Simplified Localization Lexicon
#
-# $Id: zh.pm,v 1.72 2009/07/31 16:01:55 bisitz Exp $
+# $Id: zh.pm,v 1.73 2009/08/03 15:57:34 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2851,8 +2851,8 @@
'Note: For large courses, this operation may be time consuming.'
=> 'Beachten Sie, dass die Ausführung für große Kurse lange dauern könnte.',
- 'Note: This will not take effect if the user already exists.'
-=> 'Anmerkung: Diese Einstellung bleibt ohne Wirkung, falls der Benutzer bereits existiert.',
+ 'This will not take effect if the user already exists.'
+=> 'Diese Einstellung bleibt ohne Wirkung, falls der Benutzer bereits existiert.',
'Processed [_1] student(s).'
=> '[_1] Studierende bearbeitet.',
@@ -3687,13 +3687,13 @@
=> '课程资料',
'Resource Level'
-=> '资源等级', # 'Ressourcen-Ebene',
+=> '资源等级',
'Map/Folder Level'
=> 'Inhaltszus./Verzeichnis', # 'Inhaltszus.-/Verzeichnis-Ebene',
'Course Level'
-=> '课程等级', # 'Kurs-Ebene',
+=> '课程等级',
'Course Search'
=> '课程搜寻',
@@ -8831,8 +8831,8 @@
'Refresh'
=> '更新', # n.t.
- 'Custom metadata [_1]: '
-=> '自定义元数据 [_1]: ',
+ 'Custom metadata [_1]'
+=> '自定义元数据 [_1]',
'Question/Comment/Feedback about course content'
=> '课程内容的问题/评论/反馈',
@@ -11865,11 +11865,11 @@
'LON-CAPA Home Server for New Users'
=> 'LON-CAPA 家庭服务器的新用户',
- 'LON-CAPA domain: [_1] with home server: [_2]'
-=> 'LON-CAPA 域: [_1] 与家庭服务器: [_2]',
+ 'LON-CAPA domain: [_1] with home server:'
+=> 'LON-CAPA 域 [_1] 与家庭服务器:',
- 'Settings for assigning roles:'
-=> 'Einstellungen für Rollenzuweisungen:', # ???
+ 'Settings for assigning roles'
+=> 'Einstellungen für Rollenzuweisungen',
'Pick the action to take on roles for these users:'
=> 'Wählen Sie die Aktion aus, die bei neuen Rollen für diesen Benutzer ausgeführt werden soll:',
@@ -11886,14 +11886,14 @@
'Default role'
=> 'Voreingesstellte Rolle',
- 'Choose the role to assign to users without a value specified in the uploaded file'
-=> 'Wählen Sie die Rolle, die Benutzern zugewiesen werden sollen, für die kein Wert in der hochgeladenen Datei angegeben wurde',
+ 'Choose the role to assign to users without a value specified in the uploaded file.'
+=> 'Wählen Sie die Rolle, die Benutzern zugewiesen werden sollen, für die kein Wert in der hochgeladenen Datei angegeben ist.',
'Default role and section'
=> 'Voreingestellte Rolle und Sektion',
- 'Choose the role and/or section(s) to assign to users without values specified in the uploaded file'
-=> 'Wählen Sie die Rolle und/oder Sektion(en), die Benutzern zugewiesen werden sollen, für die keine Werte in der hochgeladenen Datei angegeben wurden',
+ 'Choose the role and/or section(s) to assign to users without values specified in the uploaded file.'
+=> 'Wählen Sie die Rolle und/oder Sektion(en), die Benutzern zugewiesen werden sollen, für die keine Werte in der hochgeladenen Datei angegeben wurden.',
'Default role and/or section(s)'
=> 'Voreingestellte Rolle und/oder Sektion(en)',
@@ -11905,7 +11905,7 @@
=> 'Anzeige von Studenten mit aktuellem/zukünftigem Zugriff, die nicht in der hochgeladenen Datei sind.',
'Students selected from this list can be dropped.'
-=> 'Studenten, die von dieser Liste gewählt wurden, können aus dem Kurs ausgeschlossen werden.',
+=> 'Studierende können von dieser Liste gewählt und aus dem Kurs ausgeschlossen werden.',
'Update Student/Employee ID in courses in which user is active/future student,[_1](if forcing change).'
=> 'Aktualisierung der ID/Matrikelnummer in Kursen, in denen der Benutzer aktueller/zukünftiger Student ist<br />(falls Änderung erzwungen wird). ',
--bisitz1249315055--