From: tanya Date: Thu, 4 Feb 2010 14:55:19 +0000 (+0200) Subject: 123 X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=926a5d0fbb4bbb14f4acafd9d90d674e23b732ff;p=meabook 123 --- diff --git a/database/db.py b/database/db.py index 6b66b39..1455111 100755 --- a/database/db.py +++ b/database/db.py @@ -42,14 +42,15 @@ class DbSqlite: self.data[row[0]] = row[1] return self.data - def get_allrecords(self, field): + def get_allrecords(self, field, struct): """return records""" cur = self.conn.cursor() cur.execute("select data.id, data.value " "from data left join field " "on data.id_field=field.id " - "where field.name=?", (field,)) + "left join relation on data.id=relation.id_data " + "where field.name=? and relation.id_struct=?", (field, struct)) self.data = {} for row in cur: #print row @@ -156,4 +157,17 @@ class DbSqlite: ts.append(item[row[2]], [row[0], row[1]]) return ts + def get_list(self, parent): + + """return list of struct with same parent""" + conn = self.connect() + if conn is None: + return None + cur = conn.cursor() + cur.execute("select id, name from struct where parent=?", (parent,)) + data = {} + for row in cur: + data[row[0]] = row[1] + + return data diff --git a/list.py b/list.py index cbbd987..ce065d6 100755 --- a/list.py +++ b/list.py @@ -50,30 +50,36 @@ class List: vbox.pack_start(sw, True, True, 0) self.dbo = db.DbSqlite() - self.data = self.dbo.get_allrecords('cn') + #data = self.dbo.get_allrecords('cn') + data = self.dbo.get_list(0) store = gtk.ListStore(int, str) - for d in self.data: - store.append([d, self.data[d]]) + for d in data: + store.append([d, data[d]]) - ts = db.make_tree() - tree = gtk.TreeView(ts) - tree.set_rules_hint(True) + self.tree = gtk.TreeView(store) + self.tree.set_rules_hint(True) - tree.connect("row-activated", self.select_item) + self.tree.connect("row-activated", self.select_item) t1 = gtk.CellRendererText() column = gtk.TreeViewColumn("Id", t1, text=0) column.set_sort_column_id(0) column.set_visible(False) - tree.append_column(column) + self.tree.append_column(column) t1 = gtk.CellRendererText() column = gtk.TreeViewColumn("Name", t1, text=1) column.set_sort_column_id(0) - tree.append_column(column) + self.tree.append_column(column) - sw.add(tree) + sw.add(self.tree) + + #st = gtk.ListStore(int, str) + #data = self.dbo.get_list(0) + #for d in self.data: + # st.append([d, self.data[d]]) + #self.tree.set_model(st) self.window.add(vbox) self.window.show_all() @@ -84,6 +90,21 @@ class List: def select_item(self, widget, path, column): + store = gtk.ListStore(int, str) + parent = widget.get_model()[path][0] + data = self.dbo.get_list(parent) + for d in data: + store.append([d, data[d]]) + #add people + data = self.dbo.get_allrecords('cn', parent) + for d in data: + store.append([d, data[d]]) + self.tree.set_model(store) + print "set model" + + + def select_item1(self, widget, path, column): + #print "select_item path:%s" % path self.dialog = gtk.Dialog("Item descrition", self.window,