Pre-requisites
--------------

You will need python (2.6 and 2.7 are tested), qtalchemy, sqlalchemy (0.7x 
preferred), a python database driver, and PyQt4 or PySide.  Refer to setup.py 
for a more complete list of dependencies.

It should be noted that while PyHacc is a fully functional system which is in
production use for the author's personal use, it is primarily a demonstration
and example of qtalchemy_.

.. _qtalchemy: https://bitbucket.org/jbmohler/qtalchemy

As of qtalchemy version 0.8.x, PyHacc uses PySide.  To use PyQt4 instead of
PySide, you must install from the source in the bitbucket repository.  Install
in the following way::

    python qtbindings.py --platform=PyQt4
    python setup.py build
    sudo python setup.py install

If using PyQt4, the qtalchemy library will also need to be switched to 
using PyQt4 in a similar way.


Getting Started
---------------

On linux, it should be sufficient to run::

    python setup.py build
    sudo python setup.py install
    pyhaccgui --conn=sqlite://

The sqlite:// connection string will start pyhacc with a demo database.

It is recommended and most tested to use pyhacc with postgresql.  To initialize 
a database::

    createdb pyhacc
    pyhacc initdb postgresql://username:password@localhost/pyhacc
    # to run pyhacc connected to this database:
    pyhaccgui --conn=postgresql://username:password@localhost/pyhacc

Getting Started on Windows
--------------------------

Roughly speaking, the install proceeds as follows:

- Install python and easy_install
- Install PyQt (or PySide, if desired).
- easy_install sqlalchemy
- easy_install pyscopg2  # for postgresql support
- easy_install pyhacc

On your postgresql server, run the following command::

    createdb pyhacc

Initialize the data-set with the following command on the windows client::

    c:\python27\python.exe c:\python27\scripts\pyhacc initdb postgresql://username:password@server/pyhacc

Create a windows short-cut with the following target for starting the program::

    c:\python27\pythonw.exe c:\python27\scripts\pyhaccgui --conn=postgresql://username:password@server/pyhacc

Changelog
---------

0.9:

* Python 3 support
* Transaction reverse & auto-balance with hot-keys
* Report improvements particularly in profit & loss reports.
* Additional calendar navigation features from qtviews.

0.8:

* reports:  balance sheet and profit & loss formatting with sorting and
  grouping flexibility
* reports:  html export
* experimental flask http server code for viewing of reports
* switch to using PySide rather than PyQt4
* primitive calendar view for transactions (personally, I love it!)
* transaction tagging gui

0.7:

* report changes with column width being propogated from on-screen lists to pdf
  versions
* factor out basic report code to qtalchemy
* bug fixes

0.6:  First pleasantly usable version in production
