Mercurial > getan
changeset 107:a23e8191c6bc
Update project list when a new project was created
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Mon, 12 Sep 2011 14:54:00 +0200 |
parents | a0779fb2ef4d |
children | e7548b8c6dcc |
files | getan.py getan/view.py |
diffstat | 2 files changed, 23 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/getan.py Mon Sep 12 14:53:28 2011 +0200 +++ b/getan.py Mon Sep 12 14:54:00 2011 +0200 @@ -27,14 +27,11 @@ self.ev_class = ev_class self.pv_class = pv_class - self.projects = backend.load_projects() - if self.projects: - entries = backend.load_entries(self.projects[0].id) - else: - entries = [] + self.backend = backend + projects, entries = self.load_projects() + self.projects = projects self.running = [] - self.backend = backend self.project_view = pv_class(self, self.projects) self.entries_view = ev_class(entries) @@ -54,6 +51,14 @@ else: self.state = self.state.keypress(input) + def load_projects(self): + projects = self.backend.load_projects() + if projects: + entries = self.backend.load_entries(projects[0].id) + else: + entries = [] + return (projects, entries) + def update_entries(self, project): logger.debug("GetanController: update entries.") if project: entries = self.backend.load_entries(project.id) @@ -139,6 +144,7 @@ if not key or not description: return self.backend.insert_project(key, description) + self.update_projects() self.update_project_list() def update_entry(self, entry): @@ -148,6 +154,11 @@ for project in self.running: self.stop_project(display=False) + def update_projects(self): + projects, entries = self.load_projects() + self.projects = projects + self.project_view.load_rows(projects) + def main():
--- a/getan/view.py Mon Sep 12 14:53:28 2011 +0200 +++ b/getan/view.py Mon Sep 12 14:54:00 2011 +0200 @@ -203,13 +203,11 @@ self.size = () self.top = 0 self.controller = controller - self.raw_rows = rows + self.load_rows(rows) self.header = urwid.LineBox(urwid.AttrWrap(urwid.Text("\n%s\n" % _('List of registered projects')),'project_header')) self.footer = urwid.Edit() - self.rows = [ProjectNode(x) for x in rows] - self.listbox = urwid.ListBox(urwid.SimpleListWalker(self.rows)) self.body = urwid.LineBox(urwid.Padding(urwid.AttrWrap( self.listbox, 'entries'),('fixed left',1),('fixed right',1))) self.frame = urwid.Frame(self.body, header=self.header, @@ -217,6 +215,11 @@ self.update_focus(self.focused) self._total_time() + def load_rows(self, rows): + self.raw_rows = rows + self.rows = [ProjectNode(x) for x in rows] + self.listbox = urwid.ListBox(urwid.SimpleListWalker(self.rows)) + def _total_time(self): if not self.rows: return logger.debug("ProjectList: update projects total time.")