Refactoring the dashboard code

In January 2015, I refactored a lot of special-cased code to avoid violations of Don’t-Repeat-Yourself (DRY) and remove technical debt incurred during the original dashboard development. […]

Use pure buttons, not jQuery-UI buttons

Between November 2014 and January 2015 (Late update of Confine Blog!), I changed the dashboard forms and admin pages to use pure buttons, not jQuery-UI buttons. At the same time, I changed the query restriction and entity selection forms to a responsive structure by using pure forms instead of the old table-based structure. Due to … Continue reading Use pure buttons, not jQuery-UI buttons […]

Python-3 compatibility

In October 2014 (Late update of Confine Blog!), I improved the Python-3 compatibility of the Tapyr and Common-Node-DB repositories. Except for some errors triggered by third-party packages, e.g., rsclib, sqlalchemy, and werkzeug, the unit tests of Tapyr all passed. Up to at least sqlalchemy 1.0.3, sqlalchemy causes exceptions like TypeError: unsupported operand type(s) for //: … Continue reading Python-3 compatibility […]

Improve IP allocation

At the end of September 2014(Late update of Confine Blog!), I improved the IP allocation: fixed the attribute redefinitions for A_IP4_Netmask_Interval and A_IP6_Netmask_Interval Add and use IP_Pool.can_allocate don’t offer full IP Pools for allocation in dashboard […]

September sprint

In the first week of September, Mihi, Ralf and me did a sprint on the CNDB. Mihi did a lot of work on the dashboard, Ralf improved the converter for the old database of Funkfeuer Graz and worked on IP allocation. I fixed several bugs of the dashboard, some of which had been introduced by […] […]

FFM refactoring

Up to now, the FFM repository comprised the common node database model and stuff specific to Funkfeuer Wien. That’s a less than ideal structure to support use of the common node database model by other community networks. To improve the reusability of the common node database model, Ralf and I decided to split the FFM […] […]

Further work on dashboard forms

In June, I continued to work on the dashboard forms: I extended the dashboard forms to support inclusion of objects that link back to the primary object displayed by the form. For instance, the form for Person could now offer fields for Accounts belonging to the person in question. Up to now, submission errors were […] […]

Attribute completion in dashboard forms

In May, I implemented auto-completion for fields of dashboard forms. The best demonstration how auto-completion works, and why it is necessary, are the address fields of the forms for creating or changing nodes. For some fields, auto-completion is restricted to the value of a single field; for other fields, auto-completion completes several fields at once. […] […]


Last year, Mihi started to develop the dashboard as a single-page app based on backbone, mustache templates, and bootstrap. Due to other commitments, Mihi couldn’t continue with the dashboard and Aaron asked me to take over. In April, I looked at the requirements and Mihi’s code. Because of the tight deadline, I decided to switch […] […]