def __init__(self, defered, automatique, parent, periode, historique,
                 grilles):
        QtGui.QDialog.__init__(self, parent)

        self._defered = defered
        self._automatique = automatique
        self._grilles = grilles
        self._historique = GuiHistorique(self,
                                         historique,
                                         size=(HISTO_WIDTH, 500))

        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)

        # period and history button
        wperiod = WPeriod(period=periode,
                          ecran_historique=self._historique,
                          parent=self)
        layout.addWidget(wperiod)

        explanation = WExplication(
            parent=self,
            text=texts_PGGS.get_text_explanation_grilles(),
            size=(600, 100))
        layout.addWidget(explanation)

        self._countdown = WCompterebours(self,
                                         temps=pms.TIME_TO_FILL_GRILLES,
                                         actionfin=self._accept)
        layout.addWidget(self._countdown)

        grid_layout = QtGui.QGridLayout()
        layout.addLayout(grid_layout)

        self._widgets_grilles = list()
        current_line = 0
        for i, g in enumerate(self._grilles):
            self._widgets_grilles.append(WGrid(g, self._automatique))
            grid_layout.addWidget(self._widgets_grilles[-1], current_line,
                                  i - current_line * pms.NB_GRILLES_PER_LINE)
            if i > 0 and (i + 1) % pms.NB_GRILLES_PER_LINE == 0:
                current_line += 1

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        buttons.accepted.connect(self._accept)
        layout.addWidget(buttons)

        self.adjustSize()
        self.setFixedSize(self.size())
        self.setWindowTitle(trans_PGGS(u"Tasks"))
    def __init__(self, defered, automatique, parent, periode, historique,
                 max_decision):
        super(GuiDecision, self).__init__(parent)

        # variables
        self._defered = defered
        self._automatique = automatique
        self._historique = GuiHistorique(self,
                                         historique,
                                         size=(HISTO_WIDTH, 500))
        self._max_decision = max_decision

        layout = QtGui.QVBoxLayout(self)

        # period and history button
        wperiod = WPeriod(period=periode,
                          ecran_historique=self._historique,
                          parent=self)
        layout.addWidget(wperiod)

        wexplanation = WExplication(text=texts_PGGS.get_text_explanation(),
                                    parent=self,
                                    size=(500, 60))
        layout.addWidget(wexplanation)

        self._wcontrib = WSpinbox(minimum=0,
                                  maximum=self._max_decision,
                                  automatique=self._automatique,
                                  parent=self,
                                  label=trans_PGGS(
                                      u"How much do you invest in "
                                      u"the public account?"))
        layout.addWidget(self._wcontrib)

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        buttons.accepted.connect(self._accept)
        layout.addWidget(buttons)

        self.setWindowTitle(le2mtrans(u"Decision"))
        self.adjustSize()
        self.setFixedSize(self.size())

        if self._automatique:
            self._timer_automatique = QtCore.QTimer()
            self._timer_automatique.timeout.connect(
                buttons.button(QtGui.QDialogButtonBox.Ok).click)
            self._timer_automatique.start(7000)
Exemplo n.º 3
0
    def __init__(self, defered, automatique, parent, periode, historique):
        super(GuiDecision, self).__init__(parent)

        # variables
        self._defered = defered
        self._automatique = automatique
        self._historique = GuiHistorique(self, historique)

        # gui
        self.ui = HoltLauryDecision.Ui_Dialog()
        self.ui.setupUi(self)

        self.ui.pushButton_valider.clicked.connect(self._accept)
        self.ui.pushButton_valider.setEnabled(True)

        self.ui.te_consignes.setText(
            u"Pour chacune des 11 questions ci-dessous veuillez indiquer l'option que vous choisissez.\n\
Vous devez pour cela saisir 'A' ou 'B' dans la zone de texte correspondant à la question."
        )

        # Remplissage des libelles options A et B
        for i in range(11):
            zea = getattr(self.ui, 'HL_Q%dOA' % (i + 1, ))
            zea.setText(u"{} {} avec {}% de chances ou \n{} {} avec {}% de chances".format( \
                        pms.GAIN_OPTION_A[0],  \
                        pms.GAIN_OPTION_A[0] > 1 and "{}s".format(pms.MONNAIE) or pms.MONNAIE,   \
                        pms.PROBAS[i][0],  \
                        pms.GAIN_OPTION_A[1],  \
                        pms.GAIN_OPTION_A[1] > 1 and "{}s".format(pms.MONNAIE) or pms.MONNAIE,  \
                        pms.PROBAS[i][1]))
            zeb = getattr(self.ui, 'HL_Q%dOB' % (i + 1, ))
            zeb.setText(u"{} {} avec {}% de chances ou \n{} {} avec {}% de chances".format( \
                        pms.GAIN_OPTION_B[0],  \
                        pms.GAIN_OPTION_B[0] > 1 and "{}s".format(pms.MONNAIE) or pms.MONNAIE,   \
                        pms.PROBAS[i][0],  \
                        pms.GAIN_OPTION_B[1],  \
                        pms.GAIN_OPTION_B[1] > 1 and "{}s".format(pms.MONNAIE) or pms.MONNAIE,  \
                        pms.PROBAS[i][1]))

        # automatic
        if self._automatique:
            for i in range(11):
                rea = getattr(self.ui, 'HL_R%d' % (i + 1, ))
                rea.setText(random.choice([u"A", u"B"]))
            self._timer_automatique = QtCore.QTimer()
            self._timer_automatique.timeout.connect(self._accept)
            self._timer_automatique.start(7000)
Exemplo n.º 4
0
    def __init__(self, defered, automatique, parent, period, historique):
        super(GuiDecision, self).__init__(parent)

        # variables
        self._defered = defered
        self._automatique = automatique
        self._historique = GuiHistorique(self, historique)

        layout = QtGui.QVBoxLayout(self)

        # should be removed if one-shot game
        wperiod = WPeriod(period=period, ecran_historique=self._historique)
        layout.addWidget(wperiod)

        wexplanation = WExplication(
            text=texts_EXPERIENCE_NOM_COURT.get_text_explanation(),
            size=(450, 80),
            parent=self)
        layout.addWidget(wexplanation)

        self._wdecision = WSpinbox(
            label=texts_EXPERIENCE_NOM_COURT.get_text_label_decision(),
            minimum=pms.DECISION_MIN,
            maximum=pms.DECISION_MAX,
            interval=pms.DECISION_STEP,
            automatique=self._automatique,
            parent=self)
        layout.addWidget(self._wdecision)

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        buttons.accepted.connect(self._accept)
        layout.addWidget(buttons)

        self.setWindowTitle(trans_EXPERIENCE_NOM_COURT(u"Décision"))
        self.adjustSize()
        self.setFixedSize(self.size())

        if self._automatique:
            self._timer_automatique = QtCore.QTimer()
            self._timer_automatique.timeout.connect(
                buttons.button(QtGui.QDialogButtonBox.Ok).click)
            self._timer_automatique.start(7000)
Exemplo n.º 5
0
    def __init__(self, defered, automatique, parent, periode, historique):
        super(GuiDecision, self).__init__(parent)

        # variables
        self._defered = defered
        self._automatique = automatique
        self._historique = GuiHistorique(self, historique)

        layout = QtGui.QVBoxLayout(self)

        wperiod = WPeriod(period=periode,
                          ecran_historique=self._historique,
                          parent=self)
        layout.addWidget(wperiod)

        wexplanation = WExplication(text=texts_DP.get_text_explanation(),
                                    parent=self,
                                    size=(450, 80))
        layout.addWidget(wexplanation)

        options = tuple([v for k, v in sorted(pms.OPTIONS.viewitems())])
        self._wdecision = WRadio(texts=options,
                                 label=trans_DP(u"Choose an option"),
                                 parent=self,
                                 automatique=self._automatique)
        layout.addWidget(self._wdecision)

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        buttons.accepted.connect(self._accept)
        layout.addWidget(buttons)

        self.setWindowTitle(le2mtrans(u"Decision"))
        self.adjustSize()
        self.setFixedSize(self.size())

        if self._automatique:
            self._timer_automatique = QtCore.QTimer()
            self._timer_automatique.timeout.connect(
                buttons.button(QtGui.QDialogButtonBox.Ok).click)
            self._timer_automatique.start(7000)
Exemplo n.º 6
0
    def __init__(self, defered, automatique, parent, periode, historique):
        super(GuiDecision, self).__init__(parent)

        self._defered = defered
        self._automatique = automatique
        self._historique = GuiHistorique(self, historique)

        layout = QtGui.QVBoxLayout(self)

        self._widperiod = WPeriod(
            period=periode, ecran_historique=self._historique, parent=self)
        layout.addWidget(self._widperiod)

        self._widexplication = WExplication(
            text=texts_CPR.DECISION_explication, parent=self)
        layout.addWidget(self._widexplication)

        self._widdecision = WSpinbox(
            label=texts_CPR.DECISION_label, minimum=pms.DECISION_MIN,
            maximum=pms.DECISION_MAX, interval=pms.DECISION_STEP,
            automatique=self._automatique, parent=self)
        layout.addWidget(self._widdecision)

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        buttons.accepted.connect(self._accept)
        layout.addWidget(buttons)

        if self._automatique:
            self._timer_automatique = QtCore.QTimer()
            self._timer_automatique.timeout.connect(
                buttons.button(QtGui.QDialogButtonBox.Ok).click)
            self._timer_automatique.start(7000)

        # title and size
        self.setWindowTitle(texts_CPR.DECISION_titre)
        self.adjustSize()
        self.setFixedSize(self.size())
Exemplo n.º 7
0
    def _initUi(self):
        self.setWindowTitle(u"Marché")
        self.label_period.setText(u"Période {}".format(
            self.remote.currentperiod))
        self.ecran_historique = GuiHistorique(self,
                                              self.remote.histo,
                                              size=SIZE_HISTO)
        self.pushButton_history.clicked.connect(self.ecran_historique.show)
        self.label_timer.setText(get_formated_time(pms.MARKET_TIME))
        self.textEdit_explication.setFixedWidth(SIZE_HISTO[0])
        self.textEdit_explication.setText(
            u"Votre revenu initial Pile est {} euros et votre revenu initial "
            u"Face est {} euros. Votre constante est {}. La valeur "
            u"initiale de votre portefeuille est {} euros.".format(
                self.remote.income_pile, self.remote.income_face,
                self.remote.aversion, self.remote.income))
        self.label_txt_revenu_pile.setText("Revenu Pile:")
        self.label_revenu_pile.setText("{:.2f}".format(
            self.remote.income_pile))
        self.label_txt_revenu_face.setText("Revenu Face:")
        self.label_revenu_face.setText("{:.2f}".format(
            self.remote.income_face))
        self.label_txt_portefeuille.setText("Valeur de votre portefeuille:")
        self.label_portefeuille.setText("{:.2f}".format(self.remote.income))

        # ----------------------------------------------------------------------
        # connexions doublespinbox
        # ----------------------------------------------------------------------
        self.doubleSpinBox_pile_offre_achat.valueChanged["double"].connect(
            self.set_tooltip)
        self.doubleSpinBox_pile_offre_vente.valueChanged["double"].connect(
            self.set_tooltip)
        self.doubleSpinBox_face_offre_achat.valueChanged["double"].connect(
            self.set_tooltip)
        self.doubleSpinBox_face_offre_vente.valueChanged["double"].connect(
            self.set_tooltip)

        # ----------------------------------------------------------------------
        # connexions sélection offre
        # ----------------------------------------------------------------------
        self.listWidget_pile_offre_achat.itemClicked.connect(
            self.set_current_offer)
        self.listWidget_pile_offre_vente.itemClicked.connect(
            self.set_current_offer)
        self.listWidget_face_offre_achat.itemClicked.connect(
            self.set_current_offer)
        self.listWidget_face_offre_vente.itemClicked.connect(
            self.set_current_offer)

        # ----------------------------------------------------------------------
        # connexions boutons accepter
        # ----------------------------------------------------------------------
        self.pushButton_pile_offre_achat_accepter.clicked.connect(
            lambda _: self.accept_offer())
        self.pushButton_pile_offre_vente_accepter.clicked.connect(
            lambda _: self.accept_offer())
        self.pushButton_face_offre_achat_accepter.clicked.connect(
            lambda _: self.accept_offer())
        self.pushButton_face_offre_vente_accepter.clicked.connect(
            lambda _: self.accept_offer())

        # ----------------------------------------------------------------------
        # connexions boutons envoyer
        # ----------------------------------------------------------------------
        self.pushButton_pile_offre_achat_envoyer.clicked.connect(
            lambda _: self.send_offer(self.pushButton_pile_offre_achat_envoyer
                                      ))
        self.pushButton_pile_offre_vente_envoyer.clicked.connect(
            lambda _: self.send_offer(self.pushButton_pile_offre_vente_envoyer
                                      ))
        self.pushButton_face_offre_achat_envoyer.clicked.connect(
            lambda _: self.send_offer(self.pushButton_face_offre_achat_envoyer
                                      ))
        self.pushButton_face_offre_vente_envoyer.clicked.connect(
            lambda _: self.send_offer(self.pushButton_face_offre_vente_envoyer
                                      ))

        # ----------------------------------------------------------------------
        # connexions boutons supprimer
        # ----------------------------------------------------------------------
        self.pushButton_pile_offre_achat_supprimer.clicked.connect(
            lambda _: self.remove_offer())
        self.pushButton_pile_offre_vente_supprimer.clicked.connect(
            lambda _: self.remove_offer())
        self.pushButton_face_offre_achat_supprimer.clicked.connect(
            lambda _: self.remove_offer())
        self.pushButton_face_offre_vente_supprimer.clicked.connect(
            lambda _: self.remove_offer())

        # ----------------------------------------------------------------------
        # compte à rebours
        # ----------------------------------------------------------------------
        self.timer_rebours = QtCore.QTimer()
        self.timer_rebours.timeout.connect(self.display_timer_rebours)
        self.timer_rebours.start(1000)
Exemplo n.º 8
0
    def __init__(self, remote, defered, summary_text, group_transactions):
        super(GuiRecapitulatif, self).__init__(remote.le2mclt.screen)
        self.setWindowTitle(u"Récapitulatif")

        self._remote = remote
        self._defered = defered

        layout = QtGui.QVBoxLayout(self)

        # period label and history button --------------------------------------
        self.ecran_historique = GuiHistorique(self,
                                              self._remote.histo,
                                              size=SIZE_HISTO)

        label_period = QtGui.QLabel(u"Période {}".format(
            self._remote.currentperiod))
        button_history = QtGui.QPushButton("Historique")
        button_history.clicked.connect(self.ecran_historique.show)

        layout_period = QtGui.QHBoxLayout()
        layout_period.addWidget(label_period, 0, QtCore.Qt.AlignLeft)
        layout_period.addWidget(button_history, 0, QtCore.Qt.AlignRight)
        layout.addLayout(layout_period)
        layout.addSpacing(40)

        # explanation zone -----------------------------------------------------
        self.explication = QtGui.QTextEdit()
        self.explication.setFixedSize(SIZE_HISTO[0], 80)
        self.explication.setText(summary_text)
        layout.addWidget(self.explication, 0, QtCore.Qt.AlignHCenter)
        layout.addSpacing(40)

        # # history table ------------------------------------------------------
        histo_recap = [self._remote.histo[0], self._remote.histo[-1]]
        self.tablemodel = TableModelHistorique(histo_recap)
        self.widtableview = WTableview(parent=self,
                                       tablemodel=self.tablemodel,
                                       size=(SIZE_HISTO[0], 100))
        self.widtableview.ui.tableView.verticalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        layout.addWidget(self.widtableview)
        layout.addSpacing(40)

        # transactions ---------------------------------------------------------
        try:
            prix_max = max([t["prix"] for t in group_transactions])
        except ValueError:  # if no transactions
            prix_max = 1

        widget_graphiques = QtGui.QWidget()
        widget_graphiques.setFixedWidth(SIZE_HISTO[0])
        transactions_layout = QtGui.QGridLayout(widget_graphiques)
        layout.addWidget(widget_graphiques, 0, QtCore.Qt.AlignHCenter)

        # pile
        transactions_pile = [
            g for g in group_transactions if g["etat_monde"] == pms.PILE
        ]

        pile_label = QtGui.QLabel("Transactions Pile")
        pile_label.setStyleSheet("font-weight: bold;")
        transactions_layout.addWidget(pile_label, 0, 0)
        self._pile_transactions_graph = GraphicalZone(transactions_pile,
                                                      prix_max, "*")
        transactions_layout.addWidget(self._pile_transactions_graph, 1, 0)

        # face
        transactions_face = [
            g for g in group_transactions if g["etat_monde"] == pms.FACE
        ]

        face_label = QtGui.QLabel("Transactions Face")
        face_label.setStyleSheet("font-weight: bold;")
        transactions_layout.addWidget(face_label, 0, 1)
        self._face_transactions_graph = GraphicalZone(transactions_face,
                                                      prix_max, "*")
        transactions_layout.addWidget(self._face_transactions_graph, 1, 1)
        layout.addSpacing(40)

        # button ---------------------------------------------------------------
        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        buttons.accepted.connect(self._accept)
        layout.addWidget(buttons, 0, QtCore.Qt.AlignCenter)

        layout.addStretch(1)

        # # automatique
        if self._remote.le2mclt.automatique:
            self._timer_automatique = QtCore.QTimer()
            self._timer_automatique.timeout.connect(
                buttons.button(QtGui.QDialogButtonBox.Ok).click)
            self._timer_automatique.start(7000)
    def __init__(self, defered, automatique, parent, period, historique,
                 remote):
        super(GuiDecision, self).__init__(parent)

        # variables
        self._defered = defered
        self._automatique = automatique
        self._historique = GuiHistorique(self, historique)
        self._remote = remote
        self._offer_items = {}

        layout = QtGui.QVBoxLayout(self)

        wperiod = WPeriod(period=period, ecran_historique=self._historique)
        layout.addWidget(wperiod)

        wexplanation = WExplication(text=texts_MC.get_text_explanation(
            self._remote.role, self._remote.value_or_cost),
                                    size=(450, 50),
                                    parent=self)
        layout.addWidget(wexplanation)

        self._compte_rebours = WCompterebours(parent=self,
                                              temps=pms.TEMPS,
                                              actionfin=self._accept)
        layout.addWidget(self._compte_rebours)

        gridlayout = QtGui.QGridLayout()
        layout.addLayout(gridlayout)

        CURRENT_LINE = 0

        gridlayout.addWidget(QtGui.QLabel(u"Offres de ventes"), CURRENT_LINE,
                             0)
        gridlayout.addWidget(QtGui.QLabel(u"Offres d'achats"), CURRENT_LINE, 1)
        gridlayout.addWidget(QtGui.QLabel(u"Transactions"), CURRENT_LINE, 2)

        CURRENT_LINE += 1

        self._model_ventes = QtGui.QStandardItemModel()
        self._listview_ventes = QtGui.QListView()
        self._listview_ventes.setModel(self._model_ventes)
        self._listview_ventes.setMaximumSize(300, 600)
        gridlayout.addWidget(self._listview_ventes, CURRENT_LINE, 0)

        self._model_achats = QtGui.QStandardItemModel()
        self._listview_achats = QtGui.QListView()
        self._listview_achats.setModel(self._model_achats)
        self._listview_achats.setMaximumSize(300, 600)
        gridlayout.addWidget(self._listview_achats, CURRENT_LINE, 1)

        self._listwidget_transactions = QtGui.QListWidget()
        self._listwidget_transactions.setMaximumSize(300, 600)
        gridlayout.addWidget(self._listwidget_transactions, CURRENT_LINE, 2)

        CURRENT_LINE += 1

        if self._remote.role == pms.VENDEUR:

            self._layout_offer = QtGui.QHBoxLayout()
            self._layout_offer.addWidget(QtGui.QLabel(u"Offre de vente"))
            self._spin_offer = QtGui.QDoubleSpinBox()
            self._spin_offer.setDecimals(pms.DECIMALES)
            self._spin_offer.setMinimum(0)
            self._spin_offer.setMaximum(pms.DECISION_MAX)
            self._spin_offer.setButtonSymbols(QtGui.QSpinBox.NoButtons)
            self._spin_offer.setMaximumWidth(50)
            self._layout_offer.addWidget(self._spin_offer)
            self._button_send_offer = QtGui.QPushButton(u"Envoyer")
            self._button_send_offer.setMaximumWidth(100)
            self._button_send_offer.clicked.connect(
                lambda _: self._send_offer())
            self._layout_offer.addWidget(self._button_send_offer)
            self._layout_offer.addSpacerItem(
                QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Expanding,
                                  QtGui.QSizePolicy.Minimum))
            gridlayout.addLayout(self._layout_offer, CURRENT_LINE, 0)

        else:

            self._layout_offer = QtGui.QHBoxLayout()
            self._layout_offer.addWidget(QtGui.QLabel(u"Offre d'achat"))
            self._spin_offer = QtGui.QDoubleSpinBox()
            self._spin_offer.setDecimals(pms.DECIMALES)
            self._spin_offer.setMinimum(0)
            self._spin_offer.setMaximum(pms.DECISION_MAX)
            self._spin_offer.setButtonSymbols(QtGui.QSpinBox.NoButtons)
            self._spin_offer.setMaximumWidth(50)
            self._layout_offer.addWidget(self._spin_offer)
            self._button_send_offer = QtGui.QPushButton(u"Envoyer")
            self._button_send_offer.setMaximumWidth(100)
            self._button_send_offer.clicked.connect(
                lambda _: self._send_offer())
            self._layout_offer.addWidget(self._button_send_offer)
            self._layout_offer.addSpacerItem(
                QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Expanding,
                                  QtGui.QSizePolicy.Minimum))
            gridlayout.addLayout(self._layout_offer, CURRENT_LINE, 1)

        self.setWindowTitle(trans_MC(u"Marché"))
        self.adjustSize()
        self.setFixedSize(self.size())

        if self._automatique:
            self._timer_automatique = QtCore.QTimer()
            self._timer_automatique.setSingleShot(False)
            self._timer_automatique.timeout.connect(self._play_auto)
            self._timer_automatique.start(5000)
Exemplo n.º 10
0
    def __init__(self, remote, defered, automatique, parent, period, historique,
                 summary_text, triangle_transactions, star_transactions):
        """

        :param defered:
        :param automatique:
        :param parent:
        :param period:
        :param historique:
        :param summary_text:
        :param history_screen:
        :param size_histo: the size of the history table. The width of the
        explanation area will be the same than the width of the history table
        :return:
        """
        super(GuiRecapitulatif, self).__init__(parent)

        self._remote = remote
        self._defered = defered
        self._automatique = automatique

        layout = QtGui.QVBoxLayout(self)

        # period label and history button --------------------------------------
        self.ecran_historique = GuiHistorique(
            self, historique, size=SIZE_HISTO)
        layout_period = QtGui.QHBoxLayout()
        label_period = QtGui.QLabel(le2mtrans("Period") + " {}".format(period))
        layout_period.addWidget(label_period)
        layout_period.addSpacerItem(
            QtGui.QSpacerItem(20, 5, QtGui.QSizePolicy.Expanding,
                              QtGui.QSizePolicy.Fixed))
        button_history = QtGui.QPushButton(le2mtrans("History"))
        button_history.clicked.connect(self.ecran_historique.show)
        layout_period.addWidget(button_history)
        layout.addLayout(layout_period)

        # timer
        self._compte_rebours = WCompterebours(
            parent=self, temps=pms.SUMMARY_TIME, actionfin=self._display_warning)
        layout.addWidget(self._compte_rebours)

        # explanation zone -----------------------------------------------------
        self.widexplication = WExplication(text=summary_text, parent=self,
                                           size=(SIZE_HISTO[0], 80))
        layout.addWidget(self.widexplication)

        # transactions ---------------------------------------------------------
        try:
            max_triangle_price = max(triangle_transactions.MRI_trans_price)
        except ValueError:  # no transaction
            max_triangle_price = 1
        try:
            max_star_price = max(star_transactions.MRI_trans_price)
        except ValueError:
            max_star_price = 1
        max_price = max(max_triangle_price, max_star_price)

        transactions_layout = QtGui.QGridLayout()
        layout.addLayout(transactions_layout)

        # triangle ---
        triangle_label = QtGui.QLabel(trans_MRI(u"Triangle"))
        triangle_label.setStyleSheet("font-weight: bold;")
        transactions_layout.addWidget(triangle_label, 0, 0)
        self._triangle_transaction_zone = TransactionZone(zone_size=(450, 250))
        try:
            for i, item in triangle_transactions.iterrows():
                price = item.MRI_trans_price
                buyer = item.MRI_trans_buyer
                seller = item.MRI_trans_seller
                implied, buyer_or_seller = False, None
                if buyer == self._remote.le2mclt.uid or \
                                seller == self._remote.le2mclt.uid:
                    implied = True
                    buyer_or_seller = pms.BUYER if \
                        buyer == self._remote.le2mclt.uid else pms.SELLER
                color = "blue" if implied else "black"
                self._triangle_transaction_zone.add_transaction(
                    price, buyer_or_seller, color)
        except ValueError:  # no transactions
            pass
        transactions_layout.addWidget(self._triangle_transaction_zone, 1, 0)
        self._triangle_transactions_graph = GraphicalZone(
            triangle_transactions, max_price, pms.TRIANGLE, zone_size=(450, 250))
        transactions_layout.addWidget(self._triangle_transactions_graph, 2, 0)

        # star ---
        star_label = QtGui.QLabel(trans_MRI(u"Star"))
        star_label.setStyleSheet("font-weight: bold;")
        transactions_layout.addWidget(star_label, 0, 2)
        self._star_transaction_zone = TransactionZone(zone_size=(450, 250))
        try:
            for i, item in star_transactions.iterrows():
                price = item.MRI_trans_price
                buyer = item.MRI_trans_buyer
                seller = item.MRI_trans_seller
                implied, buyer_or_seller = False, None
                if buyer == self._remote.le2mclt.uid or \
                                seller == self._remote.le2mclt.uid:
                    implied = True
                    buyer_or_seller = pms.BUYER if \
                        buyer == self._remote.le2mclt.uid else pms.SELLER
                color = "blue" if implied else "black"
                self._star_transaction_zone.add_transaction(
                    price, buyer_or_seller, color)
        except ValueError:  # no transactions
            pass
        transactions_layout.addWidget(self._star_transaction_zone, 1, 2)
        self._star_transactions_graph = GraphicalZone(
            star_transactions, max_price, pms.STAR, zone_size=(450, 250))
        transactions_layout.addWidget(self._star_transactions_graph, 2, 2)

        separator = QtGui.QFrame()
        separator.setFrameShape(QtGui.QFrame.VLine)
        transactions_layout.addWidget(
            separator, 0, 1, transactions_layout.rowCount(), 1)

        # history table --------------------------------------------------------
        # in this screen we only keep the header and the last line of the
        # history
        histo_recap = [historique[0], historique[-1]]
        self.tablemodel = TableModelHistorique(histo_recap)
        self.widtableview = WTableview(parent=self, tablemodel=self.tablemodel,
                                       size=(SIZE_HISTO[0], 100))
        self.widtableview.ui.tableView.verticalHeader().setResizeMode(
            QtGui.QHeaderView.Stretch)
        layout.addWidget(self.widtableview)

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        buttons.accepted.connect(self._accept)
        layout.addWidget(buttons)

        # automatique
        if self._automatique:
            self._timer_automatique = QtCore.QTimer()
            self._timer_automatique.timeout.connect(
                buttons.button(QtGui.QDialogButtonBox.Ok).click)
            self._timer_automatique.start(7000)

        # taille et titre
        self.setWindowTitle(le2mtrans(u"Summary"))
Exemplo n.º 11
0
    def __init__(self, defered, automatique, parent, period, historique, remote):
        super(GuiDecision, self).__init__(parent)

        # variables
        self._defered = defered
        self._automatique = automatique
        self._remote = remote

        layout = QtGui.QVBoxLayout(self)

        self._historique = GuiHistorique(self, historique, size=SIZE_HISTO)
        wperiod = WPeriod(
            period=period, ecran_historique=self._historique)
        layout.addWidget(wperiod)

        wexplanation = WExplication(
            text=texts_MRI.get_text_explanation(
                self._remote.balance_if_triangle, self._remote.balance_if_star),
            size=(SIZE_HISTO[0], 70), parent=self)
        layout.addWidget(wexplanation)

        # Compte à rebours =====================================================
        self._compte_rebours = WCompterebours(
            parent=self, temps=pms.MARKET_TIME, actionfin=self._accept)
        self._compte_rebours.setStyleSheet("color: blue;")
        layout.addWidget(self._compte_rebours)

        # zone information actualisée ==========================================
        self._information = InformationZone()
        layout.addWidget(self._information)

        # market ===============================================================
        market_layout = QtGui.QGridLayout()
        layout.addLayout(market_layout)

        # triangle
        triangle_label = QtGui.QLabel(trans_MRI(u"Triangle"))
        triangle_label.setStyleSheet("color: red;")
        market_layout.addWidget(triangle_label, 0, 0, 1, 2)
        self._triangle_purchase_zone = OfferZone(pms.BUY, zone_size=(350, 250))
        market_layout.addWidget(self._triangle_purchase_zone, 1, 0)
        self._triangle_sell_zone = OfferZone(pms.SELL, zone_size=(350, 250))
        market_layout.addWidget(self._triangle_sell_zone, 1, 1)
        self._triangle_transactions = TransactionZone(zone_size=(350, 250))
        market_layout.addWidget(self._triangle_transactions, 2, 0, 1, 2)

        # star
        star_label = QtGui.QLabel(trans_MRI(u"Star"))
        star_label.setStyleSheet("color: red;")
        market_layout.addWidget(star_label, 0, 3, 1, 2)
        self._star_purchase_zone = OfferZone(pms.BUY, zone_size=(350, 250))
        market_layout.addWidget(self._star_purchase_zone, 1, 3)
        self._star_sell_zone = OfferZone(pms.SELL, zone_size=(350, 250))
        market_layout.addWidget(self._star_sell_zone, 1, 4)
        self._star_transactions = TransactionZone(zone_size=(350, 250))
        market_layout.addWidget(self._star_transactions, 2, 3, 1, 2)

        separator = QtGui.QFrame()
        separator.setFrameShape(QtGui.QFrame.VLine)
        market_layout.addWidget(separator, 0, 2, market_layout.rowCount(), 1)

        # finalisation =========================================================
        layout.addSpacing(50)
        self._make_connections()
        self.setWindowTitle(trans_MRI(u"Market"))
        # self.adjustSize()
        # self.setFixedSize(self.size())

        if self._automatique:
            self._timer_automatique = QtCore.QTimer()
            self._timer_automatique.timeout.connect(self._play_auto)
            self._timer_automatique.start(randint(2000, 7000))
    def __init__(self, defered, automatique, parent, periode, historique):
        super(GuiDecision, self).__init__(parent)

        # variables
        self._defered = defered
        self._automatique = automatique
        self._historique = GuiHistorique(self, historique, size=(1100, 500))

        layout = QtGui.QVBoxLayout(self)

        wperiod = WPeriod(period=periode, ecran_historique=self._historique,
                          parent=self)
        layout.addWidget(wperiod)

        wexplanation = WExplication(
            text=textes_PGLG.get_text_explanation(),
            parent=self, size=(450, 80))
        layout.addWidget(wexplanation)
        
        gridlayout = QtGui.QGridLayout()
        layout.addLayout(gridlayout)
        
        CURRENT_LINE = 0
        
        gridlayout.addWidget(QtGui.QLabel(u"Saisissez le nombre de jetons que "
                                          u"vous placez sur votre compte individuel"),
                             CURRENT_LINE, 0)
        self._spin_indiv = QtGui.QSpinBox()
        self._spin_indiv.setMinimum(0)
        self._spin_indiv.setMaximum(pms.DOTATION)
        self._spin_indiv.setSingleStep(1)
        self._spin_indiv.setButtonSymbols(QtGui.QSpinBox.NoButtons)
        self._spin_indiv.setMaximumWidth(80)
        gridlayout.addWidget(self._spin_indiv, CURRENT_LINE, 1)
        
        CURRENT_LINE += 1
        
        gridlayout.addWidget(QtGui.QLabel(u"Saisissez le nombre de jetons que "
                                          u"vous placez sur le compte local"),
                             CURRENT_LINE, 0)
        self._spin_local = QtGui.QSpinBox()
        self._spin_local.setMinimum(0)
        self._spin_local.setMaximum(pms.DOTATION)
        self._spin_local.setSingleStep(1)
        self._spin_local.setButtonSymbols(QtGui.QSpinBox.NoButtons)
        self._spin_local.setMaximumWidth(80)
        gridlayout.addWidget(self._spin_local, CURRENT_LINE, 1)
        
        CURRENT_LINE += 1
        
        gridlayout.addWidget(QtGui.QLabel(u"Saisissez le nombre de jetons que "
                                          u"vous placez sur le compte global"),
                             CURRENT_LINE, 0)
        self._spin_global = QtGui.QSpinBox()
        self._spin_global.setMinimum(0)
        self._spin_global.setMaximum(pms.DOTATION)
        self._spin_global.setSingleStep(1)
        self._spin_global.setButtonSymbols(QtGui.QSpinBox.NoButtons)
        self._spin_global.setMaximumWidth(80)
        gridlayout.addWidget(self._spin_global, CURRENT_LINE, 1)

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        buttons.accepted.connect(self._accept)
        layout.addWidget(buttons)

        self.setWindowTitle(trans_PGLG(u"Decision"))
        self.adjustSize()
        self.setFixedSize(self.size())

        if self._automatique:
            indiv, loc, glob = 0, 0, 0
            while indiv + loc + glob != pms.DOTATION:
                indiv = randint(0, pms.DOTATION)
                loc = randint(0, pms.DOTATION)
                glob = randint(0, pms.DOTATION)
            self._spin_indiv.setValue(indiv)
            self._spin_local.setValue(loc)
            self._spin_global.setValue(glob)
            self._timer_automatique = QtCore.QTimer()
            self._timer_automatique.timeout.connect(
                buttons.button(QtGui.QDialogButtonBox.Ok).click)
            self._timer_automatique.start(7000)