Fixes #239: mail server information moved to config file.
Changed concatenation to string formatting.
Fix #284 -- display SplashInfo statistics on dashboard

Since the lunch choices can be overridden by tags, this dynamically
generates entries on the dashboard according to which values have been
selected.
Fix typo in 057a2bc71c
Fixes incorrect calls to ESPError
Allows admins to see all custom forms
Fixes customform bug with option-less fields
Fixes customform bug for fields with 2+ attributes

In the Python function FormHandler._getFormMetadata(), a ValuesQuerySet
of Field objects is iterated through to construct a JSON object that is
eventually used by the custom form builder. In this ValuesQuerySet,
there might be multiple objects per Field, because of the reverse
relationship to Attribute that is included in the .values() query. The
Python function deals with this by compiling the different
attribute__attr_type and attribute__value values into a single
attributes dictionary. However, the attribute__attr_type and
attribute__value values from the _last_ object for a particular field
are left behind in the returned JSON object, and in some instances in
the form builder JavaScript code, it was these values, rather than the
full attributes object, that were being referenced. This was causing
form copying to fail in the form builder. This change fixes this,
by iterating through the attributes object rather than
attribute__attr_type and attribute__value.
Fixes bug in previous commit
Merge branch 'main' into issue239
Removed some more hardcoded email addresses.
Tweak string formatting to work in Python 2.6
Merge pull request #517 from learning-unlimited/lua-splashinfo-statistics

Fix #284 -- display SplashInfo statistics on dashboard
Merge pull request #518 from uakfdotb/issue239

Fixes #239: mail server information moved to config file.
Remove unused view code

I think this was originally intended to be used as part of the MIT
ESP theme, but it isn't used anymore.  I think the reason is that
the home page needs to be proxy cached, but I'm not sure. Thanks to
Ben for pointing this out originally in 09556a2.