ScolaSync  1.0
gestclassetreeview.py
Aller à la documentation de ce fichier.
00001 #!/usr/bin/python
00002 # -*- coding: utf-8 -*-
00003 
00004 import gestClasse
00005 from PyQt4.QtGui import *
00006 from PyQt4.QtCore import *
00007 
00008 
00009 class gestClasseTreeView(QTreeView):
00010     ##
00011     # 
00012     #         Le constructeur
00013     #         @param parent un parent pour le widget
00014     #         
00015     def __init__(self, parent=None):
00016         QTreeView.__init__(self, parent)
00017         self.gest=None
00018         model=QStandardItemModel()
00019         self.setModel(model)
00020         self.root = self.model().invisibleRootItem()
00021         return
00022 
00023     ##
00024     # 
00025     #         @param fichier le nom d'un fichier, ou un fichier ouvert en lecture, pour
00026     #         récupérer des données SCONET
00027     #         @param gestionnaire un gestionnaire pour exploiter les données du fichier
00028     #         @param renew vrai si on doit tout effacer avant de recommencer
00029     #         
00030     def connecteGestionnaire(self, fichier, gestionnaire=gestClasse.Sconet, renew=False):
00031         if renew:
00032             m=self.model()
00033             m.removeRows(0, m.rowCount())
00034             self.root = self.model().invisibleRootItem()
00035         self.gest=gestionnaire(fichier)
00036         for c in self.gest.collectClasses():
00037             rowClasse=[QStandardItem(c)]
00038             self.root.appendRow(rowClasse)
00039             for e in self.gest.elevesDeClasse(c):
00040                 name=self.gest.showable_name(e)
00041                 eleveItem=QStandardItem(name)
00042                 eleveItem.setCheckable(True)
00043                 eleveItem.unique_name=self.gest.unique_name(e)
00044                 rowEleve=[eleveItem]
00045                 rowClasse[0].appendRow(rowEleve)
00046         self.setExpanded(self.model().index(0,0),True)
00047         return
00048 
00049     ##
00050     # 
00051     #         @return la liste des items non repliés (donc visibles)
00052     #         
00053     def expandedItems(self):
00054         result=[]
00055         m=self.model()
00056         for r in range(m.rowCount()):
00057             cl=m.item(r)
00058             if self.isExpanded(cl.index()):
00059                 for r1 in range(cl.rowCount()):
00060                     e=cl.child(r1)
00061                     result.append(e)
00062         return result
00063 
00064     ##
00065     # 
00066     #         @return la liste de tous les élèves
00067     #         
00068     def allItems(self):
00069         result=[]
00070         m=self.model()
00071         for r in range(m.rowCount()):
00072             cl=m.item(r)
00073             for r1 in range(cl.rowCount()):
00074                 e=cl.child(r1)
00075                 result.append(e)
00076         return result
00077 
00078     ##
00079     # 
00080     #         @return la liste de tous les élèves sélectionnés
00081     #         
00082     def checkedItems(self):
00083         result=[]
00084         m=self.model()
00085         for r in range(m.rowCount()):
00086             cl=m.item(r)
00087             for r1 in range(cl.rowCount()):
00088                 e=cl.child(r1)
00089                 if e.checkState():
00090                     result.append(e)
00091         return result
00092 
00093 
 Tout Classes Espaces de nommage Fichiers Fonctions Variables