# HG changeset patch # User Björn Ricks # Date 1355387614 -3600 # Node ID c37fb8223762823e0be5d8be2316c22a684fbea9 # Parent 6e8b23f1ee94140a355998de01abb734e068e8fb Add new States to edit project key and description Add new ProjectEditKeyState to edit the key and ProjectEditDesciptionState to edit the description of a project. diff -r 6e8b23f1ee94 -r c37fb8223762 getan/states.py --- a/getan/states.py Thu Dec 13 09:32:21 2012 +0100 +++ b/getan/states.py Thu Dec 13 09:33:34 2012 +0100 @@ -658,3 +658,55 @@ def exit(self): self.view.set_footer_text("", 'entry_footer', False) return DefaultEntryListState(self.state, self.controller, self.view) + + +class ProjectEditKeyState(AlterProjectState): + + messages = { + 'proj_key': _('Insert key for project: '), + 'proj_description': _('Insert description for project: '), + 'choose_proj': _(" Choose a project.") + } + + def __init__(self, controller, view, project): + controller.view.set_footer_text(self.msg('proj_key'), + 'question', 1) + super(ProjectEditKeyState, self).__init__(controller, view) + self.project = project + self.view.frame.set_focus('footer') + self.footer.set_edit_text(project.key) + self.footer.set_edit_pos(len(self.footer.edit_text)) + + def enter(self): + key = self.footer.get_edit_text() + if key == '': + return self + self.project.key = key + return ProjectEditDescriptionState(self.controller, self.view, + self.project) + + +class ProjectEditDescriptionState(AlterProjectState): + + messages = { + "proj_description" : _("Insert description for project: "), + "choose_proj" : _(" Choose a project.") + } + + def __init__(self, controller, view, project): + controller.view.set_footer_text(self.msg("proj_description"), + "question", 1) + super(ProjectEditDescriptionState, self).__init__(controller, view) + self.project = project + self.view.frame.set_focus("footer") + self.footer.set_edit_text(project.desc) + self.footer.set_edit_pos(len(self.footer.edit_text)) + + def enter(self): + description = self.footer.get_edit_text() + if description == '': + return self + self.project.desc = description + self.controller.update_project(self.project) + self.controller.view.set_footer_text(self.msg('choose_proj'), 'question') + return PausedProjectsState(self.controller, self.view)