def show_n_edit_report(self, event): """Display the report for the selected record and allow edits""" selected_record = self.register.record_display.GetFirstSelected() if selected_record == -1: self.register.SetStatusText('No record selected', 0) return # convert to string coz unicode object does not work id = str(self.register.record_display.GetItemData(selected_record)) template_file = self.report_files[event.Id // 2] record_vals = self.records.retrieve_record(id) # retrieve stored raw report try: raw_report = record_vals['raw_report'] except KeyError: raw_report = '' # create qr code image, pass filename to record_vals qrimg_data = [(k, record_vals[k]) for k in self.records.qrcode_fields] _, qrimg_filename = tempfile.mkstemp(suffix='.jpg') qr = QRImg(qrimg_data, qrimg_filename) qr.make_image() record_vals['qrimg'] = qrimg_filename print record_vals['qrimg'] # style file in the project directory # same name as report or all.sty local_stylefile = os.path.splitext(template_file)[0] + '.sty' global_stylefile = os.path.join(os.path.dirname(template_file), 'all.sty') if os.path.exists(local_stylefile): rep = Report(template_file, record_vals, self.image_folder, id, raw_report, local_stylefile) elif os.path.exists(global_stylefile): rep = Report(template_file, record_vals, self.image_folder, id, raw_report, global_stylefile) else: rep = Report(template_file, record_vals, self.image_folder, id, raw_report) raw_report = rep.edit_report() record_vals['raw_report'] = raw_report self.records.insert_record(record_vals, id)