This is incorrect because it breaks the translation (and will never work):
_('Following modules are uninstalled or unknown. \n\n'+'\n'.join(unmet_packages)
it should be for example:
_('Following modules are not installed or unknown: %s') % ('\n\n'+'\n'.join(unmet_packages))
For the creation of users, instead of overriding create() we should simple use _defaults, shouldn't we? The orm will automatically add _defaults in addition to provided values when create() is called, even if the client does not pass them. Wouldn't that work and be cleaner?
This is incorrect because it breaks the translation (and will never work): \n'.join( unmet_packages) +'\n'.join( unmet_packages) )
_('Following modules are uninstalled or unknown. \n\n'+'
it should be for example:
_('Following modules are not installed or unknown: %s') % ('\n\n'
For the creation of users, instead of overriding create() we should simple use _defaults, shouldn't we? The orm will automatically add _defaults in addition to provided values when create() is called, even if the client does not pass them. Wouldn't that work and be cleaner?
The rest is good, thanks!