Mercurial > getan
view ChangeLog @ 94:159a1ef0fd7c
Add new state to select projects with keys larger then one
Introduce a new SelectProjectState which records the key sequence and
return the project if a corresponding key was found. It's possible to
go back to the ProjectPausedState with ESC.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Wed, 31 Aug 2011 15:43:12 +0200 |
parents | 04dbf4c9f297 |
children |
line wrap: on
line source
2011-05-30 Björn Ricks <bjoern.ricks@intevation.de> * getan.py: Handle KeyboardInterrupt and shutdown getan carefully afterwards 2011-05-30 Björn Ricks <bjoern.ricks@intevation.de> * getan/states.py: Save the current project when switching to Running state. Now it's possible to move up and down through the project list or even to the entry list while a project is running. This behaviour also changed the current project. Therefore it's necessary to keep the project while changing to other states. 2011-05-30 Björn Ricks <bjoern.ricks@intevation.de> * getan/states.py: Move 'up' and 'down' keypress handling to general ProjectState class to make them available in all project states. 2011-05-30 Björn Ricks <bjoern.ricks@intevation.de> * getan/states.py: Use footer of EntryList to display the editable description of an entry and not the general footer to be able to edit the desciption while running a project. 2011-05-30 Björn Ricks <bjoern.ricks@intevation.de> * getan/view.py (ListWidget): Add new node_in_focus method to get the current node in list 2011-05-25 Björn Ricks <bjoern.ricks@intevation.de> Fix for #1569 * getan/states.py: Don't crash if subtracted time is greater then the current recorded time 2011-05-25 Björn Ricks <bjoern.ricks@intevation.de> Be able to edit the description of a recorded entry * getan/states.py: Add a new EditEntryState that reads the current description of an entry, displays it in the footer and saves the text of the footer in the database afterwards Switch from DefaultEntryListState to EditEntryState when 'e' is pressed 2011-05-25 Björn Ricks <bjoern.ricks@intevation.de> * getan/states.py: Only switch to the entry list if the current selected project has entries 2011-05-25 Björn Ricks <bjoern.ricks@intevation.de> Only update the focus of a List if it has some rows. This fixes a chash while switching to an empty entry list * getan/view.py: Check if the current list view has some rows before setting the new focus 2011-05-25 Björn Ricks <bjoern.ricks@intevation.de> Be able to update the entry descriptions * getan.py: Add update_entry method in GetanController that forwards an entry to the backend * getan/backend.py: Add update_entry method in backend class that updates the description of an entry in the database 2011-05-25 Björn Ricks <bjoern.ricks@intevation.de> Make getan logging configureable to be able to different getan instances at the same time * getan/config.py: Pass filename and loglevel parameters to initialize and setup_logging functions. Both parameters are used to setup up the basic config of the logger * getan.py: Add an OptionParser to be able to switch the log file and debug verbosity on the command line 2011-05-25 Björn Ricks <bjoern.ricks@intevation.de> Minor changes in views * getan/view.py: Improve codepath for updating view in ListWidget, use set_footer_text in ProjectList instead of creating a new Text Widget directly, clip project text in project list 2011-05-25 Björn Ricks <bjoern.ricks@intevation.de> Fix for #1571 * getan/view.py: Add scrolling in entry list to be able to select and modify all entries. (Modified patch from Ingo) 2010-12-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix for #1638 * getan/view.py: use preferred encoding in uwid * getan/states.py: Fixed another no-project bug. 2010-12-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> Make getan runnable if there is no project in database. * getan.py, getan/states.py, getan/view.py: Various checks to ensure you really have a project. 2010-12-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * getan/backend.py: Create database file if it does not exist. 2010-12-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> Some minor fixes * getan/config.py: Proper use of global logger. * getan/resources.py: Removed needless import * getan/states.py: Fixed state errors 2010-12-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix for #1624 * getan/states.py, getan/utils.py: used a safe int conversion. 2010-10-02 Ingo Weinzierl <ingo.weinzierl@intevation.de> * getan/config.py: Setup the language. * getan/resources.py: New module that should serve functions for working with resources. Currently, there is just a single function to get a translated text based on gettext. * getan/states.py, getan/view.py: Replaced hard coded texts with gettext calls. * po/Makefile, po/README, po/de.po: Makefile, description and german translation for gettext. NOTE: It is necessary to call 'make mo' in the po directory to enable the german language. 2010-09-02 Ingo Weinzierl <ingo.weinzierl@intevation.de> ISSUE1575 * getan/view.py: Verify that time values are not null before adding them to total time. Avoids getan crashing while switching the time mode. 2010-08-31 Ingo Weinzierl <ingo.weinzierl@intevation.de> * getan.py, getan/backend.py: Made getan Python-2.4 compatible. 2010-08-31 Ingo Weinzierl <ingo.weinzierl@intevation.de> * contrib/wochenbericht: Added a parameter 'year' that makes possible to filter out the week of a specific year only. 2010-08-31 Ingo Weinzierl <ingo.weinzierl@intevation.de> ISSUE1566 * getan.py: Bugfix: removed 'with' statement, replaced by try/finally. 2010-08-30 Ingo Weinzierl <ingo.weinzierl@intevation.de> * getan.py: Added __enter__ and __exit__ methods. The exit method is used to stop still running projects - even if getan crashes. Therefor it was necessary to change the method signature of stop_project() in GetanController. The description for the running project is given into the method as parameter. If no desc parameter is specified, '-no description-' is used as description. This is the case if there are still running projects when we reach __exit__(). * getan/states.py: Added a description when calling stop_project() of GetanController. 2010-08-30 Ingo Weinzierl <ingo.weinzierl@intevation.de> * getan/view.py: Bugfix: Unified parameter names in ProjectList - some changes in rev25 did not fit to the current parameter names (head, foot). 2010-08-30 Ingo Weinzierl <ingo.weinzierl@intevation.de> * getan/states.py, getan/view.py: Bugfix: fixed wrong parameter name while accessing the raw project of a project node. 2010-08-29 Ingo Weinzierl <ingo_weinzierl@web.de> * getan.py: Catch a window resize event before calling keypress() of the states and trigger an update of the view - the view is resizable now! 2010-08-29 Ingo Weinzierl <ingo_weinzierl@web.de> * getan/states.py: Enter MoveEntryState and DeleteEntryState only if there are selected entries. * getan/view.py: Updating the footer text of a ListWidget will update the attribute 'footer' in the ListWidget and call ListWidget._update_view(). * getan.py: Bugfix: changed the attribute name (entry -> item) when accessing the EntryList's entries. 2010-08-29 Ingo Weinzierl <ingo_weinzierl@web.de> * getan/view.py: Bugfix: switching the time mode in ProjectList will also update the displayed total time in the footer of ProjectList. 2010-08-28 Ingo Weinzierl <ingo.weinzierl@intevation.de> This commit introduces a new implementation of 'getan's user interface based on urwid ( >= 0.9.9.1). * getan.py: The 'getan' controller that is also used to start the application. * classic/getan: Moved the 'old' getan to this folder - there is a new implementation based on python urwid library. * getan/__init__.py, getan/backend.py, getan/config.py, getan/project.py, getan/states.py, getan/utils.py, getan/view.py: Model, backend, view and config modules used by getan. * README: Added urwid >= 0.9.9.1 as further dependendy of getan and a hint of the classic version of 'getan' based on curses. * TODO: Idea of implementing a 'Help-Widget' to display all available keys. * INTRODUCTION: An overview about possible keys in the user interface. 2009-08-18 Thomas Arendsen Hein <thomas@intevation.de> * contrib/zeiterfassung: left justify user sign in zeiterfassung * getan: human_seconds: Use timespec instead of seconds and document it. * getan: allow adding/subtracting times while a project is running * getan: rename substract to subtract (substract might be correct, too, but outdated) * getan: Allow <timespec>+ and <timespec>- (RPN) to change time for the current project * getan: Handle empty input when adding/subtracting time of the running project 2008-09-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/zeitsort: New. Sorts a zeiterfassung.txt file by the dates in the lines. Useful to merge larger chunks by simply append them and sort the result afterwards. 2008-08-12 Sascha L. Teichmann <sascha.teichmann@intevation.de> * getan: When assiging a name to an anonym task remove and re-insert it into the project tree to make it selectable. 2008-08-12 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/zeiterfassung: Applied Stephan Holl's week-option.patch which adds the possibility to give an optional week of year. 2008-08-11 Sascha L. Teichmann <sascha.teichmann@intevation.de> * getan: !!! Work in progress !!! Project Trees The classic worklog only has one key to address a project. This is major short comming. The getan database allows to store projects keys with more than one character. This feature will be exploited to build trees of projects. Lets say you have two main tasks foo and bar with two sub tasks each you can name them f1, f2 and b1, b2. getan stores these four tasks in a tree with top level f and b and tow second level branches 1 and 2. To choose a task you have to press f or b followed by 1 or 2. At the moment only selection works. TODO and next steps: - Remove all old linear data structures. - adjust rendering to only show active branches. - sort anonymous task after naming into project tree. 2008-08-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/zeiterfassung: Applied a variation of Stephan Holl's zeiterfassung.non-utf8-chars-in-db.patch to force the encoding given by --encoding=. 2008-08-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/zeiterfassung: Added parameter -e | --encoding=. This enables e.g. the output as latin1 with --encoding=latin1. 2008-08-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/zeiterfassung: Applied and completed Stephan Holl's zeiterfassung.bessere-lesbarkeit.patch, fixed small issue with --project= parameter. 2008-08-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/zeiterfassung: New. generates lines for zeiterfassung.txt. usage: ./contrib/zeiterfassung <options> with <options> [--user=|-u <user>] : Name of user, default: $USER [--database=|-d <database>]: getan database, default: time.db [--project|-p] : Key of output project, default: all [--list|-l] : list all projects [--help|-h] : This text 2008-07-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * getan: Feature wish 8: F1 is like <ESC>-1, F2 is like <ESC>-2 to F10 is like <ESC>-0. 2008-07-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * getan: Feature wish 4: in +/- time defaults to minutes. Strings like '1d:4h:3m', or '2m:4s' and so on are valid times now. Feature wish 10: When adding time to project is now possible to enter an optional description. 2008-07-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/wochenbericht: Applied patch from Stephan Holl to show usage on '-h' of '--help'. Added check for existence of db file. 2008-07-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/wochenbericht: New. Little script to summarize the entries for a given week number of year. 2008-07-30 Sascha L. Teichmann <sascha.teichmann@intevation.de> * getan: Added total sum of all projects. * README: Added hint to tac your old worklog config file to keep reversed order. 2008-07-30 Sascha L. Teichmann <sascha.teichmann@intevation.de> * getan: Added +/- time to tasks. If in pause mode press + or - to add or subtract time from a task in form of <key> <seconds>. key is the effected task seconds is the among of time. seconds can be postfixed by 's' for seconds, 'm' for minutes, 'h' for hours and 'd' for days. 2008-07-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * getan: To exit getan you now can use double BACKSPACE, too. * README: Fixed typo, added hint to Sascha Wilde's projects converter. * contrib/convert-projects: Added Sascha Wilde's converter to import existing worklog configuration files. 2008-07-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * ChangeLog, LICENSE, README, TODO, getan, schema.sql: Initial import