Updated plugins beahavior according to lodelContext
Now discover is run when we want to know the list of installed plugins.
+ bugfix in module name generation (only in the constructor) to take care
of possible subdirs
The exact same conditionnal statement throwing error if ptype is unknown
in Plugin.register() is already executed by
MetaPlugType.type_from_name(), which is called right after it. Guessing
which class should be concerned by such a check, I ended up removing it
in Plugin.
- Replaced some "hidden" import with LodelContext.expose_modules calls
- in some functions of Setting, Plugin, validator
- in loader.py (temporary version)
In this state the tests runs (151 success), I'm able to run an instance (from debian package using slim) in MONOSITE mode and in MULTISITE mode by creating and loading a context in the loader.
- Written a new custom_list validator, it takes another validator name as argument (in order to validate items of list)
- Using it to validate list of plugins names
Now when running distclean ALL files generated by the ./bootstrap && ./configure && make are deleted.
Maybe it's not a good idea because it's not the purpose of distclean target...
IMPORTANT : tests are broken. See details below
A new lodel/buildconf.py.ini file created. It will be transformed to a lodel/buildconf.py file by ./configure .
This file goal is to store build time constant (for the moment the presence of pymongo).
You have to build lodel2 before being able to run the tests.
- Child classes where not cleared when Plugin.clear() was called. Now child classes implements a clear_cls() method to clear a Plugin child class
- When discovering plugins if during a is_plugin_dir() check we import two times in the same virtual module name, all non existing attributes values are taken from prvious imported file (the bug was on plugin_type when webui was imported just before dummy, then dummy was an interface)
- The validator is written and added to all Plugin sublcasses confspec
- Adds the capabilities to give args to validator (here we give the expected type)
Created a new class LodelSession to handle session datas
Created an automatic wrapper to acces to session handler plugin function throug SessionHandlerPlugin class methods
Bugfixes done for plugins. The plugin type is store in __plugin_type___ and not in __type__
Implements both Plugin child classes handling extensions and session handling.
Modified the settings plugin preload piece of code. It is now adapted to the new plugins organisation.
Each Plugin child classes provides a confspec indicating where the plugin list is stored in configuration.