Advertisement
pickarooney

rugby

Feb 15th, 2015
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.20 KB | None | 0 0
  1. #!/usr/bin/python
  2. from gi.repository import Gtk
  3. from gi.repository.GdkPixbuf import PixbufLoader
  4. import urllib2
  5. import psycopg2
  6. import sys
  7.  
  8. class NotebookWindow(Gtk.Window):
  9.  
  10.     def __init__(self):
  11.         Gtk.Window.__init__(self, title="Rugby Database")
  12.  
  13.         #Create Application Window
  14.         self.set_border_width(10)
  15.         self.set_default_size(800, 600)
  16.         self.set_position(Gtk.WindowPosition.CENTER)
  17.  
  18.         #Add external container (box)
  19.         vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
  20.         self.add(vbox)
  21.  
  22.         #Add tabbed window
  23.         nbook = Gtk.Notebook()
  24.         vbox.pack_start(nbook, True, True, 0)
  25.         nbook.show()
  26.  
  27.         #Add Main tab
  28.         label = Gtk.Label()
  29.         label.set_markup("<b><big>Main</big></b>")
  30.         table = Gtk.Table(rows=40, columns=10)
  31.  
  32.         #Add Results field
  33.         #results_box = Gtk.ScrolledWindow()
  34.         #results_box.set_vexpand(True)
  35.         #table.attach(results_box, 0, 1, 1, 39, xpadding=5, ypadding=5)
  36.  
  37.         #Add Search box
  38.         entry = Gtk.Entry()
  39.         entry.set_property("secondary-icon-stock", Gtk.STOCK_FIND)
  40.         entry.connect("icon-press", self.on_search_button)
  41.         #entry.connect("activate", self.on_search_enter, results_box)
  42.         entry.connect("activate", self.on_search_enter, table)
  43.         table.attach(entry, 0, 1, 0, 1, xpadding=5)
  44.  
  45.         nbook.append_page(table, label)
  46.  
  47.  
  48.     def on_search_button(self, entry, icon, event):
  49.         search = entry.get_text()
  50.         print("Search for " + search)
  51.  
  52.     def on_search_enter(self, entry, table): #changed from results_box
  53.         store = Gtk.ListStore(str, str, str)
  54.         tree = Gtk.TreeView(store)
  55.         ##
  56.         results_box = Gtk.ScrolledWindow()
  57.         results_box.set_vexpand(True)
  58.         table.attach(results_box, 0, 1, 1, 39, xpadding=5, ypadding=5)
  59.         ##
  60.         search = entry.get_text()
  61.         search = search.replace("'","''") #deal with apostrophes
  62.         entry.set_text("")
  63.         print("Search for " + search)
  64.         result = self.lookup_player(search)
  65.         print result
  66.         if len(result) > 0:
  67.            for i in range(0, len(result)):
  68.             store.append([result[i][0],result[i][1],str(result[i][4])])
  69.             print result[i][0],result[i][1],result[i][2],result[i][3],result[i][4],result[i][5],result[i][6],result[i][7],result[i][8]
  70.         else:
  71.            print "No players found"
  72.  
  73.         #Add column for last name
  74.         renderer = Gtk.CellRendererText()
  75.         column = Gtk.TreeViewColumn("Last Name")
  76.         column.pack_start(renderer, True)
  77.         column.add_attribute(renderer, "text", 0)
  78.         tree.append_column(column)
  79.  
  80.         #Add column for first name
  81.         renderer = Gtk.CellRendererText()
  82.         column = Gtk.TreeViewColumn("First Name")
  83.         column.pack_start(renderer, True)
  84.         column.add_attribute(renderer, "text", 1)
  85.         tree.append_column(column)
  86.  
  87.         #Add column for icon
  88.         renderer = Gtk.CellRendererPixbuf()
  89.         column = Gtk.TreeViewColumn("Show")
  90.         column.pack_start(renderer, True)
  91.         column.add_attribute(renderer, "stock-id", 2)
  92.         tree.append_column(column)
  93.  
  94.         results_box.add(tree)
  95.         table.show_all()
  96.         tree.show_all()
  97.  
  98.     def on_click_edit(self, button):
  99.         print("Editing Player")
  100.  
  101.     def lookup_player(self, pstring):
  102.         try:
  103.             con = psycopg2.connect(database='Rugby', user='postgres', password = '1234')
  104.             cur = con.cursor()
  105.             search = "select pl.lastname, pl.firstname, pl.height, pl.weight, to_char(pl.dob, 'DD/MM/YYYY'), cl.name, pl.injury_id, to_char(pl.suspendeduntil, 'DD/MM/YYYY'), pl.photo from player pl inner join club cl on cl.id = pl.currentclub_id where firstname ilike '%s' or lastname ilike '%s'" % (pstring, pstring)
  106.             cur.execute(search)
  107.             result = cur.fetchall()
  108.             return result
  109.  
  110.         except psycopg2.DatabaseError, e:
  111.             print 'Error %s' % e
  112.             sys.exit(1)
  113.  
  114.         finally:
  115.             if con:
  116.                 con.close()
  117.  
  118. win = NotebookWindow()
  119. win.connect("delete-event", Gtk.main_quit)
  120. win.show_all()
  121.  
  122.  
  123. Gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement