def __init__(self, parent): wx.Panel.__init__(self, parent, name="recherche_individus", id=-1, style=wx.TAB_TRAVERSAL) self.toolBar = ToolBar(self) self.ctrl_listview = OL_Individus.ListView(self, id=-1, style=wx.LC_REPORT|wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL|wx.LC_HRULES|wx.LC_VRULES) self.ctrl_recherche = OL_Individus.BarreRecherche(self, historique=True) self.__set_properties() self.__do_layout()
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
def __init__(self, parent, IDfamille=None): wx.Dialog.__init__(self, parent, -1, name="DLG_Rattachement", style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX) self.IDfamille = IDfamille self.mode = None # Adapte taille Police pour Linux from Utils import UTILS_Linux UTILS_Linux.AdaptePolice(self) self.nbreTitulaires = self.GetNbreTitulairesFamille() # Bandeau titre = _(u"Rattachement d'un individu") intro = _( u"Commencez par sélectionner une catégorie de rattachement puis saisissez son nom et son prénom. Si l'individu apparait dans la liste, sélectionnez-le. Sinon créez une nouvelle fiche individuelle." ) self.ctrl_bandeau = CTRL_Bandeau.Bandeau( self, titre=titre, texte=intro, hauteurHtml=30, nomImage="Images/32x32/Famille.png") # Categorie self.staticbox_categorie_staticbox = wx.StaticBox( self, -1, _(u"1. Sélection de la catégorie de rattachement")) self.bouton_categorie_1 = wx.ToggleButton(self, 1, _(u"Représentant")) self.bouton_categorie_2 = wx.ToggleButton(self, 2, _(u"Enfant")) self.bouton_categorie_3 = wx.ToggleButton(self, 3, _(u"Contact")) self.ctrl_titulaire = wx.CheckBox(self, -1, _(u"Titulaire du dossier famille")) self.selection_categorie = None if self.nbreTitulaires == 0: self.bouton_categorie_2.Enable(False) self.bouton_categorie_3.Enable(False) # Sélection individu self.staticbox_selection_staticbox = wx.StaticBox( self, -1, _(u"2. Saisie du nom de l'individu")) self.ctrl_propositions = OL_Individus.ListView( self, id=-1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL | wx.LC_HRULES | wx.LC_VRULES) self.ctrl_propositions.dictParametres["archives"] = True self.label_nom = wx.StaticText(self, -1, _(u"Nom :")) self.ctrl_nom = CtrlRecherche(self, numColonne=1) self.label_prenom = wx.StaticText(self, -1, _(u"Prénom :")) self.ctrl_prenom = wx.TextCtrl(self, -1, "") #CtrlRecherche(self, numColonne=2) # Txt remarque txtRemarque = u""" <IMG SRC="Static/Images/16x16/Attention2.png"> <FONT SIZE=-1> Si l'individu à rattacher n'apparaît pas dans cette liste, vous devez cliquez sur ce bouton <A HREF="Saisie">Saisir un nouvel individu</A> pour créer une nouvelle fiche individuelle. </FONT> """ self.ctrl_html = MyHtml(self, texte=txtRemarque, hauteur=31) # Boutons self.bouton_aide = CTRL_Bouton_image.CTRL( self, texte=_(u"Aide"), cheminImage="Images/32x32/Aide.png") self.bouton_ok = CTRL_Bouton_image.CTRL( self, texte=_(u"Ok"), cheminImage="Images/32x32/Valider.png") self.bouton_annuler = CTRL_Bouton_image.CTRL( self, id=wx.ID_CANCEL, texte=_(u"Annuler"), cheminImage="Images/32x32/Annuler.png") self.__set_properties() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.OnBoutonOk, self.bouton_ok) self.Bind(wx.EVT_BUTTON, self.OnBoutonAide, self.bouton_aide) self.Bind(wx.EVT_TOGGLEBUTTON, self.OnToggle, self.bouton_categorie_1) self.Bind(wx.EVT_TOGGLEBUTTON, self.OnToggle, self.bouton_categorie_2) self.Bind(wx.EVT_TOGGLEBUTTON, self.OnToggle, self.bouton_categorie_3) self.ActiveControles(False) self.ctrl_titulaire.Enable(False)