Exemplo n.º 1
0
    def __init__(self, parent, *args, **kwargs):
        super(FWidget, self).__init__(parent=parent, *args, **kwargs)

        self.parent = parent
        vbox = QVBoxLayout()
        editbox = QGridLayout()

        self.search_field = LineEdit()
        # self.search_field.textChanged.connect(self.search)
        self.search_field.setToolTip(u"Taper le nom ou le numéro de "
                                     u"téléphone à chercher")
        editbox.addWidget(self.search_field, 0, 0)

        search_but = Button("")
        search_but.setIcon(QIcon.fromTheme('search', QIcon('')))
        search_but.clicked.connect(self.search)
        editbox.addWidget(search_but, 0, 1)
        # self.empty = FLabel(u"")
        # editbox.addWidget(self.empty, 1, 0)

        addgroup_but = Button(u"Nouveau groupe")
        addgroup_but.setIcon(QIcon.fromTheme('document-new', QIcon('')))
        addgroup_but.clicked.connect(self.addgroup)

        self.contact_grp = Button(u"Envoyer à groupe")
        self.contact_grp.setIcon(QIcon.fromTheme('document-new', QIcon('')))
        self.contact_grp.clicked.connect(self.contact_group)
        self.contact_grp.setEnabled(False)

        editbox.addWidget(addgroup_but, 2, 0)
        editbox.addWidget(self.contact_grp, 1, 0)

        vbox.addLayout(editbox)
        self.setLayout(vbox)
Exemplo n.º 2
0
class OperationWidget(FWidget):

    """docstring for OperationWidget"""

    def __init__(self, parent, *args, **kwargs):
        super(FWidget, self).__init__(parent=parent, *args, **kwargs)

        vbox = QVBoxLayout(self)
        gridbox = QGridLayout()
        self.parent = parent

        self.add_ow_but = Button(_(u"Nouvel utilisateur"))
        self.add_ow_but.setIcon(
            QIcon.fromTheme('', QIcon(u"{}user_add.png".format(Config.img_cmedia))))
        self.add_ow_but.clicked.connect(self.add_owner)

        gridbox.addWidget(self.add_ow_but, 0, 0)

        gridbox.setColumnStretch(1, 5)
        vbox.addLayout(gridbox)
        self.setLayout(vbox)

    def add_owner(self):
        self.parent.parent.open_dialog(
            NewOrEditUserViewWidget, modal=True, pp=self.parent.table_owner)
Exemplo n.º 3
0
class OperationWidget(FWidget):
    """docstring for OperationWidget"""

    def __init__(self, parent, *args, **kwargs):
        super(FWidget, self).__init__(parent=parent, *args, **kwargs)

        self.parent = parent
        vbox = QVBoxLayout()
        editbox = QGridLayout()

        self.search_field = LineEdit()
        # self.search_field.textChanged.connect(self.search)
        self.search_field.setToolTip(u"Taper le nom ou le numéro de "
                                     u"téléphone à chercher")
        editbox.addWidget(self.search_field, 0, 0)

        search_but = Button("")
        search_but.setIcon(QIcon.fromTheme('search', QIcon('')))
        search_but.clicked.connect(self.search)
        editbox.addWidget(search_but, 0, 1)
        # self.empty = FLabel(u"")
        # editbox.addWidget(self.empty, 1, 0)

        addgroup_but = Button(u"Nouveau groupe")
        addgroup_but.setIcon(QIcon.fromTheme('document-new', QIcon('')))
        addgroup_but.clicked.connect(self.addgroup)

        self.contact_grp = Button(u"Envoyer à groupe")
        self.contact_grp.setIcon(QIcon.fromTheme('document-new', QIcon('')))
        self.contact_grp.clicked.connect(self.contact_group)
        self.contact_grp.setEnabled(False)

        editbox.addWidget(addgroup_but, 2, 0)
        editbox.addWidget(self.contact_grp, 1, 0)

        vbox.addLayout(editbox)
        self.setLayout(vbox)

    def search(self):

        search_term = self.search_field.text()
        self.search_field.setStyleSheet("")
        self.search_field.setText(u"")

        self.parent.table_contact.refresh_(search=search_term)
        self.search_field.clear()
        # self.search_field.setStyleSheet("font-size:20px; color: red")
        # self.search_field.setToolTip(u"{} n'existe pas".format(search_term))

    def addgroup(self):
        """ Affiche un QDialog qui permet d'ajouter un nouveau groupe """
        self.parent.open_dialog(GroupViewWidget, modal=True,
                                table_group=self.parent)

    def contact_group(self):
        self.parent.open_dialog(SendGroupViewWidget, modal=True,
                                table_group=self.parent)
Exemplo n.º 4
0
class InfoTableWidget(FWidget):

    def __init__(self, parent, *args, **kwargs):
        super(FWidget, self).__init__(parent=parent, *args, **kwargs)

        self.parent = parent

        self.refresh()

        self.details = FLabel()
        self.edit_ow_but = Button(u"Mettre à jour")
        self.edit_ow_but.setIcon(QIcon.fromTheme('document-new',
                                                 QIcon(u"{}edit_user.png".format(Config.img_cmedia))))
        self.edit_ow_but.setEnabled(False)
        self.edit_ow_but.clicked.connect(self.edit_owner)

        self.formbox = QGridLayout()
        self.formbox.addWidget(self.details, 0, 0)
        self.formbox.addWidget(self.edit_ow_but, 0, 1)
        # self.formbox.ColumnStretch(4, 2)
        # self.formbox.RowStretch(6, 2)
        vbox = QVBoxLayout()
        vbox.addLayout(self.formbox)
        self.setLayout(vbox)

    def refresh_(self, owner):
        self.refresh()
        self.owner = owner

        if isinstance(self.owner, int):
            return
        self.details.setText(
            """<h2>Nom:  {username}</h2>
                <h4><b>Active:</b> {isactive}</h4>
                <h4><b>Numéro tel:</b> {phone}</h4>
                <h4><b>Dernière login:</b> {last_login}</h4>
                <h4><b>Nombre de connexion:</b> {login_count}</h4>
                <h4><b>Groupe:</b> {group}</h4>
            """.format(group=self.owner.group,
                       login_count=self.owner.login_count,
                       last_login=self.owner.last_login.strftime(u"%c"),
                       phone=self.owner.phone,
                       isactive=self.owner.isactive,
                       username=self.owner.username))

    def edit_owner(self):
        self.parent.parent.open_dialog(NewOrEditUserViewWidget, owner=self.owner,
                                       modal=True, pp=self.parent.table_info)
Exemplo n.º 5
0
class ResgistrationManagerWidget(FWidget):
    def __init__(self, parent=0, *args, **kwargs):

        super(ResgistrationManagerWidget, self).__init__(parent=parent,
                                                         *args,
                                                         **kwargs)

        self.parent = parent

        self.search_field = LineEdit()
        self.search_field.setPlaceholderText("Rechercher une demande")
        self.search_field.setMinimumSize(600, 80)
        self.search_field.textChanged.connect(self.finder)

        self.string_list = []
        self.title_field = FPageTitle("Gestion des demandes")

        self.new_demande_btt = Button("Nouvelle demande")
        self.new_demande_btt.setMaximumWidth(400)
        self.new_demande_btt.setIcon(
            QIcon.fromTheme('save',
                            QIcon(u"{}add.png".format(Config.img_media))))
        self.new_demande_btt.clicked.connect(self.goto_demande)
        self.table = DemandeTableWidget(parent=self)

        editbox = QGridLayout()
        editbox.addWidget(self.search_field, 1, 0)
        editbox.setColumnStretch(1, 1)
        editbox.addWidget(self.new_demande_btt, 1, 3)

        vbox = QVBoxLayout()
        vbox.addWidget(self.title_field)
        vbox.addLayout(editbox)
        vbox.addWidget(self.table)
        self.setLayout(vbox)

    def goto_demande(self):
        from ui.registration_view import RegistrationViewWidget
        self.change_main_context(RegistrationViewWidget)

    def finder(self):
        self.table.refresh_()
Exemplo n.º 6
0
class MemberManagerWidget(FWidget):

    def __init__(self, parent, dmd=None, *args, **kwargs):
        super(FWidget, self).__init__(parent=parent, *args, **kwargs)

        self.parent = parent
        self.dmd = parent.dmd
        self.search_field = LineEdit()
        self.search_field.setPlaceholderText("Rechercher un membre")
        # self.search_field.setMaximumWidth(400)
        self.search_field.setMaximumSize(900, 100)
        self.search_field.textChanged.connect(self.finder)

        self.string_list = []

        self.new_demande_btt = Button("Nouveau Membre")
        self.new_demande_btt.setMaximumWidth(400)
        self.new_demande_btt.setIcon(QIcon.fromTheme('save', QIcon(
            u"{}add.png".format(Config.img_media))))
        self.new_demande_btt.clicked.connect(self.add_member)

        self.table = MemberTableWidget(parent=self)

        editbox = QGridLayout()
        editbox.addWidget(self.search_field, 1, 0)
        editbox.setColumnStretch(1, 1)
        editbox.addWidget(self.new_demande_btt, 1, 3)

        vbox = QVBoxLayout()
        vbox.addLayout(editbox)
        vbox.addWidget(self.table)
        self.setLayout(vbox)

    def add_member(self):
        self.parent.open_dialog(
            EditOrAddMemberDialog, modal=True, scoop=self.dmd.scoop, table_p=self.table)

    def finder(self):
        self.search = self.search_field.text()
        self.table.refresh_()
Exemplo n.º 7
0
class MemberManagerWidget(FWidget, FPeriodHolder):

    def __init__(self, parent=0, dmd=None, *args, **kwargs):
        super(MemberManagerWidget, self).__init__(
            parent=parent, *args, **kwargs)
        FPeriodHolder.__init__(self, *args, **kwargs)

        self.parent = parent
        self.dmd = dmd
        self.search_field = LineEdit()
        self.search_field.setPlaceholderText("Rechercher un membre")
        # self.search_field.setMaximumWidth(400)
        self.search_field.setMaximumSize(900, 100)
        self.search_field.textChanged.connect(self.finder)

        self.string_list = []
        self.title_field = FPageTitle(
            "Gestion des membres de la {}".format(self.dmd.scoop))

        self.end_demande_btt = Button("Fin de l'ajout")
        self.end_demande_btt.setMaximumWidth(400)
        self.end_demande_btt.clicked.connect(self.goto_immatriculation)
        if self.dmd.scoop.membres().count() < 4:
            self.end_demande_btt.setEnabled(False)
        self.new_demande_btt = Button("Nouveau Membre")
        self.new_demande_btt.setMaximumWidth(400)
        self.new_demande_btt.setIcon(QIcon.fromTheme('save', QIcon(
            u"{}add.png".format(Config.img_media))))
        self.new_demande_btt.clicked.connect(self.add_member)

        self.table = MemberTableWidget(parent=self)

        editbox = QGridLayout()
        editbox.addWidget(self.search_field, 1, 0)
        editbox.setColumnStretch(1, 1)
        editbox.addWidget(self.new_demande_btt, 1, 3)
        editbox.addWidget(self.end_demande_btt, 1, 4)

        vbox = QVBoxLayout()
        vbox.addWidget(self.title_field)
        vbox.addLayout(editbox)
        vbox.addWidget(self.table)
        self.setLayout(vbox)

    # def end_add_member(self):
    #     self.dmd.status = self.dmd.CHECKLIST
    #     self.dmd.save_()
    #     from ui.check_list_view import CheckListViewWidget
    #     self.change_main_context(CheckListViewWidget, dmd=self.dmd)

    def goto_immatriculation(self):
        # self.dmd.status = self.dmd.CHECKLIST
        self.dmd.status = self.dmd.IMMATRICULAITON
        self.dmd.save_()
        from ui.immatriculation import ImmatriculationSCoopViewWidget
        self.change_main_context(
            ImmatriculationSCoopViewWidget, dmd=self.dmd)

    def add_member(self):
        self.open_dialog(
            EditOrAddMemberDialog, modal=True, scoop=self.dmd.scoop, table_p=self.table)

    def finder(self):
        self.search = self.search_field.text()
        self.table.refresh_()

    def refresh_b(self):
        if self.dmd.scoop.membres().count() >= 3:
            self.end_demande_btt.setEnabled(True)
Exemplo n.º 8
0
class PaymentViewWidget(FWidget, FPeriodHolder):
    def __init__(self, parent=0, *args, **kwargs):

        super(PaymentViewWidget, self).__init__(parent=parent, *args, **kwargs)
        FPeriodHolder.__init__(self, *args, **kwargs)

        self.parentWidget().setWindowTitle(Config.APP_NAME + u"   Movements")
        self.parent = parent

        self.title = u"Movements"

        self.on_date = FormatDate(
            QDate(date.today().year,
                  date.today().month, 1))
        self.end_date = FormatDate(QDate.currentDate())
        self.now = datetime.now().strftime("%x")
        self.soldeField = FormLabel("0")
        self.label_balance = FormLabel(u"Solde au {} ".format(self.now))
        balanceBox = QGridLayout()
        balanceBox.addWidget(self.label_balance, 0, 2)
        balanceBox.addWidget(self.soldeField, 0, 3)
        balanceBox.setColumnStretch(0, 1)

        self.table = RapportTableWidget(parent=self)
        self.button = Button(u"Ok")
        self.button.clicked.connect(self.table.refresh_)

        self.btt_export = BttExportXLSX(u"Exporter")
        self.btt_export.clicked.connect(self.export_xls)
        self.add_btt = Button("Créditer")
        self.add_btt.setIcon(
            QIcon(u"{img_media}{img}".format(img_media=Config.img_media,
                                             img="in.png")))
        self.add_btt.clicked.connect(self.add_payment)
        self.sub_btt = Button("Débiter")
        self.sub_btt.setIcon(
            QIcon(u"{img_media}{img}".format(img_media=Config.img_media,
                                             img="out.png")))
        self.sub_btt.clicked.connect(self.sub_payment)

        editbox = QGridLayout()
        editbox.addWidget(FormLabel(u"Date debut"), 0, 1)
        editbox.addWidget(self.on_date, 0, 2)
        editbox.addWidget(FormLabel(u"Date fin"), 1, 1)
        editbox.addWidget(self.end_date, 1, 2)
        editbox.addWidget(self.button, 1, 3)

        editbox.addWidget(self.sub_btt, 1, 5)
        editbox.addWidget(self.add_btt, 1, 6)
        editbox.addWidget(self.btt_export, 1, 7)
        editbox.setColumnStretch(4, 2)
        vbox = QVBoxLayout()
        vbox.addWidget(FPageTitle(self.title))
        vbox.addLayout(editbox)
        vbox.addWidget(self.table)
        vbox.addLayout(balanceBox)
        self.setLayout(vbox)

    def export_xls(self):
        from Common.exports_xlsx import export_dynamic_data
        dict_data = {
            'file_name':
            "versements.xlsx",
            'headers':
            self.table.hheaders[:-1],
            'data':
            self.table.data,
            "extend_rows": [
                (1, self.table.label_mov_tt),
                (2, self.table.totals_debit),
                (3, self.table.totals_credit),
            ],
            "footers": [
                ("C", "E", "Solde au {} = {}".format(self.now,
                                                     self.table.balance_tt)),
            ],
            'sheet':
            self.title,
            # 'title': self.title,
            'format_money': [
                'C:C',
                'D:D',
                'E:E',
            ],
            'widths':
            self.table.stretch_columns,
            'exclude_row':
            len(self.table.data) - 1,
            "date":
            "Du {} au {}".format(
                date_to_datetime(self.on_date.text()).strftime(u'%d/%m/%Y'),
                date_to_datetime(self.end_date.text()).strftime(u'%d/%m/%Y'))
        }
        export_dynamic_data(dict_data)

    def add_payment(self):
        print("add_payment")
        self.open_dialog(EditOrAddPaymentrDialog,
                         modal=True,
                         payment=None,
                         type_=Payment.CREDIT,
                         table_p=self.table)

    def sub_payment(self):
        print("sub_payment")
        self.open_dialog(EditOrAddPaymentrDialog,
                         modal=True,
                         payment=None,
                         type_=Payment.DEBIT,
                         table_p=self.table)