20120510

Lino on a shared host

Got Lino running in the shell of a shared host.

The welcome.html template isn’t used anymore but was still parsed. Fixed.

In django.core.management.__init__.py there’s a function get_commands():

global _commands
if _commands is None:
    _commands = dict([(name, 'django.core') for name in find_commands(__path__[0])])

    # Find the installed apps
    try:
        from django.conf import settings
        apps = settings.INSTALLED_APPS
    except (AttributeError, EnvironmentError, ImportError):
        raise # <<-- add this to correct Django's behaviour
        apps = []

Django features a very strange behaviour of silently ignoring any (AttributeError, EnvironmentError, ImportError) that occurs during initialization. I ignore why they did this, but it has at least one side effect: if the logger config (the function defined in LOGGING) tries and fails to create a logfile, then it raises an IOError (a subclass of EnvironmentError). And you get no error message at all. manage.py validate reports “0 errors”, but nothing works because not all INSTALLED_APPS have been loaded. Changed lino.utils.log.configure() so that in case of an IOError when trying to open the log file it just logs an exception to the other handlers.

TODO:

Schuldnerberatung

Continued with docs/tickets/63. Moved lino.modlib.debts to lino.obsolete.debts. Moved lino.sandbox.debts to lino.modlib.debts.

New table DebtsSummaryByBudget.

Done:

  • SummaryTable für Schulden. Diese werden nicht gruppiert, aber wohl in die Kolonne ihres Akteurs eingetragen und insgesamt nach Datum o.ä. sortiert.

Remains to do:

  • Hide the “Debts Mediation” tab (BudgetsByPartner) for Users without is_debts.
  • How to render zero values on screen and paper
  • Print general summary of a budget:
    • Monatliche Einkünfte
    • Monatliche Ausgaben inkl Raten der laufenden Kredite
    • Monatliche Reserve Steuern
    • Monatliche Reserve Versicherungen
    • Restbetrag für Kredite und Zahlungsrückstände:
    • Total Kredite / Schulden / Gerichtsvollzieher / Zahlungsrückstände
  • Eingabe in der Grid ist umständlich:
    • handleKeyDown optimieren
    • nicht nach jeder Zelle ein refresh machen
  • Jährliche Beträge

To discuss when first prototype is available:

  • Debt.status : “Kredit”, “Schuld”, “Gerichtsvollzieher”?
  • Debt.rate (Monatsrate)?
  • Entries are printed by Group, but displayed on screen by type…