def edit(self): if not get_user_email(): # Note that the get_user_email will display a message box warning # the user to register. return self.dlg_settings_edit.exec_()
def showEvent(self, event): super(DlgSettingsLogin, self).showEvent(event) email = get_user_email(warn=False) if email: self.email.setText(email) password = settings.value("LDMP/password", None) if password: self.password.setText(password)
def btn_refresh(self): self.connectionEvent.emit(True) email = get_user_email() if email: start_date = datetime.datetime.now() + datetime.timedelta(-14) jobs = get_execution(date=start_date.strftime('%Y-%m-%d')) if jobs: self.jobs = jobs # Add script names and descriptions to jobs list for job in self.jobs: # self.jobs will have prettified data for usage in table, # so save a backup of the original data under key 'raw' job['raw'] = job.copy() script = job.get('script_id', None) if script: job['script_name'] = job['script']['name'] # Clean up the script name so the version tag doesn't # look so odd job['script_name'] = re.sub(r'([0-9]+(_[0-9]+)+)$', r'(v\g<1>)', job['script_name']) job['script_name'] = job['script_name'].replace( '_', '.') job['script_description'] = job['script'][ 'description'] else: # Handle case of scripts that have been removed or that are # no longer supported job['script_name'] = self.tr('Script not found') job['script_description'] = self.tr('Script not found') # Pretty print dates and pull the metadata sent as input params for job in self.jobs: job['start_date'] = datetime.datetime.strftime( job['start_date'], '%Y/%m/%d (%H:%M)') job['end_date'] = datetime.datetime.strftime( job['end_date'], '%Y/%m/%d (%H:%M)') job['task_name'] = job['params'].get('task_name', '') job['task_notes'] = job['params'].get('task_notes', '') job['params'] = job['params'] # Cache jobs for later reuse QSettings().setValue( "LDMP/jobs_cache", json.dumps(self.jobs, default=json_serial)) self.update_jobs_table() self.connectionEvent.emit(False) return True self.connectionEvent.emit(False) return False
def btn_refresh(self): email = get_user_email() if email: self.jobs = get_execution() if self.jobs: # Add script names and descriptions to jobs list self.scripts = get_scripts() if not self.scripts: return False for job in self.jobs: # self.jobs will have prettified data for usage in table, # so save a backup of the original data under key 'raw' job['raw'] = job.copy() script = job.get('script_id', None) if script: job['script_name'] = self.scripts[ job['script_id']]['name'] job['script_description'] = self.scripts[ job['script_id']]['description'] else: # Handle case of scripts that have been removed or that are # no longer supported job['script_name'] = self.tr('Script not found') job['script_description'] = self.tr('Script not found') # Pretty print dates and pull the metadata sent as input params for job in self.jobs: job['start_date'] = datetime.strftime( job['start_date'], '%Y/%m/%d (%H:%M)') job['end_date'] = datetime.strftime( job['end_date'], '%Y/%m/%d (%H:%M)') job['task_name'] = job['params'].get('task_name', '') job['task_notes'] = job['params'].get('task_notes', '') job['params'] = job['params'] # Cache jobs for later reuse self.settings.setValue("LDMP/jobs_cache", self.jobs) self.update_jobs_table() return True return False
def __init__(self, parent=None): super(DlgSettings, self).__init__(parent) self.settings = QSettings() self.setupUi(self) self.dlg_settingsregister = DlgSettingsRegister() self.dlg_settingsupdate = DlgSettingsUpdate() self.register_user.clicked.connect(self.btn_register) self.delete_user.clicked.connect(self.btn_delete) self.login.clicked.connect(self.btn_login) self.update_profile.clicked.connect(self.btn_update_profile) self.forgot_pwd.clicked.connect(self.btn_forgot_pwd) self.cancel.clicked.connect(self.btn_cancel) email = get_user_email(warn=False) if email: self.email.setText(email) password = self.settings.value("LDMP/password", None) if password: self.password.setText(password)
def delete(self): email = get_user_email() if not email: return reply = QtWidgets.QMessageBox.question( None, self.tr("Delete user?"), self. tr(u"Are you sure you want to delete the user {}? All of your tasks will be lost and you will no longer be able to process data online using Trends.Earth." .format(email)), QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No) if reply == QtWidgets.QMessageBox.Yes: resp = delete_user(email) if resp: QtWidgets.QMessageBox.information( None, self.tr("Success"), QtWidgets.QApplication.translate( 'LDMP', u"User {} deleted.".format(email))) settings.setValue("LDMP/password", None) settings.setValue("LDMP/email", None) self.close() self.ok = True
def showEvent(self, event): super(DlgSettingsEditForgotPassword, self).showEvent(event) email = get_user_email(warn=False) if email: self.email.setText(email)
def btn_refresh(self): # TODO: Handle loss of internet and connection error on button refresh # progressMessageBar = mb.createMessage("Contacting server to update job list.") # progress = QtGui.QProgressBar() # progress.setRange(0, 0) # progress.setAlignment(Qt.AlignLeft|Qt.AlignVCenter) # progressMessageBar.layout().addWidget(progress) # self.bar.pushWidget(progressMessageBar, iface.messageBar().INFO) self.jobs = self.api.get_execution(user=get_user_email()) #mb.popWidget(progressMessageBar) if self.jobs: # Add script names and descriptions to jobs list self.scripts = get_scripts(self.api) for job in self.jobs: # self.jobs will have prettified data for usage in table, so # save a backup of the original data under key 'original' job['raw'] = job.copy() script = job.get('script_id', None) if script: job['script_name'] = self.scripts[job['script_id']]['name'] job['script_description'] = self.scripts[ job['script_id']]['description'] else: # Handle case of scripts that have been removed or that are # no longer supported job['script_name'] = 'Script not found' job['script_description'] = 'Script not found' # Pretty print dates and pull the metadata sent as input params for job in self.jobs: job['start_date'] = datetime.strftime(job['start_date'], '%Y/%m/%d (%H:%M)') job['end_date'] = datetime.strftime(job['end_date'], '%Y/%m/%d (%H:%M)') job['task_name'] = job['params'].get('task_name', '') job['task_notes'] = job['params'].get('task_notes', '') job['params'] = job['params'] table_model = JobsTableModel(self.jobs, self) proxy_model = QtGui.QSortFilterProxyModel() proxy_model.setSourceModel(table_model) self.jobs_view.setModel(proxy_model) # Add "Notes" buttons in cell for row in range(0, len(self.jobs)): btn = QtGui.QPushButton("Details") btn.clicked.connect(self.btn_details) self.jobs_view.setIndexWidget(proxy_model.index(row, 5), btn) self.jobs_view.horizontalHeader().setResizeMode( QtGui.QHeaderView.ResizeToContents) self.jobs_view.setSelectionBehavior( QtGui.QAbstractItemView.SelectRows) self.jobs_view.selectionModel().selectionChanged.connect( self.selection_changed) self.resizeWindowToColumns() return True else: return False