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
        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.



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

New table DebtsSummaryByBudget.


  • 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…