diff --git a/patches.d/scribe-backend.patch b/patches.d/scribe-backend.patch index 2bc4180..c966fc5 100644 --- a/patches.d/scribe-backend.patch +++ b/patches.d/scribe-backend.patch @@ -263,7 +263,7 @@ index 05569fd..c092698 100644 def _get_ead_type(self, login): diff --git usr/lib/python3/dist-packages/scribe/importation/writer.py usr/lib/python3/dist-packages/scribe/importation/writer.py -index 34ce0fb..d03d427 100644 +index 34ce0fb..d4a2f27 100644 --- usr/lib/python3/dist-packages/scribe/importation/writer.py +++ usr/lib/python3/dist-packages/scribe/importation/writer.py @@ -832,25 +832,26 @@ def _maj_enseignant(enseignant, user, login, etab, administratif=False): @@ -295,3 +295,57 @@ index 34ce0fb..d03d427 100644 groups.append('profs-%s' % str(option.nom)) disciplines = eval(enseignant.disciplines) else: +@@ -885,20 +886,21 @@ def write_enseignant(store, connexion, etab=None, current_ead_user=config.DEFAUL + log.write_header(config.ENS_HEADER, config.ENS_INFO) + user = LdapEnseignant() + user.ldap_admin = connexion + prefs = preferences.get_enseignants_prefs() + quota = prefs.get_default('quota') + if FORCED_PASSWORD_MODIFICATION_ALLOWED: + change_pwd = prefs.get_default('change_pwd') == 'oui' + else: + change_pwd = False + new_passwords = [] ++ logins = [] + for enseignant in store.query(Enseignant): + if enseignant.force_login: + # login forcé + if user._is_enseignant(str(enseignant.force_login)): + login = str(enseignant.force_login) + else: + login = '' + else: + login = _enseignant_exists(enseignant, user) + if login != '': +@@ -909,29 +911,31 @@ def write_enseignant(store, connexion, etab=None, current_ead_user=config.DEFAUL + if str(enseignant.nom) == '' or str(enseignant.prenom) == '': + log.infolog("Enseignant n°%s invalide" % str(enseignant.int_id)) + continue + try: + login = _new_enseignant(enseignant, user, prefs, etab=etab, new_passwords=new_passwords) + except BadLogin as message: + log.infolog(str(message)) + continue + # enregistrement du login attribué + enseignant.login = str(login) ++ logins.append(enseignant.login) + num += 1 + if num % config.DEBUG_NUM == 0: + log.debuglog("%d enseignants traités..." % num) + if EOLE_AD: + _sync_passwords(user, new_passwords, change_pwd=change_pwd) + _create_dirs(user, quota, new_passwords) + log.infolog("TOTAL : %d enseignants" % num) + if num != 0: + log.copy_info(config.ENS_INFO, user=current_ead_user) ++ return logins + + + # -------------------- administratifs -------------------- # + + def _new_administratif(administratif, user, prefs, etab=None, new_passwords=[]): + """ + traitement d'un nouvel administratif (création) + administratif : store.Administratif() + user : eoleuser.Administratif() + """