Example #1
0
    def __init__(self, parent, IDfamille=None, selectionIndividus=[], selectionTous=False):
        wx.Dialog.__init__(self, parent, -1, name="grille", style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.MAXIMIZE_BOX|wx.MINIMIZE_BOX)
        self.parent = parent
        self.IDfamille = IDfamille
        
        # Adapte taille Police pour Linux
        from Utils import UTILS_Linux
        UTILS_Linux.AdaptePolice(self)
        
        self._mgr = aui.AuiManager()
        self._mgr.SetManagedWindow(self)
        self.SetTitle(_(u"Grille des consommations"))
        
        # Récupère les perspectives
        cfg = UTILS_Config.FichierConfig()
        self.userConfig = cfg.GetDictConfig()
        if self.userConfig.has_key("grille_perspectives") == True :
            self.perspectives = self.userConfig["grille_perspectives"]
        else:
            self.perspectives = []
        if self.userConfig.has_key("grille_perspective_active") == True :
            self.perspective_active = self.userConfig["grille_perspective_active"]
        else:
            self.perspective_active = None
                
        # Création du notebook
        self.panel_grille = PanelGrille(self, "individu", self.IDfamille)
        self.dictActivites = self.panel_grille.grille.dictActivites
        self.dictIndividus = self.panel_grille.grille.dictIndividus
        self.dictGroupes = self.panel_grille.grille.dictGroupes
        self.listeSelectionIndividus = self.panel_grille.grille.listeSelectionIndividus
                        
        # Création des panels amovibles
        self.panel_periode = CTRL_Grille_periode.CTRL(self)
        dictDonnees = UTILS_Config.GetParametre("dict_selection_periodes_activites")
        self.panel_periode.SetDictDonnees(dictDonnees)
        self._mgr.AddPane(self.panel_periode, aui.AuiPaneInfo().
                          Name("periode").Caption(_(u"Sélection de la période")).
                          Top().Layer(1).BestSize(wx.Size(230,144)).Position(1).CloseButton(False).Fixed().MaximizeButton(False))
        
        self.panel_individus = CTRL_Grille_individus.CTRL(self, self.IDfamille, self.dictIndividus, selectionIndividus, selectionTous)
        self._mgr.AddPane(self.panel_individus, aui.AuiPaneInfo().
                          Name("individus").Caption(_(u"Sélection des individus")).
                          Top().Layer(1).BestSize(wx.Size(180,140)).Position(2).CloseButton(False).MaximizeButton(False).MinSize((10, 100)))
                        
        self.panel_activites = CTRL_Grille_activite2.CTRL(self, self.dictIndividus, self.dictActivites, self.dictGroupes, self.listeSelectionIndividus)
        self._mgr.AddPane(self.panel_activites, aui.AuiPaneInfo().
                          Name("activites").Caption(_(u"Sélection des activités")).
                          Top().Layer(1).Position(3).CloseButton(False).MaximizeButton(False).MinSize((160, 100)))
        
        self.panel_facturation = CTRL_Grille_facturation.CTRL(self)
        self._mgr.AddPane(self.panel_facturation, aui.AuiPaneInfo().
                          Name("facturation").Caption(_(u"Facturation")).
                          Right().Layer(0).BestSize(wx.Size(275,140)).Position(3).CloseButton(False).MaximizeButton(False).MinSize((275, 100)))

        self.panel_etiquettes = CTRL_Etiquettes.CTRL(self, activeMenu=False, onCheck=self.panel_grille.grille.MAJ_affichage)
        self._mgr.AddPane(self.panel_etiquettes, aui.AuiPaneInfo().
                          Name("etiquettes").Caption(_(u"Etiquettes")).
                          Right().Layer(0).Position(3).CloseButton(False).BestSize(wx.Size(275, 100)).MaximizeButton(False).MinSize((275, 100)))    

        self.panel_forfaits = CTRL_Grille_forfaits.CTRL(self, grille=self.panel_grille.grille)
        self._mgr.AddPane(self.panel_forfaits, aui.AuiPaneInfo().
                          Name("forfaits").Caption(_(u"Forfaits crédits")).
                          Right().Layer(0).Position(4).BestSize(wx.Size(275,140)).CloseButton(False).MaximizeButton(False).MinSize((275, 100)))
        self._mgr.GetPane("forfaits").dock_proportion = 50000
        
        self.panel_commandes = Commandes(self)
        self._mgr.AddPane(self.panel_commandes, aui.AuiPaneInfo().
                          Name("commandes").Caption(_(u"Commandes")).
                          Bottom().Layer(0).CaptionVisible(False).CloseButton(False).MaximizeButton(False).MinSize((-1, 50)))

        self.panel_legende = OL_Legende_grille.ListView(self, id=-1, name="OL_legende", style=wx.LC_REPORT|wx.LC_NO_HEADER | wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL)
        self._mgr.AddPane(self.panel_legende, aui.AuiPaneInfo().
                          Name("legende").Caption(_(u"Légende")).
                          Left().Layer(0).Position(2).CloseButton(False).BestSize(wx.Size(170, 100)).MaximizeButton(False).MinSize((170, 100)))    
        self._mgr.GetPane("legende").dock_proportion = 60000
        
        self.panel_raccourcis = OL_Raccourcis_grille.ListView(self, id=-1, name="OL_raccourcis", style=wx.LC_REPORT|wx.LC_NO_HEADER | wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL)
        self._mgr.AddPane(self.panel_raccourcis, aui.AuiPaneInfo().
                          Name("raccourcis").Caption(_(u"Touches raccourcis")).
                          Left().Layer(0).Position(2).CloseButton(False).BestSize(wx.Size(170, 100)).MaximizeButton(False).MinSize((170, 100)))    
        self._mgr.GetPane("raccourcis").dock_proportion = 30000
        
        
        # Création du panel central
        self._mgr.AddPane(self.panel_grille, aui.AuiPaneInfo().Name("grille").
                          CenterPane())
                
        self._mgr.GetPane("grille").Show()

        # Sauvegarde de la perspective par défaut
        self.perspective_defaut = self._mgr.SavePerspective()

        # Récupération de la perspective chargée
        if self.perspective_active != None :
            self._mgr.LoadPerspective(self.perspectives[self.perspective_active]["perspective"])
        else:
            self._mgr.LoadPerspective(self.perspective_defaut)

        self._mgr.Update()
        
        self.Bind(wx.EVT_CLOSE, self.OnClose)
        
        # Détermine la taille de la fenêtre
        self.SetMinSize((600, 670))
        taille_fenetre = UTILS_Config.GetParametre("taille_fenetre_grille")
        if taille_fenetre == None :
            self.SetSize((900, 670))
        if taille_fenetre == (0, 0) :
            self.Maximize(True)
        else:
            self.SetSize(taille_fenetre)
        self.CenterOnScreen()
        
        # Initialisation des contrôles
        self.panel_periode.SetVisibleSelection()
        self.SetListesPeriodes(self.panel_periode.GetDatesSelections())
        self.SetListeSelectionIndividus(self.panel_individus.GetSelections())
        self.SetListeSelectionActivites(self.panel_activites.ctrl_activites.GetIDcoches())
        self.MAJ_grille()
        
        # Affichage du panneau du panneau Forfait Credits
        if self.panel_grille.grille.tarifsForfaitsCreditsPresents == True :
            self._mgr.GetPane("forfaits").Show()
        else:
            self._mgr.GetPane("forfaits").Hide()
        
        # Affichage du panneau du panneau Etiquettes
        if self.panel_grille.grille.afficherListeEtiquettes == True :
            self._mgr.GetPane("etiquettes").Show()
        else:
            self._mgr.GetPane("etiquettes").Hide()
        
        # Contre le bug de maximize
        wx.CallAfter(self._mgr.Update)
        wx.CallAfter(self.panel_grille.grille.SetFocus)
    def __init__(self, parent):
        wx.Dialog.__init__(self, parent, -1, name="DLG_Gestionnaire_conso", style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.MAXIMIZE_BOX|wx.MINIMIZE_BOX|wx.THICK_FRAME)
        self.parent = parent

        self._mgr = aui.AuiManager()
        self._mgr.SetManagedWindow(self)
        
        # Détermine la taille de la fenêtre
        self.SetMinSize((700, 600))
        taille_fenetre = UTILS_Config.GetParametre("taille_fenetre_tableau_presences")
        if taille_fenetre == None :
            self.SetSize((900, 600))
        if taille_fenetre == (0, 0) :
            self.Maximize(True)
        else:
            self.SetSize(taille_fenetre)
        self.CenterOnScreen()

        # Récupère les perspectives
        cfg = UTILS_Config.FichierConfig()
        self.userConfig = cfg.GetDictConfig()
        if self.userConfig.has_key("gestionnaire_perspectives") == True :
            self.perspectives = self.userConfig["gestionnaire_perspectives"]
        else:
            self.perspectives = []
        if self.userConfig.has_key("gestionnaire_perspective_active") == True :
            self.perspective_active = self.userConfig["gestionnaire_perspective_active"]
        else:
            self.perspective_active = None

        # Création du notebook
        self.panel_grille = PanelGrille(self)
        self.dictActivites = self.panel_grille.grille.dictActivites
        self.dictIndividus = self.panel_grille.grille.dictIndividus
        self.dictGroupes = self.panel_grille.grille.dictGroupes
        self.listeSelectionIndividus = self.panel_grille.grille.listeSelectionIndividus
                        
        # Création des panels amovibles
        self.panel_commandes = Commandes(self)
        self._mgr.AddPane(self.panel_commandes, aui.AuiPaneInfo().
                          Name("commandes").Caption(_(u"Commandes")).
                          Bottom().Layer(0).Position(1).CaptionVisible(False).CloseButton(False).MaximizeButton(False).MinSize((-1, 50)))

        self.panel_totaux = CTRL_Grille_totaux.CTRL(self, grille=self.panel_grille.grille)
        self._mgr.AddPane(self.panel_totaux, aui.AuiPaneInfo().
                          Name("totaux").Caption(_(u"Totaux")).
                          Bottom().Layer(0).Position(0).Row(1).CloseButton(False).MaximizeButton(False).MinSize((160, 100)))

        self.panel_calendrier = CTRL_Grille_calendrier.CTRL(self)
        self._mgr.AddPane(self.panel_calendrier, aui.AuiPaneInfo().
                          Name("calendrier").Caption(_(u"Sélection de la date")).
                          Left().Layer(1).BestSize(wx.Size(195, 180)).Position(1).CloseButton(False).Fixed().MaximizeButton(False))
                                
        self.panel_activites = CTRL_Grille_activite3.CTRL(self)        
        self._mgr.AddPane(self.panel_activites, aui.AuiPaneInfo().
                          Name("activites").Caption(_(u"Sélection des activités")).
                          Left().Layer(1).Position(1).CloseButton(False).MaximizeButton(False).BestSize(wx.Size(-1,50)))
        pi = self._mgr.GetPane("activites")
        pi.dock_proportion = 100000 # Proportion
        
        self.panel_legende = OL_Legende_grille.ListView(self, id=-1, name="OL_legende", style=wx.LC_REPORT|wx.LC_NO_HEADER | wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL)
        self.panel_legende.SetSize((50, 50))
        self._mgr.AddPane(self.panel_legende, aui.AuiPaneInfo().
                          Name("legende").Caption(_(u"Légende")).
                          Left().Layer(1).Position(2).CloseButton(False).MaximizeButton(False).MinSize((160, 100)).MaxSize((-1, 120)) )

        self.panel_raccourcis = OL_Raccourcis_grille.ListView(self, id=-1, name="OL_raccourcis", style=wx.LC_REPORT|wx.LC_NO_HEADER | wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL)
        self.panel_raccourcis.SetSize((50, 50))
        self._mgr.AddPane(self.panel_raccourcis, aui.AuiPaneInfo().
                          Name("raccourcis").Caption(_(u"Touches raccourcis")).
                          Left().Layer(1).Position(3).CloseButton(False).MaximizeButton(False).MinSize((160, 100)).MaxSize((-1, 120)) )
        self._mgr.GetPane("raccourcis").dock_proportion = 60000

        self.panel_etiquettes = CTRL_Etiquettes.CTRL(self, activeMenu=False)
        self._mgr.AddPane(self.panel_etiquettes, aui.AuiPaneInfo().
                          Name("etiquettes").Caption(_(u"Etiquettes")).
                          Right().Layer(0).Position(0).CloseButton(False).BestSize(wx.Size(275, 100)).MaximizeButton(False).MinSize((275, 100)))    
        self._mgr.GetPane("etiquettes").Hide()

        self.panel_forfaits = CTRL_Grille_forfaits.CTRL(self, grille=self.panel_grille.grille)
        self._mgr.AddPane(self.panel_forfaits, aui.AuiPaneInfo().
                          Name("forfaits").Caption(_(u"Forfaits crédits")).
                          Right().Layer(0).Position(1).BestSize(wx.Size(275,140)).Position(4).CloseButton(False).MaximizeButton(False).MinSize((275, 100)))
        self._mgr.GetPane("forfaits").Hide()
        
        # Création du panel central
        self._mgr.AddPane(self.panel_grille, aui.AuiPaneInfo().Name("grille").
                          CenterPane())
        self._mgr.GetPane("grille").Show()     
        
        # Sauvegarde de la perspective par défaut
        self.perspective_defaut = self._mgr.SavePerspective()

        # Récupération de la perspective chargée
        if self.perspective_active != None :
            self._mgr.LoadPerspective(self.perspectives[self.perspective_active]["perspective"])
        else:
            self._mgr.LoadPerspective(self.perspective_defaut)
        
        # Affichage du panneau du panneau Forfait Credits
        if self.panel_grille.grille.tarifsForfaitsCreditsPresents == True :
            self._mgr.GetPane("forfaits").Show()
        else:
            self._mgr.GetPane("forfaits").Hide()

        # Affichage du panneau du panneau Etiquettes
        if self.panel_grille.grille.afficherListeEtiquettes == True :
            self._mgr.GetPane("etiquettes").Show()
        else:
            self._mgr.GetPane("etiquettes").Hide()

        self._mgr.Update()
        
        self.SetTitle(_(u"Gestionnaire des consommations"))
        
        self.Bind(wx.EVT_CLOSE, self.OnClose)
                
        # Initialisation des contrôles
        date = self.panel_calendrier.GetDate()
##        self.SetDate(date)
        
        # Init
        self.panel_activites.SetCocherParDefaut(UTILS_Config.GetParametre("gestionnaire_conso_cocher_activites", defaut=True))

        # Affichage du panneau du panneau Forfait Credits
##        if self.panel_grille.grille.tarifsForfaitsCreditsPresents == True :
##            self._mgr.GetPane("forfaits").Show()
##        else:
##            self._mgr.GetPane("forfaits").Hide()
##        self._mgr.Update()

        # Contre le bug de maximize
        wx.CallAfter(self._mgr.Update)