def on_button_query_clicked(self, widget): '''Open the query dialog. ''' from add_edit import add_edit ## Get a book for editing. SHOULD be devolved to add_edit !! foo,iter = self.treeview.get_selection().get_selected() #logging.info(iter) if iter: # Get the data bid = self.booklist.get_value(iter,7) # If it's an e-book then we do nothing if bid == 0: import messages messages.pop_info(_('Cannot query e-books. Please use calibre.' )) return adder = add_edit() #logging.info(adder) adder.populate(bid) adder.display() else: adder = add_edit() adder.display() self.get_book_list(1) # Repopulate book list.
def get_config(self): config_file = home + "/.librarian.cfg" config = ConfigParser.ConfigParser() config.read(config_file) if not config.sections(): #print "Cannot read config file, exiting.\n" # Pop up a message import messages messages.pop_info(_('No config file found.\nA template file file has been written to disk.\nPlease edit ') + config_file + _(' to contain the correct login details for your databases.\nNote that is is a hidden file')) f = open(config_file,"w") # Write a dummy config file if one doesn't exist #The python way, but it converts everything to LOWER case! parser = ConfigParser.SafeConfigParser() parser.add_section('database') parser.add_section('calibre') parser.add_section('qr_code') parser.add_section('amazon_aws') parser.set('database', 'USER', 'username') parser.set('database', 'PASSWD', 'password') parser.set('database', 'DB', 'db_name') parser.set('database', 'DBHOST', 'db_host') parser.set('database', '# DON\'T change the LITE_DB name', '') parser.set('database', 'LITE_DB', 'books.db') parser.set('database', '# Select either sqlite or mysql, Disable a type with a leading #', '') parser.set('database', '#use', 'sqlite') parser.set('database', 'use', 'mysql') parser.set('calibre', '# Optional: Define path to Calibre database, Users home dir will be automatically determined.', '') parser.set('calibre', 'CALIBRE_DB', 'calibre_db') parser.set('qr_code', 'QR_CODE', 'False') parser.set('amazon_aws','AWS_KEY','AWS_KEY') parser.set('amazon_aws','SECRET_KEY','SECRET_KEY') parser.write(f) # Set access mode to owner only os.fchmod(f.fileno(),stat.S_IREAD|stat.S_IWRITE) f.close() del f else: # Now read the file self.db_user = config.get('database','USER') self.db_pass = config.get('database','PASSWD') self.db_base = config.get('database','DB') self.db_host = config.get('database','DBHOST') self.lite_db = config.get('database','LITE_DB') self.use = config.get('database','USE') self.qr_code = config.get('qr_code','QR_CODE') self.az_key = config.get('amazon_aws','AWS_KEY') self.az_skey = config.get('amazon_aws','SECRET_KEY') try: self.calibre_db = config.get('calibre','CALIBRE_DB') except: pass
def get_config(self): config_file = home + "/.librarian.cfg" config = ConfigParser.ConfigParser() config.read(config_file) if not config.sections(): #print "Cannot read config file, exiting.\n" # Pop up a message import messages messages.pop_info(_('No config file found.\nA template file file has been written to disk.\nPlease edit ') + config_file + _(' to contain the correct login details for your databases.\nNote that is is a hidden file')) f = open(config_file,"w") # Write a dummy config file if one doesn't exist #The python way, but it converts everything to LOWER case! parser = ConfigParser.SafeConfigParser() parser.add_section('database') parser.add_section('calibre') parser.add_section('qr_code') parser.add_section('amazon_aws') parser.set('database', 'USER', 'username') parser.set('database', 'PASSWD', 'password') parser.set('database', 'DB', 'db_name') parser.set('database', 'DBHOST', 'db_host') parser.set('database', '# DON\'T change the LITE_DB name', '') parser.set('database', 'LITE_DB', 'books.db') parser.set('database', '# Select either sqlite or mysql, Disable a type with a leading #', '') parser.set('database', 'use', 'sqlite') parser.set('database', '#use', 'mysql') parser.set('calibre', '# Optional: Define path to Calibre database, Users home dir will be automatically determined.', '') parser.set('calibre', 'CALIBRE_DB', 'calibre_db') parser.set('qr_code', 'QR_CODE', 'False') parser.set('amazon_aws','AWS_KEY','AWS_KEY') parser.set('amazon_aws','SECRET_KEY','SECRET_KEY') parser.write(f) # Set access mode to owner only os.fchmod(f.fileno(),stat.S_IREAD|stat.S_IWRITE) f.close() del f else: # Now read the file self.db_user = config.get('database','USER') self.db_pass = config.get('database','PASSWD') self.db_base = config.get('database','DB') self.db_host = config.get('database','DBHOST') self.lite_db = config.get('database','LITE_DB') self.use = config.get('database','USE') self.qr_code = config.get('qr_code','QR_CODE') self.az_key = config.get('amazon_aws','AWS_KEY') self.az_skey = config.get('amazon_aws','SECRET_KEY') try: self.calibre_db = config.get('calibre','CALIBRE_DB') except: pass
def on_button_print_clicked(self, widget): '''Print the entire book list to pdf then opens the default pdf viewer. TODO: Auto width columns This will likely be system specific ''' try: from reportlab.lib.enums import TA_JUSTIFY, TA_LEFT from reportlab.lib.pagesizes import A4 from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import mm except ImportError, e: messages.pop_info(e) return
def on_button_print_clicked(self, widget): ''' Print the book list we are viewing to pdf then open the default pdf viewer. TODO: Auto width columns This will likely be system specific ''' try: from reportlab.lib.enums import TA_JUSTIFY, TA_LEFT from reportlab.lib.pagesizes import A4 from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle, KeepTogether from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import mm except ImportError, e: messages.pop_info(e) return
def on_button_print_clicked(self, widget): ''' Print the book list we are viewing to pdf then open the default pdf viewer. TODO: Auto width columns This will likely be system specific ''' try: from reportlab.lib.enums import TA_JUSTIFY, TA_LEFT from reportlab.lib.pagesizes import A4 from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle,KeepTogether from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import mm except ImportError as e: messages.pop_info(e) return filename = "booklist.pdf" doc = SimpleDocTemplate(filename,pagesize=A4, rightMargin=10,leftMargin=20, topMargin=40,bottomMargin=18) Story=[] data = [] styles=getSampleStyleSheet() text = Paragraph("long line",styles['Normal']) styles.add(ParagraphStyle(name='Justify', alignment = TA_LEFT)) model = self.booklist myiter = model.get_iter_first() if myiter is not None: while str(myiter) != 'None': row = [] if myiter is not None: row.append(Paragraph(model.get_value(myiter, 9), styles["Normal"])) row.append(Paragraph(model.get_value(myiter, 1), styles["Normal"])) row.append(Paragraph(model.get_value(myiter, 2), styles["Normal"])) myiter = model.iter_next(myiter) data.append(row) t = Table(data,[100, 180, 200]) # Values are cell widths t.hAlign='LEFT' # Move WHOLE TABLE to the left, defaults to CENTRE t.setStyle(TableStyle([('VALIGN', (0, 0), (-1, -1), 'TOP')])) # Apples to CELLS Story.append(t) doc.build(Story) # Open a reader for viewing and printing if os.name == "nt": # Windoze. Not tested, I don't have Windoze :) os.filestart(filename) elif os.name == "posix": # Linux os.system("/usr/bin/xdg-open " + filename)
def on_button_query_clicked(self, widget): '''Open the query dialog. ''' from add_edit import add_edit ## Get a book for editing. SHOULD be devolved to add_edit !! foo,iter = self.treeview.get_selection().get_selected() if iter: # Get the data bid = self.booklist.get_value(iter,7) # If it's an e-book then we do nothing if bid == 0: import messages messages.pop_info(_('Cannot query e-books. Please use calibre.' )) return adder = add_edit() adder.populate(bid) adder.display() else: adder = add_edit() adder.display() self.get_book_list(1) # Repopulate book list.