20130328 (Thursday, 28 March 2013)

Final spurt before the next release

  • Internal Server Error at /auth when there was no action name, no username and/or no password specified.

  • Tried to find a way to have appy_pod renderer send a message or do some other action when an error occurs. Without succes. Posted a question.

  • The template for a Budget didn’t yet include the new welfare.debts.DebtsByBudget table.

About virtual fields

A very subtle thing: debts.PrintEntriesByBudget is a VirtualTable which defines one column partner. We might simply declare it like this:

@dd.displayfield(_("Partner"))
def partner(self,obj,ar):
    return obj.partner

But it is better to define it like this:

@dd.virtualfield(models.ForeignKey('contacts.Partner'))
def partner(self,obj,ar):
    return obj.partner

This is because we really want it to simulate a (read-only) ForeignKey to Partner. This won’t make the field editable (e.g. you’ll not get a ComboBox on that field), but certain properties like the preferred display width and the verbose name have default values as if it were a real FK to contacts.Partner. Also, when this table is being rendered in a ExtJS HTML panel, the partner’s name will be clickable and open the detail window for that partner.

(I wrote this because today I discovered and fixed the bug that the verbose name was not set correctly.)