def add_data(self): sgyt_data = self.db_connection_obj.sess.query(self.db_connection_obj.SEGY_QC_on_disk).filter( self.db_connection_obj.SEGY_QC_on_disk.deliverable_id == self.deliverable_id).first() self.grid.addWidget(create_center_data(str(self.deliverable.name)), 1, 0) if sgyt_data is not None: self.data_dict = {self.deliverable.name : sgyt_data} self.grid.addWidget(decide_and_create_label(str(sgyt_data.sgyt_status)),1,1) self.grid.addWidget(create_center_data(sgyt_data.sgyt_reel_no),1,2) self.grid.addWidget(create_center_data(sgyt_data.sgyt_exp_uname),1,3) self.grid.addWidget(create_center_data(sgyt_data.sgyt_time_stamp),1,4) # now add push button to view log pb = QtGui.QPushButton("view SGYT") pb.setObjectName(str(self.deliverable.name)) pb.clicked.connect(self.connect_to_log) self.grid.addWidget(pb,1,5) self.grid.addWidget(decide_and_create_label(sgyt_data.sgyt_approval_status),1,7) # this will automatically decide and create the necessary label True false or blank # pb to approve the log pb_approval = QtGui.QPushButton("Approve") pb_approval.setObjectName(self.deliverable.name) pb_approval.clicked.connect(self.show_approval_popup) self.grid.addWidget(pb_approval,1,6) #now check and add aprrover name it the approval status is not blank if sgyt_data.sgyt_approval_status is not None: self.grid.addWidget(create_center_data(sgyt_data.sgyt_approver_name), 1, 8) self.grid.addWidget(create_center_data(sgyt_data.sgyt_approval_time), 1, 9) else: self.grid.addWidget(decide_and_create_label(""), 1, 2)
def add_data(self): # search the SEGY on disk QC table to check if the SEGY file for this deliverable self.segy_on_disk_qc_obj = self.db_connection_obj.sess.query(self.db_connection_obj.SEGY_QC_on_disk).filter(self.db_connection_obj.SEGY_QC_on_disk.deliverable_id == self.deliverable.id).first() if self.segy_on_disk_qc_obj is not None: obj_id = self.segy_on_disk_qc_obj.id_seq_segy_qc #Now serach for the items in tape write log with the ID corresponding to this id self.segy_write_obj_list = self.db_connection_obj.sess.query( self.db_connection_obj.SEGY_write ).filter(self.db_connection_obj.SEGY_write.id_segy_qc == obj_id).all() self.segy_write_obj_dict = {} if len(self.segy_write_obj_list) != 0: for obj in self.segy_write_obj_list: self.segy_write_obj_dict.update({obj.set_number : obj}) # now add data for i in range(0,self.deliverable.copies): self.grid.addWidget(create_center_data(str('Set no: ' + str(i+1))),i+1,0) self.grid.addWidget(decide_and_create_label(self.segy_on_disk_qc_obj.segy_on_disk_qc_status),i+1,1) if i+1 in self.segy_write_obj_dict.keys(): if self.segy_on_disk_qc_obj.segy_on_disk_qc_status: self.grid.addWidget(decide_and_create_label(self.segy_write_obj_dict[i+1].tape_write_status),i+1,2) if self.segy_write_obj_dict[i + 1].tape_write_status: self.grid.addWidget(create_center_data(self.segy_write_obj_dict[i + 1].tape_written_by),i+1,3) self.grid.addWidget(create_center_data(self.segy_write_obj_dict[i + 1].tape_written_on),i+1,4) pb_approve_log = QtGui.QPushButton('View log') pb_approve_log.setObjectName(self.segy_write_obj_dict[i + 1].segy_w_path) pb_approve_log.clicked.connect(self.show_log) self.grid.addWidget(pb_approve_log,i+1,5) if self.segy_write_obj_dict[i + 1].tape_qc_run_status: self.grid.addWidget(decide_and_create_label(self.segy_write_obj_dict[i + 1].tape_qc_status),i+1,6) self.grid.addWidget(create_center_data(self.segy_write_obj_dict[i + 1].tape_checked_by),i+1,7) self.grid.addWidget(create_center_data(self.segy_write_obj_dict[i + 1].tape_checked_on), i + 1, 8)
def add_data(self): self.data_dir_entry = self.db_connection_obj.sess.query(self.db_connection_obj.Deliverables_data_dir).filter( self.db_connection_obj.Deliverables_data_dir.deliverable_id == self.deliverable_id).filter( self.db_connection_obj.Deliverables_data_dir.dir_type == 'data').first() self.dir_path = self.data_dir_entry.path sgyt_data = self.db_connection_obj.sess.query(self.db_connection_obj.SEGY_QC_on_disk).filter( self.db_connection_obj.SEGY_QC_on_disk.deliverable_id == self.deliverable_id).first() self.data_dict = {self.deliverable.name : sgyt_data} self.grid.addWidget(create_center_data(self.deliverable.name), 1, 0) self.grid.addWidget(create_center_data(self.deliverable.name), 1, 13) self.grid.addWidget(decide_and_create_label(sgyt_data.sgyt_approval_status),1,1) if sgyt_data.sgyt_approval_status: # if SGYT approval status is not True do not proceed pb_segy_exp = QtGui.QPushButton("Update") pb_segy_exp.setObjectName(self.deliverable.name) pb_segy_exp.clicked.connect(self.show_export_upate_pop_up) self.grid.addWidget(pb_segy_exp,1,2) file_name = str(self.deliverable.name + '.sgy') file_path = posixpath.join(self.dir_path, file_name) status = check_generic_path(self.DUG_connection_obj, file_path) if status == 'True': # if the SEGYT file is on disk writing or finished, otherwise STOP self.grid.addWidget(decide_and_create_label(sgyt_data.segy_disk_export_status), 1, 3) if sgyt_data.segy_disk_export_status is not None: # if the export status is set to true or false add exporter name and time stamp labels self.grid.addWidget(create_center_data(sgyt_data.segy_exporter_name),1,4) self.grid.addWidget(create_center_data(sgyt_data.segy_on_disk_time_stamp),1,5) if sgyt_data.segy_disk_export_status: # Add the option to QC the file if the export is set to True self.grid.addWidget(decide_and_create_label(sgyt_data.segy_on_disk_qc_run_status),1,6) # The run status should be update by SEGY on disk QC ops if sgyt_data.segy_on_disk_qc_run_status: # if the run status is True add the button to approve log and link to the log,extractionstatus pb_connect_log = QtGui.QPushButton('View QC log') pb_connect_log.setObjectName(sgyt_data.segy_on_disk_qc_log_path) pb_connect_log.clicked.connect(self.show_QC_log) self.grid.addWidget(pb_connect_log,1,7) self.grid.addWidget(decide_and_create_label(sgyt_data.header_extraction_flag),1,8) if sgyt_data.header_extraction_flag: # if the extraction status is true, add approve button and qc status button pb_approve_log = QtGui.QPushButton('Approve') pb_approve_log.setObjectName(sgyt_data.segy_on_disk_qc_log_path) pb_approve_log.clicked.connect(self.show_approve_qc_log) self.grid.addWidget(pb_approve_log,1,9) self.grid.addWidget(decide_and_create_label(sgyt_data.segy_on_disk_qc_status),1,10) if sgyt_data.segy_on_disk_qc_status is not None: # Now add the time and name for approver self.grid.addWidget(create_center_data(sgyt_data.segy_on_disk_qc_approver_name),1,11) self.grid.addWidget(create_center_data(sgyt_data.segy_on_disk_qc_approval_time_stamp), 1, 12)
def check_sgyt_used_aganist_exported_and_add_gui(self): db_obj = self.db_connection_obj.sess.query(self.db_connection_obj.SEGY_QC_on_disk).filter(self.db_connection_obj.SEGY_QC_on_disk.segy_on_disk_qc_log_path == self.log_path).first() #-------------------------------------------------------------------------------------------- exported_sgyt_path = db_obj.sgyt_unix_path user_sgyt_path = db_obj.sgyt_user_path if return_encoded_stripped_sgyt(self.DUG_connection_obj,exported_sgyt_path) == return_encoded_stripped_sgyt(self.DUG_connection_obj,user_sgyt_path): sgyt_verification = True else: sgyt_verification = False # Now populate segy file path self.segy_name.setText(db_obj.segy_on_disk_file_path) # Now add mismatch flag self.sgyt_mismatch_flag = decide_and_create_label(sgyt_verification) self.grid.addWidget(self.sgyt_mismatch_flag, 4, 1) #Now add trace count self.no_traces.setText(str(self.extracted_headers_dict['trace_count'])) self.file_size.setText(str(self.extracted_headers_dict['file_size'])) #Now add ebcdic_related_headers if sgyt_verification is True #creeate EBCDIC key list ebcdic_sgyt_mapper_dict = {} dict_ebcdic = self.def_dict['ebcdic'] for key in dict_ebcdic.keys(): key_to_use = dict_ebcdic[key][0] data_to_use = dict_ebcdic[key][2][0] ebcdic_sgyt_mapper_dict.update({key_to_use:data_to_use}) if sgyt_verification: self.sgyt_name.setText(db_obj.sgyt_unix_path) db_obj_dict = db_obj.__dict__ # print db_obj_dict # print self.line_edit_dict.keys() for key in db_obj_dict.keys(): if key in ebcdic_sgyt_mapper_dict.keys(): self.line_edit_dict[key].setText(str(db_obj_dict[ebcdic_sgyt_mapper_dict[key]])) else: self.diff_file_name = str('sgyt_diff_') + self.segy_name.text() cmd = 'diff ' + exported_sgyt_path + " " + user_sgyt_path stdin, stdout, stderr = self.DUG_connection_obj.ws_client.exec_command(cmd) self.pop_up_diff = pop_up_text_box_sgyt(stdout.readlines(),'SGT difference') self.pop_up_diff.show() self.sgyt_name.setText(db_obj.sgyt_unix_path) db_obj_dict = db_obj.__dict__ # print db_obj_dict # print self.line_edit_dict.keys() for key in db_obj_dict.keys(): if key in ebcdic_sgyt_mapper_dict.keys(): self.line_edit_dict[key].setText(str(db_obj_dict[ebcdic_sgyt_mapper_dict[key]])) self.db_obj_update = db_obj self.db_obj_dict = db_obj_dict self.ebcdic_sgyt_mapper_dict = ebcdic_sgyt_mapper_dict self.sgyt_match_flag = sgyt_verification
def add_db_entries_to_table(self): db_entry_reference_dict = {} db_entry_plot_dict = {} for db_entry in self.db_segd_qc_entry_list: db_entry_reference_dict.update({(db_entry.tape_no, db_entry.deliverable_id, db_entry.set_no, db_entry.seq_id):db_entry}) for tape in self.tape_list: for deliverable in self.deliverables_list: for i in range(1,int(deliverable.copies)+1): key = (tape.name,deliverable.id,i,tape.sequence_number) if key in db_entry_reference_dict.keys(): pass else: db_entry_reference_dict.update({key: None}) for key in db_entry_reference_dict.keys(): if db_entry_reference_dict[key] is not None: if str(db_entry_reference_dict[key].run_finish) == 'True': db_entry = db_entry_reference_dict[key] rp = self.rv_dict[(db_entry.tape_no,db_entry.seq_id)] self.grid.addWidget(decide_and_create_label(db_entry.run_status),rp,int(self.cv_dict[db_entry.deliverable_id][db_entry.set_no]['Run'])) pb = QtGui.QPushButton(str(db_entry.qc_status)) obj_name = str(db_entry.tape_no +"-" +str(db_entry.set_no)) pb.setObjectName(obj_name) pb.setToolTip(return_SEGD_QC_log_path(self.db_connection_obj,tape_no = obj_name.split("-")[0],set_no=obj_name.split("-")[1])) pb.clicked.connect(self.show_log) if str(db_entry.qc_status) == "True": pb.setStyleSheet('background-color: green') else: pb.setStyleSheet('background-color: red') self.grid.addWidget(pb,rp,int(self.cv_dict[db_entry.deliverable_id][db_entry.set_no]['QC'])) self.grid.addWidget(decide_and_create_label('True'), rp, int(self.cv_dict[db_entry.deliverable_id][db_entry.set_no]['Prod'])) else: db_entry = db_entry_reference_dict[key] rp = self.rv_dict[(db_entry.tape_no,db_entry.seq_id)] self.grid.addWidget(decide_and_create_label('True'), rp, int(self.cv_dict[db_entry.deliverable_id][db_entry.set_no]['Prod'])) self.grid.addWidget(decide_and_create_label('Running'), rp, int(self.cv_dict[db_entry.deliverable_id][db_entry.set_no]['Run'])) else: rp = self.rv_dict[key[0], key[3]] self.grid.addWidget(decide_and_create_label('Ready'), rp, int(self.cv_dict[key[1]][key[2]]['Run'])) self.grid.addWidget(decide_and_create_label('True'), rp, int(self.cv_dict[key[1]][key[2]]['Prod']))
def __init__(self,parent,type): super(approve_form_SEGY_on_disk_qc,self).__init__() self.parent = parent db_obj_dict = self.parent.db_obj_update.__dict__ self.def_dict = type_dict[type] self.grid = QtGui.QGridLayout() #Add label label_text = str('Approval form : ' + type_name_dict[type]) self.grid.addWidget(create_central_labels(label_text),0,0,1,2) flag_list_to_use = self.def_dict['flag_list'] for i in range(0,len(flag_list_to_use)): self.grid.addWidget(create_central_labels(flag_name_dict[flag_list_to_use[i]]),i+1,0) self.grid.addWidget(decide_and_create_label(db_obj_dict[flag_list_to_use[i]]),i+1,1) message = 'Approve or reject: ' + db_obj_dict['segy_on_disk_file_path'] self.approve_box = pop_up_approval_box(message = message) self.approve_box.closed.connect(self.parent.approve_qc_log) self.grid.addWidget(self.approve_box,len(flag_list_to_use)+2,0,1,2) self.setLayout(self.grid)
def add_data(self): data = self.db_connection_obj.sess.query( self.db_connection_obj.SEGY_QC_on_disk).filter( self.db_connection_obj.SEGY_QC_on_disk.deliverable_id == self.deliverable.id).order_by( self.db_connection_obj.SEGY_QC_on_disk.id_seq_segy_qc).all( ) #now create a dictinoary for status data_dict = {} for obj in data: key = obj.line_name data = obj data_dict.update({key: data}) self.data_dict = data_dict #Now search for all available lines that have been shot in orca line lines_shot = self.db_connection_obj.sess.query( self.db_connection_obj.Line).order_by( self.db_connection_obj.Line.sequence_number).all() line_name_list = [] for aline in lines_shot: if int(aline.sequence_number) < 9000: line_name_list.append( (aline.sequence_number, aline.real_line_name)) else: pass # now add the objects in the line_name_list for i in range(1, len(line_name_list) + 1): self.grid.addWidget( create_center_data(str(line_name_list[i - 1][0])), i, 0) self.grid.addWidget(create_center_data(line_name_list[i - 1][1]), i, 1) #now check if some data exists for this in the data_dict if line_name_list[i - 1][1] in data_dict.keys(): #if yes sgyt_data = data_dict[line_name_list[i - 1][1]] self.grid.addWidget( decide_and_create_label(str(sgyt_data.sgyt_status)), i, 2) self.grid.addWidget(create_center_data(sgyt_data.sgyt_reel_no), i, 3) self.grid.addWidget( create_center_data(sgyt_data.sgyt_exp_uname), i, 4) self.grid.addWidget( create_center_data(sgyt_data.sgyt_time_stamp), i, 5) # now add push button to view log pb = QtGui.QPushButton("view SGYT") pb.setObjectName(line_name_list[i - 1][1]) pb.setToolTip( self.data_dict[line_name_list[i - 1][1]].sgyt_unix_path) pb.clicked.connect(self.connect_to_log) self.grid.addWidget(pb, i, 6) self.grid.addWidget( decide_and_create_label(str( sgyt_data.sgyt_approval_status)), i, 8 ) # this will automatically decide and create the necessary label True false or blank # pb to approve the log pb_approval = QtGui.QPushButton("Approve") pb_approval.setObjectName(line_name_list[i - 1][1]) pb_approval.clicked.connect(self.show_approval_popup) self.grid.addWidget(pb_approval, i, 7) #now check and add aprrover name it the approval status is not blank if sgyt_data.sgyt_approval_status is not None: self.grid.addWidget( create_center_data(sgyt_data.sgyt_approver_name), i, 9) self.grid.addWidget( create_center_data(sgyt_data.sgyt_approval_time), i, 10) else: self.grid.addWidget(decide_and_create_label(""), i, 2)
def add_data(self): #Creating the data for SEGY QC for all entries for a particular deliverable data_segy_qc = self.db_connection_obj.sess.query( self.db_connection_obj.SEGY_QC_on_disk).filter( self.db_connection_obj.SEGY_QC_on_disk.deliverable_id == self.deliverable.id).order_by( self.db_connection_obj.SEGY_QC_on_disk.id_seq_segy_qc).all( ) #valid SEGY QC id list for the case valid_segy_qc_list = [] for item in data_segy_qc: valid_segy_qc_list.append(item.id_seq_segy_qc) # now create a dictinoary for status self.segy_ondisk_data_dict = {} # {linename : DAO for segy QC} for obj in data_segy_qc: if obj.segy_on_disk_qc_run_status: # for all the objects in SEGY on disk QC we ony want the ones where SEGY on disk QC was run to distinguish between ready and True of False key = obj.line_name data = obj self.segy_ondisk_data_dict.update({key: data}) # Now search for all available lines that have been shot in orca line lines_shot = self.db_connection_obj.sess.query( self.db_connection_obj.Line).order_by( self.db_connection_obj.Line.sequence_number).all() line_name_list = [] for aline in lines_shot: if int(aline.sequence_number) < 9000: line_name_list.append( (aline.sequence_number, aline.real_line_name)) else: pass # creating the data for SEGY write data_segy_write = self.db_connection_obj.sess.query( self.db_connection_obj.SEGY_write).filter( self.db_connection_obj.SEGY_write.set_number == self.set_no).all() self.segy_write_obj_dict_set_wise = { } # { SEGYQC_id : DAO for SEGY write} for obj in data_segy_write: if obj.id_segy_qc in valid_segy_qc_list: self.segy_write_obj_dict_set_wise.update({obj.id_segy_qc: obj}) # now add the objects for i in range(1, len(line_name_list) + 1): # This needs to be added one more time self.grid.addWidget( create_center_data(str(line_name_list[i - 1][0])), i, 1) self.grid.addWidget(create_center_data(line_name_list[i - 1][1]), i, 2) if line_name_list[i - 1][1] in self.segy_ondisk_data_dict.keys(): self.grid.addWidget( decide_and_create_label(self.segy_ondisk_data_dict[ line_name_list[i - 1][1]].segy_on_disk_qc_status), i, 3) segy_qc_id = self.segy_ondisk_data_dict[line_name_list[i - 1] [1]].id_seq_segy_qc if segy_qc_id in self.segy_write_obj_dict_set_wise.keys(): self.grid.addWidget( create_central_labels( self.segy_write_obj_dict_set_wise[segy_qc_id]. tape_label), i, 0) self.grid.addWidget( decide_and_create_label( self.segy_write_obj_dict_set_wise[segy_qc_id]. tape_write_status), i, 4) self.grid.addWidget( create_center_data( self.segy_write_obj_dict_set_wise[segy_qc_id]. tape_written_by), i, 5) self.grid.addWidget( create_center_data( self.segy_write_obj_dict_set_wise[segy_qc_id]. tape_written_on), i, 6) pb_view_log = QtGui.QPushButton('View log') pb_view_log.setObjectName(str(segy_qc_id)) pb_view_log.clicked.connect(self.show_log) self.grid.addWidget(pb_view_log, i, 7) if self.segy_write_obj_dict_set_wise[ segy_qc_id].tape_qc_run_status: # If the tape qc was run self.grid.addWidget( decide_and_create_label( self.segy_write_obj_dict_set_wise[segy_qc_id]. tape_qc_status), i, 8) self.grid.addWidget( create_center_data( self.segy_write_obj_dict_set_wise[segy_qc_id]. tape_checked_by), i, 9) self.grid.addWidget( create_center_data( self.segy_write_obj_dict_set_wise[segy_qc_id]. tape_checked_on), i, 10) else: if self.segy_ondisk_data_dict[line_name_list[i - 1] [1]].segy_on_disk_qc_status: self.grid.addWidget(decide_and_create_label(""), i, 3)
def add_data(self): set_start_column = 3 data_segy_qc = self.db_connection_obj.sess.query( self.db_connection_obj.SEGY_QC_on_disk).filter( self.db_connection_obj.SEGY_QC_on_disk.deliverable_id == self.deliverable.id).order_by( self.db_connection_obj.SEGY_QC_on_disk.id_seq_segy_qc).all( ) # valid SEGY QC id list for the case valid_segy_qc_list = [] for item in data_segy_qc: valid_segy_qc_list.append(item.id_seq_segy_qc) # now create a dictinoary for status self.segy_ondisk_data_dict = {} for obj in data_segy_qc: if obj.segy_on_disk_qc_run_status: # for all the objects in SEGY on disk QC we ony want the ones where SEGY on disk QC was run to distinguish between ready and True of False key = obj.line_name data = obj self.segy_ondisk_data_dict.update({key: data}) # Now search for all available lines that have been shot in orca line lines_shot = self.db_connection_obj.sess.query( self.db_connection_obj.Line).order_by( self.db_connection_obj.Line.sequence_number).all() line_name_list = [] for aline in lines_shot: if int(aline.sequence_number) < 9000: line_name_list.append( (aline.sequence_number, aline.real_line_name)) else: pass # creating the data for SEGY write data_segy_write = self.db_connection_obj.sess.query( self.db_connection_obj.SEGY_write).all() self.segy_write_obj_dict = {} for obj in data_segy_write: if obj.id_segy_qc in valid_segy_qc_list: self.segy_write_obj_dict.update({ (obj.id_segy_qc, int(obj.set_number)): obj }) #print self.segy_write_obj_dict # now add the objects for i in range(1, len(line_name_list) + 1): # This needs to be added one more time self.grid.addWidget( create_center_data(str(line_name_list[i - 1][0])), i + 1, 0) self.grid.addWidget(create_center_data(line_name_list[i - 1][1]), i + 1, 1) if line_name_list[i - 1][1] in self.segy_ondisk_data_dict.keys(): self.grid.addWidget( decide_and_create_label(self.segy_ondisk_data_dict[ line_name_list[i - 1][1]].segy_on_disk_qc_status), i + 1, 2) segy_qc_id = self.segy_ondisk_data_dict[line_name_list[i - 1] [1]].id_seq_segy_qc if self.segy_ondisk_data_dict[line_name_list[i - 1] [1]].segy_on_disk_qc_status: for j in range(0, self.deliverable.copies): if (segy_qc_id, j + 1) in self.segy_write_obj_dict.keys(): self.grid.addWidget( decide_and_create_label( self.segy_write_obj_dict[( segy_qc_id, j + 1)].tape_write_status), i + 1, (int(self.segy_write_obj_dict[ (segy_qc_id, j + 1)].set_number) - 1) * 2 + set_start_column) if self.segy_write_obj_dict[( segy_qc_id, j + 1 )].tape_qc_run_status: # If the tape qc was run self.grid.addWidget( decide_and_create_label( self.segy_write_obj_dict[( segy_qc_id, j + 1)].tape_qc_status), i + 1, (int(self.segy_write_obj_dict[ (segy_qc_id, j + 1)].set_number) - 1) * 2 + set_start_column + 1) else: self.grid.addWidget(decide_and_create_label(""), i + 1, j * 2 + set_start_column)
def add_data(self): self.data_dir_entry = self.db_connection_obj.sess.query( self.db_connection_obj.Deliverables_data_dir).filter( self.db_connection_obj.Deliverables_data_dir.deliverable_id == self.deliverable_id).filter( self.db_connection_obj.Deliverables_data_dir.dir_type == 'data').first() self.dir_path = self.data_dir_entry.path # data = self.db_connection_obj.sess.query(self.db_connection_obj.SEGY_QC_on_disk).filter(self.db_connection_obj.SEGY_QC_on_disk.deliverable_id == self.deliverable_id).order_by( # self.db_connection_obj.SEGY_QC_on_disk.id_seq_segy_qc).all() data = get_data_for_SEGY_qc(self.db_connection_obj, self.deliverable_id) # now create a dictinoary for status data_dict = {} for obj in data: key = obj.line_name data = obj data_dict.update({key: data}) self.data_dict = data_dict # Now search for all available lines that have been shot in orca line lines_shot = self.db_connection_obj.sess.query( self.db_connection_obj.Line).order_by( self.db_connection_obj.Line.sequence_number).all() line_name_list = [] for aline in lines_shot: if int(aline.sequence_number) < 9000: line_name_list.append( (aline.sequence_number, aline.real_line_name)) else: pass #now fetch the directory content list cmd = str("ls " + self.dir_path) available_file_list = fetch_directory_content_list( self.DUG_connection_obj, cmd) available_file_dict = {} for a_line in line_name_list: a_line_name_segy = str(a_line[1] + '.sgy') if a_line_name_segy in available_file_list: available_file_dict.update({a_line[1]: True}) else: available_file_dict.update({a_line[1]: False}) # now add the objects in the line_name_list for i in range(1, len(line_name_list) + 1): # the 1st two and the last two columens self.grid.addWidget( create_center_data(str(line_name_list[i - 1][0])), i, 0) self.grid.addWidget(create_center_data(line_name_list[i - 1][1]), i, 1) self.grid.addWidget( create_center_data(str(line_name_list[i - 1][0])), i, 15) self.grid.addWidget(create_center_data(line_name_list[i - 1][1]), i, 14) # now check if some data exists for this in the data_dict if line_name_list[i - 1][1] in data_dict.keys(): sgyt_data = data_dict[line_name_list[i - 1][1]] self.grid.addWidget( decide_and_create_label(sgyt_data.sgyt_approval_status), i, 2) # add SGYT QC status if sgyt_data.sgyt_approval_status: # if SGYT approval status is not True do not proceed pb_segy_exp = QtGui.QPushButton("Update") pb_segy_exp.setObjectName(sgyt_data.line_name) pb_segy_exp.setToolTip( posixpath.join(self.dir_path, str(sgyt_data.line_name + '.sgy'))) pb_segy_exp.clicked.connect(self.show_export_upate_pop_up) self.grid.addWidget(pb_segy_exp, i, 3) file_name = str(sgyt_data.line_name + '.sgy') file_path = posixpath.join(self.dir_path, file_name) status = available_file_dict[sgyt_data.line_name] if status: # if the SEGYT file is on disk writing or finished, otherwise STOP self.grid.addWidget( decide_and_create_label( sgyt_data.segy_disk_export_status), i, 4) if sgyt_data.segy_disk_export_status is not None: # if the export status is set to true or false add exporter name and time stamp labels self.grid.addWidget( create_center_data( sgyt_data.segy_exporter_name), i, 5) self.grid.addWidget( create_center_data( sgyt_data.segy_on_disk_time_stamp), i, 6) if sgyt_data.segy_disk_export_status: # Add the option to QC the file if the export is set to True self.grid.addWidget( decide_and_create_label( sgyt_data.segy_on_disk_qc_run_status), i, 7 ) # The run status should be update by SEGY on disk QC ops if sgyt_data.segy_on_disk_qc_run_status: # if the run status is True add the button to approve log and link to the log,extractionstatus pb_connect_log = QtGui.QPushButton( 'View QC log') pb_connect_log.setObjectName( sgyt_data.segy_on_disk_qc_log_path) pb_connect_log.setToolTip( sgyt_data.segy_on_disk_qc_log_path) pb_connect_log.clicked.connect( self.show_QC_log) self.grid.addWidget(pb_connect_log, i, 8) self.grid.addWidget( decide_and_create_label( sgyt_data.header_extraction_flag), i, 9) if sgyt_data.header_extraction_flag: # if the extraction status is true, add approve button and qc status button pb_approve_log = QtGui.QPushButton( 'Approve') pb_approve_log.setObjectName( sgyt_data.segy_on_disk_qc_log_path) pb_approve_log.clicked.connect( self.show_approve_qc_log) self.grid.addWidget( pb_approve_log, i, 10) self.grid.addWidget( decide_and_create_label( sgyt_data. segy_on_disk_qc_status), i, 11) if sgyt_data.segy_on_disk_qc_status is not None: # Now add the time and name for approver self.grid.addWidget( create_center_data( sgyt_data. segy_on_disk_qc_approver_name ), i, 12) self.grid.addWidget( create_center_data( sgyt_data. segy_on_disk_qc_approval_time_stamp ), i, 13)