def __init__(self, width=None, height=None): super(QMainWindow, self).__init__() self.requested_width = width self.requested_height = height if self.requested_width and self.requested_height: self.resize(self.requested_width, self.requested_height) self.setWindowTitle(Constants.APP_TITLE) self.setWindowIcon(QIcon(Constants.intpath(Constants.PNG_ICON))) self.setWindowFlags(Qt.WindowMinimizeButtonHint) self.reset() QMessageBox.information( self, Constants.APP_TITLE, "Cette application vous permet d'exporter les données d'une " "collecte mobile effectuée avec ODK Collect et ODK Aggregate.\n\n" "Commencez par exporter vos données au format JSON depuis " "l'interface web d'ODK Aggregate ({odk_url}) puis utilisez cette " "application pour générer les formulaires d'enquêtes remplis.\n\n" "Ils seront ensuite disponible au format PDF pour impression et " "seront accompagnés de tous les médias (photos) pour transfert " "aux autres département par clé USB.\n\n" "{author} - {email} - {phone}\n{copy} - {date}" .format(author=Constants.AUTHOR, copy=Constants.AUTHOR_COPY, date=Constants.APP_DATE, email=Constants.AUTHOR_EMAIL, phone=Constants.AUTHOR_PHONE, odk_url=Constants.AGGREGATE_URL), QMessageBox.Ok, QMessageBox.NoButton)
def __init__(self, parent=None, *args, **kwargs): super(QDialog, self).__init__(parent) super(BaseWidget, self).__init__(parent) self.setWindowTitle("ODK Aggregate indisponible") self.setWindowIcon(QIcon(Constants.intpath(Constants.PNG_ICON))) icon_label = QLabel() icon_label.setPixmap( QPixmap(Constants.intpath([Constants.IMAGES_FOLDER, 'alert.png']))) title = Label( "<h3><font color='orange'>ODK Aggregate indisponible</font></h3>") message = Label( "<p>Impossible de joindre le serveur ODK Aggregate.</p>" "<h6>Merci de vérifier la configuration du réseau et le lancement " "de la machine virtuelle. </h6>" "<hr/>" "<h6> Sans le serveur ODK Aggregate; vous pourrez exporter les " "fiches d'enquête préremplies, </h6>" "mais vous ne pourrez pas exporter les médias." "<h4> Voulez-vous continuer sans ODK Aggregate ?</h4>") continue_button = PushButton("Continuez sans les médias") continue_button.clicked.connect(self.accept) cancel_button = PushButton("Annuler l'export") cancel_button.clicked.connect(self.close) cancel_button.setFocus() # grid layout gridBox = QGridLayout() gridBox.addWidget(icon_label, 0, 0) gridBox.addWidget(title, 0, 1) gridBox.addWidget(message, 1, 1, 2, 2) gridBox.addWidget(cancel_button, 4, 2) gridBox.addWidget(continue_button, 4, 1) gridBox.setRowStretch(3, 2) vbox = QVBoxLayout() vbox.addLayout(gridBox) self.setLayout(vbox)
def __init__(self, parent, nb_instances_successful, nb_instances_failed, nb_medias_successful, nb_medias_failed, from_date, to_date, *args, **kwargs): super(ConfirmationWidget, self).__init__(parent=parent) title_label = Label( "<h2><font color='green'>Félicitations !</font></h2>") icon_label = QLabel() icon_label.setPixmap(QPixmap(Constants.intpath( [Constants.IMAGES_FOLDER, 'success.png']))) date_fmt = "%d-%m-%Y" nb_submissions_total = nb_instances_successful + nb_instances_failed message_label = Label( "<p>L'ensemble des données de la collecte ;<br />" "({nb_submissions_total}) enregistrements entre le {from_date} " "et le {to_date} ;<br />" "ont été exportées avec succes.</p>" "<h6>Nombre enregistrements : {nb_instances_successful} </h6>" "<h6> Nombre de médias : {nb_medias_successful} </h6>" .format(nb_submissions_total=nb_submissions_total, from_date=from_date.strftime(date_fmt), to_date=to_date.strftime(date_fmt), nb_instances_successful=nb_instances_successful, nb_medias_successful=nb_medias_successful)) size_policy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) message_label.setSizePolicy(size_policy) reset_button = PushButton("Nouvel export") reset_button.clicked.connect(self.parentWidget().reset) quit_button = PushButton("Quitter") quit_button.clicked.connect(self.parentWidget().close) gridBox = QGridLayout() gridBox.addWidget(icon_label, 0, 1) gridBox.addWidget(title_label, 0, 2) gridBox.addWidget(message_label, 1, 1, 3, 2) gridBox.addWidget(reset_button, 4, 1) gridBox.addWidget(quit_button, 4, 2) gridBox.setRowStretch(1, 3) vBox = QVBoxLayout() vBox.addLayout(gridBox) self.setLayout(vBox)
def __init__(self, parent, nb_instances_successful, nb_instances_failed, nb_medias_successful, nb_medias_failed, from_date, to_date, *args, **kwargs): super(ConfirmationWidget, self).__init__(parent=parent) title_label = Label( "<h2><font color='green'>Félicitations !</font></h2>") icon_label = QLabel() icon_label.setPixmap( QPixmap(Constants.intpath([Constants.IMAGES_FOLDER, 'success.png']))) date_fmt = "%d-%m-%Y" nb_submissions_total = nb_instances_successful + nb_instances_failed message_label = Label( "<p>L'ensemble des données de la collecte ;<br />" "({nb_submissions_total}) enregistrements entre le {from_date} " "et le {to_date} ;<br />" "ont été exportées avec succes.</p>" "<h6>Nombre enregistrements : {nb_instances_successful} </h6>" "<h6> Nombre de médias : {nb_medias_successful} </h6>".format( nb_submissions_total=nb_submissions_total, from_date=from_date.strftime(date_fmt), to_date=to_date.strftime(date_fmt), nb_instances_successful=nb_instances_successful, nb_medias_successful=nb_medias_successful)) size_policy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) message_label.setSizePolicy(size_policy) reset_button = PushButton("Nouvel export") reset_button.clicked.connect(self.parentWidget().reset) quit_button = PushButton("Quitter") quit_button.clicked.connect(self.parentWidget().close) gridBox = QGridLayout() gridBox.addWidget(icon_label, 0, 1) gridBox.addWidget(title_label, 0, 2) gridBox.addWidget(message_label, 1, 1, 3, 2) gridBox.addWidget(reset_button, 4, 1) gridBox.addWidget(quit_button, 4, 2) gridBox.setRowStretch(1, 3) vBox = QVBoxLayout() vBox.addLayout(gridBox) self.setLayout(vBox)