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()
Exemple #2
0
    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
Exemple #3
0
    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)