def setup_ui(self): # json file selector self.json_groupbox = QGroupBox("Export ODK Aggregate") layout = QGridLayout() self.json_select_button = PushButton("", self) self.json_select_button.clicked.connect(self.json_selector_clicked) layout.addWidget(self.json_select_button, 1, 0) self.json_groupbox.setLayout(layout) # destination folder selector self.destination_groupbox = QGroupBox("Destination") layout = QGridLayout() self.destination_select_button = PushButton(self.destination_folder, self) self.destination_select_button.clicked.connect( self.destination_selector_clicked) layout.addWidget(self.destination_select_button, 1, 0) self.destination_groupbox.setLayout(layout) # period calendars today = datetime.date.today() self.period_groupbox = QGroupBox("Période") layout = QGridLayout() self.from_date_selector = DateTimeEdit(QDate(self.from_date)) self.from_date_selector.dateChanged.connect(self.from_date_changed) self.from_date_selector.setMaximumDate(self.to_date) self.to_date_selector = DateTimeEdit(QDate(self.to_date)) self.to_date_selector.dateChanged.connect(self.to_date_changed) self.to_date_selector.setMinimumDate(self.from_date) self.to_date_selector.setMaximumDate(today) layout.addWidget(Label("Du"), 2, 0) layout.addWidget(self.from_date_selector, 3, 0) layout.addWidget(Label("Au"), 2, 1) layout.addWidget(self.to_date_selector, 3, 1) self.period_groupbox.setLayout(layout) # start button self.start_button = PushButton("Démarrer") self.start_button.setEnabled(False) self.start_button.setDefault(True) self.start_button.clicked.connect(self.export_requested) # cancel button self.cancel_button = CancelPushButton("Annuler") self.cancel_button.setEnabled(False) self.cancel_button.clicked.connect(self.cancel_export) # grid self.gridBox = QGridLayout() self.gridBox.addWidget(self.json_groupbox, 0, 0, 1, 2) self.gridBox.addWidget(self.destination_groupbox, 1, 0, 1, 2) self.gridBox.addWidget(self.period_groupbox, 2, 0, 1, 2) self.gridBox.addWidget(self.start_button, 3, 0) self.gridBox.addWidget(self.cancel_button, 3, 1) vBox = QVBoxLayout() vBox.addLayout(self.gridBox) self.setLayout(vBox) self.json_fpath = None
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=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)