view ChangeLog @ 199:3fa4ab9146dd

Implement three phase user input handling First the state is able to filter keys. Afterwards the MainLoop widget is allowed to act on keypress. At last the state is allowed to react on keys.
author Björn Ricks <bjoern.ricks@intevation.de>
date Fri, 05 Apr 2013 19:29:33 +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
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)