class GroupViewWidget(QDialog, FWidget): def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) vbox = QVBoxLayout() vbox.addWidget(FBoxTitle(u"Ajout d'un nouveau groupe")) self.parent = table_group self.name = LineEdit() formbox = QGridLayout() self.error_field = FLabel(u"") formbox.addWidget(self.error_field, 0, 1) formbox.addWidget(FLabel(u"Nom"), 1, 0) formbox.addWidget(self.name, 1, 1) butt = Button(u"Enregistrer") butt.clicked.connect(self.edit_prod) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox.addWidget(butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) formbox.setColumnStretch(3, 3) formbox.setRowStretch(2, 2) vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def isvalid(self): if unicode(self.name.text()) == "": return False def edit_prod(self): self.error_field.setStyleSheet("") name = unicode(self.name.text()) if name == "": self.error_field.setStyleSheet("font-size:20px; color: red") self.error_field.setText(u"Ce champ est obligatoire.") return False group = Group() try: group.name = name group.save() self.cancel() self.parent.table_group.refresh_() except sqlite3.IntegrityError: self.error_field.setStyleSheet("font-size:20px; color: red") self.error_field.setText(u"%s existe déjà" % name)
class HomeViewWidget(FWidget): """ Shows the home page """ def __init__(self, parent=0, *args, **kwargs): super(HomeViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.root_permission = [u"admin", u"superuser"] blanck = 3 * " " self.parentWidget().setWindowTitle(Config.APP_NAME + blanck + "MENU GENERAL") self.title = FPageTitle(u"{} MENU GENERAL {}".format(blanck, blanck)) self.title.setStyleSheet( "background: url(%s) no-repeat scroll 20px 50px #CCCCCC;" "border-radius: 14px 14px 4px 4px;" "font: 15pt 'URW Bookman L';" % Config.APP_LOGO) self.consultation = Button_menu(_("Consultation")) self.consultation.clicked.connect(self.goto_consultation) self.consultation.setIcon( QIcon.fromTheme('save', QIcon(u"{}dashboard.png".format( Config.img_media)))) self.invoice = Button_menu(_("Facturation")) # Affiche sur le commentaire sur le status bar # invoice.setStatusTip("hhhhhh") self.invoice.setIcon( QIcon.fromTheme('save', QIcon(u"{}invoice.png".format(Config.img_media)))) self.invoice.clicked.connect(self.goto_invoice) # self.admin = Button_menu(_("Administration")) # self.admin.clicked.connect(self.goto_admin) # self.admin.setIcon(QIcon.fromTheme('save', QIcon(u"{}admin.png".format(Config.img_media)))) self.report = Button_menu(_("Rapports d'achats")) self.report.clicked.connect(self.goto_buy) self.report.setIcon( QIcon.fromTheme('save', QIcon(u"{}buy.png".format(Config.img_media)))) self.label = FLabel(self) self.label.setStyleSheet( "background: url('{}center.png') no-repeat scroll 0 0;" "height: 50px;width:50px; margin: 0; padding: 0;".format( Config.img_media)) # editbox.setColumnStretch(50, 2) ########### Mstock ############ self.state = Button_menu(_(u"État des stocks")) self.state.clicked.connect(self.goto_state) self.state.setIcon( QIcon.fromTheme('save', QIcon(u"{}state.png".format(Config.img_media)))) self.output = Button_menu(_("Sortie")) # Affiche sur le commentaire sur le status bar # self.output.setStatusTip("hhhhhh") self.output.setIcon( QIcon.fromTheme('save', QIcon(u"{}out.png".format(Config.img_media)))) self.output.clicked.connect(self.goto_output) self.order = Button_menu(_(u"Faire les commandes")) self.order.clicked.connect(self.goto_order) self.order.setIcon( QIcon.fromTheme('save', QIcon(u"{}order.png".format(Config.img_media)))) self.inputs = Button_menu(_(u"Entrée")) self.inputs.clicked.connect(self.goto_inputs) self.inputs.setIcon( QIcon.fromTheme('save', QIcon(u"{}in.png".format(Config.img_media)))) vbox = QHBoxLayout(self) vbox.addWidget(self.title) # vbox.addLayout(editbox) # if Owner.get(islog=True).login_count > Config.tolerance: # if not is_valide_mac(Config().license): # self.createErroMsGroupBox() # vbox.addWidget(self.chow_ms_err) # self.setLayout(vbox) # return if Config.APP_NAME == Config.M_GESTION: self.createMenuMStockGroupBox() vbox.addWidget(self.mstockgbox) self.setLayout(vbox) if Config.APP_NAME == Config.B_GESTION: self.createMenuBStockGroupBox() vbox.addWidget(self.bstockgbox) self.setLayout(vbox) def createErroMsGroupBox(self): self.chow_ms_err = QGroupBox() ms_err = PyTextViewer("""<h3>Vous n'avez pas le droit d'utiliser ce logiciel sur cette machine, veuillez me contacté </h3> <ul><li><b>Tel:</b> {phone}</li> <li><b>{adress}</b></li><li><b>E-mail:</b> {email}</li></ul></br></br>{mac} """.format(email=Config.EMAIL_AUT, adress=Config.ADRESS_AUT, phone=Config.TEL_AUT, mac=get_mac())) gridbox = QGridLayout() gridbox.addWidget(FPageTitle(_("Erreur de permission")), 0, 2) gridbox.addWidget(ms_err, 1, 2) self.chow_ms_err.setLayout(gridbox) def createMenuMStockGroupBox(self): self.mstockgbox = QGroupBox() editbox = QGridLayout() editbox.addWidget(self.state, 0, 1, 1, 1) editbox.addWidget(self.inputs, 1, 0, 1, 1) editbox.addWidget(self.label, 1, 1, 1, 1) editbox.addWidget(self.output, 1, 2, 1, 1) editbox.addWidget(self.order, 2, 1, 1, 1) self.mstockgbox.setLayout(editbox) def createMenuBStockGroupBox(self): self.bstockgbox = QGroupBox() editbox = QGridLayout() editbox.addWidget(self.consultation, 0, 1, 1, 1) editbox.addWidget(self.invoice, 1, 0, 1, 1) editbox.addWidget(self.label, 1, 1, 1, 1) editbox.addWidget(self.report, 2, 1, 1, 1) # editbox.addWidget(self.admin, 1, 2, 1, 1) self.bstockgbox.setLayout(editbox) def check_log(self, page, permiss=None): if not Config.LOGIN: self.parent.active_menu_ad() self.change_main_context(page) SystemTrayIcon((_(u"Avertissement de Securité"), "({}) Il est vivement souhaité de securiser son \ application".format(Config.APP_NAME)), parent=self) else: try: owner = Owner.get(islog=True) self.parent.active_menu_ad( ) if owner.group in self.root_permission else self.parent.active_menu( ) except OwnerDoesNotExist: return False def goto_consultation(self): self.check_log(DashbordViewWidget, permiss=self.root_permission) def goto_invoice(self): self.root_permission.append("user") self.check_log(InvoiceViewWidget, permiss=self.root_permission) # def goto_admin(self): # self.check_log(AdminViewWidget, permiss=self.root_permission) def goto_buy(self): self.check_log(BuyViewWidget, permiss=self.root_permission) def goto_state(self): self.check_log(StateStockViewWidget, permiss=self.root_permission) def goto_output(self): self.root_permission.append("user") self.check_log(product_outViewWidget, permiss=self.root_permission) def goto_order(self): self.check_log(OrderViewWidget, permiss=self.root_permission) def goto_inputs(self): self.check_log(InViewWidget, permiss=self.root_permission)
class HomeViewWidget(FWidget): """ Shows the home page """ def __init__(self, parent=0, *args, **kwargs): super(HomeViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.parentWidget().setWindowTitle(u"Bienvenu sur transfert Wari") self.title = FPageTitle(u"Tranfert") vbox = QVBoxLayout(self) vbox.addWidget(self.title) self.sttg = SettingsAdmin().select().where(SettingsAdmin.id == 1).get() if self.sttg.can_use: self.createHomeGroupBox() vbox.addWidget(self.homegbox) else: self.activationGroupBox() vbox.addWidget(self.topLeftGroupBoxBtt) self.setLayout(vbox) def createHomeGroupBox(self): self.homegbox = QGroupBox() self.table = OperationTableWidget(parent=self) table_box = QVBoxLayout() self.title_table = FPageTitle(u"Historique des transferts") table_box.addWidget(self.title_table) table_box.addWidget(self.table) # form transfer self.number = LineEdit() self.number.setInputMask("D9.99.99.99") self.number.setAlignment(Qt.AlignCenter) self.number.setFont(QFont("Arial", 17)) self.number.setToolTip(u"""Taper le nom ou le numéro de téléphone du beneficiare""") self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") self.password_field = EnterTabbedLineEdit() self.password_field.setFont(QFont("Arial", 15)) self.password_field.setEchoMode(LineEdit.Password) self.password_field.setToolTip(u"Taper le code orange money") self.msg_field = FLabel("") butt = Button(u"Envoyer") butt.clicked.connect(self.get_or_creat_nbr) formbox = QGridLayout() formbox.addWidget(FLabel(u"Numéro"), 0, 0) formbox.addWidget(self.number, 1, 0) formbox.addWidget(FLabel(u"Montant"), 0, 1) formbox.addWidget(self.amount, 1, 1) formbox.addWidget(FLabel(u"code"), 0, 2) formbox.addWidget(self.password_field, 1, 2) formbox.addWidget(self.msg_field, 0, 5) formbox.addWidget(butt, 1, 4) formbox.setColumnStretch(5, 3) transfer_box = QVBoxLayout() # formbox.setSizeConstraint(QLayout.SetFixedSize) transfer_box.addWidget(self.title) transfer_box.addLayout(formbox) transfer_box.addLayout(table_box) # self.setLayout(transfer_box) self.homegbox.setLayout(transfer_box) def activationGroupBox(self): self.topLeftGroupBoxBtt = QGroupBox(self.tr("Nouvelle license")) self.setWindowTitle(u"License") self.parentWidget().setWindowTitle(u"Activation de la license") self.code_field = PyTextViewer( u"""Vous avez besoin du code ci desous pour l'activation:<hr> <b>{code}</b><hr> <h4>Contacts:</h4>{contact}""". format(code=SettingsAdmin().select().get().clean_mac, contact=Constants.TEL_AUT)) self.name_field = LineEdit() self.license_field = QTextEdit() self.pixmap = QPixmap("") self.image = FLabel(self) self.image.setPixmap(self.pixmap) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.add_lience) editbox = QGridLayout() editbox.addWidget(FLabel(u"Nom: "), 0, 0) editbox.addWidget(self.name_field, 0, 1) editbox.addWidget(FLabel(u"License: "), 1, 0) editbox.addWidget(self.license_field, 1, 1) editbox.addWidget(self.code_field, 1, 2) editbox.addWidget(self.image, 5, 1) editbox.addWidget(butt, 6, 1) self.topLeftGroupBoxBtt.setLayout(editbox) def get_or_creat_nbr(self): ''' add operation ''' if not self.is_complete(): return number = unicode(self.number.text().replace('.', '')) amount = unicode(self.amount.text()) Contact.get_or_create(number) data = { "phone_num": [ number, ], "amount": amount, "code": unicode(self.password_field.text()) } # print(data) # multiple_sender(data) self.number.clear() self.amount.clear() self.password_field.clear() self.table.refresh_() self.msg_field.setText( u"Transfert vers ({}) a été effectué.".format(number)) self.msg_field.setStyleSheet("color: green") def is_complete(self): self.amount.setStyleSheet("") self.password_field.setStyleSheet("") if unicode(self.amount.text()) == "": self.amount.setStyleSheet("font-size:20px; color: red") self.amount.setText(u"Ce champ est obligatoire.") return False if unicode(self.password_field.text()) == "": self.password_field.setStyleSheet("font-size:20px; color: red") self.password_field.setText(u"Ce champ est obligatoire.") return False return True def check_license(self, license): self.flog = False if (SettingsAdmin().is_valide_mac(license)): self.pixmap = QPixmap(u"{}accept.png".format(Constants.img_cmedia)) self.image.setToolTip("License correct") self.flog = True else: self.pixmap = QPixmap(u"{}decline.png".format( Constants.img_cmedia)) self.image.setToolTip("License incorrect") self.image.setPixmap(self.pixmap) def add_lience(self): """ add User """ name = unicode(self.name_field.text()).strip() license = unicode(self.license_field.toPlainText()) self.check_license(license) if self.flog: sttg = self.sttg sttg.user = name sttg.license = license sttg.save() raise_success( u"Confirmation", u"""La license (<b>{}</b>) à éte bien enregistré pour cette machine.\n Elle doit être bien gardé""".format(license)) self.goto_archi()
class ContactNewViewWidget(QDialog, FWidget): def __init__(self, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) vbox = QVBoxLayout() vbox.addWidget(FBoxTitle(u"<h3>Ajout de contact </h3>")) self.combo_grp = QComboBox() groups = Group() groups.name = "Aucun" self.list_grp = Group.all() self.list_grp.append(groups) self.list_grp.reverse() for index in self.list_grp: sentence = u"%(name)s" % {'name': index.name} self.combo_grp.addItem(sentence) self.full_name = LineEdit() self.msg_e_or_c = FLabel("") self.full_name.setFont(QFont("Arial", 16)) self.phone_number = IntLineEdit() self.phone_number.setInputMask("D9.99.99.99") self.phone_number.setAlignment(Qt.AlignCenter) self.phone_number.setFont(QFont("Arial", 16)) send_butt = Button(u"Enregistrer") send_butt.clicked.connect(self.save_form) cancel_but = Button(u"Fermer") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Groupes:"), 0, 0) formbox.addWidget(self.combo_grp, 1, 0) formbox.addWidget(FLabel(u"Nom complèt: "), 0, 1) formbox.addWidget(self.full_name, 1, 1) formbox.addWidget(FLabel(u"Numéro: "), 0, 2) formbox.addWidget(self.phone_number, 1, 2) formbox.addWidget(send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) formbox.addWidget(self.msg_e_or_c, 3, 0, 3, 2) vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def iscomplet(self): self.phone_number.setStyleSheet("") self.msg_e_or_c.setText("") self.msg_e_or_c.setStyleSheet("") try: int(self.phone_number.text().replace('.', '')) except: self.phone_number.setStyleSheet("border-bottom: 3px solid red;" "background-color:#AFAFAF;") self.phone_number.setToolTip(u"Ce champ est obligatoire.") return False return True def save_form(self): if not self.iscomplet(): return full_name = unicode(self.full_name.text()) phone_number = int(self.phone_number.text().replace('.', '')) try: Contact(number=phone_number, name=full_name).save() except: self.msg_e_or_c.setText(u"Ce numéro existe déjà") self.msg_e_or_c.setStyleSheet("color: red") return grp = unicode(self.list_grp[self.combo_grp.currentIndex()]) if not grp == "Aucun": grp = Group.select().where(Group.name == grp).get() contact = Contact.select().where(Contact.number == phone_number).get() ContactGroup(group=grp.id, contact=contact).save() self.full_name.setText("") self.phone_number.setText("") self.msg_e_or_c.setText(u"Le numéro (<b>{}</b>) à éte bien enregistré" .format(phone_number))
class ContactNewViewWidget(QDialog, FWidget): def __init__(self, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) vbox = QVBoxLayout() vbox.addWidget(FBoxTitle(u"<h3>Ajout de contact </h3>")) self.combo_grp = QComboBox() groups = Group() groups.name = "Aucun" self.list_grp = Group.all() self.list_grp.append(groups) self.list_grp.reverse() for index in self.list_grp: sentence = u"%(name)s" % {'name': index.name} self.combo_grp.addItem(sentence) self.full_name = LineEdit() self.msg_e_or_c = FLabel("") self.full_name.setFont(QFont("Arial", 16)) self.phone_number = IntLineEdit() self.phone_number.setInputMask("D9.99.99.99") self.phone_number.setAlignment(Qt.AlignCenter) self.phone_number.setFont(QFont("Arial", 16)) send_butt = Button(u"Enregistrer") send_butt.clicked.connect(self.save_form) cancel_but = Button(u"Fermer") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Groupes:"), 0, 0) formbox.addWidget(self.combo_grp, 1, 0) formbox.addWidget(FLabel(u"Nom complèt: "), 0, 1) formbox.addWidget(self.full_name, 1, 1) formbox.addWidget(FLabel(u"Numéro: "), 0, 2) formbox.addWidget(self.phone_number, 1, 2) formbox.addWidget(send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) formbox.addWidget(self.msg_e_or_c, 3, 0, 3, 2) vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def iscomplet(self): self.phone_number.setStyleSheet("") self.msg_e_or_c.setText("") self.msg_e_or_c.setStyleSheet("") try: int(self.phone_number.text().replace('.', '')) except: self.phone_number.setStyleSheet("border-bottom: 3px solid red;" "background-color:#AFAFAF;") self.phone_number.setToolTip(u"Ce champ est obligatoire.") return False return True def save_form(self): if not self.iscomplet(): return full_name = unicode(self.full_name.text()) phone_number = int(self.phone_number.text().replace('.', '')) try: Contact(number=phone_number, name=full_name).save() except: self.msg_e_or_c.setText(u"Ce numéro existe déjà") self.msg_e_or_c.setStyleSheet("color: red") return grp = unicode(self.list_grp[self.combo_grp.currentIndex()]) if not grp == "Aucun": grp = Group.select().where(Group.name == grp).get() contact = Contact.select().where( Contact.number == phone_number).get() ContactGroup(group=grp.id, contact=contact).save() self.full_name.setText("") self.phone_number.setText("") self.msg_e_or_c.setText( u"Le numéro (<b>{}</b>) à éte bien enregistré".format( phone_number))
class HomeViewWidget(FWidget): """ Shows the home page """ def __init__(self, parent=0, *args, **kwargs): super(HomeViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.parentWidget().setWindowTitle(u"Bienvenu sur transfert Wari") self.title = FPageTitle(u"Tranfert") vbox = QVBoxLayout(self) vbox.addWidget(self.title) self.sttg = SettingsAdmin().select().where(SettingsAdmin.id == 1).get() if self.sttg.can_use: self.createHomeGroupBox() vbox.addWidget(self.homegbox) else: self.activationGroupBox() vbox.addWidget(self.topLeftGroupBoxBtt) self.setLayout(vbox) def createHomeGroupBox(self): self.homegbox = QGroupBox() self.table = OperationTableWidget(parent=self) table_box = QVBoxLayout() self.title_table = FPageTitle(u"Historique des transferts") table_box.addWidget(self.title_table) table_box.addWidget(self.table) # form transfer self.number = LineEdit() self.number.setInputMask("D9.99.99.99") self.number.setAlignment(Qt.AlignCenter) self.number.setFont(QFont("Arial", 17)) self.number.setToolTip(u"""Taper le nom ou le numéro de téléphone du beneficiare""") self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") self.password_field = EnterTabbedLineEdit() self.password_field.setFont(QFont("Arial", 15)) self.password_field.setEchoMode(LineEdit.Password) self.password_field.setToolTip(u"Taper le code orange money") self.msg_field = FLabel("") butt = Button(u"Envoyer") butt.clicked.connect(self.get_or_creat_nbr) formbox = QGridLayout() formbox.addWidget(FLabel(u"Numéro"), 0, 0) formbox.addWidget(self.number, 1, 0) formbox.addWidget(FLabel(u"Montant"), 0, 1) formbox.addWidget(self.amount, 1, 1) formbox.addWidget(FLabel(u"code"), 0, 2) formbox.addWidget(self.password_field, 1, 2) formbox.addWidget(self.msg_field, 0, 5) formbox.addWidget(butt, 1, 4) formbox.setColumnStretch(5, 3) transfer_box = QVBoxLayout() # formbox.setSizeConstraint(QLayout.SetFixedSize) transfer_box.addWidget(self.title) transfer_box.addLayout(formbox) transfer_box.addLayout(table_box) # self.setLayout(transfer_box) self.homegbox.setLayout(transfer_box) def activationGroupBox(self): self.topLeftGroupBoxBtt = QGroupBox(self.tr("Nouvelle license")) self.setWindowTitle(u"License") self.parentWidget().setWindowTitle(u"Activation de la license") self.code_field = PyTextViewer(u"""Vous avez besoin du code ci desous pour l'activation:<hr> <b>{code}</b><hr> <h4>Contacts:</h4>{contact}""" .format(code=SettingsAdmin().select().get().clean_mac, contact=Constants.TEL_AUT)) self.name_field = LineEdit() self.license_field = QTextEdit() self.pixmap = QPixmap("") self.image = FLabel(self) self.image.setPixmap(self.pixmap) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.add_lience) editbox = QGridLayout() editbox.addWidget(FLabel(u"Nom: "), 0, 0) editbox.addWidget(self.name_field, 0, 1) editbox.addWidget(FLabel(u"License: "), 1, 0) editbox.addWidget(self.license_field, 1, 1) editbox.addWidget(self.code_field, 1, 2) editbox.addWidget(self.image, 5, 1) editbox.addWidget(butt, 6, 1) self.topLeftGroupBoxBtt.setLayout(editbox) def get_or_creat_nbr(self): ''' add operation ''' if not self.is_complete(): return number = unicode(self.number.text().replace('.', '')) amount = unicode(self.amount.text()) Contact.get_or_create(number) data = {"phone_num": [number, ], "amount": amount, "code": unicode(self.password_field.text())} # print(data) # multiple_sender(data) self.number.clear() self.amount.clear() self.password_field.clear() self.table.refresh_() self.msg_field.setText( u"Transfert vers ({}) a été effectué.".format(number)) self.msg_field.setStyleSheet("color: green") def is_complete(self): self.amount.setStyleSheet("") self.password_field.setStyleSheet("") if unicode(self.amount.text()) == "": self.amount.setStyleSheet("font-size:20px; color: red") self.amount.setText(u"Ce champ est obligatoire.") return False if unicode(self.password_field.text()) == "": self.password_field.setStyleSheet("font-size:20px; color: red") self.password_field.setText(u"Ce champ est obligatoire.") return False return True def check_license(self, license): self.flog = False if (SettingsAdmin().is_valide_mac(license)): self.pixmap = QPixmap(u"{}accept.png".format(Constants.img_cmedia)) self.image.setToolTip("License correct") self.flog = True else: self.pixmap = QPixmap( u"{}decline.png".format(Constants.img_cmedia)) self.image.setToolTip("License incorrect") self.image.setPixmap(self.pixmap) def add_lience(self): """ add User """ name = unicode(self.name_field.text()).strip() license = unicode(self.license_field.toPlainText()) self.check_license(license) if self.flog: sttg = self.sttg sttg.user = name sttg.license = license sttg.save() raise_success(u"Confirmation", u"""La license (<b>{}</b>) à éte bien enregistré pour cette machine.\n Elle doit être bien gardé""".format(license)) self.goto_archi()
class HomeViewWidget(FWidget): """ Shows the home page """ def __init__(self, parent=0, *args, **kwargs): super(HomeViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.root_permission = ["admin", "superuser"] blanck = 3 * " " self.parentWidget().setWindowTitle(Config.APP_NAME + blanck + "MENU GENERAL") self.title = FPageTitle("{} MENU GENERAL {}".format(blanck, blanck)) self.title.setStyleSheet( "background: url(%s) no-repeat scroll 20px 50px #CCCCCC;" "border-radius: 14px 14px 4px 4px;" "font: 15pt 'URW Bookman L';" % Config.APP_LOGO ) self.consultation = Button_menu(_("Consultation")) self.consultation.clicked.connect(self.goto_consultation) self.consultation.setIcon(QIcon.fromTheme("save", QIcon("{}dashboard.png".format(Config.img_media)))) self.invoice = Button_menu(_("Facturation")) # Affiche sur le commentaire sur le status bar # invoice.setStatusTip("hhhhhh") self.invoice.setIcon(QIcon.fromTheme("save", QIcon("{}invoice.png".format(Config.img_media)))) self.invoice.clicked.connect(self.goto_invoice) # self.admin = Button_menu(_("Administration")) # self.admin.clicked.connect(self.goto_admin) # self.admin.setIcon(QIcon.fromTheme('save', QIcon(u"{}admin.png".format(Config.img_media)))) self.report = Button_menu(_("Rapports d'achats")) self.report.clicked.connect(self.goto_buy) self.report.setIcon(QIcon.fromTheme("save", QIcon("{}buy.png".format(Config.img_media)))) self.label = FLabel(self) self.label.setStyleSheet( "background: url('{}center.png') no-repeat scroll 0 0;" "height: 50px;width:50px; margin: 0; padding: 0;".format(Config.img_media) ) # editbox.setColumnStretch(50, 2) ########### Mstock ############ self.state = Button_menu(_("État des stocks")) self.state.clicked.connect(self.goto_state) self.state.setIcon(QIcon.fromTheme("save", QIcon("{}state.png".format(Config.img_media)))) self.output = Button_menu(_("Sortie")) # Affiche sur le commentaire sur le status bar # self.output.setStatusTip("hhhhhh") self.output.setIcon(QIcon.fromTheme("save", QIcon("{}out.png".format(Config.img_media)))) self.output.clicked.connect(self.goto_output) self.order = Button_menu(_("Faire les commandes")) self.order.clicked.connect(self.goto_order) self.order.setIcon(QIcon.fromTheme("save", QIcon("{}order.png".format(Config.img_media)))) self.inputs = Button_menu(_("Entrée")) self.inputs.clicked.connect(self.goto_inputs) self.inputs.setIcon(QIcon.fromTheme("save", QIcon("{}in.png".format(Config.img_media)))) vbox = QHBoxLayout(self) vbox.addWidget(self.title) # vbox.addLayout(editbox) # if Owner.get(islog=True).login_count > Config.tolerance: # if not is_valide_mac(Config().license): # self.createErroMsGroupBox() # vbox.addWidget(self.chow_ms_err) # self.setLayout(vbox) # return if Config.APP_NAME == Config.M_GESTION: self.createMenuMStockGroupBox() vbox.addWidget(self.mstockgbox) self.setLayout(vbox) if Config.APP_NAME == Config.B_GESTION: self.createMenuBStockGroupBox() vbox.addWidget(self.bstockgbox) self.setLayout(vbox) def createErroMsGroupBox(self): self.chow_ms_err = QGroupBox() ms_err = PyTextViewer( "<h3>Vous n'avez pas le droit d'utiliser ce \ logiciel sur cette machine, veuillez me contacté \ </h3> <ul><li><b>Tel:</b> {phone}</li>\ <li><b>{adress}</b></li><li><b>E-mail:</b> \ {email}</li></ul></br></br>{mac} \ ".format( email=Config.EMAIL_AUT, adress=Config.ADRESS_AUT, phone=Config.TEL_AUT, mac=get_mac().replace(":", ":") ) ) gridbox = QGridLayout() gridbox.addWidget(FPageTitle(_("Erreur de permission")), 0, 2) gridbox.addWidget(ms_err, 1, 2) self.chow_ms_err.setLayout(gridbox) def createMenuMStockGroupBox(self): self.mstockgbox = QGroupBox() editbox = QGridLayout() editbox.addWidget(self.state, 0, 1, 1, 1) editbox.addWidget(self.inputs, 1, 0, 1, 1) editbox.addWidget(self.label, 1, 1, 1, 1) editbox.addWidget(self.output, 1, 2, 1, 1) editbox.addWidget(self.order, 2, 1, 1, 1) self.mstockgbox.setLayout(editbox) def createMenuBStockGroupBox(self): self.bstockgbox = QGroupBox() editbox = QGridLayout() editbox.addWidget(self.consultation, 0, 1, 1, 1) editbox.addWidget(self.invoice, 1, 0, 1, 1) editbox.addWidget(self.label, 1, 1, 1, 1) editbox.addWidget(self.report, 2, 1, 1, 1) # editbox.addWidget(self.admin, 1, 2, 1, 1) self.bstockgbox.setLayout(editbox) def check_log(self, page, permiss=None): if not Config.LOGIN: self.parent.active_menu_ad() self.change_main_context(page) SystemTrayIcon( ( _("Avertissement de Securité"), "({}) Il est vivement souhaité de securiser son \ application".format( Config.APP_NAME ), ), parent=self, ) else: try: owner = Owner.get(islog=True) self.parent.active_menu_ad() if owner.group in self.root_permission else self.parent.active_menu() except OwnerDoesNotExist: return False def goto_consultation(self): self.check_log(DashbordViewWidget, permiss=self.root_permission) def goto_invoice(self): self.root_permission.append("user") self.check_log(InvoiceViewWidget, permiss=self.root_permission) # def goto_admin(self): # self.check_log(AdminViewWidget, permiss=self.root_permission) def goto_buy(self): self.check_log(BuyViewWidget, permiss=self.root_permission) def goto_state(self): self.check_log(StateStockViewWidget, permiss=self.root_permission) def goto_output(self): self.root_permission.append("user") self.check_log(product_outViewWidget, permiss=self.root_permission) def goto_order(self): self.check_log(OrderViewWidget, permiss=self.root_permission) def goto_inputs(self): self.check_log(InViewWidget, permiss=self.root_permission)