コード例 #1
0
ファイル: szemelyurlap.py プロジェクト: rolika/quipu
class CimModositoUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon=None):
        self._kon = kon
        self._cim = None
        super().__init__(szulo, title="Cím módosítása")

    def body(self, szulo):
        self._nev_valaszto = Valaszto("név", self._nevsor(), self)
        self._nev_valaszto.valaszto.bind("<<ComboboxSelected>>", self._elerhetosegek)
        self._nev_valaszto.pack(ipadx=2, ipady=2)

        self._cim_valaszto = Valaszto("módosítandó cím", self._cimek(), self)
        self._cim_valaszto.valaszto.bind("<<ComboboxSelected>>", self._kiir_elerhetoseg)
        self._cim_valaszto.pack(ipadx=2, ipady=2)

        self._cim_urlap = CimUrlap(self)
        self._cim_urlap.pack(ipadx=2, ipady=2)
        self._kiir_elerhetoseg(1)

        return self._nev_valaszto.valaszto

    def validate(self):
        if not self._cim_valaszto.elem:
            return False
        else:
            self._cim = self._uj_cim()
            if not self._cim:
                messagebox.showwarning("Hiányos adat!", "Legalább a helységet add meg!", parent=self)
                return False
            else:
                return True

    def apply(self):
        if self._cim.ment(self._kon.szemely):
            print("Bejegyzés módosítva.")
        else:
            print("Nem sikerült módosítani.")
        self._elerhetosegek(1)

    def _nevsor(self):
        return sorted(map(lambda szemely: Szemely(**szemely), self._kon.szemely.select("szemely")), key=repr)

    def _cimek(self):
        szemely = self._nev_valaszto.elem
        return [Cim(**cim) for cim in self._kon.szemely.select("cim", szemely=szemely.azonosito)]

    def _elerhetosegek(self, event):
        self._cim_valaszto.beallit(self._cimek())
        self._kiir_elerhetoseg(1)

    def _kiir_elerhetoseg(self, event):
        self._cim_urlap.beallit(self._cim_valaszto.elem or Cim())

    def _uj_cim(self):
        cim = self._cim_valaszto.elem
        if cim:
            cim.adatok = self._cim_urlap.export()
        return cim
コード例 #2
0
ファイル: projekturlap.py プロジェクト: rolika/quipu
class MunkareszModositoUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon):
        self._kon = kon  # super() előtt kell legyen
        super().__init__(szulo, title="Munkarész módosítása")

    def body(self, szulo):
        self._munkaresz_valaszto = Valaszto("munkarész", self._munkareszek(),
                                            self)
        self._munkaresz_valaszto.set_callback(self._munkaresz_megjelenit)
        self._munkaresz_valaszto.pack(ipadx=2, ipady=2)

        munkaresz = LabelFrame(self, text="munkarész")
        self._munkaresz_urlap = MunkareszUrlap(munkaresz)
        self._munkaresz_urlap.pack(ipadx=2, ipady=2)
        munkaresz.pack(fill=X, padx=2, pady=2)

        cim = LabelFrame(self, text="munkarész címe")
        self._cim_urlap = CimUrlap(cim)
        self._cim_urlap.pack(ipadx=2, ipady=2)
        cim.pack(padx=2, pady=2)

        jelleg = LabelFrame(self, text="munkarész jellege")
        self._jelleg_urlap = JellegUrlap(jelleg)
        self._jelleg_urlap.pack(ipadx=2, ipady=2)
        jelleg.pack(fill=X, padx=2, pady=2)

        self._munkaresz_megjelenit(1)
        return self._munkaresz_valaszto.valaszto

    def validate(self):
        munkaresz = self._munkaresz_urlap.export()
        cim = self._cim_urlap.export()
        jelleg = self._jelleg_urlap.export()

        if not munkaresz:
            messagebox.showwarning("Hiányos adat!",
                                   "Legalább a nevet add meg!",
                                   parent=self)
            return False

        if munkaresz.meglevo(self._kon.projekt) and cim.meglevo(
                self._kon.projekt) and jelleg.meglevo(self._kon.projekt):
            messagebox.showwarning("Létező munkarész!",
                                   "Pontosítsd!",
                                   parent=self)
            return False

        return True

    def apply(self):
        munkaresz, cim, jelleg = self._modositott_munkaresz()
        if munkaresz.ment(self._kon.projekt) and cim.ment(
                self._kon.projekt) and jelleg.ment(self._kon.projekt):
            print("Bejegyzés mentve.")
        else:
            print("Nem sikerült elmenteni!")

    def _munkareszek(self):
        return sorted(map(lambda jelleg: Jelleg(kon=self._kon, **jelleg),
                          self._kon.projekt.select("jelleg")),
                      key=repr)

    def _munkaresz_kivalaszt(self, event):
        self._munkaresz_valaszto.beallit(self._munkareszek())
        self._munkaresz_megjelenit(1)

    def _munkaresz_megjelenit(self, event):
        munkaresz, cim, jelleg = self._meglevo_munkaresz()
        self._munkaresz_urlap.beallit(munkaresz)
        self._cim_urlap.beallit(cim)
        self._jelleg_urlap.beallit(jelleg)

    def _meglevo_munkaresz(self):
        jelleg = self._munkaresz_valaszto.elem
        munkaresz = self._kon.projekt.select(
            "munkaresz", azonosito=jelleg.munkaresz).fetchone()
        munkaresz = Munkaresz(**munkaresz)
        cim = self._kon.projekt.select(
            "cim", munkaresz=munkaresz.azonosito).fetchone()
        cim = Cim(**cim)
        return (munkaresz, cim, jelleg)

    def _modositott_munkaresz(self):
        munkaresz, cim, jelleg = self._meglevo_munkaresz()
        munkaresz.adatok = self._munkaresz_urlap.export()
        cim.adatok = self._cim_urlap.export()
        jelleg.adatok = self._jelleg_urlap.export()
        return (munkaresz, cim, jelleg)