コード例 #1
0
    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)