- Rename AdminMiddleware to AdminRequiredMiddleware to be consistent
with stronghold/Django terminology
- Simplify .gitignore pattern
- Format single line docstrings as per PEP8.
- Add missing docstrings.
- Restrict lines to 79 characters.
It is no longer very important to show Django configured applications
and module import messages because in practice we have rarely ever seen
being useful anywhere but for development. Just print the module load
order just once.
We pretty much only run in systemd environment and I don't see that
changing any time soon. By relying on it, we can reduce some burden.
Remove init script.
Daemonizing is not needed for systemd. Remove code related
daemonization.
- There is no reason to limit the number of languages supported by the
application. This is what happens when LANGUAGES is set during Django
configuration. Users should be able to set a language using browser
preferences and see at least the Django translated messages even if
Plinth messages are not translated (example user create/edit form).
- If we wish to limit the number of language options shown duing
language selection (for quality perception reasons), we should perform
the limiting at the time of configuration.
- Note that when a new language is requested in translation tool, we
create an empty file and that may lead to language being shown but
with few strings actually translated. This will have poor impact on
user experience. I wonder if we should filter language at all,
keeping this in mind.
- The --setup argument sets up all applications that declare themselves
as essential.
- This is done synchronously.
- Plinth exits after the setup is complete.
- Plinth fails with an error in case any of the setup tasks fail. The
process will be continued on next invocation or access of application
from UI.
- The last part of the module import path is the module name. This also
becomes the Django app name. Apps names have to be unique. Hence,
there is no scope for two different modules with same name but
different load path to exist in the project.
- Most uses of list of loaded modules are dealing with app names instead
of full module load path. This is due to the fact that Django deals
with app names and not module paths.
- It is also somewhat clumsy to access a loaded module as we are
re-importing every time to get access module.
- Simplify all of the above by using app names are module identifiers
and maintaing an ordered dictionary of app names to loadded modules.
- Remove unused imports.
- Minor styling fixes.
- 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.
- syncdb has been deprecated in Django 1.7 in favor of migrate command.
- In Django 1.9 it has been removed. Django 1.9 has already hit Debian
unstable.
- When this option is provided, Plinth will initialize, load modules,
execute diagnostics, print the results on console and quit.
- Replacement for /usr/lib/freedombox/testsuite
Small devices like the raspberry pi end up eating a number of resources (~20%
of the CPU according to top, even more if something else is increasing the
load, together with tor they eat ~70% of the cpu "on idle" ~50% for plinth
and ~20% for tor) stat the files once per second.
- 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.
Since the links to javascript libraries have been removed in favor of
using javscript-common, it is no longer possible to run Plinth stand
alone without a reverse proxy that also serves /javscript. This patch
fixes that. Now /javascirpt is also available when Plinth is running
stand alone.
- 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.
- There is no point in keeping this one single file as with different
license from the rest of the package. This change simplifies things.
- The file has been almost entirely been rewritten for Django, module
loading, CherryPy static directories etc.
- This change will be pushed with the consent of new authors: fonfon and
Me.