Récupérer tous les groupes dans la fiche de l’EAD
This commit is contained in:
@@ -1,3 +1,174 @@
|
|||||||
|
diff --git usr/share/ead2/backend/actions/scribe/usermodify.py usr/share/ead2/backend/actions/scribe/usermodify.py
|
||||||
|
index 073fe7ff..b3b845ad 100644
|
||||||
|
--- usr/share/ead2/backend/actions/scribe/usermodify.py
|
||||||
|
+++ usr/share/ead2/backend/actions/scribe/usermodify.py
|
||||||
|
@@ -161,26 +161,28 @@ class UserModify(Action):
|
||||||
|
shell = formencode.make_shellinput(datas)
|
||||||
|
if SUPPORT_ETAB:
|
||||||
|
etab = formencode.make_etabinput(self.user)
|
||||||
|
|
||||||
|
# administration de classe
|
||||||
|
if datas['typeadmin'][0] == '2':
|
||||||
|
prof_classes = Enseignant().get_attr(self.user, 'Divcod')
|
||||||
|
else:
|
||||||
|
prof_classes = []
|
||||||
|
if SUPPORT_ETAB:
|
||||||
|
- etab_user = eoleuser.User().get_etab(self.user)
|
||||||
|
+ etabs_user = eoleuser.User().get_etab(self.user, multi_etabs=True)
|
||||||
|
else:
|
||||||
|
- etab_user = None
|
||||||
|
+ etabs_user = [None]
|
||||||
|
ldapgroup = Group()
|
||||||
|
ldapgroup.ldap_admin.connect()
|
||||||
|
- all_classes = ldapgroup._get_classes(etab=etab_user)
|
||||||
|
+ all_classes = {}
|
||||||
|
+ for etab_user in etabs_user:
|
||||||
|
+ all_classes.update(ldapgroup._get_classes(etab=etab_user))
|
||||||
|
|
||||||
|
# classes affectées
|
||||||
|
_liste = {'title':'Classes à administrer', 'formid':'admin_class_form',
|
||||||
|
'id':'admin_class_table', 'datas':prof_classes}
|
||||||
|
|
||||||
|
|
||||||
|
_select = F.Select(name='admin_class_select',
|
||||||
|
libelle="Classes disponibles",
|
||||||
|
_id='admin_class_select',
|
||||||
|
multi=True, size=10)
|
||||||
|
@@ -198,21 +200,23 @@ class UserModify(Action):
|
||||||
|
'liste':_liste,
|
||||||
|
'title':"Administration de classes"}
|
||||||
|
|
||||||
|
user_all_groups = set(ldapgroup._get_user_groups(self.user))
|
||||||
|
|
||||||
|
# administration de groupes
|
||||||
|
if 'ManagedGroup' in datas:
|
||||||
|
_groups = datas['ManagedGroup']
|
||||||
|
else:
|
||||||
|
_groups = []
|
||||||
|
- all_groups = ldapgroup._get_groups('Groupe', etab=etab_user)
|
||||||
|
+ all_groups = []
|
||||||
|
+ for etab_user in etabs_user:
|
||||||
|
+ all_groups.extend(ldapgroup._get_groups('Groupe', etab=etab_user))
|
||||||
|
all_groups.sort()
|
||||||
|
_liste = {'title':"Groupes à administrer", 'formid':'managed_group_form',
|
||||||
|
'id':'managed_group_table', 'datas':_groups}
|
||||||
|
_select = F.Select(name='managed_group_select',
|
||||||
|
libelle="Groupes disponibles",
|
||||||
|
_id='managed_group_select',
|
||||||
|
multi=True, size=10)
|
||||||
|
for _gr in all_groups:
|
||||||
|
if _gr not in _groups:
|
||||||
|
_select.add_option(_gr)
|
||||||
|
@@ -232,38 +236,44 @@ class UserModify(Action):
|
||||||
|
'id':'groupe_table', 'datas':user_groups}
|
||||||
|
_select = F.Select(name='groupe_select', libelle="Groupes disponibles",
|
||||||
|
_id='groupe_select',
|
||||||
|
multi=True, size=10)
|
||||||
|
for _gr in available_groups:
|
||||||
|
_select.add_option(_gr)
|
||||||
|
groupe = {'name':"groupe", 'btns':formencode.get_transf_btns('groupe'),
|
||||||
|
'select':_select, 'liste':_liste, 'title':"Groupes"}
|
||||||
|
|
||||||
|
## attachement à une matière
|
||||||
|
- all_groups = set(ldapgroup._get_groups('Matiere', etab=etab_user))
|
||||||
|
+ all_groups = []
|
||||||
|
+ for etab_user in etabs_user:
|
||||||
|
+ all_groups.extend(ldapgroup._get_groups('Matiere', etab=etab_user))
|
||||||
|
+ all_groups = set(all_groups)
|
||||||
|
user_groups = scribe_tools.sort_list(all_groups.intersection(user_all_groups))
|
||||||
|
available_groups = scribe_tools.sort_list(all_groups.difference(user_all_groups))
|
||||||
|
_liste = {'title':"Matières de l'enseignant", 'formid':'matiere_form',
|
||||||
|
'id':'matiere_table', 'datas':user_groups}
|
||||||
|
_select = F.Select(name='matiere_select',
|
||||||
|
libelle="Matières disponibles",
|
||||||
|
_id='matiere_select',
|
||||||
|
multi=True, size=10)
|
||||||
|
for _mat in available_groups:
|
||||||
|
_select.add_option(_mat)
|
||||||
|
matiere = {'name':"matiere",
|
||||||
|
'btns':formencode.get_transf_btns('matiere'),
|
||||||
|
'select':_select, 'liste':_liste,
|
||||||
|
'title':"Matières dispensées"}
|
||||||
|
|
||||||
|
## attachement à une équipe pédagogique
|
||||||
|
- all_groups = set(ldapgroup._get_groups('Equipe', etab=etab_user))
|
||||||
|
+ all_groups = []
|
||||||
|
+ for etab_user in etabs_user:
|
||||||
|
+ all_groups.extend(ldapgroup._get_groups('Equipe', etab=etab_user))
|
||||||
|
+ all_groups = set(all_groups)
|
||||||
|
user_groups = scribe_tools.sort_list(all_groups.intersection(user_all_groups))
|
||||||
|
available_groups = scribe_tools.sort_list(all_groups.difference(user_all_groups))
|
||||||
|
_liste = {'title':"Equipes pédagogiques de l'enseignant",
|
||||||
|
'formid':'equipe_form',
|
||||||
|
'id':'equipe_table',
|
||||||
|
'datas':user_groups}
|
||||||
|
_select = F.Select(name='equipe_select', libelle="Equipes disponibles",
|
||||||
|
_id='equipe_select',
|
||||||
|
multi=True, size=10)
|
||||||
|
for _gr in available_groups:
|
||||||
|
@@ -329,25 +339,26 @@ class UserModify(Action):
|
||||||
|
jeSuisUnProf = 'professeurs' in user_all_groups
|
||||||
|
attrprof = formencode.make_attrprofinput(jeSuisUnProf)
|
||||||
|
|
||||||
|
if jeSuisUnProf:
|
||||||
|
# administration de classe
|
||||||
|
if datas['typeadmin'][0] == '2':
|
||||||
|
prof_classes = Enseignant().get_attr(self.user, 'Divcod')
|
||||||
|
else:
|
||||||
|
prof_classes = []
|
||||||
|
if SUPPORT_ETAB:
|
||||||
|
- etab_user = eoleuser.User().get_etab(self.user)
|
||||||
|
+ etabs_user = eoleuser.User().get_etab(self.user)
|
||||||
|
else:
|
||||||
|
- etab_user = None
|
||||||
|
-
|
||||||
|
- all_classes = ldapgroup._get_classes(etab=etab_user)
|
||||||
|
+ etabs_user = [None]
|
||||||
|
+ all_classes = {}
|
||||||
|
+ for etab_user in etabs_user:
|
||||||
|
+ all_classes.update(ldapgroup._get_classes(etab=etab_user))
|
||||||
|
|
||||||
|
# classes affectées
|
||||||
|
_liste = {'title':'Classes à administrer', 'formid':'admin_class_form',
|
||||||
|
'id':'admin_class_table', 'datas':prof_classes}
|
||||||
|
|
||||||
|
|
||||||
|
_select = F.Select(name='admin_class_select',
|
||||||
|
libelle="Classes disponibles",
|
||||||
|
_id='admin_class_select',
|
||||||
|
multi=True, size=10)
|
||||||
|
@@ -360,25 +371,28 @@ class UserModify(Action):
|
||||||
|
if _cl not in prof_classes:
|
||||||
|
_select.add_option(_cl, group=_level)
|
||||||
|
classadmin = {'name':'classadmin',
|
||||||
|
'btns':formencode.get_transf_btns('admin_class'),
|
||||||
|
'select':_select,
|
||||||
|
'liste':_liste,
|
||||||
|
'title':"Administration de classes"}
|
||||||
|
|
||||||
|
## attachement à une équipe pédagogique
|
||||||
|
if SUPPORT_ETAB:
|
||||||
|
- etab_user = eoleuser.User().get_etab(self.user)
|
||||||
|
+ etabs_user = eoleuser.User().get_etab(self.user)
|
||||||
|
else:
|
||||||
|
- etab_user = None
|
||||||
|
+ etabs_user = [None]
|
||||||
|
|
||||||
|
- all_groups = set(ldapgroup._get_groups('Equipe', etab=etab_user))
|
||||||
|
+ all_groups = []
|
||||||
|
+ for etab_user in etabs_user:
|
||||||
|
+ all_groups.extend(ldapgroup._get_groups('Equipe', etab=etab_user))
|
||||||
|
+ all_groups = set(all_groups)
|
||||||
|
user_groups = scribe_tools.sort_list(all_groups.intersection(user_all_groups))
|
||||||
|
available_groups = scribe_tools.sort_list(all_groups.difference(user_all_groups))
|
||||||
|
_liste = {'title':"Equipes pédagogiques de l'enseignant",
|
||||||
|
'formid':'equipe_form',
|
||||||
|
'id':'equipe_table',
|
||||||
|
'datas':user_groups}
|
||||||
|
_select = F.Select(name='equipe_select', libelle="Equipes disponibles",
|
||||||
|
_id='equipe_select',
|
||||||
|
multi=True, size=10)
|
||||||
|
for _gr in available_groups:
|
||||||
diff --git usr/share/ead2/backend/bin/importation.py usr/share/ead2/backend/bin/importation.py
|
diff --git usr/share/ead2/backend/bin/importation.py usr/share/ead2/backend/bin/importation.py
|
||||||
index d18ad86d..306fe780 100755
|
index d18ad86d..306fe780 100755
|
||||||
--- usr/share/ead2/backend/bin/importation.py
|
--- usr/share/ead2/backend/bin/importation.py
|
||||||
|
Reference in New Issue
Block a user