- Split the read method into two separate methods for getting the config
file and for reading config file.
- Use logging module for printing error.
- Fix global variable naming.
- Get/set/show the realpath of the config file.
- Convert config items into a list so that the order is more
predictable. This is the reason for unpredictable failures in test
cases.
The name 'Plinth' (cfg.product_name) is not used anymore after my previous
commits.
Reason for the complete removal: I do not think that users should know or have
to care about the internal name of the web interface of the FreedomBox.
- Explicitly state datatype in config_items to handle them more
generically
- Handle boolean values correctly. Before this fix we got the string
'False' which evaluated to True (this affected the entry
'use_x_forwarded_host').
- Add the config entry 'danube_edition'. Activating it shows a voucher
input field for pagekite accounts on freedombox.me during the
firstboot process. Other vouchers (i.e. for VPN services) might
follow. Add description and test for 'danube_edition' setting.
- Change default server directory from plinth/ to /plinth as the program
expects.
- First load the values from configuration file and then override them
with command line parameters.
- Show default values on the command line help.
- Use configuration file values as default values to command line
parameters.
- Log the value of script prefix (server_dir) for easy debugging.
- Make sure the server_dir is properly loaded from configuration files.
* Add unit tests for cfg.py, context_processors.py, and menu.py
* Add new plinth/tests/data directory for miscellaneous test data
* In cfg.py, add an explicit check to verify the existence of the secondary
(non-default) plinth.config file
* In cfg.py, replace deprecated configparser.SafeConfigParser with
configparser.ConfigParser
- Request Apache to send X-Forwarded-Proto header.
- Use X-Forwarded-Proto header to understand original protocol
requested.
- Use X-Forwarded-Host header to understand original host requested.
- Allow any incoming host header so that FreedomBox can have any
hostname and when user requests for Plint with that hostname, it
works.
- Don't depend on Apache to rewrite the Location: header. Instead use
the original host and original scheme to set proper Location: header.
The package license (AGPL3+) implicitly indicates the license of each
file. However, it is desirable to have license headers in each file.
This is the case for many prominent projects like GNU project, Mozilla
etc.
- Remove dependency on withsqlite and use Django models.
This avoids depending on a module that is not available in PyPi.
Withsqlite does not have Python3 support. It does not work when
we choose a different database backend. Atleast partly duplicates
what Django models are meant for.
- Check and update database schema on every run so that
newly added modules can add tables and old ones can update.