ScolaSync  1.0
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
gestclassetreeview.py
Aller à la documentation de ce fichier.
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
3 
4 import gestClasse
5 from PyQt4.QtGui import *
6 from PyQt4.QtCore import *
7 
8 
10  ##
11  #
12  # Le constructeur
13  # @param parent un parent pour le widget
14  #
15  def __init__(self, parent=None):
16  QTreeView.__init__(self, parent)
17  self.gest=None
18  model=QStandardItemModel()
19  self.setModel(model)
20  self.root = self.model().invisibleRootItem()
21  return
22 
23  ##
24  #
25  # @param fichier le nom d'un fichier, ou un fichier ouvert en lecture, pour
26  # récupérer des données SCONET
27  # @param gestionnaire un gestionnaire pour exploiter les données du fichier
28  # @param renew vrai si on doit tout effacer avant de recommencer
29  #
30  def connecteGestionnaire(self, fichier, gestionnaire=gestClasse.Sconet, renew=False):
31  if renew:
32  m=self.model()
33  m.removeRows(0, m.rowCount())
34  self.root = self.model().invisibleRootItem()
35  self.gest=gestionnaire(fichier)
36  for c in self.gest.collectClasses():
37  rowClasse=[QStandardItem(c)]
38  self.root.appendRow(rowClasse)
39  for e in self.gest.elevesDeClasse(c):
40  name=self.gest.showable_name(e)
41  eleveItem=QStandardItem(name)
42  eleveItem.setCheckable(True)
43  eleveItem.unique_name=self.gest.unique_name(e)
44  rowEleve=[eleveItem]
45  rowClasse[0].appendRow(rowEleve)
46  self.setExpanded(self.model().index(0,0),True)
47  return
48 
49  ##
50  #
51  # @return la liste des items non repliés (donc visibles)
52  #
53  def expandedItems(self):
54  result=[]
55  m=self.model()
56  for r in range(m.rowCount()):
57  cl=m.item(r)
58  if self.isExpanded(cl.index()):
59  for r1 in range(cl.rowCount()):
60  e=cl.child(r1)
61  result.append(e)
62  return result
63 
64  ##
65  #
66  # @return la liste de tous les élèves
67  #
68  def allItems(self):
69  result=[]
70  m=self.model()
71  for r in range(m.rowCount()):
72  cl=m.item(r)
73  for r1 in range(cl.rowCount()):
74  e=cl.child(r1)
75  result.append(e)
76  return result
77 
78  ##
79  #
80  # @return la liste de tous les élèves sélectionnés
81  #
82  def checkedItems(self):
83  result=[]
84  m=self.model()
85  for r in range(m.rowCount()):
86  cl=m.item(r)
87  for r1 in range(cl.rowCount()):
88  e=cl.child(r1)
89  if e.checkState():
90  result.append(e)
91  return result
92 
93