Exemplo n.º 1
0
class AjanlatkeresTorloUrlap(simpledialog.Dialog):
    """Csak ajánlatkérést lehet törölni, és csak olyat, amire nem született még ajánlat."""
    def __init__(self, szulo, kon):
        self._kon = kon
        super().__init__(szulo, title="Ajánlatkérés törlése")

    def body(self, szulo):
        self._ajanlatkeres_valaszto = Valaszto("ajánlatkérés", self._ajanlatkeresek(), szulo)
        self._ajanlatkeres_valaszto.pack(ipadx=2, ipady=2)
        return self._ajanlatkeres_valaszto.valaszto

    def validate(self):
        return messagebox.askokcancel("Biztos vagy benne?", "VÉGLEGESEN törlődik!", parent=self)

    def apply(self):
        ajanlatkeres = self._ajanlatkeres_valaszto.elem
        if ajanlatkeres.torol(self._kon.ajanlat):
            print("Bejegyzés törölve.")
        else:
            print("Nem sikerült törölni!")

    def _ajanlatkeresek(self):
        # azok az ajánlatkérések kellenek, melyekre még nem született ajánlat
        ajanlatkeresek = self._kon.ajanlat.execute("""
            SELECT *
            FROM ajanlatkeres
            WHERE azonosito NOT IN (
                SELECT ajanlatkeres.azonosito
                FROM ajanlatkeres, ajanlat
                ON ajanlatkeres.azonosito = ajanlat.ajanlatkeres
            );
            """)
        return sorted(map(lambda ajanlatkeres: Ajanlatkeres(kon = self._kon, **ajanlatkeres), ajanlatkeresek), key=repr)
Exemplo n.º 2
0
class SzervezetTorloUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon=None):
        self._kon = kon
        super().__init__(szulo, title="Szervezet törlése")

    def body(self, szulo):
        self._nev_valaszto = Valaszto("név", self._nevsor(), self)
        self._nev_valaszto.pack(ipadx=2, ipady=2)
        return self._nev_valaszto.valaszto

    def validate(self):
        szervezet = self._nev_valaszto.elem
        if szervezet.azonosito in (MAGANSZEMELY.azonosito, WEVIK.azonosito):
            return False  # nem engedem törölni a speciális eseteket
        biztos = messagebox.askokcancel("Biztos vagy benne?",
                                        "VÉGLEGESEN és MINDEN adata törlődik!",
                                        parent=self)
        return szervezet and biztos

    def apply(self):
        szervezet = self._nev_valaszto.elem
        self._kon.szervezet.delete("telefon", szervezet=szervezet.azonosito)
        self._kon.szervezet.delete("email", szervezet=szervezet.azonosito)
        self._kon.szervezet.delete("cim", szervezet=szervezet.azonosito)
        self._kon.szervezet.delete("kontakt", szervezet=szervezet.azonosito)
        if szervezet.torol(self._kon.szervezet):
            print("{}: Bejegyzés törölve.".format(szervezet))
            self._nev_valaszto.beallit(self._nevsor())
        else:
            print("Nem sikerült törölni.")

    def _nevsor(self):
        return sorted(map(lambda szervezet: Szervezet(**szervezet),
                          self._kon.szervezet.select("szervezet")),
                      key=repr)
Exemplo n.º 3
0
class UjCimUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon=None):
        self._kon = kon
        self._cim = None
        super().__init__(szulo, title="Új cím hozzáadása")

    def body(self, szulo):
        self._nev_valaszto = Valaszto("név", self._nevsor(), self)
        self._nev_valaszto.pack(ipadx=2, ipady=2)

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

        return self._nev_valaszto.valaszto

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

    def apply(self):
        self._cim.szemely = self._nev_valaszto.elem.azonosito
        if self._cim.ment(self._kon.szemely):
            print("Bejegyzés mentve.")
        else:
            print("Nem sikerült elmenteni.")

    def _nevsor(self):
        return sorted(map(lambda szemely: Szemely(**szemely), self._kon.szemely.select("szemely")), key=repr)
Exemplo n.º 4
0
class AjanlatTorloUrlap(simpledialog.Dialog):
    """Csak ajánlatkérést lehet törölni, és csak olyat, amire nem született még ajánlat."""
    def __init__(self, szulo, kon):
        self._kon = kon
        super().__init__(szulo, title="Ajánlat törlése")

    def body(self, szulo):
        self._ajanlat_valaszto = Valaszto("ajánlat", self._ajanlatok(), szulo)
        self._ajanlat_valaszto.pack(ipadx=2, ipady=2)
        return self._ajanlat_valaszto.valaszto

    def validate(self):
        return messagebox.askokcancel("Biztos vagy benne?",
                                      "VÉGLEGESEN törlődik!",
                                      parent=self)

    def apply(self):
        ajanlat = self._ajanlat_valaszto.elem
        if ajanlat.torol(self._kon.ajanlat):
            print("Bejegyzés törölve.")
        else:
            print("Nem sikerült törölni!")

    def _ajanlatok(self):
        ajanlatok = self._kon.ajanlat.select("ajanlat")
        return sorted(map(lambda ajanlat: Ajanlat(kon=self._kon, **ajanlat),
                          ajanlatok),
                      key=repr)
Exemplo n.º 5
0
    def body(self, szulo):
        self._nev_valaszto = Valaszto("név", self._nevsor(), self)
        self._nev_valaszto.pack(ipadx=2, ipady=2)

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

        return self._nev_valaszto.valaszto
Exemplo n.º 6
0
    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("törlendő cím", self._cimek(), self)
        self._cim_valaszto.pack(ipadx=2, ipady=2)

        return self._nev_valaszto.valaszto
Exemplo n.º 7
0
    def body(self, szulo):
        self._szemelyvalaszto = Valaszto("személy", self._szemelynevsor(), self)
        self._szemelyvalaszto.valaszto.bind("<<ComboboxSelected>>", self._megjelenit)
        self._szemelyvalaszto.pack(ipadx=2, ipady=2)

        self._szervezetvalaszto = Valaszto("szervezet", self._szervezetnevsor(), self)
        self._szervezetvalaszto.pack(ipadx=2, ipady=2)

        return self._szemelyvalaszto
Exemplo n.º 8
0
 def body(self, szulo):
     ajanlatkeres = Frame(self)
     self._ajanlatkeres_valaszto = Valaszto("ajánlatkérés", self._ajanlatkeresek(), ajanlatkeres)
     self._ajanlatkeres_valaszto.set_callback(self._megjelenit)
     self._ajanlatkeres_valaszto.pack(ipadx=2, ipady=2)
     self._ajanlatkeres_urlap = AjanlatkeresUrlap(ajanlatkeres, self._kon)
     self._ajanlatkeres_urlap.pack(padx=2, pady=2, ipadx=2, ipady=2, fill=BOTH, side=BOTTOM)
     ajanlatkeres.pack(ipadx=2, ipady=2, fill=BOTH, side=TOP)
     self._megjelenit(1)
     return self._ajanlatkeres_valaszto.valaszto
Exemplo n.º 9
0
    def body(self, szulo):
        self._nev_valaszto = Valaszto("név", self._nevsor(), self)
        self._nev_valaszto.valaszto.bind("<<ComboboxSelected>>", self._megjelenit)
        self._nev_valaszto.pack(ipadx=2, ipady=2)

        self._szemelyurlap = SzemelyUrlap(self)
        self._szemelyurlap.pack(ipadx=2, ipady=2)
        self._megjelenit(1)

        return self._nev_valaszto.valaszto
Exemplo n.º 10
0
class AjanlatModositoUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon):
        self._kon = kon
        super().__init__(szulo, title="Ajánlat módosítása")

    def body(self, szulo):

        self._ajanlat_valaszto = Valaszto("ajánlat", self._ajanlatok(), self)
        self._ajanlat_valaszto.set_callback(self._reszletek)
        self._ajanlat_valaszto.pack(ipadx=2, ipady=2)

        self._ajanlat_urlap = AjanlatUrlap(self)
        self._ajanlat_urlap.pack(padx=2, pady=2, ipadx=2, ipady=2, fill=BOTH)

        self._reszletek(1)
        return self._ajanlat_valaszto.valaszto

    def validate(self):
        if not bool(self._ajanlat_urlap.export()):
            messagebox.showwarning("Hiányos adat!",
                                   "Add meg az ajánlati árat!",
                                   parent=self)
            return False
        if not self._ajanlat_urlap.datum_ervenyes():
            messagebox.showwarning("Dátumhiba!",
                                   "Formátum vagy sorrend hibás!",
                                   parent=self)
            return False
        return True

    def apply(self):
        meglevo_ajanlat = self._ajanlat_valaszto.elem
        modositott_ajanlat = self._ajanlat_urlap.export()
        meglevo_ajanlat.adatok = modositott_ajanlat
        if meglevo_ajanlat.ment(self._kon.ajanlat):
            print("Bejegyzés módosítva.")
        else:
            print("Nem sikerült módosítani!")

    def _ajanlatok(self):
        ajanlatok = self._kon.ajanlat.select("ajanlat")
        return sorted(map(lambda ajanlat: Ajanlat(kon=self._kon, **ajanlat),
                          ajanlatok),
                      key=repr)

    def _reszletek(self, event):
        """Megjeleníti a kiválasztott ajánlat módosítható részleteit.
        event: tkinter esemény-paraméter (itt nincs rá szükség)"""
        meglevo_ajanlat = self._ajanlat_valaszto.elem
        if not meglevo_ajanlat.leadva:
            meglevo_ajanlat.leadva = date.isoformat(date.today())
        if not meglevo_ajanlat.ervenyes:
            meglevo_ajanlat.ervenyes = date.isoformat(date.today() +
                                                      timedelta(days=30))
        self._ajanlat_urlap.beallit(meglevo_ajanlat)
Exemplo n.º 11
0
    def body(self, szulo):
        self._ajanlatkeres_valaszto = Valaszto("ajánlatkérés",
                                               self._ajanlatkeresek(), self)
        self._ajanlatkeres_valaszto.set_callback(self._alapertelmezes)
        self._ajanlatkeres_valaszto.pack(ipadx=2, ipady=2, fill=BOTH)

        self._ajanlat_urlap = AjanlatUrlap(self)
        self._ajanlat_urlap.pack(padx=2, pady=2, ipadx=2, ipady=2, fill=BOTH)

        self._alapertelmezes(1)
        return self._ajanlatkeres_valaszto.valaszto
Exemplo n.º 12
0
    def body(self, szulo):

        self._ajanlat_valaszto = Valaszto("ajánlat", self._ajanlatok(), self)
        self._ajanlat_valaszto.set_callback(self._reszletek)
        self._ajanlat_valaszto.pack(ipadx=2, ipady=2)

        self._ajanlat_urlap = AjanlatUrlap(self)
        self._ajanlat_urlap.pack(padx=2, pady=2, ipadx=2, ipady=2, fill=BOTH)

        self._reszletek(1)
        return self._ajanlat_valaszto.valaszto
Exemplo n.º 13
0
    def body(self, szulo):
        self._szemelyvalaszto = Valaszto("személy", self._szemelynevsor(), self)
        self._szemelyvalaszto.valaszto.bind("<<ComboboxSelected>>", self._megjelenit)
        self._szemelyvalaszto.pack(ipadx=2, ipady=2)

        self._szervezetvalaszto = Valaszto("szervezet", self._szervezetnevsor(), self)
        self._szervezetvalaszto.pack(ipadx=2, ipady=2)

        self._megjegyzes = StringVar()
        Label(self, text="megjegyzés").pack(ipadx=2, ipady=2)
        Entry(self, textvariable=self._megjegyzes, width=32).pack(ipadx=2, ipady=2)

        return self._szemelyvalaszto
Exemplo n.º 14
0
    def body(self, szulo):
        self._projekt_valaszto = Valaszto("megnevezés", self._projektek(),
                                          self)
        self._projekt_valaszto.set_callback(self._projekt_megjelenit)
        self._projekt_valaszto.pack(ipadx=2, ipady=2)

        megnevezes = LabelFrame(self, text="projekt neve")
        self._projekt_urlap = ProjektUrlap(megnevezes)
        self._projekt_urlap.pack(ipadx=2, ipady=2)
        self._projekt_megjelenit(1)
        megnevezes.pack(fill=X, padx=2, pady=2)

        return self._projekt_valaszto.valaszto
Exemplo n.º 15
0
    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
Exemplo n.º 16
0
class SzervezetModositoUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon=None):
        self._kon = kon
        super().__init__(szulo, title="Szervezet módosítása")

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

        self._szervezeturlap = SzervezetUrlap(self)
        self._szervezeturlap.pack(ipadx=2, ipady=2)
        self._megjelenit(1)

        return self._nev_valaszto.valaszto

    def validate(self):
        if self._nev_valaszto.elem.azonosito == MAGANSZEMELY.azonosito:
            return False  # nem engedem módosítani a speciális esetet
        szervezet = self._szervezeturlap.export()
        if not szervezet:
            messagebox.showwarning("Hiányos adat!",
                                   "Legalább a rövid nevet add meg!",
                                   parent=self)
            return False
        if szervezet.meglevo(self._kon.szervezet):
            messagebox.showwarning(
                "Hiba!",
                "Ez a szervezet már szerepel az adatbázisban.",
                parent=self)
            return False
        return True

    def apply(self):
        szervezet = self._nev_valaszto.elem
        szervezet.adatok = self._szervezeturlap.export()
        if szervezet.ment(self._kon.szervezet):
            print("{}: Bejegyzés módosítva.".format(szervezet))
        else:
            print("Nem sikerült módosítani.")

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

    def _megjelenit(self, event):
        self._szervezeturlap.beallit(self._nev_valaszto.elem or Szervezet())
Exemplo n.º 17
0
class ProjektTorloUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon):
        self._kon = kon  # super() előtt kell legyen
        super().__init__(szulo, title="Projekt törlése")

    def body(self, szulo):
        self._projekt_valaszto = Valaszto("projekt", self._projektek(), self)
        self._projekt_valaszto.pack(ipadx=2, ipady=2)
        return self._projekt_valaszto.valaszto

    def validate(self):
        return messagebox.askokcancel("Biztos vagy benne?",
                                      "VÉGLEGESEN és MINDEN adata törlődik!",
                                      parent=self)

    def apply(self):
        hiba = False
        projekt = self._projekt_valaszto.elem
        for munkaresz in map(
                lambda mr: Munkaresz(**mr),
                self._kon.projekt.select("munkaresz",
                                         projekt=projekt.azonosito)):
            for cim in map(
                    lambda cm: Cim(**cm),
                    self._kon.projekt.select("cim",
                                             munkaresz=munkaresz.azonosito)):
                if not cim.torol(self._kon.projekt):
                    hiba = True
            for jelleg in map(
                    lambda jg: Jelleg(**jg),
                    self._kon.projekt.select("jelleg",
                                             munkaresz=munkaresz.azonosito)):
                if not jelleg.torol(self._kon.projekt):
                    hiba = True
            if not munkaresz.torol(self._kon.projekt):
                hiba = True
        if not projekt.torol(self._kon.projekt):
            hiba = True
        if hiba:
            print("Nem sikerült törölni.")
        else:
            print("{}: Bejegyzés törölve.".format(projekt))
            self._projekt_valaszto.beallit(self._projektek())

    def _projektek(self):
        return sorted(map(lambda projekt: Projekt(**projekt),
                          self._kon.projekt.select("projekt")),
                      key=lambda elem: (elem.gyakorisag, repr(elem)))
Exemplo n.º 18
0
class AjanlatkeresModositoUrlap(simpledialog.Dialog):
    """Csak olyan ajánlatkérést lehet módosítani, amire nem született még ajánlat."""
    def __init__(self, szulo, kon):
        self._kon = kon
        super().__init__(szulo, title="Ajánlatkérés módosítása")

    def body(self, szulo):
        ajanlatkeres = Frame(self)
        self._ajanlatkeres_valaszto = Valaszto("ajánlatkérés", self._ajanlatkeresek(), ajanlatkeres)
        self._ajanlatkeres_valaszto.set_callback(self._megjelenit)
        self._ajanlatkeres_valaszto.pack(ipadx=2, ipady=2)
        self._ajanlatkeres_urlap = AjanlatkeresUrlap(ajanlatkeres, self._kon)
        self._ajanlatkeres_urlap.pack(padx=2, pady=2, ipadx=2, ipady=2, fill=BOTH, side=BOTTOM)
        ajanlatkeres.pack(ipadx=2, ipady=2, fill=BOTH, side=TOP)
        self._megjelenit(1)
        return self._ajanlatkeres_valaszto.valaszto

    def validate(self):
        if not self._ajanlatkeres_urlap.datum_ervenyes():
            messagebox.showwarning("Dátumhiba!", "Formátum vagy sorrend hibás!", parent=self)
            return False
        return True

    def apply(self):
        ajanlatkeres = self._ajanlatkeres_valaszto.elem
        modositas = self._ajanlatkeres_urlap.export()
        ajanlatkeres.adatok = modositas
        if ajanlatkeres.ment(self._kon.ajanlat):
            print("Bejegyzés módosítva.")
        else:
            print("Nem sikerült módosítani!")
    
    def _megjelenit(self, event):
        self._ajanlatkeres_urlap.beallit(self._ajanlatkeres_valaszto.elem)

    def _ajanlatkeresek(self):
        # azok az ajánlatkérések kellenek, melyekre még nem született ajánlat
        ajanlatkeresek = self._kon.ajanlat.execute("""
            SELECT *
            FROM ajanlatkeres
            WHERE azonosito NOT IN (
                SELECT ajanlatkeres.azonosito
                FROM ajanlatkeres, ajanlat
                ON ajanlatkeres.azonosito = ajanlat.ajanlatkeres
            );
            """)
        return sorted(map(lambda ajanlatkeres: Ajanlatkeres(kon = self._kon, **ajanlatkeres), ajanlatkeresek), key=repr)
Exemplo n.º 19
0
class MunkareszTorloUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon):
        self._kon = kon  # super() előtt kell legyen
        super().__init__(szulo, title="Munkarész törlése")

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

    def validate(self):
        return messagebox.askokcancel("Biztos vagy benne?",
                                      "VÉGLEGESEN és MINDEN adata törlődik!",
                                      parent=self)

    def apply(self):
        hiba = False
        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)
        if not cim.torol(self._kon.projekt):
            hiba = True
        if not jelleg.torol(self._kon.projekt):
            hiba = True
        if not self._kon.projekt.select("jelleg",
                                        munkaresz=jelleg.munkaresz).fetchone():
            if not munkaresz.torol(self._kon.projekt):
                hiba = True
        if hiba:
            print("Nem sikerült törölni.")
        else:
            print("Bejegyzés törölve.")

    def _munkareszek(self):
        return sorted(map(lambda jelleg: Jelleg(kon=self._kon, **jelleg),
                          self._kon.projekt.select("jelleg")),
                      key=repr)
Exemplo n.º 20
0
class SzemelyModositoUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon=None):
        self._kon = kon
        super().__init__(szulo, title="Személy módosítása")

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

        self._szemelyurlap = SzemelyUrlap(self)
        self._szemelyurlap.pack(ipadx=2, ipady=2)
        self._megjelenit(1)

        return self._nev_valaszto.valaszto

    def validate(self):
        if self._nev_valaszto.elem.azonosito in (VITYA.azonosito, ROLI.azonosito):
            return False  # nem engedem módosítani a speciális eseteket        
        szemely = self._szemelyurlap.export()
        if not szemely:
            messagebox.showwarning("Hiányos adat!", "Legalább az egyik nevet add meg!", parent=self)
            return False
        if szemely.meglevo(self._kon.szemely):
            messagebox.showwarning("A név már létezik!", "Különböztesd meg a megjegyzésben!", parent=self)
            return False
        return True

    def apply(self):    
        szemely = self._nev_valaszto.elem
        szemely.adatok = self._szemelyurlap.export()
        if szemely.ment(self._kon.szemely):
            print("{}: Bejegyzés módosítva.".format(szemely))
        else:
            print("Nem sikerült módosítani.")

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

    def _megjelenit(self, event):
        self._szemelyurlap.beallit(self._nev_valaszto.elem or Szemely())
Exemplo n.º 21
0
    def __init__(self, szulo, kon):
        self._kon = kon
        super().__init__(szulo)

        self._erkezett = StringVar()
        self._hatarido = StringVar()
        self._megjegyzes = StringVar()

        self._kontakt_valaszto = Valaszto("ajánlatkérő", self._kontaktszemelyek(), self)
        self._kontakt_valaszto.pack(ipadx=2, ipady=2)
        self._jelleg_valaszto = Valaszto("projekt", self._jellegek(), self)
        self._jelleg_valaszto.pack(ipadx=2, ipady=2)

        megjegyzes = LabelFrame(self, text="megjegyzés")
        Entry(megjegyzes, textvariable=self._megjegyzes, width=40).pack(ipadx=2, ipady=2, side=LEFT)
        megjegyzes.pack(ipadx=2, ipady=2, side=BOTTOM, fill=BOTH)

        self._temafelelos_valaszto = Valaszto("témafelelős", self._kontaktszemelyek(2), self)
        self._temafelelos_valaszto.pack(ipadx=2, ipady=2, side=BOTTOM)

        erkezett = LabelFrame(self, text="érkezett")
        Entry(erkezett, textvariable=self._erkezett, width=10).pack(ipadx=2, ipady=2)
        erkezett.pack(ipadx=2, ipady=2, side=LEFT)
        hatarido = LabelFrame(self, text="leadási határidő")
        Entry(hatarido, textvariable=self._hatarido, width=10).pack(ipadx=2, ipady=2)
        hatarido.pack(ipadx=2, ipady=2, side=LEFT)        
        ma = date.isoformat(date.today())
        egyhetmulva = date.isoformat(date.today() + timedelta(days=7))
        self._erkezett.set(ma)
        self._hatarido.set(egyhetmulva)
Exemplo n.º 22
0
    def body(self, szulo):
        self._projekt_valaszto = Valaszto("projekt", self._projektek(), self)
        self._projekt_valaszto.set_callback(self._cim_megjelenit)
        self._projekt_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)
        self._cim_megjelenit(1)
        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)

        return self._projekt_valaszto.valaszto
Exemplo n.º 23
0
class SzemelyTorloUrlap(simpledialog.Dialog):
    """Meglévő személy adatait törlő űrlap."""
    def __init__(self, szulo, kon=None) -> simpledialog.Dialog:
        """Az űrlap egy simpledialog.Dialog példány.
        szulo:  szülő widget
        kon:    konnektor.Konnektor adatbázis-gyűjtőkapcsolat"""
        self._kon = kon
        super().__init__(szulo, title="Személy törlése")

    def body(self, szulo) -> Combobox:
        """Override Dialog.body - gui megjelenítése"""
        self._nev_valaszto = Valaszto("név", self._nevsor(), self)
        self._nev_valaszto.pack(ipadx=2, ipady=2)
        return self._nev_valaszto.valaszto

    def validate(self) -> bool:
        """Override Dialog.validate - törlés előtti utolsó megerősítés"""
        szemely = self._nev_valaszto.elem
        if szemely.azonosito in (VITYA.azonosito, ROLI.azonosito):
            return False  # nem engedem törölni a speciális eseteket
        biztos = messagebox.askokcancel("Biztos vagy benne?", "VÉGLEGESEN és MINDEN adata törlődik!", parent=self)
        return szemely and biztos

    def apply(self) -> None:
        """Override Dialog.apply - személy törlése"""
        szemely = self._nev_valaszto.elem
        self._kon.szemely.delete("telefon", szemely=szemely.azonosito)  # GDPR!
        self._kon.szemely.delete("email", szemely=szemely.azonosito)
        self._kon.szemely.delete("cim", szemely=szemely.azonosito)
        self._kon.szemely.delete("kontakt", szemely=szemely.azonosito)
        if szemely.torol(self._kon.szemely):
            print("{}: Bejegyzés törölve.".format(szemely))
            self._nev_valaszto.beallit(self._nevsor())
        else:
            print("Nem sikerült törölni.")

    def _nevsor(self) -> list:
        """Belső függvény, abc-rendbe rakott szemely. Szemely csomókból álló listát készít, a __repr__ alapján."""
        return sorted(map(lambda szemely: Szemely(**szemely), self._kon.szemely.select("szemely")), key=repr)
Exemplo n.º 24
0
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
Exemplo n.º 25
0
class TelefonModositoUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon=None):
        self._kon = kon
        self._telefonszam = None
        super().__init__(szulo, title="Telefonszá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._telefon_valaszto = Valaszto("módosítandó telefonszam", self._telefonszamok(), self)
        self._telefon_valaszto.valaszto.bind("<<ComboboxSelected>>", self._kiir_elerhetoseg)
        self._telefon_valaszto.pack(ipadx=2, ipady=2)

        self._telefonszam_urlap = TelefonszamUrlap(self)
        self._telefonszam_urlap.pack(ipadx=2, ipady=2)
        self._kiir_elerhetoseg(1)

        return self._nev_valaszto.valaszto

    def validate(self):
        if not self._telefon_valaszto.elem:
            return False
        else:
            self._telefonszam = self._uj_telefonszam()
            if not self._telefonszam:
                messagebox.showwarning("Hiányos adat!", "Add meg a telefonszámot!", parent=self)
                return False
            else:
                return True

    def apply(self):
        if self._telefonszam.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 _telefonszamok(self):
        szemely = self._nev_valaszto.elem
        return [Telefon(**telefon) for telefon in self._kon.szemely.select("telefon", szemely=szemely.azonosito)]

    def _elerhetosegek(self, event):
        self._telefon_valaszto.beallit(self._telefonszamok())
        self._kiir_elerhetoseg(1)

    def _kiir_elerhetoseg(self, event):
        self._telefonszam_urlap.beallit(self._telefon_valaszto.elem or Telefon())

    def _uj_telefonszam(self):
        telefon = self._telefon_valaszto.elem
        if telefon:
            telefon.adatok = self._telefonszam_urlap.export()
        return telefon
Exemplo n.º 26
0
class UjEmailUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon=None):
        self._kon = kon
        self._emailcim = None
        super().__init__(szulo, title="Új email-cím hozzáadása")

    def body(self, szulo):
        self._nev_valaszto = Valaszto("név", self._nevsor(), self)
        self._nev_valaszto.pack(ipadx=2, ipady=2)

        self._emailcim_urlap = EmailcimUrlap(self)
        self._emailcim_urlap.pack(ipadx=2, ipady=2)

        return self._nev_valaszto.valaszto

    def validate(self):
        if self._nev_valaszto.elem.azonosito == MAGANSZEMELY.azonosito:
            return False  # nem engedem módosítani a speciális esetet
        self._emailcim = self._emailcim_urlap.export()
        if not self._emailcim:
            messagebox.showwarning("Hiányos adat!",
                                   "Add meg az email-címet!",
                                   parent=self)
            return False
        return True

    def apply(self):
        self._emailcim.szervezet = self._nev_valaszto.elem.azonosito
        if self._emailcim.ment(self._kon.szervezet):
            print("Bejegyzés mentve.")
        else:
            print("Nem sikerült elmenteni.")

    def _nevsor(self):
        return sorted(map(lambda szervezet: Szervezet(**szervezet),
                          self._kon.szervezet.select("szervezet")),
                      key=repr)
Exemplo n.º 27
0
class KontaktTorloUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon=None):
        self._kon = kon
        super().__init__(szulo, title="Kontaktszemély eltávolítása")

    def body(self, szulo):
        self._szervezetvalaszto = Valaszto("szervezet",
                                           self._szervezetnevsor(), self)
        self._szervezetvalaszto.valaszto.bind("<<ComboboxSelected>>",
                                              self._megjelenit)
        self._szervezetvalaszto.pack(ipadx=2, ipady=2)

        self._szemelyvalaszto = Valaszto("személy", self._szemelynevsor(),
                                         self)
        self._szemelyvalaszto.pack(ipadx=2, ipady=2)

        return self._szervezetvalaszto

    def validate(self):
        if self._szemelyvalaszto.elem:
            return messagebox.askokcancel("Biztos vagy benne?",
                                          "VÉGLEGESEN törlődik!",
                                          parent=self)
        else:
            return False

    def apply(self):
        kontakt = Kontakt(**(self._kon.kontakt.select(
            "kontakt",
            logic="AND",
            szemely=self._szemelyvalaszto.elem.azonosito,
            szervezet=self._szervezetvalaszto.elem.azonosito).fetchone()))
        if kontakt.torol(self._kon.kontakt):
            print("Bejegyzés törölve.")
        else:
            print("Nem sikerült törölni.")

    def _szervezetnevsor(self):
        return sorted(map(lambda szervezet: Szervezet(**szervezet),
                          self._kon.szervezet.select("szervezet")),
                      key=repr)

    def _szemelynevsor(self):
        szervezetazonosito = self._szervezetvalaszto.elem.azonosito
        szervezethez_rendelt_szemelyek = self._kon.szervezet.execute(
            """
            SELECT * FROM szemely WHERE azonosito IN (SELECT szemely FROM kontakt WHERE szervezet = ?);
        """, (szervezetazonosito, ))
        return sorted(map(lambda szemely: Szemely(**szemely),
                          szervezethez_rendelt_szemelyek),
                      key=repr)

    def _megjelenit(self, event):
        self._szemelyvalaszto.beallit(self._szemelynevsor())
Exemplo n.º 28
0
class UjKontaktUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon=None):
        self._kon = kon
        super().__init__(szulo, title="Kontaktszemély hozzárendelése")

    def body(self, szulo):
        self._szervezetvalaszto = Valaszto("szervezet",
                                           self._szervezetnevsor(), self)
        self._szervezetvalaszto.valaszto.bind("<<ComboboxSelected>>",
                                              self._megjelenit)
        self._szervezetvalaszto.pack(ipadx=2, ipady=2)

        self._szemelyvalaszto = Valaszto("személy", self._szemelynevsor(),
                                         self)
        self._szemelyvalaszto.pack(ipadx=2, ipady=2)

        self._megjegyzes = StringVar()
        Label(self, text="megjegyzés").pack(ipadx=2, ipady=2)
        Entry(self, textvariable=self._megjegyzes, width=32).pack(ipadx=2,
                                                                  ipady=2)

        return self._szervezetvalaszto

    def validate(self):
        return True

    def apply(self):
        kontakt = Kontakt(szemely=self._szemelyvalaszto.elem.azonosito,
                          szervezet=self._szervezetvalaszto.elem.azonosito,
                          megjegyzes=self._megjegyzes.get())
        if kontakt.ment(self._kon.kontakt):
            print("Bejegyzés mentve.")
        else:
            print("Nem sikerült elmenteni.")

    def _szervezetnevsor(self):
        return sorted(map(lambda szervezet: Szervezet(**szervezet),
                          self._kon.szervezet.select("szervezet")),
                      key=repr)

    def _szemelynevsor(self):
        szervezetazonosito = self._szervezetvalaszto.elem.azonosito
        szervezethez_nem_rendelt_szemelyek = self._kon.szervezet.execute(
            """
            SELECT * FROM szemely WHERE azonosito NOT IN (SELECT szemely FROM kontakt WHERE szervezet = ?);
        """, (szervezetazonosito, ))
        return sorted(map(lambda szemely: Szemely(**szemely),
                          szervezethez_nem_rendelt_szemelyek),
                      key=repr)

    def _megjelenit(self, event):
        self._szemelyvalaszto.beallit(self._szemelynevsor())
Exemplo n.º 29
0
class EmailTorloUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon=None):
        self._kon = kon
        self._emailcim = None
        super().__init__(szulo, title="Email-cím törlése")

    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._email_valaszto = Valaszto("törlendő email-cím",
                                        self._emailcimek(), self)
        self._email_valaszto.pack(ipadx=2, ipady=2)

        return self._nev_valaszto.valaszto

    def validate(self):
        self._emailcim = self._email_valaszto.elem
        if self._emailcim:
            biztos = messagebox.askokcancel("Biztos vagy benne?",
                                            "VÉGLEGESEN törlődik!",
                                            parent=self)
        return self._emailcim and biztos

    def apply(self):
        if self._emailcim.torol(self._kon.szervezet):
            print("Bejegyzés törölve.")
        else:
            print("Nem sikerült törölni.")
        self._elerhetosegek(1)

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

    def _emailcimek(self):
        szervezet = self._nev_valaszto.elem
        return [
            Email(**email) for email in self._kon.szervezet.select(
                "email", szervezet=szervezet.azonosito)
        ]

    def _elerhetosegek(self, event):
        self._email_valaszto.beallit(self._emailcimek())
Exemplo n.º 30
0
class ProjektModositoUrlap(simpledialog.Dialog):
    def __init__(self, szulo, kon):
        self._kon = kon  # super() előtt kell legyen
        super().__init__(szulo, title="Projekt módosítása")

    def body(self, szulo):
        self._projekt_valaszto = Valaszto("megnevezés", self._projektek(),
                                          self)
        self._projekt_valaszto.set_callback(self._projekt_megjelenit)
        self._projekt_valaszto.pack(ipadx=2, ipady=2)

        megnevezes = LabelFrame(self, text="projekt neve")
        self._projekt_urlap = ProjektUrlap(megnevezes)
        self._projekt_urlap.pack(ipadx=2, ipady=2)
        self._projekt_megjelenit(1)
        megnevezes.pack(fill=X, padx=2, pady=2)

        return self._projekt_valaszto.valaszto

    def validate(self):
        """Ezen a ponton a projektek a projektszám miatt mindenképpen különbözni fognak egymástól."""
        return True

    def apply(self):
        projekt = self._modositott_projekt()
        if projekt.ment(self._kon.projekt):
            print("{}: Bejegyzés módosítva.".format(projekt))
        else:
            print("Nem sikerült módosítani.")
        self._projekt_valaszto.beallit(self._projektek())
        self._projekt_megjelenit(1)

    def _projektek(self):
        return sorted(map(lambda projekt: Projekt(**projekt),
                          self._kon.projekt.select("projekt")),
                      key=lambda elem: (elem.gyakorisag, repr(elem)))

    def _projekt_megjelenit(self, event):
        self._projekt_urlap.beallit(self._projekt_valaszto.elem or Projekt())

    def _modositott_projekt(self):
        projekt = self._projekt_valaszto.elem
        projekt.adatok = self._projekt_urlap.export()
        return projekt