[billreminder] Started fixing categories dialog.
- From: Og B. Maciel <ogmaciel src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [billreminder] Started fixing categories dialog.
- Date: Mon, 12 Oct 2009 22:08:38 +0000 (UTC)
commit a43afc82a2e1c55ccfb25e6536bc754190211611
Author: Og B. Maciel <ogmaciel gnome org>
Date: Mon Oct 12 18:08:34 2009 -0400
Started fixing categories dialog.
src/gui/categoriesdialog.py | 53 ++++++++++++++++++++----------------------
src/lib/actions.py | 6 +++++
2 files changed, 31 insertions(+), 28 deletions(-)
---
diff --git a/src/gui/categoriesdialog.py b/src/gui/categoriesdialog.py
index 33dc9e0..9def715 100644
--- a/src/gui/categoriesdialog.py
+++ b/src/gui/categoriesdialog.py
@@ -13,7 +13,7 @@ from lib import i18n
from lib.utils import create_pixbuf
from lib.utils import Message
from gui.widgets.viewcategory import ViewCategory
-from db.categoriestable import CategoriesTable
+from db.entities import Category
class CategoriesDialog(gtk.Dialog):
"""
@@ -33,14 +33,14 @@ class CategoriesDialog(gtk.Dialog):
self.set_transient_for(parent)
self.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
- self.currentrecord = {}
+ self.currentrecord = None
# Set up the UI
self._initialize_dialog_widgets()
self._connect_fields()
#self._populate_fields()
self.actions = Actions()
- self._populateTreeView(self.actions.get_categories("id > 0 ORDER BY categoryname ASC"))
+ self._populateTreeView(self.actions.get_categories())
if new:
self._on_newbutton_clicked(None)
@@ -136,8 +136,9 @@ class CategoriesDialog(gtk.Dialog):
for rec in records:
self.list.add(self._formated_row(rec))
- if rec['categoryname'] == self.currentrecord.get('categoryname', ''):
- found = path
+ if self.currentrecord:
+ if rec.name == self.currentrecord.category[0]:
+ found = path
path += 1
# Only select an item if we have data
@@ -148,18 +149,14 @@ class CategoriesDialog(gtk.Dialog):
def _formated_row(self, row):
""" Formats a bill to be displayed as a row. """
- # Make sure the row is created using fields in proper order
- fields = CategoriesTable.Fields
- # Initial list
+ color = row.color and row.color or '#fff'
+
formated = []
- # Loop through 'fields' and color code them
- for key in fields:
- if key == 'color':
- color = row['color']
- formated.append(create_pixbuf(color=color))
- else:
- formated.append(row[key])
- formated.append(row['color'])
+ formated.append(row.id)
+ formated.append(create_pixbuf(color=color))
+ formated.append(row.color)
+ formated.append(row.color)
+
return formated
def _on_list_cursor_changed(self, widget):
@@ -178,18 +175,18 @@ class CategoriesDialog(gtk.Dialog):
# The ID for the selected record
category_id = _model.get_value(iteration, 0)
# Now fetch it from the database
- self.currentrecord = self.actions.get_categories({'id': category_id})[0]
+ self.currentrecord = self.actions.get_categories({'id': id})[0]
else:
- self.currentrecord = {}
+ self.currentrecord = None
def _update_fields(self):
if not self.currentrecord:
self.name_.set_text("")
self.color.set_color(gtk.gdk.color_parse("#000"))
return
- self.name_.set_text(self.currentrecord['categoryname'])
+ self.name_.set_text(self.currentrecord.name)
try:
- color = gtk.gdk.color_parse(self.currentrecord['color'])
+ color = gtk.gdk.color_parse(self.currentrecord.color)
except ValueError:
color = gtk.gdk.color_parse("#000")
self.color.set_color(color)
@@ -197,10 +194,10 @@ class CategoriesDialog(gtk.Dialog):
def reloadTreeView(self, *arg):
# Update list with updated record
self.list.listStore.clear()
- self._populateTreeView(self.actions.get_categories(""))
+ self._populateTreeView(self.actions.get_categories())
def _on_newbutton_clicked(self, button):
- self.currentrecord = {}
+ self.currentrecord = None
self.name_.set_text("")
self.color.set_color(gtk.gdk.color_parse("#000"))
self.deletebutton.set_sensitive(False)
@@ -213,7 +210,7 @@ class CategoriesDialog(gtk.Dialog):
color = self.color.get_color().to_string()
# Check if it already exists
- rec = self.actions.get_categories("UPPER(categoryname) = '%s'" % name.upper())
+ rec = self.actions.get_categories({'name': name})
if rec:
message = Message()
if message.ShowQuestionYesNo(_("The category \"%s\" already exists in the database!\n\n"\
@@ -222,23 +219,23 @@ class CategoriesDialog(gtk.Dialog):
#return
# We're updating an existing category.
if self.currentrecord:
- id = self.currentrecord['id']
+ id = self.currentrecord.id
row = self.actions.edit_category({'id': id,
- 'categoryname': name,
+ 'name': name,
'color': color})
# We're adding a new category.
else:
row = self.actions.add_category({'categoryname': name,
'color': color})
# Update our local "copy" directly from database
- self.currentrecord = self.actions.get_categories({'categoryname': name})[0]
+ self.currentrecord = self.actions.get_categories({'name': name})[0]
# Repopulate the grid
self.reloadTreeView()
def _on_deletebutton_clicked(self, button):
if self.currentrecord:
- id = self.currentrecord['id']
+ id = self.currentrecord.id
more = self.actions.get_bills({'catId': id})
if len(more) > 1:
message = Message()
@@ -251,7 +248,7 @@ class CategoriesDialog(gtk.Dialog):
if not confirm:
return
row = self.actions.delete_category(int(id))
- self.currentrecord = {}
+ self.currentrecord = None
self.name_.set_text("")
self.color.set_color(gtk.gdk.color_parse("#000"))
self.savebutton.set_sensitive(False)
diff --git a/src/lib/actions.py b/src/lib/actions.py
index 7821521..51905d7 100644
--- a/src/lib/actions.py
+++ b/src/lib/actions.py
@@ -126,3 +126,9 @@ class Actions(object):
def add_bill(self, bill):
return self.dal.add(bill)
+
+ def add_category(self, category):
+ return self.dal.add(category)
+
+ def delete(self, dbobject):
+ pass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]