def OuvrirFicheFamille(self, track=None, ouvrirGrille=False, ouvrirFicheInd=False, IDfamille=None): if UTILS_Utilisateurs.VerificationDroitsUtilisateurActuel( "familles_fiche", "consulter") == False: return IDindividu = None if IDfamille == None: IDindividu = track.IDindividu rattachements, dictTitulaires, txtTitulaires = track.GetRattachements( ) if rattachements != None: rattachements.sort() # Rattaché à aucune famille if rattachements == None: dlg = wx.MessageDialog( self, _(u"Cet individu n'est rattaché à aucune famille.\n\nSouhaitez-vous ouvrir sa fiche individuelle ?" ), _(u"Confirmation"), wx.YES_NO | wx.YES_DEFAULT | wx.CANCEL | wx.ICON_INFORMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES: return False else: # Ouverture de la fiche individuelle from Dlg import DLG_Individu dlg = DLG_Individu.Dialog(None, IDindividu=IDindividu) if dlg.ShowModal() == wx.ID_OK: pass dlg.Destroy() self.MAJ() return # Rattachée à une seule famille elif len(rattachements) == 1: IDcategorie, IDfamille, titulaire = rattachements[0] # Rattachée à plusieurs familles else: listeNoms = [] for IDcategorie, IDfamille, titulaire in rattachements: nomTitulaires = dictTitulaires[IDfamille] if IDcategorie == 1: nomCategorie = _(u"représentant") if titulaire == 1: nomCategorie += _(u" titulaire") elif IDcategorie == 2: nomCategorie = _(u"enfant") elif IDcategorie == 3: nomCategorie = _(u"contact") else: nomCategorie = _(u"Catégorie inconnue") listeNoms.append( _(u"%s (en tant que %s)") % (nomTitulaires, nomCategorie)) dlg = wx.SingleChoiceDialog( self, _(u"Cet individu est rattaché à %d familles.\nLa fiche de quelle famille souhaitez-vous ouvrir ?" ) % len(listeNoms), _(u"Rattachements multiples"), listeNoms, wx.CHOICEDLG_STYLE) IDfamilleSelection = None if dlg.ShowModal() == wx.ID_OK: indexSelection = dlg.GetSelection() IDcategorie, IDfamille, titulaire = rattachements[ indexSelection] dlg.Destroy() else: dlg.Destroy() return # Ouverture de la fiche famille if IDfamille != None and IDfamille != -1: from Dlg import DLG_Famille if ouvrirGrille == True or ouvrirFicheInd == True: AfficherMessagesOuverture = False else: AfficherMessagesOuverture = True dlg = DLG_Famille.Dialog( self, IDfamille=IDfamille, AfficherMessagesOuverture=AfficherMessagesOuverture) # Ouverture grille de l'individ if ouvrirGrille == True: dlg.OuvrirGrilleIndividu(IDindividu) # Ouverture fiche de l'individu if ouvrirFicheInd == True: dlg.OuvrirFicheIndividu(IDindividu) if dlg.ShowModal() == wx.ID_OK: self.MAJ(IDindividu) try: dlg.Destroy() except: pass # MAJ du remplissage try: if self.GetGrandParent().GetName() == "general": self.GetGrandParent().MAJ() else: self.MAJ() except: pass # Mémorisation pour l'historique de la barre de recherche rapide try: if IDindividu not in self.historique: self.historique.append(IDindividu) if len(self.historique) > 30: self.historique.pop(0) except: pass
def OuvrirFicheFamille(self, event=None): if UTILS_Utilisateurs.VerificationDroitsUtilisateurActuel("familles_fiche", "consulter") == False : return if len(self.Selection()) == 0 : dlg = wx.MessageDialog(self, _(u"Vous n'avez sélectionné aucune fiche famille à ouvrir !"), _(u"Erreur de saisie"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return track = self.Selection()[0] if self.mode == "familles": # Mode familles from Dlg import DLG_Famille dlg = DLG_Famille.Dialog(self, track.IDfamille) if dlg.ShowModal() == wx.ID_OK: self.MAJ(track.IDfamille) dlg.Destroy() else : # Mode individus IDindividu = track.IDindividu rattachements, dictTitulaires, txtTitulaires = OL_Individus.GetRattachements(IDindividu) if rattachements != None: rattachements.sort() # Rattaché à aucune famille if rattachements == None: dlg = wx.MessageDialog(self, _(u"Cet individu n'est rattaché à aucune famille.\n\nSouhaitez-vous ouvrir sa fiche individuelle ?"), _(u"Confirmation"), wx.YES_NO | wx.YES_DEFAULT | wx.CANCEL | wx.ICON_INFORMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES: return False else: # Ouverture de la fiche individuelle from Dlg import DLG_Individu dlg = DLG_Individu.Dialog(None, IDindividu=IDindividu) if dlg.ShowModal() == wx.ID_OK: pass dlg.Destroy() self.MAJ() return # Rattachée à une seule famille elif len(rattachements) == 1: IDcategorie, IDfamille, titulaire = rattachements[0] # Rattachée à plusieurs familles else: listeNoms = [] for IDcategorie, IDfamille, titulaire in rattachements: nomTitulaires = dictTitulaires[IDfamille] if IDcategorie == 1: nomCategorie = _(u"représentant") if titulaire == 1: nomCategorie += _(u" titulaire") if IDcategorie == 2: nomCategorie = _(u"enfant") if IDcategorie == 3: nomCategorie = _(u"contact") listeNoms.append(_(u"%s (en tant que %s)") % (nomTitulaires, nomCategorie)) dlg = wx.SingleChoiceDialog(self, _(u"Cet individu est rattaché à %d familles.\nLa fiche de quelle famille souhaitez-vous ouvrir ?") % len(listeNoms), _(u"Rattachements multiples"), listeNoms, wx.CHOICEDLG_STYLE) IDfamilleSelection = None if dlg.ShowModal() == wx.ID_OK: indexSelection = dlg.GetSelection() IDcategorie, IDfamille, titulaire = rattachements[indexSelection] dlg.Destroy() else: dlg.Destroy() return # Ouverture de la fiche famille if IDfamille != None and IDfamille != -1: from Dlg import DLG_Famille dlg = DLG_Famille.Dialog(self, IDfamille=IDfamille) if dlg.ShowModal() == wx.ID_OK: self.MAJ(IDindividu) try: dlg.Destroy() except: pass