This is mostly a cleaning/refactoring change.
The current API for init hooks (pre, post, uninstall) is to pass
`cr, registry`.
But the first thing which was done by most
post init and uninstall hooks was to create an env using
the cr passed
e.g.
`env = api.Environment(cr, SUPERUSER_ID, {})`
and the `registry` argument was unused in all these hooks,
completely.
By changing the API of hooks to pass `env` instead
of `cr, registry`, we gain in average two lines in every
hooks:
- the line creating the env `env = api.Environment(cr, SUPERUSER_ID, {})`
- the line importing `api` and `SUPERUSER_ID`
Therefore removing ~250 lines of repeated code lines accross odoo/odoo and
odoo/enterprise.
In addition to these lines removed,
it also ease the API of init hooks for Odoo developers,
who are used to that `env` and not so much how to create an `env`
from a cursor.
Part-of: odoo/odoo#108254
24 lines
794 B
Python
24 lines
794 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from . import controllers
|
|
from . import models
|
|
from . import report
|
|
from . import wizard
|
|
from . import populate
|
|
|
|
|
|
def _check_exists_collaborators_for_project_sharing(env):
|
|
""" Check if it exists at least a collaborator in a shared project
|
|
|
|
If it is the case we need to active the portal rules added only for this feature.
|
|
"""
|
|
collaborator = env['project.collaborator'].search([], limit=1)
|
|
if collaborator:
|
|
# Then we need to enable the access rights linked to project sharing for the portal user
|
|
env['project.collaborator']._toggle_project_sharing_portal_rules(True)
|
|
|
|
|
|
def _project_post_init(env):
|
|
_check_exists_collaborators_for_project_sharing(env)
|