Ejemplo n.º 1
0
def askDupliquerPeriode(periodManager, taskEditor, from_=None):
    from affichages.periode.Periode import Periode
    from ..PeriodAdder import PeriodAdder

    per = from_

    def onClose(button):
        if button == "Ajouter":
            periode = p.createPeriode()

            ## Ajout des schedulables et autres :
            # Il faut en faire une copie,
            # Mais pour éviter tout les soucis de non copies en profondeur
            # (je pense notamment aux dépendances qui pourrait alors se trouver dans une autre période...)
            # on va faire une "sauvegarde-lecture" dans la RAM.
            data = per.saveByDict()
            newPeriode = Periode.load(data, periodManager)
            # Puis on remet les attributs :
            newPeriode.setNom(periode.getNom())
            newPeriode.setDebut(periode.getDebut())
            newPeriode.setFin(periode.getFin())
            newPeriode.setDescription(periode.getDescription())
            newPeriode.setColor(periode.getColor())
            newPeriode.setUniqueID()
            periodManager.ajouter(newPeriode)

    fen = Dialog(command=onClose,
                 buttons=("Ajouter", "Fermer"),
                 exitButton=("Fermer", "WM_DELETE_WINDOW"))

    fen.redessiner = taskEditor.redessiner
    fen.ajouter = taskEditor.ajouter
    fen.getApplication = taskEditor.getApplication

    p = PeriodAdder(periodManager, fen)
    p.pack(expand=YES, fill=BOTH)
    p.boutonValider.grid_forget()

    # Ajouter les champs déjà rempli si on a une période :
    if per is not None:
        p.debut = per.getDebut()
        p.fin = per.getFin()
        p.champNom.insert(END, per.nom)
        p.champDebut.config(text=p.debut)
        p.champFin.config(text=p.fin)
        p.champDescription.insert(END, per.desc)
        p.boutonColor.set(per.color)

    fen.activateandwait()
Ejemplo n.º 2
0
def askModifierPeriode(periodManager, taskEditor, from_=None):
    from ..PeriodAdder import PeriodAdder

    per = from_

    def onClose(button):
        if button == "Modifier":
            # La création d'une période permettra de récupérer ses attributs.
            # Cependant, cette période est temporaire au calcul et n'est pas
            # ajoutée au PeriodManager.
            periode = p.createPeriode()

            # Puis on remet les attributs :
            per.setNom(periode.getNom())
            per.setDebut(periode.getDebut())
            per.setFin(periode.getFin())
            per.setDescription(periode.getDescription())
            per.setColor(periode.getColor())

    fen = Dialog(command=onClose,
                 buttons=("Modifier", "Annuler"),
                 exitButton=("Modifier", "Annuler", "Fermer",
                             "WM_DELETE_WINDOW"))

    # Pour faire croire au PeriodAdder que le Dialog est le TaskEditor.
    fen.redessiner = taskEditor.redessiner
    fen.ajouter = taskEditor.ajouter
    fen.getApplication = taskEditor.getApplication

    p = PeriodAdder(periodManager, fen)
    p.pack(expand=YES, fill=BOTH)
    p.boutonValider.grid_forget()

    # Ajouter les champs déjà rempli si on a une période :
    if per is not None:
        p.debut = per.getDebut()
        p.fin = per.getFin()
        p.champNom.insert(END, per.nom)
        p.champDebut.config(text=p.debut)
        p.champFin.config(text=p.fin)
        p.champDescription.insert(END, per.desc)
        p.boutonColor.config(bg=per.color)

    fen.activateandwait()