diff options
author | Pootle daemon <pootle@pootle.sugarlabs.org> | 2012-02-16 05:33:10 (GMT) |
---|---|---|
committer | Pootle daemon <pootle@pootle.sugarlabs.org> | 2012-02-16 05:33:10 (GMT) |
commit | bf6b0f0a7b2b4562262ede6ff26aeaa0ff37d2e9 (patch) | |
tree | 47bde30e41fb44d0efd09f292d29b09f566023ea | |
parent | 83822fc9dac92e6f94b408d355e13df42f4d99a3 (diff) | |
parent | 8c95a945095acdc997f390a3ef25f2e0b845de67 (diff) |
Merge branch 'master' of git.sugarlabs.org:calendario/mainline
-rw-r--r-- | calendario.py | 47 | ||||
-rw-r--r-- | database.py | 14 | ||||
-rw-r--r-- | model.py | 16 |
3 files changed, 64 insertions, 13 deletions
diff --git a/calendario.py b/calendario.py index 5ab2087..ab953c7 100644 --- a/calendario.py +++ b/calendario.py @@ -40,6 +40,7 @@ class CalendarioActivity(activity.Activity): self.left_container = gtk.VBox() self.label_date = gtk.Label("06 Feb 2012") self.calendar = gtk.Calendar() + self.calendar.connect('day-selected', self._day_selected_cb) self.tool_frame = gtk.Frame(_("Tools")) self.reminder_expander = gtk.Expander(_("Tasks reminder")) @@ -155,27 +156,30 @@ class CalendarioActivity(activity.Activity): def add_columns(self): '''Add columns to TreeView''' - cell_text = gtk.CellRendererText() + #for the tasks list + cell_text = gtk.CellRendererText() titles = (_('Tasks'), _('Categoty'), _('Priority')) - i = 0 + i = 1 for title in titles: column = gtk.TreeViewColumn(title, cell_text, text=i) #if the colum is the first - if i == 0: + if i == 1: column.set_min_width(300) else: column.set_min_width(100) self.tasks_list.append_column(column) i = i + 1 - column = gtk.TreeViewColumn('BOTON', cell_text, text=3) + cell_toggle = gtk.CellRendererToggle() + cell_toggle.connect('toggled', self._toggle_row_cb) + column = gtk.TreeViewColumn('', cell_toggle, active=4) self.tasks_list.append_column(column) #for the reminder - column = gtk.TreeViewColumn(titles[0], cell_text, text=0) + column = gtk.TreeViewColumn(titles[0], cell_text, text=1) self.reminder_list.append_column(column) - column = gtk.TreeViewColumn(titles[2], cell_text, text=2) + column = gtk.TreeViewColumn(titles[2], cell_text, text=3) self.reminder_list.append_column(column) def _save_cb(self, widget, data=None): @@ -197,6 +201,33 @@ class CalendarioActivity(activity.Activity): db.close() self.get_tasks() + def _toggle_row_cb(self, widget, path): + '''Toggle button row''' + model = self.tasks_list.get_model() + row_iter = model.get_iter(path) + #row is a gtk.TreeModelRow() + row = model[row_iter] + row[4] = not row[4] + #task, completed, id for the moment category and + #priority are excluded + data = (row[1], row[4], row[0]) + log.debug(data) + db = DataBase() + db.update(data) + db.close() + + #model.set(row_iter, 4, val) + + def _day_selected_cb(self, widget, data=None): + '''Select new day''' + date_formated = date_format(self.calendar.get_date()) + db = DataBase() + data = db.get(date_formated) + db.close() + tasks_model = TasksModel(data) + self.tasks_list.set_model(tasks_model.get_model()) + + def close(self, skip_save=False): '''Override the close method''' activity.Activity.close(self, True) @@ -216,8 +247,8 @@ class Task(object): self.priority = priority self.completed = completed - def get_tasks_id(self): - return self.tasks_id + def get_task_id(self): + return self.task_id def get_task(self): return self.task diff --git a/database.py b/database.py index 36caea4..f36b7e8 100644 --- a/database.py +++ b/database.py @@ -33,7 +33,7 @@ class DataBase(object): if create: self.cursor.execute("CREATE TABLE tasks (id INTEGER PRIMARY KEY \ - AUTOINCREMENT, task TEXT NOT NULL, category TEXT, \ + AUTOINCREMENT, task TEXT NOT NULL, category INTEGER, \ priority INTEGER, completed INTEGER, date TEXT NOT \ NULL);") @@ -45,22 +45,30 @@ class DataBase(object): def get(self, date): '''Get the rows acording to the date''' d = (date,) - self.cursor.execute("SELECT * FROM tasks WHERE date=? ORDER BY priority desc;", d) + self.cursor.execute("SELECT * FROM tasks WHERE date=? ORDER BY completed asc, priority desc;", d) data = list() for i in self.cursor: + log.debug([i[0], i[1], i[2], i[3], i[4]]) task = calendario.Task(i[0], i[1], i[2], i[3], i[4]) data.append(task) return data def get_reminder(self): '''Get the tasks that needs be reminder''' - self.cursor.execute("SELECT * FROM tasks ORDER BY priority desc;") + self.cursor.execute("SELECT * FROM tasks WHERE completed=0 ORDER BY priority desc;") data = list() for i in self.cursor: task = calendario.Task(i[0], i[1], i[2], i[3], i[4]) data.append(task) return data + def update(self, data): + #self.cursor.execute("UPDATE tasks SET task=?, category=?, priority=?, \ + # completed=? where id=?; ", data) + + self.cursor.execute("UPDATE tasks SET task=?, completed=? where id=?; ", data) + self.connection.commit() + def close(self): '''Close the connection''' self.cursor.close() @@ -19,6 +19,7 @@ import gtk import pygtk from gettext import gettext as _ import logging +import gobject log = logging.getLogger('Calendario-Model-Log') class ComboBoxModel(object): @@ -50,7 +51,13 @@ class TasksModel(object): self.tasks = tasks_list def get_model(self): - model = gtk.ListStore(str, str, str, str) + model = gtk.ListStore( + gobject.TYPE_INT, + gobject.TYPE_STRING, + gobject.TYPE_STRING, + gobject.TYPE_STRING, + gobject.TYPE_BOOLEAN) + for o in self.tasks: c = o.get_category() @@ -73,6 +80,11 @@ class TasksModel(object): else: priority = '' - model.append([o.get_task(), category, priority, o.get_complete()]) + if o.get_complete() == 1: + status = True + else: + status = False + + model.append([o.get_task_id(), o.get_task(), category, priority, status]) return model |