Esempio n. 1
0
    def refresujTabelu(self):
        self.tabela = Tabela(len(self.kuvarPocetnik.praceniKuvari) + 1, 3)
        self.tabela.dodajZaglavlja(["Korisnicko"])
        self.tabela.setColumnWidth(0, 120)

        brojac = 1
        for naziv in self.kuvarPocetnik.praceniKuvari:
            self.tabela.setItem(brojac, 0, QTableWidgetItem(naziv))

            brojac += 1
        self.tabela.setFixedSize(150, 160)
        self.grid.addWidget(self.tabela, 1, 1)
Esempio n. 2
0
 def refresujTabelu(self):
     self.tabela = Tabela(len(self.nazivi) + 1, 2)
     self.tabela.dodajZaglavlja(["Sifra", "Naziv"])
     self.tabela.setColumnWidth(0, 120)
     self.tabela.setColumnWidth(1, 120)
     brojac = 1
     for naziv in self.nazivi:
         self.tabela.setItem(
             brojac, 0,
             QTableWidgetItem(
                 str(self.kuvarPocetnik.praceneKategorije[brojac - 1])))
         self.tabela.setItem(brojac, 1, QTableWidgetItem(naziv))
         brojac += 1
     self.tabela.setFixedSize(270, 160)
     self.grid.addWidget(self.tabela, 1, 1)
class ProzorZaDodavanjeSastojaka(QDialog):
    def __init__(self):
        super().__init__()
        self.dodatiUTabelu = []
        self.sastojciMenadzer = QApplication.instance(
        ).actionManager.sastojciMenadzer

        self.initUI()

    def initUI(self):
        """
        Funkcija koja definise izgled prozora koji se prikazuje kada korisnik zeli da doda dugotrajne sastojke
        prilikom registracije.
        :return:
        """
        self.setWindowTitle("Aplikacija za kuvare pocetnike")
        ikonica = QIcon('..\slike\ikonica.png')
        self.setWindowIcon(ikonica)
        self.setFixedSize(800, 900)
        image = QImage("..\slike\sastojci.jpg")
        sImage = image.scaled(QSize(800, 900))
        palette = QPalette()
        palette.setBrush(QPalette.Window, QBrush(sImage))
        self.setPalette(palette)
        sadrzaj = ""
        with open("..\slike\stajl.css", "r") as stream:
            sadrzaj = stream.read()
        self.setStyleSheet(sadrzaj)
        self.postaviGrid()

        self.exec_()

    def postaviGrid(self):
        """
        Funkcija koja postavlja layout prozora za dodavanje dugotrajnih sastojaka prilikom registracije.
        :return:
        """
        grid = QGridLayout()
        self.setLayout(grid)

        matrica = [
            '',
            '',
            '',
            '',
            '',
            '',
            '',
            'Pretrazite tabelu:',
            '',
            '',
            '1',
            '',
            '',
            '*',
            '',
            '',
            '?',
            '',
            '',
            'Dodajte novi sastojak:',
            '',
            '',
            'Unesite ime sastojka:',
            '',
            '',
            '-',
            '',
            '',
            'Izaberite tip kolicine sastojka:',
            '',
            '',
            '/',
            '',
            '',
            '+',
            '',
            '',
            '!',
            '',
            '',
            '#',
            '',
        ]

        pozicije = [(i, j) for i in range(14) for j in range(3)]

        self.postojeciSastojci = None
        self.dodatiSastojci = None

        for pozicija, sadrzaj in zip(pozicije, matrica):
            if sadrzaj == "-":
                self.nazivSastojka = QLineEdit()
                self.nazivSastojka.setFixedSize(250, 25)
                grid.addWidget(self.nazivSastojka, *pozicija)
            elif sadrzaj == "*":
                sviSastojci = self.sastojciMenadzer.sviSastojci
                self.postojeciSastojci = Tabela(1, 3)
                self.postojeciSastojci.dodajZaglavlja(
                    ["Sifra", "Naziv sastojka", "Tip kolicine"])
                self.postojeciSastojci.setColumnWidth(0, 120)
                self.postojeciSastojci.setColumnWidth(1, 219)
                self.postojeciSastojci.setColumnWidth(2, 140)
                brojac = 1
                self.popuniTabeluPostojece(sviSastojci)
                self.postojeciSastojci.setFixedSize(500, 165)
                grid.addWidget(self.postojeciSastojci, *pozicija)
            elif sadrzaj == "?":
                dugme = QPushButton("Dodaj sastojak")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.dodajSastojak)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "/":
                self.comboBox = QComboBox()
                self.comboBox.addItem('Gram')
                self.comboBox.addItem('DL')
                self.comboBox.addItem('Komad')
                self.comboBox.addItem('Supena kasika')
                self.comboBox.addItem('Prstohvat')
                grid.addWidget(self.comboBox, *pozicija)
            elif sadrzaj == "+":
                dugme = QPushButton("Dodaj sastojak")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.dodavanjeNovogSastojka)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "!":
                self.dodatiSastojci = Tabela(1, 3)
                self.dodatiSastojci.setColumnWidth(0, 120)
                self.dodatiSastojci.setColumnWidth(1, 219)
                self.dodatiSastojci.setColumnWidth(2, 140)
                self.dodatiSastojci.dodajZaglavlja(
                    ["Sifra", "Naziv sastojka", "Tip kolicine"])
                self.dodatiSastojci.setFixedSize(500, 165)
                grid.addWidget(self.dodatiSastojci, *pozicija)
            elif sadrzaj == "#":
                dugme = QPushButton("Zavrsi dodavanje")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.zavrsenoDodavanje)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "1":
                self.nazivFilter = QLineEdit()
                self.nazivFilter.textChanged.connect(self.izvrsiPretragu)
                self.nazivFilter.setFixedSize(250, 25)
                self.nazivFilter.setToolTip(
                    "Unesite naziv sastojka da biste pretrazili tabelu.")
                grid.addWidget(self.nazivFilter, *pozicija)
            else:
                labela = QLabel(sadrzaj)
                labela.setFixedSize(170, 35)
                grid.addWidget(labela, *pozicija)

    def dodajSastojak(self):
        """
        Funkcija koja se poziva kada korisnik zali da oznaceni sastojak iz tabele postojecih sastojaka doda u
        listu svojih dugotrajnih sastojaka prilikom registracije. Aktivira se pritiskom na dugme 'Dodaj sastojak'.
        :return:
        """
        sviSastojci = self.sastojciMenadzer.sviSastojci
        redovi = self.postojeciSastojci.selectionModel().selectedRows()
        brojRedova = self.dodatiSastojci.rowCount()
        brojac = 0
        for red in redovi:
            if red.row() - 1 < 0:
                ObavestavajucaPoruka(
                    "Ne mozete oznaciti red sa nazivima kolona.")
            else:
                naziv = self.postojeciSastojci.item(red.row(), 2).text()
                tipKolicine = self.vratiEnum(naziv)
                sastojak = QApplication.instance(
                ).actionManager.sastojciMenadzer.vratiSastojakPoNazivuITipuKolicine(
                    self.postojeciSastojci.item(red.row(), 1).text(),
                    tipKolicine)
                # sastojak = sviSastojci[red.row()-1]
                if sastojak.sifra in self.dodatiUTabelu:
                    ObavestavajucaPoruka("Vec ste dodali ovaj sastojak.")
                else:
                    self.dodatiSastojci.insertRow(brojRedova + brojac)
                    self.dodatiUTabelu.append(sastojak.sifra)
                    self.dodatiSastojci.setItem(
                        brojRedova + brojac, 0,
                        QTableWidgetItem(str(sastojak.sifra)))
                    self.dodatiSastojci.setItem(
                        brojRedova + brojac, 1,
                        QTableWidgetItem(sastojak.naziv))
                    self.dodatiSastojci.setItem(
                        brojRedova + brojac, 2,
                        QTableWidgetItem(str(sastojak.tipKolicine)))
                    brojac += 1

    def zavrsenoDodavanje(self):
        """
        Funkcija koja se poziva kada korisnik pritisne dugme 'Zavrsi dodavanje'. Prozor za dodavanje sastojaka se
        sakriva.
        :return:
        """
        self.hide()
        return self.dodatiUTabelu

    def dodavanjeNovogSastojka(self):
        """
        Funkcija koja se poziva kada korisnik pritisne dugme 'Dodaj sastojak', a prethodno je uneo naziv sastojka
        i izabrao tip kolicine. Korisnik na ovaj nacin dodaje sastojak koji se ne nalazi u tabeli postojecih sastojaka.
        :return:
        """
        naziv = self.nazivSastojka.text()
        tip = self.comboBox.currentIndex()

        if tip == 0:
            tipKolicine = TipKolicine.GRAM
        elif tip == 1:
            tipKolicine = TipKolicine.DL
        elif tip == 2:
            tipKolicine = TipKolicine.KOMAD
        elif tip == 3:
            tipKolicine = TipKolicine.SUPENAKASIKA
        else:
            tipKolicine = TipKolicine.PRSTOHVAT
        if naziv == "":
            ObavestavajucaPoruka("Potrebno je uneti naziv sastojka.")
        else:
            sastojak = self.sastojciMenadzer.kreirajSastojak(
                naziv, tipKolicine)
            if sastojak == None:
                ObavestavajucaPoruka(
                    "Uneti sastojak vec postoji u listi sastojaka.")

            else:
                brojRedova = self.dodatiSastojci.rowCount()
                self.dodatiSastojci.insertRow(brojRedova)
                self.dodatiUTabelu.append(sastojak.sifra)
                self.dodatiSastojci.setItem(
                    brojRedova, 0, QTableWidgetItem(str(sastojak.sifra)))
                self.dodatiSastojci.setItem(brojRedova, 1,
                                            QTableWidgetItem(sastojak.naziv))
                self.dodatiSastojci.setItem(
                    brojRedova, 2, QTableWidgetItem(str(sastojak.tipKolicine)))

    def izvrsiPretragu(self):
        if self.nazivFilter.text() == "":
            self.postojeciSastojci.setRowCount(1)
            self.popuniTabeluPostojece(self.sastojciMenadzer.sviSastojci)
        else:
            self.postojeciSastojci.setRowCount(1)
            self.filtrirajTabeluPostojece()

    def popuniTabeluPostojece(self, sviSastojci):
        self.postojeciSastojci.setColumnWidth(0, 120)
        self.postojeciSastojci.setColumnWidth(1, 219)
        self.postojeciSastojci.setColumnWidth(2, 140)
        brojac = self.postojeciSastojci.rowCount()
        self.postojeciSastojci.setRowCount(self.postojeciSastojci.rowCount() +
                                           len(sviSastojci))

        for sastojak in sviSastojci:
            self.postojeciSastojci.setItem(
                brojac, 0, QTableWidgetItem(str(sastojak.sifra)))
            self.postojeciSastojci.setItem(brojac, 1,
                                           QTableWidgetItem(sastojak.naziv))
            self.postojeciSastojci.setItem(
                brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine)))
            brojac += 1

    def filtrirajTabeluPostojece(self):
        naziv = self.nazivFilter.text()
        for i in self.sastojciMenadzer.sviSastojci:
            if i.naziv.upper().startswith(naziv.upper()):
                self.popuniTabeluPostojece([i])

    def vratiEnum(self, naziv):
        if naziv == "GRAM":
            return TipKolicine.GRAM
        elif naziv == "DL":
            return TipKolicine.DL
        elif naziv == "KOMAD":
            return TipKolicine.KOMAD
        elif naziv == "SUPENAKASIKA":
            return TipKolicine.SUPENAKASIKA
        elif naziv == "PRSTOHVAT":
            return TipKolicine.PRSTOHVAT
    def postaviGrid(self):
        """
        Funkcija koja postavlja layout prozora za dodavanje dugotrajnih sastojaka prilikom registracije.
        :return:
        """
        grid = QGridLayout()
        self.setLayout(grid)

        matrica = [
            '',
            '',
            '',
            '',
            '',
            '',
            '',
            'Pretrazite tabelu:',
            '',
            '',
            '1',
            '',
            '',
            '*',
            '',
            '',
            '?',
            '',
            '',
            'Dodajte novi sastojak:',
            '',
            '',
            'Unesite ime sastojka:',
            '',
            '',
            '-',
            '',
            '',
            'Izaberite tip kolicine sastojka:',
            '',
            '',
            '/',
            '',
            '',
            '+',
            '',
            '',
            '!',
            '',
            '',
            '#',
            '',
        ]

        pozicije = [(i, j) for i in range(14) for j in range(3)]

        self.postojeciSastojci = None
        self.dodatiSastojci = None

        for pozicija, sadrzaj in zip(pozicije, matrica):
            if sadrzaj == "-":
                self.nazivSastojka = QLineEdit()
                self.nazivSastojka.setFixedSize(250, 25)
                grid.addWidget(self.nazivSastojka, *pozicija)
            elif sadrzaj == "*":
                sviSastojci = self.sastojciMenadzer.sviSastojci
                self.postojeciSastojci = Tabela(1, 3)
                self.postojeciSastojci.dodajZaglavlja(
                    ["Sifra", "Naziv sastojka", "Tip kolicine"])
                self.postojeciSastojci.setColumnWidth(0, 120)
                self.postojeciSastojci.setColumnWidth(1, 219)
                self.postojeciSastojci.setColumnWidth(2, 140)
                brojac = 1
                self.popuniTabeluPostojece(sviSastojci)
                self.postojeciSastojci.setFixedSize(500, 165)
                grid.addWidget(self.postojeciSastojci, *pozicija)
            elif sadrzaj == "?":
                dugme = QPushButton("Dodaj sastojak")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.dodajSastojak)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "/":
                self.comboBox = QComboBox()
                self.comboBox.addItem('Gram')
                self.comboBox.addItem('DL')
                self.comboBox.addItem('Komad')
                self.comboBox.addItem('Supena kasika')
                self.comboBox.addItem('Prstohvat')
                grid.addWidget(self.comboBox, *pozicija)
            elif sadrzaj == "+":
                dugme = QPushButton("Dodaj sastojak")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.dodavanjeNovogSastojka)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "!":
                self.dodatiSastojci = Tabela(1, 3)
                self.dodatiSastojci.setColumnWidth(0, 120)
                self.dodatiSastojci.setColumnWidth(1, 219)
                self.dodatiSastojci.setColumnWidth(2, 140)
                self.dodatiSastojci.dodajZaglavlja(
                    ["Sifra", "Naziv sastojka", "Tip kolicine"])
                self.dodatiSastojci.setFixedSize(500, 165)
                grid.addWidget(self.dodatiSastojci, *pozicija)
            elif sadrzaj == "#":
                dugme = QPushButton("Zavrsi dodavanje")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.zavrsenoDodavanje)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "1":
                self.nazivFilter = QLineEdit()
                self.nazivFilter.textChanged.connect(self.izvrsiPretragu)
                self.nazivFilter.setFixedSize(250, 25)
                self.nazivFilter.setToolTip(
                    "Unesite naziv sastojka da biste pretrazili tabelu.")
                grid.addWidget(self.nazivFilter, *pozicija)
            else:
                labela = QLabel(sadrzaj)
                labela.setFixedSize(170, 35)
                grid.addWidget(labela, *pozicija)
class PrikazReceptaUredniku(QDialog):
    def __init__(self, parent, recept):
        super().__init__(parent)
        self.recept = recept
        self.menadzerSastojci = QApplication.instance().actionManager.sastojciMenadzer
        self.menadzerOprema = QApplication.instance().actionManager.opremaMenadzer
        self.dodateKategorije = []
        try:
            self.initUI()
        except Exception as e:
            print(e)
        self.show()

    def initUI(self):
        self.setWindowTitle("Prikaz recepta")
        self.setModal(True)
        image = QImage("..\slike\slika6.jpg")
        sImage = image.scaled(QSize(1000, 900))
        palette = QPalette()
        palette.setBrush(QPalette.Window, QBrush(sImage))
        self.setPalette(palette)
        self.setFixedSize(1000, 900)
        self.izgled = QGridLayout()
        self.setLayout(self.izgled)
        matrica = ['1', '', '',
                   '3', '', '2',
                   '6', '', '7',
                   '12', '8', '9',
                   '4', '', '5',
                   '', '', '',
                   '10', '', '11',
                   ]
        self.selekcije = []
        pozicije = [(i, j) for i in range(7) for j in range(3)]
        for sadrzaj, pozicija in zip(matrica, pozicije):
            if sadrzaj == '1':
                self.noviNaziv = QTextEdit()
                self.noviNaziv.setText("<h1 style='color:black'><b>{0}<b></h1>".format(self.recept.naziv))
                self.noviNaziv.setFixedSize(300, 50)
                self.izgled.addWidget(self.noviNaziv, *pozicija)
            if sadrzaj == '2':
                labela = QLabel()
                labela.setBackgroundRole(True)

                pixmapa = QPixmap('..\dizajn\\' + str(self.recept.id) + "." + str(self.recept.ekstenzijaSlike))
                pixmapa.scaled(350, 350)
                labela.setPixmap(pixmapa)
                labela.setFixedSize(350, 350)
                self.izgled.addWidget(labela, *pozicija)
            if sadrzaj == '3':
                self.noviOpis = QTextEdit()
                self.noviOpis.setWordWrapMode(QTextOption.WordWrap)
                self.noviOpis.setText("<h6><i>{0}</i></h6>".format(self.recept.opis))
                self.izgled.addWidget(self.noviOpis, *pozicija)
                self.noviOpis.setMaximumSize(350, 350)
            if sadrzaj == '4':
                sviSastojci = self.menadzerSastojci.sviSastojci
                self.tabelaSastojci = Tabela(len(sviSastojci) + 1, 3)
                self.tabelaSastojci.dodajZaglavlja(["Sifra", "Naziv sastojka", "Tip kolicine"])
                self.tabelaSastojci.setColumnWidth(0, 90)
                self.tabelaSastojci.setColumnWidth(1, 150)
                self.tabelaSastojci.setColumnWidth(2, 120)
                brojac = 1
                for sastojak in sviSastojci:
                    self.tabelaSastojci.setItem(brojac, 0, QTableWidgetItem(str(sastojak.sifra)))
                    self.tabelaSastojci.setItem(brojac, 1, QTableWidgetItem(sastojak.naziv))
                    self.tabelaSastojci.setItem(brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine)))
                    brojac += 1
                self.tabelaSastojci.setFixedSize(400, 165)
                self.izgled.addWidget(self.tabelaSastojci, *pozicija)
            if sadrzaj == '5':
                svaOprema = self.menadzerOprema.svaOprema

                self.tabelaOprema = Tabela(len(svaOprema) + 1, 3)
                self.tabelaOprema.dodajZaglavlja(["Sifra", "Naziv aparata", "Naziv marke"])
                self.tabelaOprema.setColumnWidth(0, 80)
                self.tabelaOprema.setColumnWidth(1, 150)
                self.tabelaOprema.setColumnWidth(2, 120)

                brojac = 1
                for aparat in svaOprema:
                    self.tabelaOprema.setItem(brojac, 0, QTableWidgetItem(str(aparat.sifra)))
                    self.tabelaOprema.setItem(brojac, 1, QTableWidgetItem(aparat.naziv))
                    self.tabelaOprema.setItem(brojac, 2, QTableWidgetItem(aparat.marka))
                    brojac += 1

                self.tabelaOprema.setFixedSize(400, 165)
                self.izgled.addWidget(self.tabelaOprema, *pozicija)
            if sadrzaj == '6':
                self.kategorije = QLabel()
                self.kategorije.setWordWrap(True)
                nazivi = []
                for id in self.recept.kategorije:
                    naziv = QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(id)
                    nazivi.append(naziv)
                spojeno = ",".join(nazivi)
                # self.kategorije.setFixedSize(350,50)
                self.kategorije.setText("<b>Kategorije: {0}</b>".format(spojeno))
                self.kategorije.setFont(QFont('Times', 12))
                self.izgled.addWidget(self.kategorije, *pozicija)
            if sadrzaj == '7':
                ocjena = QLabel("<h4>Ocjena :{0}</h4>".format(self.recept.ocena.vrednost))
                ocjena.setAlignment(Qt.AlignCenter)
                ocjena.setFixedSize(350, 30)
                self.izgled.addWidget(ocjena, *pozicija)
            if sadrzaj == "8":
                self.kategorijeNazivi = QApplication.instance().actionManager.receptiMenadzer.vratiNaziveKategorija()
                for kategorija in self.recept.kategorije:
                    self.kategorijeNazivi.remove(
                        QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(kategorija))
                kompleter = QCompleter(self.kategorijeNazivi)
                kompleter.setCaseSensitivity(Qt.CaseInsensitive)
                self.unetaKategorija = QLineEdit()
                self.unetaKategorija.setCompleter(kompleter)
                self.unetaKategorija.setFixedSize(150, 25)
                self.izgled.addWidget(self.unetaKategorija, *pozicija)
            if sadrzaj == "9":
                dugme = QPushButton("Dodaj kategoriju")
                dugme.clicked.connect(self.dodajNovuKategoriju)
                self.izgled.addWidget(dugme, *pozicija)
            if sadrzaj == "10":
                dugme = QPushButton("Azuriraj recept")
                dugme.clicked.connect(self.azurirajRecept)
                self.izgled.addWidget(dugme, *pozicija)
            if sadrzaj == "11":
                dugme = QPushButton("Obrisi recept")
                dugme.clicked.connect(self.obrisiRecept)
                self.izgled.addWidget(dugme, *pozicija)
            if sadrzaj == "12":
                labela = QLabel("<h3>Dodajte kategoriju receptu:</h3>")
                self.izgled.addWidget(labela, *pozicija)

    def dodajNovuKategoriju(self):
        kategorija = self.unetaKategorija.text()
        if kategorija == "":
            ObavestavajucaPoruka("Morate uneti naziv kategorije.")
            return
        for id in self.recept.kategorije:
            if QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(id) == kategorija:
                ObavestavajucaPoruka("Uneta kategorija je vec dodeljena receptu.")
                return
        for id in self.dodateKategorije:
            if QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(id) == kategorija:
                ObavestavajucaPoruka("Uneta kategorija je vec dodeljena receptu.")
                return
        provera = False
        for kat in self.kategorijeNazivi:
            if kat.lower() == kategorija.lower():
                provera = True
        if provera == False:
            ObavestavajucaPoruka("Morate uneti kategoriju koja postoji.")
            return
        id = QApplication.instance().actionManager.receptiMenadzer.postojanjeKategorije(kategorija)
        self.dodateKategorije.append(id)
        tekst = self.kategorije.text()
        tekst += ", "
        tekst += kategorija
        self.kategorije.setText("<b>{0}</b>".format(tekst))

    def azurirajRecept(self):
        naziv = self.noviNaziv.toPlainText()
        opis = self.noviOpis.toPlainText()
        if naziv == self.recept.naziv and opis == self.recept.opis and len(self.dodateKategorije) == 0:
            ObavestavajucaPoruka("Morate naciniti neke izmene.")
        else:
            potvrda = QMessageBox
            odgovor = potvrda.question(self, 'Potvrda',
                                       "Da li ste sigurni da zelite da azurirate recept. Ako pritisnete Yes necete vise imati pristup ovom receptu.",
                                       potvrda.Yes | potvrda.No)
            if odgovor == potvrda.Yes:
                if naziv != self.recept.naziv:
                    self.recept.naziv = naziv
                    # QApplication.instance().actionManager.receptiMenadzer.azurirajHtmlDokument(self.recept)
                    self.recept.azurirajHtmlDokument()
                self.recept.opis = opis
                for kategorija in self.dodateKategorije:
                    self.recept.kategorije.append(kategorija)
                self.sacuvajPromene()
                self.close()

    def obrisiRecept(self):
        potvrda = QMessageBox
        odgovor = potvrda.question(self, 'Potvrda',
                                   "Da li ste sigurni da zelite da obrisete recept. Ako pritisnete Yes vise necete imati pravo da ga azurirate.",
                                   potvrda.Yes | potvrda.No)
        if odgovor == potvrda.Yes:
            self.sacuvajPromene()
            self.close()

    def sacuvajPromene(self):
        # QApplication.instance().actionManager.receptiMenadzer.izbrisiRecept(self.recept.id)
        self.recept.izbrisiRecept()
        QApplication.instance().actionManager.receptiMenadzer.izbrisiReceptKorisniku(self.recept.id)
        QApplication.instance().actionManager.prijavljeniKorisnik.noviRecepti.remove(int(self.recept.id))
        QApplication.instance().actionManager.receptiMenadzer.sacuvajRecepte()
        QApplication.instance().actionManager.informacije.upisiUrednike()
        receptiZaUredjivanje = QApplication.instance().actionManager.receptiMenadzer.pronadjiRecepteZaUredjivanje(
            QApplication.instance().actionManager.prijavljeniKorisnik)
        QApplication.instance().actionManager.glavniProzor.inicijalizujPocetnu()
        QApplication.instance().actionManager.glavniProzor.sledecaPostoji = True
        QApplication.instance().actionManager.glavniProzor.sledecaStranicaBrojac -= 1
        if len(receptiZaUredjivanje) == QApplication.instance().actionManager.glavniProzor.sledecaStranicaBrojac * 4:
            QApplication.instance().actionManager.glavniProzor.sledecaStranicaBrojac -= 1
        QApplication.instance().actionManager.glavniProzor.refresujPocetnu(receptiZaUredjivanje, None, None,
                                                                           None)
    def initUI(self):
        self.setWindowTitle("Prikaz recepta")
        self.setModal(True)
        image = QImage("..\slike\slika6.jpg")
        sImage = image.scaled(QSize(1000, 900))
        palette = QPalette()
        palette.setBrush(QPalette.Window, QBrush(sImage))
        self.setPalette(palette)
        self.setFixedSize(1000, 900)
        self.izgled = QGridLayout()
        self.setLayout(self.izgled)
        matrica = ['1', '', '',
                   '3', '', '2',
                   '6', '', '7',
                   '12', '8', '9',
                   '4', '', '5',
                   '', '', '',
                   '10', '', '11',
                   ]
        self.selekcije = []
        pozicije = [(i, j) for i in range(7) for j in range(3)]
        for sadrzaj, pozicija in zip(matrica, pozicije):
            if sadrzaj == '1':
                self.noviNaziv = QTextEdit()
                self.noviNaziv.setText("<h1 style='color:black'><b>{0}<b></h1>".format(self.recept.naziv))
                self.noviNaziv.setFixedSize(300, 50)
                self.izgled.addWidget(self.noviNaziv, *pozicija)
            if sadrzaj == '2':
                labela = QLabel()
                labela.setBackgroundRole(True)

                pixmapa = QPixmap('..\dizajn\\' + str(self.recept.id) + "." + str(self.recept.ekstenzijaSlike))
                pixmapa.scaled(350, 350)
                labela.setPixmap(pixmapa)
                labela.setFixedSize(350, 350)
                self.izgled.addWidget(labela, *pozicija)
            if sadrzaj == '3':
                self.noviOpis = QTextEdit()
                self.noviOpis.setWordWrapMode(QTextOption.WordWrap)
                self.noviOpis.setText("<h6><i>{0}</i></h6>".format(self.recept.opis))
                self.izgled.addWidget(self.noviOpis, *pozicija)
                self.noviOpis.setMaximumSize(350, 350)
            if sadrzaj == '4':
                sviSastojci = self.menadzerSastojci.sviSastojci
                self.tabelaSastojci = Tabela(len(sviSastojci) + 1, 3)
                self.tabelaSastojci.dodajZaglavlja(["Sifra", "Naziv sastojka", "Tip kolicine"])
                self.tabelaSastojci.setColumnWidth(0, 90)
                self.tabelaSastojci.setColumnWidth(1, 150)
                self.tabelaSastojci.setColumnWidth(2, 120)
                brojac = 1
                for sastojak in sviSastojci:
                    self.tabelaSastojci.setItem(brojac, 0, QTableWidgetItem(str(sastojak.sifra)))
                    self.tabelaSastojci.setItem(brojac, 1, QTableWidgetItem(sastojak.naziv))
                    self.tabelaSastojci.setItem(brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine)))
                    brojac += 1
                self.tabelaSastojci.setFixedSize(400, 165)
                self.izgled.addWidget(self.tabelaSastojci, *pozicija)
            if sadrzaj == '5':
                svaOprema = self.menadzerOprema.svaOprema

                self.tabelaOprema = Tabela(len(svaOprema) + 1, 3)
                self.tabelaOprema.dodajZaglavlja(["Sifra", "Naziv aparata", "Naziv marke"])
                self.tabelaOprema.setColumnWidth(0, 80)
                self.tabelaOprema.setColumnWidth(1, 150)
                self.tabelaOprema.setColumnWidth(2, 120)

                brojac = 1
                for aparat in svaOprema:
                    self.tabelaOprema.setItem(brojac, 0, QTableWidgetItem(str(aparat.sifra)))
                    self.tabelaOprema.setItem(brojac, 1, QTableWidgetItem(aparat.naziv))
                    self.tabelaOprema.setItem(brojac, 2, QTableWidgetItem(aparat.marka))
                    brojac += 1

                self.tabelaOprema.setFixedSize(400, 165)
                self.izgled.addWidget(self.tabelaOprema, *pozicija)
            if sadrzaj == '6':
                self.kategorije = QLabel()
                self.kategorije.setWordWrap(True)
                nazivi = []
                for id in self.recept.kategorije:
                    naziv = QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(id)
                    nazivi.append(naziv)
                spojeno = ",".join(nazivi)
                # self.kategorije.setFixedSize(350,50)
                self.kategorije.setText("<b>Kategorije: {0}</b>".format(spojeno))
                self.kategorije.setFont(QFont('Times', 12))
                self.izgled.addWidget(self.kategorije, *pozicija)
            if sadrzaj == '7':
                ocjena = QLabel("<h4>Ocjena :{0}</h4>".format(self.recept.ocena.vrednost))
                ocjena.setAlignment(Qt.AlignCenter)
                ocjena.setFixedSize(350, 30)
                self.izgled.addWidget(ocjena, *pozicija)
            if sadrzaj == "8":
                self.kategorijeNazivi = QApplication.instance().actionManager.receptiMenadzer.vratiNaziveKategorija()
                for kategorija in self.recept.kategorije:
                    self.kategorijeNazivi.remove(
                        QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(kategorija))
                kompleter = QCompleter(self.kategorijeNazivi)
                kompleter.setCaseSensitivity(Qt.CaseInsensitive)
                self.unetaKategorija = QLineEdit()
                self.unetaKategorija.setCompleter(kompleter)
                self.unetaKategorija.setFixedSize(150, 25)
                self.izgled.addWidget(self.unetaKategorija, *pozicija)
            if sadrzaj == "9":
                dugme = QPushButton("Dodaj kategoriju")
                dugme.clicked.connect(self.dodajNovuKategoriju)
                self.izgled.addWidget(dugme, *pozicija)
            if sadrzaj == "10":
                dugme = QPushButton("Azuriraj recept")
                dugme.clicked.connect(self.azurirajRecept)
                self.izgled.addWidget(dugme, *pozicija)
            if sadrzaj == "11":
                dugme = QPushButton("Obrisi recept")
                dugme.clicked.connect(self.obrisiRecept)
                self.izgled.addWidget(dugme, *pozicija)
            if sadrzaj == "12":
                labela = QLabel("<h3>Dodajte kategoriju receptu:</h3>")
                self.izgled.addWidget(labela, *pozicija)
Esempio n. 7
0
class PrikazInformacijaKuvara(QDialog):
    def __init__(self, korisnik, parent):
        super().__init__()
        self.parent = parent
        self.korisnik = korisnik
        self.initUI()
        self.inicijalizujGrid()

        self.exec_()

    def initUI(self):
        self.setWindowTitle("Prikaz profila")
        self.setFixedSize(800, 800)
        image = QImage("..\slike\profil.jpg")
        sImage = image.scaled(self.size())
        palette = QPalette()
        palette.setBrush(QPalette.Window, QBrush(sImage))
        self.setPalette(palette)
        icon = QIcon("..\slike\ikonica.png")
        self.setWindowIcon(icon)
        sadrzaj = ""
        with open("..\slike\stajl.css", "r") as stream:
            sadrzaj = stream.read()
        self.setStyleSheet(sadrzaj)

    def inicijalizujGrid(self):
        grid = QGridLayout()
        self.setLayout(grid)

        matrica = [
            'Ime:',
            '1',
            '',
            'Prezime:',
            '2',
            '',
            'Korisnicko ime:',
            '3',
            '',
            'Azurirajte korisnicko ime:',
            '/',
            '',
            'Mejl:',
            '4',
            '',
            'Datum rodjenja:',
            '5',
            '',
            'Adresa:',
            '6',
            '',
            'Naziv mesta:',
            '7',
            '',
            'Azurirajte naziv mesta:',
            '*',
            '',
            'Postanski broj:',
            '8',
            '',
            'Azurirajte postanski broj:',
            '-',
            '',
            'Pol:',
            '9',
            '',
            'Dugotrajni sastojci:',
            '',
            '',
            '',
            '10',
            '',
            'Dugotrajna oprema:',
            '',
            '',
            '',
            '11',
            '',
            '',
            '12',
            '',
            '',
            '13',
            '',
        ]

        pozicije = [(i, j) for i in range(18) for j in range(3)]

        for pozicija, sadrzaj in zip(pozicije, matrica):

            if sadrzaj == "1":
                labela = QLabel(self.korisnik.ime)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "2":
                labela = QLabel(self.korisnik.prezime)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "3":
                self.kIme = QLabel(self.korisnik.korisnickoIme)
                self.kIme.setFixedSize(170, 20)
                grid.addWidget(self.kIme, *pozicija)
            elif sadrzaj == "4":
                labela = QLabel(self.korisnik.mejl)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "5":
                labela = QLabel(self.korisnik.datumRodjenja)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "6":
                labela = QLabel(self.korisnik.adresa)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "7":
                self.mesto = QLabel(self.korisnik.mesto.nazivMesta)
                self.mesto.setFixedSize(170, 20)
                grid.addWidget(self.mesto, *pozicija)
            elif sadrzaj == "8":
                self.postanskiBr = QLabel(self.korisnik.mesto.postanskiBroj)
                self.postanskiBr.setFixedSize(170, 20)
                grid.addWidget(self.postanskiBr, *pozicija)
            elif sadrzaj == "9":
                if self.korisnik.pol == 0:
                    pol = "Zenski"
                else:
                    pol = "Muski"
                labela = QLabel(pol)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "10":
                sastojci = self.korisnik.dugotrajniSastojci
                sviSastojci = nadjiSastojke(sastojci)
                self.postojeciSastojci = Tabela(len(sviSastojci) + 1, 3)
                self.postojeciSastojci.dodajZaglavlja(
                    ["Sifra", "Naziv sastojka", "Tip kolicine"])
                self.postojeciSastojci.setColumnWidth(0, 120)
                self.postojeciSastojci.setColumnWidth(1, 219)
                self.postojeciSastojci.setColumnWidth(2, 140)
                brojac = 1
                for sastojak in sviSastojci:
                    self.postojeciSastojci.setItem(
                        brojac, 0, QTableWidgetItem(str(sastojak.sifra)))
                    self.postojeciSastojci.setItem(
                        brojac, 1, QTableWidgetItem(sastojak.naziv))
                    self.postojeciSastojci.setItem(
                        brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine)))
                    brojac += 1
                self.postojeciSastojci.setFixedSize(522, 165)
                grid.addWidget(self.postojeciSastojci, *pozicija)
            elif sadrzaj == "11":
                oprema = self.korisnik.oprema
                svaOprema = nadjiOpremu(oprema)
                tabela = Tabela(len(svaOprema) + 1, 3)
                tabela.dodajZaglavlja(["Sifra", "Naziv", "Naziv marke"])
                tabela.setColumnWidth(0, 120)
                tabela.setColumnWidth(1, 219)
                tabela.setColumnWidth(2, 140)

                brojac = 1
                for aparat in svaOprema:
                    tabela.setItem(brojac, 0,
                                   QTableWidgetItem(str(aparat.sifra)))
                    tabela.setItem(brojac, 1, QTableWidgetItem(aparat.naziv))
                    tabela.setItem(brojac, 2, QTableWidgetItem(aparat.marka))
                    brojac += 1

                tabela.setFixedSize(522, 165)
                grid.addWidget(tabela, *pozicija)
            elif sadrzaj == "12":
                dugme = QPushButton("Azuriraj nalog")
                dugme.clicked.connect(self.azurirajNalog)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "13":
                dugme = QPushButton("Obrisi nalog")
                dugme.clicked.connect(self.obrisiNalog)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "/":
                self.novoKIme = QLineEdit()
                self.novoKIme.setFixedWidth(170)
                self.novoKIme.setText(self.korisnik.korisnickoIme)
                grid.addWidget(self.novoKIme, *pozicija)
            elif sadrzaj == "*":
                self.novoMesto = QLineEdit()
                self.novoMesto.setFixedWidth(170)
                self.novoMesto.setText(self.korisnik.mesto.nazivMesta)
                grid.addWidget(self.novoMesto, *pozicija)
            elif sadrzaj == "-":
                self.noviPostanskiBr = QLineEdit()
                self.noviPostanskiBr.setFixedWidth(170)
                self.noviPostanskiBr.setText(self.korisnik.mesto.postanskiBroj)
                grid.addWidget(self.noviPostanskiBr, *pozicija)
            else:
                labela = QLabel(sadrzaj)
                labela.setFixedSize(160, 20)
                grid.addWidget(labela, *pozicija)

    def azurirajNalog(self):
        if self.novoKIme.text() == "" and self.novoMesto.text(
        ) == "" and self.noviPostanskiBr.text() == "":
            ObavestavajucaPoruka("Niste uneli nove podatke.")
        elif QApplication.instance(
        ).actionManager.informacije.provjeriKorisnicko(
                self.novoKIme.text()) == True:
            ObavestavajucaPoruka(
                "Vec postoji korisnik sa unijetim korisnickim imenom")
        else:
            if self.novoKIme.text() != "":
                staroKorisnicko = self.korisnik.korisnickoIme
                self.korisnik.korisnickoIme = self.novoKIme.text()
                self.kIme.setText(self.novoKIme.text())
                self.korisnik.azurirajHtmlDokument(staroKorisnicko)
                # QApplication.instance().actionManager.informacije.azurirajHtmlDokument(self.korisnik, staroKorisnicko)

            if self.novoMesto.text() != "":
                self.korisnik.mesto.nazivMesta = self.novoMesto.text()
                self.mesto.setText(self.novoMesto.text())

            if self.noviPostanskiBr.text() != "":
                self.korisnik.mesto.postanskiBroj = self.noviPostanskiBr.text()
                self.postanskiBr.setText(self.noviPostanskiBr.text())

            QApplication.instance().actionManager.informacije.upisiKorisnika()
            # QApplication.instance().actionManager.informacije.citanjeKorisnika()
            self.parent.refresujStranu()
            # mozda obrisati liniju ispod
            # self.hide()

    def obrisiNalog(self):
        potvrda = QMessageBox
        odgovor = potvrda.question(
            self, '', "Da li ste sigurni da zelite da obrisete nalog?",
            potvrda.Yes | potvrda.No)
        if odgovor == potvrda.Yes:
            QApplication.instance().actionManager.informacije.obrisiKuvara(
                self.korisnik)
            QApplication.instance().actionManager.informacije.upisiKorisnika()
            self.parent.refresujStranu()
            self.hide()
Esempio n. 8
0
    def inicijalizujGrid(self):
        grid = QGridLayout()
        self.setLayout(grid)

        matrica = [
            'Ime:',
            '1',
            '',
            'Prezime:',
            '2',
            '',
            'Korisnicko ime:',
            '3',
            '',
            'Azurirajte korisnicko ime:',
            '/',
            '',
            'Mejl:',
            '4',
            '',
            'Datum rodjenja:',
            '5',
            '',
            'Adresa:',
            '6',
            '',
            'Naziv mesta:',
            '7',
            '',
            'Azurirajte naziv mesta:',
            '*',
            '',
            'Postanski broj:',
            '8',
            '',
            'Azurirajte postanski broj:',
            '-',
            '',
            'Pol:',
            '9',
            '',
            'Dugotrajni sastojci:',
            '',
            '',
            '',
            '10',
            '',
            'Dugotrajna oprema:',
            '',
            '',
            '',
            '11',
            '',
            '',
            '12',
            '',
            '',
            '13',
            '',
        ]

        pozicije = [(i, j) for i in range(18) for j in range(3)]

        for pozicija, sadrzaj in zip(pozicije, matrica):

            if sadrzaj == "1":
                labela = QLabel(self.korisnik.ime)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "2":
                labela = QLabel(self.korisnik.prezime)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "3":
                self.kIme = QLabel(self.korisnik.korisnickoIme)
                self.kIme.setFixedSize(170, 20)
                grid.addWidget(self.kIme, *pozicija)
            elif sadrzaj == "4":
                labela = QLabel(self.korisnik.mejl)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "5":
                labela = QLabel(self.korisnik.datumRodjenja)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "6":
                labela = QLabel(self.korisnik.adresa)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "7":
                self.mesto = QLabel(self.korisnik.mesto.nazivMesta)
                self.mesto.setFixedSize(170, 20)
                grid.addWidget(self.mesto, *pozicija)
            elif sadrzaj == "8":
                self.postanskiBr = QLabel(self.korisnik.mesto.postanskiBroj)
                self.postanskiBr.setFixedSize(170, 20)
                grid.addWidget(self.postanskiBr, *pozicija)
            elif sadrzaj == "9":
                if self.korisnik.pol == 0:
                    pol = "Zenski"
                else:
                    pol = "Muski"
                labela = QLabel(pol)
                labela.setFixedSize(170, 20)
                grid.addWidget(labela, *pozicija)
            elif sadrzaj == "10":
                sastojci = self.korisnik.dugotrajniSastojci
                sviSastojci = nadjiSastojke(sastojci)
                self.postojeciSastojci = Tabela(len(sviSastojci) + 1, 3)
                self.postojeciSastojci.dodajZaglavlja(
                    ["Sifra", "Naziv sastojka", "Tip kolicine"])
                self.postojeciSastojci.setColumnWidth(0, 120)
                self.postojeciSastojci.setColumnWidth(1, 219)
                self.postojeciSastojci.setColumnWidth(2, 140)
                brojac = 1
                for sastojak in sviSastojci:
                    self.postojeciSastojci.setItem(
                        brojac, 0, QTableWidgetItem(str(sastojak.sifra)))
                    self.postojeciSastojci.setItem(
                        brojac, 1, QTableWidgetItem(sastojak.naziv))
                    self.postojeciSastojci.setItem(
                        brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine)))
                    brojac += 1
                self.postojeciSastojci.setFixedSize(522, 165)
                grid.addWidget(self.postojeciSastojci, *pozicija)
            elif sadrzaj == "11":
                oprema = self.korisnik.oprema
                svaOprema = nadjiOpremu(oprema)
                tabela = Tabela(len(svaOprema) + 1, 3)
                tabela.dodajZaglavlja(["Sifra", "Naziv", "Naziv marke"])
                tabela.setColumnWidth(0, 120)
                tabela.setColumnWidth(1, 219)
                tabela.setColumnWidth(2, 140)

                brojac = 1
                for aparat in svaOprema:
                    tabela.setItem(brojac, 0,
                                   QTableWidgetItem(str(aparat.sifra)))
                    tabela.setItem(brojac, 1, QTableWidgetItem(aparat.naziv))
                    tabela.setItem(brojac, 2, QTableWidgetItem(aparat.marka))
                    brojac += 1

                tabela.setFixedSize(522, 165)
                grid.addWidget(tabela, *pozicija)
            elif sadrzaj == "12":
                dugme = QPushButton("Azuriraj nalog")
                dugme.clicked.connect(self.azurirajNalog)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "13":
                dugme = QPushButton("Obrisi nalog")
                dugme.clicked.connect(self.obrisiNalog)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "/":
                self.novoKIme = QLineEdit()
                self.novoKIme.setFixedWidth(170)
                self.novoKIme.setText(self.korisnik.korisnickoIme)
                grid.addWidget(self.novoKIme, *pozicija)
            elif sadrzaj == "*":
                self.novoMesto = QLineEdit()
                self.novoMesto.setFixedWidth(170)
                self.novoMesto.setText(self.korisnik.mesto.nazivMesta)
                grid.addWidget(self.novoMesto, *pozicija)
            elif sadrzaj == "-":
                self.noviPostanskiBr = QLineEdit()
                self.noviPostanskiBr.setFixedWidth(170)
                self.noviPostanskiBr.setText(self.korisnik.mesto.postanskiBroj)
                grid.addWidget(self.noviPostanskiBr, *pozicija)
            else:
                labela = QLabel(sadrzaj)
                labela.setFixedSize(160, 20)
                grid.addWidget(labela, *pozicija)
class ProzorZaDodavanjeOpreme(QDialog):
    def __init__(self):
        super().__init__()
        self.dodatiUTabelu = []
        self.opremaMenadzer = QApplication.instance(
        ).actionManager.opremaMenadzer
        self.initUI()

    def initUI(self):
        """
        Funkcija koja definise izgled prozora za dodavanje opreme prilikom registracije korisnika.
        :return:
        """
        self.setWindowTitle("Aplikacija za kuvare pocetnike")
        ikonica = QIcon('..\slike\ikonica.png')
        self.setWindowIcon(ikonica)
        self.setFixedSize(900, 900)
        image = QImage("..\slike\oprema.jpg")
        sImage = image.scaled(QSize(900, 900))
        palette = QPalette()
        palette.setBrush(QPalette.Window, QBrush(sImage))
        self.setPalette(palette)
        sadrzaj = ""
        with open("..\slike\stajl.css", "r") as stream:
            sadrzaj = stream.read()
        self.setStyleSheet(sadrzaj)

        self.postaviGrid()

        self.exec_()

    def postaviGrid(self):
        """
        Funkcija koja postavlja layout prozora za dodavanje opreme prilikom registracije korisnika.
        :return:
        """
        grid = QGridLayout()
        self.setLayout(grid)

        matrica = [
            '',
            '',
            'Pretrazite tabelu:',
            '',
            '',
            '1',
            '',
            '',
            '*',
            '',
            '',
            '?',
            '',
            '',
            'Dodajte novi aparat:',
            '',
            '',
            'Unesite ime:',
            '',
            '',
            '-',
            '',
            '',
            'Unesite marku:',
            '',
            '',
            '/',
            '',
            '',
            '+',
            '',
            '',
            '!',
            '',
            '',
            '#',
            '',
            '',
            '',
            '',
            '',
            '',
            '',
            '',
            '',
        ]

        pozicije = [(i, j) for i in range(15) for j in range(3)]

        for pozicija, sadrzaj in zip(pozicije, matrica):
            if sadrzaj == "-":
                self.nazivOpreme = QLineEdit()
                self.nazivOpreme.setFixedSize(250, 25)
                grid.addWidget(self.nazivOpreme, *pozicija)
            elif sadrzaj == "*":
                svaOprema = self.opremaMenadzer.svaOprema

                self.postojecaOprema = Tabela(1, 3)
                self.postojecaOprema.dodajZaglavlja(
                    ["Sifra", "Naziv aparata", "Naziv marke"])
                self.postojecaOprema.setColumnWidth(0, 120)
                self.postojecaOprema.setColumnWidth(1, 219)
                self.postojecaOprema.setColumnWidth(2, 140)

                self.popuniTabeluPostojece(svaOprema)

                self.postojecaOprema.setFixedSize(522, 165)
                grid.addWidget(self.postojecaOprema, *pozicija)
            elif sadrzaj == "?":
                dugme = QPushButton("Dodaj aparat")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.dodajIzTabele)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "/":
                self.nazivMarke = QLineEdit()
                self.nazivMarke.setFixedSize(250, 25)
                grid.addWidget(self.nazivMarke, *pozicija)
            elif sadrzaj == "+":
                dugme = QPushButton("Dodaj aparat")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.dodajNoviAparat)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "!":
                self.dodataOprema = Tabela(1, 3)
                self.dodataOprema.setColumnWidth(0, 120)
                self.dodataOprema.setColumnWidth(1, 219)
                self.dodataOprema.setColumnWidth(2, 140)
                self.dodataOprema.setFixedSize(522, 165)
                self.dodataOprema.dodajZaglavlja(
                    ["Sifra", "Naziv aparata", "Naziv marke"])
                grid.addWidget(self.dodataOprema, *pozicija)
            elif sadrzaj == "#":
                dugme = QPushButton("Zavrsi dodavanje")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.zavrsenoDodavanje)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "1":
                self.nazivFilter = QLineEdit()
                self.nazivFilter.textChanged.connect(self.izvrsiPretragu)
                self.nazivFilter.setFixedSize(250, 25)
                self.nazivFilter.setToolTip(
                    "Unesite ime aparata da biste pretrazili tabelu.")
                grid.addWidget(self.nazivFilter, *pozicija)
            else:
                labela = QLabel(sadrzaj)
                labela.setFixedSize(150, 35)
                grid.addWidget(labela, *pozicija)

    def dodajIzTabele(self):
        """
        Funkcija koja se poziva kada korisnik oznaci red u tabeli postojecih aparata i pritisne dugme "Dodaj aparat".
        Aparat koji je oznacen bice sacuvan u listi dodatih aparata.
        :return:
        """
        svaOprema = self.opremaMenadzer.svaOprema
        redovi = self.postojecaOprema.selectionModel().selectedRows()
        brojRedova = self.dodataOprema.rowCount()

        brojac = 0
        for red in redovi:
            if red.row() - 1 < 0:
                self.kreirajDijalogSPorukom(
                    "Ne mozete oznaciti red sa nazivima kolona.")
            else:
                # oprema = svaOprema[red.row() - 1]
                oprema = QApplication.instance(
                ).actionManager.opremaMenadzer.vratiOpremu(
                    self.postojecaOprema.item(red.row(), 0).text())
                if oprema.sifra in self.dodatiUTabelu:
                    ObavestavajucaPoruka("Oznaceni aparat ste vec dodali.")
                else:
                    self.dodataOprema.insertRow(brojRedova + brojac)
                    self.dodatiUTabelu.append(oprema.sifra)
                    self.dodataOprema.setItem(
                        brojRedova + brojac, 0,
                        QTableWidgetItem(str(oprema.sifra)))
                    self.dodataOprema.setItem(brojRedova + brojac, 1,
                                              QTableWidgetItem(oprema.naziv))
                    self.dodataOprema.setItem(brojRedova + brojac, 2,
                                              QTableWidgetItem(oprema.marka))
                    brojac += 1

    def dodajNoviAparat(self):
        """
        Funkcija koja se poziva kada korisnik zeli da unese aparat koji se ne nalazi u tabeli postojecih aparata.
        Kreira se novi objekat, dodaje u listu dodatih aparata i prikazuje u tabeli dodatih aparata.
        :return:
        """
        naziv = self.nazivOpreme.text()
        marka = self.nazivMarke.text()

        oprema = self.opremaMenadzer.kreirajOpremu(naziv, marka)

        if naziv == "" or marka == "":
            ObavestavajucaPoruka("Morate uneti naziv i marku aparata.")
        else:
            if oprema == None:
                ObavestavajucaPoruka("Aparat vec postoji.")
            else:
                brojRedova = self.dodataOprema.rowCount()
                self.dodataOprema.insertRow(brojRedova)
                self.dodatiUTabelu.append(oprema.sifra)
                self.dodataOprema.setItem(brojRedova, 0,
                                          QTableWidgetItem(str(oprema.sifra)))
                self.dodataOprema.setItem(brojRedova, 1,
                                          QTableWidgetItem(oprema.naziv))
                self.dodataOprema.setItem(brojRedova, 2,
                                          QTableWidgetItem(oprema.marka))

    def zavrsenoDodavanje(self):
        """
        Funkcija koja se poziva kada korisnik pritisne dugme 'Zavrsi dodavanje'. Prozor za dodavanje opreme se
        sakriva.
        :return:
        """
        self.hide()
        return self.dodatiUTabelu

    def izvrsiPretragu(self):
        if self.nazivFilter.text() == "":
            self.postojecaOprema.setRowCount(1)
            self.popuniTabeluPostojece(self.opremaMenadzer.svaOprema)
        else:
            self.postojecaOprema.setRowCount(1)
            self.filtrirajTabeluPostojece()

    def popuniTabeluPostojece(self, svaOprema):
        self.postojecaOprema.setColumnWidth(0, 120)
        self.postojecaOprema.setColumnWidth(1, 219)
        self.postojecaOprema.setColumnWidth(2, 140)
        # self.postojecaOprema = Tabela(len(svaOprema) + 1, 3)
        brojac = self.postojecaOprema.rowCount()
        self.postojecaOprema.setRowCount(self.postojecaOprema.rowCount() +
                                         len(svaOprema))

        for aparat in svaOprema:
            self.postojecaOprema.setItem(brojac, 0,
                                         QTableWidgetItem(str(aparat.sifra)))
            self.postojecaOprema.setItem(brojac, 1,
                                         QTableWidgetItem(aparat.naziv))
            self.postojecaOprema.setItem(brojac, 2,
                                         QTableWidgetItem(aparat.marka))
            brojac += 1

    def filtrirajTabeluPostojece(self):
        naziv = self.nazivFilter.text()
        for i in self.opremaMenadzer.svaOprema:
            if i.naziv.upper().startswith(naziv.upper()):
                self.popuniTabeluPostojece([i])
    def postaviGrid(self):
        """
        Funkcija koja postavlja layout prozora za dodavanje opreme prilikom registracije korisnika.
        :return:
        """
        grid = QGridLayout()
        self.setLayout(grid)

        matrica = [
            '',
            '',
            'Pretrazite tabelu:',
            '',
            '',
            '1',
            '',
            '',
            '*',
            '',
            '',
            '?',
            '',
            '',
            'Dodajte novi aparat:',
            '',
            '',
            'Unesite ime:',
            '',
            '',
            '-',
            '',
            '',
            'Unesite marku:',
            '',
            '',
            '/',
            '',
            '',
            '+',
            '',
            '',
            '!',
            '',
            '',
            '#',
            '',
            '',
            '',
            '',
            '',
            '',
            '',
            '',
            '',
        ]

        pozicije = [(i, j) for i in range(15) for j in range(3)]

        for pozicija, sadrzaj in zip(pozicije, matrica):
            if sadrzaj == "-":
                self.nazivOpreme = QLineEdit()
                self.nazivOpreme.setFixedSize(250, 25)
                grid.addWidget(self.nazivOpreme, *pozicija)
            elif sadrzaj == "*":
                svaOprema = self.opremaMenadzer.svaOprema

                self.postojecaOprema = Tabela(1, 3)
                self.postojecaOprema.dodajZaglavlja(
                    ["Sifra", "Naziv aparata", "Naziv marke"])
                self.postojecaOprema.setColumnWidth(0, 120)
                self.postojecaOprema.setColumnWidth(1, 219)
                self.postojecaOprema.setColumnWidth(2, 140)

                self.popuniTabeluPostojece(svaOprema)

                self.postojecaOprema.setFixedSize(522, 165)
                grid.addWidget(self.postojecaOprema, *pozicija)
            elif sadrzaj == "?":
                dugme = QPushButton("Dodaj aparat")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.dodajIzTabele)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "/":
                self.nazivMarke = QLineEdit()
                self.nazivMarke.setFixedSize(250, 25)
                grid.addWidget(self.nazivMarke, *pozicija)
            elif sadrzaj == "+":
                dugme = QPushButton("Dodaj aparat")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.dodajNoviAparat)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "!":
                self.dodataOprema = Tabela(1, 3)
                self.dodataOprema.setColumnWidth(0, 120)
                self.dodataOprema.setColumnWidth(1, 219)
                self.dodataOprema.setColumnWidth(2, 140)
                self.dodataOprema.setFixedSize(522, 165)
                self.dodataOprema.dodajZaglavlja(
                    ["Sifra", "Naziv aparata", "Naziv marke"])
                grid.addWidget(self.dodataOprema, *pozicija)
            elif sadrzaj == "#":
                dugme = QPushButton("Zavrsi dodavanje")
                dugme.setFixedSize(250, 30)
                dugme.clicked.connect(self.zavrsenoDodavanje)
                grid.addWidget(dugme, *pozicija)
            elif sadrzaj == "1":
                self.nazivFilter = QLineEdit()
                self.nazivFilter.textChanged.connect(self.izvrsiPretragu)
                self.nazivFilter.setFixedSize(250, 25)
                self.nazivFilter.setToolTip(
                    "Unesite ime aparata da biste pretrazili tabelu.")
                grid.addWidget(self.nazivFilter, *pozicija)
            else:
                labela = QLabel(sadrzaj)
                labela.setFixedSize(150, 35)
                grid.addWidget(labela, *pozicija)
Esempio n. 11
0
class PraceniKuvari(QDialog):
    def __init__(self, parent):
        super().__init__(parent)

        self.initUI()
        self.setModal(True)
        self.show()

    def initUI(self):
        self.setWindowTitle("Prikaz i uredjivanje pracenih kuvara")
        icon = QIcon("..\slike\ikonica.png")
        self.setWindowIcon(icon)
        sadrzaj = ""
        self.setFixedSize(600, 600)
        image = QImage("..\slike\praceniKuvari.jpg")
        sImage = image.scaled(self.size())
        palette = QPalette()
        palette.setBrush(QPalette.Window, QBrush(sImage))
        self.setPalette(palette)
        with open("..\slike\stajl.css", "r") as stream:
            sadrzaj = stream.read()
        self.setStyleSheet(sadrzaj)
        self.definisiIzgled()

    def definisiIzgled(self):
        self.grid = QGridLayout()
        self.setLayout(self.grid)
        self.kuvarPocetnik = QApplication.instance(
        ).actionManager.prijavljeniKorisnik
        matrica = [
            'Praceni kuvari:',
            '',
            '',
            '',
            '1',
            '',
            '',
            '4',
            '',
            'Dodavanje novog kuvara:',
            '2',
            '',
            '',
            '3',
            '',
        ]

        self.sviKorisnici = []
        for korisnik in QApplication.instance(
        ).actionManager.informacije.sviKuvari:
            if korisnik is not self.kuvarPocetnik:
                self.sviKorisnici.append(korisnik.korisnickoIme)

        pozicije = [(i, j) for i in range(5) for j in range(3)]
        for pozicija, sadrzaj in zip(pozicije, matrica):

            if sadrzaj == "1":
                self.tabela = Tabela(
                    len(self.kuvarPocetnik.praceniKuvari) + 1, 1)
                self.tabela.dodajZaglavlja(["Korisnicko"])
                self.tabela.setColumnWidth(0, 200)

                brojac = 1
                for naziv in self.kuvarPocetnik.praceniKuvari:
                    self.tabela.setItem(brojac, 0, QTableWidgetItem(naziv))
                    brojac += 1
                self.tabela.setFixedSize(200, 160)
                self.grid.addWidget(self.tabela, *pozicija)
            elif sadrzaj == "2":

                kompleter = QCompleter(self.sviKorisnici)
                kompleter.setCaseSensitivity(Qt.CaseInsensitive)
                self.labela = QLineEdit()
                self.labela.setCompleter(kompleter)
                self.labela.setFixedSize(130, 20)
                self.grid.addWidget(self.labela, *pozicija)
            elif sadrzaj == "3":
                self.dugme = QPushButton("Zaprati kuvara")
                self.dugme.setFixedSize(200, 20)
                self.grid.addWidget(self.dugme)
                self.dugme.clicked.connect(self.dodavanjeNovog)
            elif sadrzaj == "4":
                self.brisanje = QPushButton("Optrati kuvara")
                self.brisanje.setFixedSize(200, 20)
                self.grid.addWidget(self.brisanje)
                self.brisanje.clicked.connect(self.otpratiKuvara)
            else:
                labela = QLabel(sadrzaj)
                labela.setFixedSize(200, 20)
                self.grid.addWidget(labela, *pozicija)

    def otpratiKuvara(self):
        selektovaniRedovi = self.tabela.selectionModel().selectedRows()
        for red in selektovaniRedovi:
            self.kuvarPocetnik.praceniKuvari.pop(red.row() - 1)
            QApplication.instance().actionManager.informacije.upisiKorisnika()
            self.refresujTabelu()

    def dodavanjeNovog(self):
        if self.labela.text() not in self.sviKorisnici:
            msg = QMessageBox(self)
            msg.setIcon(QMessageBox.Critical)

            msg.setText("Potrebno je uneti vec postojeceg korisnika!")
            msg.setWindowTitle("Greska")
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec()
            return
        if self.labela.text() in self.kuvarPocetnik.praceniKuvari:
            msg = QMessageBox(self)
            msg.setIcon(QMessageBox.Critical)
            msg.setText("Ne mozete pratiti jednog korisnika dva puta!")
            msg.setWindowTitle("Greska")
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec()
            return

        if (self.labela.text() == ""):
            msg = QMessageBox(self)
            msg.setIcon(QMessageBox.Critical)
            msg.setText("Morate uneti korisnicko ime!")
            msg.setWindowTitle("Greska")
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec()
            return

        self.kuvarPocetnik.praceniKuvari.append(self.labela.text())
        QApplication.instance().actionManager.informacije.upisiKorisnika()
        self.refresujTabelu()

    def refresujTabelu(self):
        self.tabela = Tabela(len(self.kuvarPocetnik.praceniKuvari) + 1, 3)
        self.tabela.dodajZaglavlja(["Korisnicko"])
        self.tabela.setColumnWidth(0, 120)

        brojac = 1
        for naziv in self.kuvarPocetnik.praceniKuvari:
            self.tabela.setItem(brojac, 0, QTableWidgetItem(naziv))

            brojac += 1
        self.tabela.setFixedSize(150, 160)
        self.grid.addWidget(self.tabela, 1, 1)
Esempio n. 12
0
    def definisiIzgled(self):
        self.grid = QGridLayout()
        self.setLayout(self.grid)
        self.kuvarPocetnik = QApplication.instance(
        ).actionManager.prijavljeniKorisnik
        matrica = [
            'Praceni kuvari:',
            '',
            '',
            '',
            '1',
            '',
            '',
            '4',
            '',
            'Dodavanje novog kuvara:',
            '2',
            '',
            '',
            '3',
            '',
        ]

        self.sviKorisnici = []
        for korisnik in QApplication.instance(
        ).actionManager.informacije.sviKuvari:
            if korisnik is not self.kuvarPocetnik:
                self.sviKorisnici.append(korisnik.korisnickoIme)

        pozicije = [(i, j) for i in range(5) for j in range(3)]
        for pozicija, sadrzaj in zip(pozicije, matrica):

            if sadrzaj == "1":
                self.tabela = Tabela(
                    len(self.kuvarPocetnik.praceniKuvari) + 1, 1)
                self.tabela.dodajZaglavlja(["Korisnicko"])
                self.tabela.setColumnWidth(0, 200)

                brojac = 1
                for naziv in self.kuvarPocetnik.praceniKuvari:
                    self.tabela.setItem(brojac, 0, QTableWidgetItem(naziv))
                    brojac += 1
                self.tabela.setFixedSize(200, 160)
                self.grid.addWidget(self.tabela, *pozicija)
            elif sadrzaj == "2":

                kompleter = QCompleter(self.sviKorisnici)
                kompleter.setCaseSensitivity(Qt.CaseInsensitive)
                self.labela = QLineEdit()
                self.labela.setCompleter(kompleter)
                self.labela.setFixedSize(130, 20)
                self.grid.addWidget(self.labela, *pozicija)
            elif sadrzaj == "3":
                self.dugme = QPushButton("Zaprati kuvara")
                self.dugme.setFixedSize(200, 20)
                self.grid.addWidget(self.dugme)
                self.dugme.clicked.connect(self.dodavanjeNovog)
            elif sadrzaj == "4":
                self.brisanje = QPushButton("Optrati kuvara")
                self.brisanje.setFixedSize(200, 20)
                self.grid.addWidget(self.brisanje)
                self.brisanje.clicked.connect(self.otpratiKuvara)
            else:
                labela = QLabel(sadrzaj)
                labela.setFixedSize(200, 20)
                self.grid.addWidget(labela, *pozicija)
Esempio n. 13
0
class PrikazKategorija(QDialog):
    def __init__(self, parent):

        super().__init__(parent)

        self.setWindowTitle("Uredjivanje pracenih kategorija")
        self.initUi()
        self.setModal(True)
        self.show()

    def initUi(self):
        self.setFixedSize(700, 700)
        image = QImage("..\slike\kategorije.jpg")
        sImage = image.scaled(QSize(700, 700))
        palette = QPalette()
        palette.setBrush(QPalette.Window, QBrush(sImage))
        self.setPalette(palette)
        icon = QIcon("..\slike\ikonica.png")
        self.setWindowIcon(icon)
        sadrzaj = ""
        with open("..\slike\stajl.css", "r") as stream:
            sadrzaj = stream.read()
        self.setStyleSheet(sadrzaj)
        self.definisiIzgled()

    def definisiIzgled(self):
        self.grid = QGridLayout()
        self.setLayout(self.grid)
        self.kuvarPocetnik = QApplication.instance(
        ).actionManager.prijavljeniKorisnik
        self.nazivi = []
        for kategorija in self.kuvarPocetnik.praceneKategorije:
            self.nazivi.append(QApplication.instance(
            ).actionManager.receptiMenadzer.vratiNazivKategorije(kategorija))
        matrica = [
            '',
            'Pracene kategorije:',
            '',
            '',
            '1',
            '',
            '',
            '4',
            '',
            '',
            'Dodavanje nove kategorije:',
            '',
            '',
            '2',
            '',
            '',
            '3',
            '',
        ]
        pozicije = [(i, j) for i in range(6) for j in range(3)]
        for pozicija, sadrzaj in zip(pozicije, matrica):

            if sadrzaj == "1":
                self.tabela = Tabela(len(self.nazivi) + 1, 2)
                self.tabela.dodajZaglavlja(["Sifra", "Naziv"])
                self.tabela.setColumnWidth(0, 120)
                self.tabela.setColumnWidth(1, 120)
                brojac = 1
                for naziv in self.nazivi:
                    self.tabela.setItem(
                        brojac, 0,
                        QTableWidgetItem(
                            str(self.kuvarPocetnik.praceneKategorije[brojac -
                                                                     1])))
                    self.tabela.setItem(brojac, 1, QTableWidgetItem(naziv))
                    brojac += 1
                self.tabela.setFixedSize(270, 160)
                self.grid.addWidget(self.tabela, *pozicija)
            elif sadrzaj == "2":
                self.kategorijeNazivi = QApplication.instance(
                ).actionManager.receptiMenadzer.vratiNaziveKategorija()
                kompleter = QCompleter(self.kategorijeNazivi)
                kompleter.setCaseSensitivity(Qt.CaseInsensitive)
                self.labela = QLineEdit()
                self.labela.setCompleter(kompleter)
                self.labela.setFixedSize(180, 20)
                self.grid.addWidget(self.labela, *pozicija)
            elif sadrzaj == "3":
                self.dugme = QPushButton("Dodaj novu kategoriju")
                self.dugme.setFixedSize(200, 20)
                self.grid.addWidget(self.dugme)
                self.dugme.clicked.connect(self.dodavanjeNove)
            elif sadrzaj == "4":
                self.brisanje = QPushButton("Izbrisi kategoriju")
                self.brisanje.setFixedSize(200, 20)
                self.grid.addWidget(self.brisanje)
                self.brisanje.clicked.connect(self.brisanjeKategorije)
            else:
                labela = QLabel(sadrzaj)
                labela.setFixedSize(180, 20)
                self.grid.addWidget(labela, *pozicija)

    def brisanjeKategorije(self):
        selektovaniRedovi = self.tabela.selectionModel().selectedRows()
        for red in selektovaniRedovi:
            self.nazivi.pop(red.row() - 1)
            self.kuvarPocetnik.praceneKategorije.pop(red.row() - 1)
            QApplication.instance().actionManager.informacije.upisiKorisnika()
            self.refresujTabelu()

    def dodavanjeNove(self):

        if self.labela.text().lower() not in self.kategorijeNazivi:
            msg = QMessageBox(self)
            msg.setIcon(QMessageBox.Critical)

            msg.setText("Potrebno je uneti vec postojecu kategoriju!")
            msg.setWindowTitle("Greska")
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec()
            return
        if self.labela.text().lower() in self.nazivi:
            msg = QMessageBox(self)
            msg.setIcon(QMessageBox.Critical)
            msg.setText("Ne mozete pratiti jednu kategoriju dva puta!")
            msg.setWindowTitle("Greska")
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec()
            return

        if (self.labela.text() == ""):
            msg = QMessageBox(self)
            msg.setIcon(QMessageBox.Critical)
            msg.setText("Morate uneti kategoriju!")
            msg.setWindowTitle("Greska")
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec()
            return

        id = QApplication.instance(
        ).actionManager.receptiMenadzer.postojanjeKategorije(
            self.labela.text().lower())
        self.kuvarPocetnik.praceneKategorije.append(id)
        self.nazivi.append(self.labela.text().lower())
        QApplication.instance().actionManager.informacije.upisiKorisnika()
        self.refresujTabelu()

    def refresujTabelu(self):
        self.tabela = Tabela(len(self.nazivi) + 1, 2)
        self.tabela.dodajZaglavlja(["Sifra", "Naziv"])
        self.tabela.setColumnWidth(0, 120)
        self.tabela.setColumnWidth(1, 120)
        brojac = 1
        for naziv in self.nazivi:
            self.tabela.setItem(
                brojac, 0,
                QTableWidgetItem(
                    str(self.kuvarPocetnik.praceneKategorije[brojac - 1])))
            self.tabela.setItem(brojac, 1, QTableWidgetItem(naziv))
            brojac += 1
        self.tabela.setFixedSize(270, 160)
        self.grid.addWidget(self.tabela, 1, 1)
Esempio n. 14
0
    def definisiIzgled(self):
        self.grid = QGridLayout()
        self.setLayout(self.grid)
        self.kuvarPocetnik = QApplication.instance(
        ).actionManager.prijavljeniKorisnik
        self.nazivi = []
        for kategorija in self.kuvarPocetnik.praceneKategorije:
            self.nazivi.append(QApplication.instance(
            ).actionManager.receptiMenadzer.vratiNazivKategorije(kategorija))
        matrica = [
            '',
            'Pracene kategorije:',
            '',
            '',
            '1',
            '',
            '',
            '4',
            '',
            '',
            'Dodavanje nove kategorije:',
            '',
            '',
            '2',
            '',
            '',
            '3',
            '',
        ]
        pozicije = [(i, j) for i in range(6) for j in range(3)]
        for pozicija, sadrzaj in zip(pozicije, matrica):

            if sadrzaj == "1":
                self.tabela = Tabela(len(self.nazivi) + 1, 2)
                self.tabela.dodajZaglavlja(["Sifra", "Naziv"])
                self.tabela.setColumnWidth(0, 120)
                self.tabela.setColumnWidth(1, 120)
                brojac = 1
                for naziv in self.nazivi:
                    self.tabela.setItem(
                        brojac, 0,
                        QTableWidgetItem(
                            str(self.kuvarPocetnik.praceneKategorije[brojac -
                                                                     1])))
                    self.tabela.setItem(brojac, 1, QTableWidgetItem(naziv))
                    brojac += 1
                self.tabela.setFixedSize(270, 160)
                self.grid.addWidget(self.tabela, *pozicija)
            elif sadrzaj == "2":
                self.kategorijeNazivi = QApplication.instance(
                ).actionManager.receptiMenadzer.vratiNaziveKategorija()
                kompleter = QCompleter(self.kategorijeNazivi)
                kompleter.setCaseSensitivity(Qt.CaseInsensitive)
                self.labela = QLineEdit()
                self.labela.setCompleter(kompleter)
                self.labela.setFixedSize(180, 20)
                self.grid.addWidget(self.labela, *pozicija)
            elif sadrzaj == "3":
                self.dugme = QPushButton("Dodaj novu kategoriju")
                self.dugme.setFixedSize(200, 20)
                self.grid.addWidget(self.dugme)
                self.dugme.clicked.connect(self.dodavanjeNove)
            elif sadrzaj == "4":
                self.brisanje = QPushButton("Izbrisi kategoriju")
                self.brisanje.setFixedSize(200, 20)
                self.grid.addWidget(self.brisanje)
                self.brisanje.clicked.connect(self.brisanjeKategorije)
            else:
                labela = QLabel(sadrzaj)
                labela.setFixedSize(180, 20)
                self.grid.addWidget(labela, *pozicija)
Esempio n. 15
0
class SpisakZaKupovinu(QDialog):
    def __init__(self, parent):
        super().__init__(parent)
        self.setModal(True)
        try:
            self.initUI()
        except:
            traceback.print_exc()
        self.show()
        self.exec_()

    def initUI(self):
        self.setWindowTitle("Spisak za kupovinu")
        icon = QIcon("..\slike\ikonica.png")
        self.setWindowIcon(icon)
        sadrzaj = ""
        self.setFixedSize(600, 600)
        image = QImage("..\slike\spisakPozadina.jpg")
        sImage = image.scaled(QSize(600, 600))
        palette = QPalette()
        palette.setBrush(QPalette.Window, QBrush(sImage))
        self.setPalette(palette)
        with open("..\slike\stajl.css", "r") as stream:
            sadrzaj = stream.read()
        self.setStyleSheet(sadrzaj)
        self.definisiIzgled()

    def definisiIzgled(self):
        self.menadzerSastojci = QApplication.instance().actionManager.sastojciMenadzer
        self.menadzerOprema = QApplication.instance().actionManager.opremaMenadzer
        self.grid = QGridLayout()
        self.setLayout(self.grid)
        self.kuvarPocetnik = QApplication.instance().actionManager.prijavljeniKorisnik
        matrica = ['0', '', '',
                   '', '1', '',
                   '2', '', '',
                   '3', '', '',
                   '4', '', ''
                   ]

        self.proizvodi = []
        self.spisak = QApplication.instance().actionManager.spiskoviMenadzer.vratiSpisak(
            self.kuvarPocetnik.spisakZaKupovinu
        )
        for kljuc in self.spisak.sastojci.keys():
            self.proizvodi.append(self.menadzerSastojci.vratiSastojak(kljuc))

        for kljuc in self.spisak.oprema.keys():
            self.proizvodi.append(self.menadzerOprema.vratiOpremu(kljuc))

        pozicije = [(i, j) for i in range(5) for j in range(3)]
        for pozicija, sadrzaj in zip(pozicije, matrica):
            if sadrzaj == "1":
                self.tabela = Tabela(len(self.proizvodi) + 1, 3)
                self.tabela.dodajZaglavlja(["Naziv", "Tip kol./Marka", "Kolicina"])
                self.tabela.setColumnWidth(0, 120)
                self.tabela.setColumnWidth(1, 160)
                self.tabela.setColumnWidth(2, 80)
                brojac = 1
                for proizvod in self.proizvodi:
                    if isinstance(proizvod, Sastojak):

                        self.tabela.setItem(brojac, 0, QTableWidgetItem(
                            str(proizvod.naziv)))
                        self.tabela.setItem(brojac, 1, QTableWidgetItem(
                            str(str(proizvod.tipKolicine))
                        ))
                        self.tabela.setItem(brojac, 2, QTableWidgetItem(
                            str(str(self.spisak.sastojci[str(proizvod.sifra)]))
                        ))
                    else:
                        self.tabela.setItem(brojac, 0, QTableWidgetItem(
                            str(proizvod.naziv)))
                        self.tabela.setItem(brojac, 1, QTableWidgetItem(
                            str(str(proizvod.marka))
                        ))
                        self.tabela.setItem(brojac, 2, QTableWidgetItem(
                            str(str(self.spisak.oprema[str(proizvod.sifra)]))
                        ))
                    brojac += 1
                self.tabela.setFixedSize(385, 400)
                self.grid.addWidget(self.tabela, *pozicija)
            elif sadrzaj == "2":
                self.narucivanje = QPushButton("Naruci sa sajta")
                self.grid.addWidget(self.narucivanje, *pozicija)
            elif sadrzaj == "3":
                self.slanjeEmail = QPushButton("Slanje spiska na email")
                self.grid.addWidget(self.slanjeEmail, *pozicija)
            elif sadrzaj == "4":
                self.stampanje = QPushButton("Stampanje spiska")
                self.grid.addWidget(self.stampanje, *pozicija)
            elif sadrzaj == "0":
                labela = QLabel('<h6>{0}</h6>'.format('Dodati proizvodi u korpu:'))
                labela.setFixedSize(180, 20)
                self.grid.addWidget(labela, *pozicija)
            else:
                labela = QLabel(sadrzaj)
                self.grid.addWidget(labela, *pozicija)
Esempio n. 16
0
    def definisiIzgled(self):
        self.menadzerSastojci = QApplication.instance().actionManager.sastojciMenadzer
        self.menadzerOprema = QApplication.instance().actionManager.opremaMenadzer
        self.grid = QGridLayout()
        self.setLayout(self.grid)
        self.kuvarPocetnik = QApplication.instance().actionManager.prijavljeniKorisnik
        matrica = ['0', '', '',
                   '', '1', '',
                   '2', '', '',
                   '3', '', '',
                   '4', '', ''
                   ]

        self.proizvodi = []
        self.spisak = QApplication.instance().actionManager.spiskoviMenadzer.vratiSpisak(
            self.kuvarPocetnik.spisakZaKupovinu
        )
        for kljuc in self.spisak.sastojci.keys():
            self.proizvodi.append(self.menadzerSastojci.vratiSastojak(kljuc))

        for kljuc in self.spisak.oprema.keys():
            self.proizvodi.append(self.menadzerOprema.vratiOpremu(kljuc))

        pozicije = [(i, j) for i in range(5) for j in range(3)]
        for pozicija, sadrzaj in zip(pozicije, matrica):
            if sadrzaj == "1":
                self.tabela = Tabela(len(self.proizvodi) + 1, 3)
                self.tabela.dodajZaglavlja(["Naziv", "Tip kol./Marka", "Kolicina"])
                self.tabela.setColumnWidth(0, 120)
                self.tabela.setColumnWidth(1, 160)
                self.tabela.setColumnWidth(2, 80)
                brojac = 1
                for proizvod in self.proizvodi:
                    if isinstance(proizvod, Sastojak):

                        self.tabela.setItem(brojac, 0, QTableWidgetItem(
                            str(proizvod.naziv)))
                        self.tabela.setItem(brojac, 1, QTableWidgetItem(
                            str(str(proizvod.tipKolicine))
                        ))
                        self.tabela.setItem(brojac, 2, QTableWidgetItem(
                            str(str(self.spisak.sastojci[str(proizvod.sifra)]))
                        ))
                    else:
                        self.tabela.setItem(brojac, 0, QTableWidgetItem(
                            str(proizvod.naziv)))
                        self.tabela.setItem(brojac, 1, QTableWidgetItem(
                            str(str(proizvod.marka))
                        ))
                        self.tabela.setItem(brojac, 2, QTableWidgetItem(
                            str(str(self.spisak.oprema[str(proizvod.sifra)]))
                        ))
                    brojac += 1
                self.tabela.setFixedSize(385, 400)
                self.grid.addWidget(self.tabela, *pozicija)
            elif sadrzaj == "2":
                self.narucivanje = QPushButton("Naruci sa sajta")
                self.grid.addWidget(self.narucivanje, *pozicija)
            elif sadrzaj == "3":
                self.slanjeEmail = QPushButton("Slanje spiska na email")
                self.grid.addWidget(self.slanjeEmail, *pozicija)
            elif sadrzaj == "4":
                self.stampanje = QPushButton("Stampanje spiska")
                self.grid.addWidget(self.stampanje, *pozicija)
            elif sadrzaj == "0":
                labela = QLabel('<h6>{0}</h6>'.format('Dodati proizvodi u korpu:'))
                labela.setFixedSize(180, 20)
                self.grid.addWidget(labela, *pozicija)
            else:
                labela = QLabel(sadrzaj)
                self.grid.addWidget(labela, *pozicija)