[FIX] modules that cannot be loaded are marked as uninstallable
bzr revid: christophe@tinyerp.com-20090205103042-hkqsip3d4mgf7smh
This commit is contained in:
parent
4661156b43
commit
f5724590ce
|
@ -273,26 +273,23 @@ def get_modules():
|
||||||
return list(set(listdir(ad) + listdir(_ad)))
|
return list(set(listdir(ad) + listdir(_ad)))
|
||||||
|
|
||||||
|
|
||||||
def create_graph(module_list, force=None):
|
def create_graph(cr, module_list, force=None):
|
||||||
graph = Graph()
|
graph = Graph()
|
||||||
upgrade_graph(graph, module_list, force)
|
upgrade_graph(graph, cr, module_list, force)
|
||||||
return graph
|
return graph
|
||||||
|
|
||||||
def upgrade_graph(graph, module_list, force=None):
|
def upgrade_graph(graph, cr, module_list, force=None):
|
||||||
if force is None:
|
if force is None:
|
||||||
force = []
|
force = []
|
||||||
packages = []
|
packages = []
|
||||||
len_graph = len(graph)
|
len_graph = len(graph)
|
||||||
for module in module_list:
|
for module in module_list:
|
||||||
try:
|
mod_path = get_module_path(module)
|
||||||
mod_path = get_module_path(module)
|
|
||||||
if not mod_path:
|
|
||||||
continue
|
|
||||||
except IOError:
|
|
||||||
continue
|
|
||||||
terp_file = get_module_resource(module, '__terp__.py')
|
terp_file = get_module_resource(module, '__terp__.py')
|
||||||
if not terp_file:
|
if not mod_path or not terp_file:
|
||||||
|
cr.execute("update ir_module_module set state=%s where name=%s", ('uninstallable', module))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if os.path.isfile(terp_file) or zipfile.is_zipfile(mod_path+'.zip'):
|
if os.path.isfile(terp_file) or zipfile.is_zipfile(mod_path+'.zip'):
|
||||||
try:
|
try:
|
||||||
info = eval(tools.file_open(terp_file).read())
|
info = eval(tools.file_open(terp_file).read())
|
||||||
|
@ -662,7 +659,7 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
|
||||||
try:
|
try:
|
||||||
report = tools.assertion_report()
|
report = tools.assertion_report()
|
||||||
STATES_TO_LOAD = ['installed', 'to upgrade']
|
STATES_TO_LOAD = ['installed', 'to upgrade']
|
||||||
graph = create_graph(['base'], force)
|
graph = create_graph(cr, ['base'], force)
|
||||||
has_updates = False
|
has_updates = False
|
||||||
if update_module:
|
if update_module:
|
||||||
has_updates = load_module_graph(cr, graph, status, perform_checks=False, report=report)
|
has_updates = load_module_graph(cr, graph, status, perform_checks=False, report=report)
|
||||||
|
@ -698,7 +695,7 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
|
||||||
if not module_list:
|
if not module_list:
|
||||||
break
|
break
|
||||||
|
|
||||||
new_modules_in_graph = upgrade_graph(graph, module_list, force)
|
new_modules_in_graph = upgrade_graph(graph, cr, module_list, force)
|
||||||
if new_modules_in_graph == 0:
|
if new_modules_in_graph == 0:
|
||||||
# nothing to load
|
# nothing to load
|
||||||
break
|
break
|
||||||
|
|
Loading…
Reference in New Issue