[REM] web modules
bzr revid: xmo@openerp.com-20100927141344-hgzzsa4liemqnz8n
This commit is contained in:
parent
9bfc761a80
commit
3eac92fc4a
|
@ -44,7 +44,6 @@
|
|||
'ir/ir.xml',
|
||||
'ir/workflow/workflow_view.xml',
|
||||
'module/module_view.xml',
|
||||
'module/module_web_view.xml',
|
||||
'module/module_data.xml',
|
||||
'module/module_report.xml',
|
||||
'module/wizard/base_module_import_view.xml',
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
|
@ -15,14 +15,10 @@
|
|||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import module_web
|
||||
import module
|
||||
import wizard
|
||||
import report
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
|
|
@ -151,8 +151,6 @@ class module(osv.osv):
|
|||
'url': fields.char('URL', size=128, readonly=True),
|
||||
'dependencies_id': fields.one2many('ir.module.module.dependency',
|
||||
'module_id', 'Dependencies', readonly=True),
|
||||
'web_dependencies_id': fields.one2many('ir.module.web.dependency',
|
||||
'module_id', 'Web Dependencies', readonly=True),
|
||||
'state': fields.selection([
|
||||
('uninstallable','Not Installable'),
|
||||
('uninstalled','Not Installed'),
|
||||
|
@ -245,12 +243,6 @@ class module(osv.osv):
|
|||
od = self.browse(cr, uid, ids2)[0]
|
||||
mdemo = od.demo or mdemo
|
||||
|
||||
for web_mod in module.web_dependencies_id:
|
||||
if web_mod.state == 'unknown':
|
||||
raise orm.except_orm(_('Error'), _("You try to install the module '%s' that depends on the module:'%s'.\nBut this module is not available in your system.") % (module.name, dep.name,))
|
||||
ids2 = self.pool.get('ir.module.web').search(cr, uid, [('module','=',web_mod.name)])
|
||||
self.pool.get('ir.module.web').button_install(cr, uid, ids2)
|
||||
|
||||
terp = self.get_module_info(module.name)
|
||||
try:
|
||||
self._check_external_dependencies(terp)
|
||||
|
@ -373,7 +365,6 @@ class module(osv.osv):
|
|||
id = self.create(cr, uid, dict(name=mod_name, state='uninstalled', **values))
|
||||
res[1] += 1
|
||||
self._update_dependencies(cr, uid, id, terp.get('depends', []))
|
||||
self._update_web_dependencies(cr, uid, id, terp.get('web_depends', []))
|
||||
self._update_category(cr, uid, id, terp.get('category', 'Uncategorized'))
|
||||
|
||||
return res
|
||||
|
@ -417,18 +408,6 @@ class module(osv.osv):
|
|||
for d in depends:
|
||||
cr.execute('INSERT INTO ir_module_module_dependency (module_id, name) values (%s, %s)', (id, d))
|
||||
|
||||
def _update_web_dependencies(self, cr, uid, id, depends=[]):
|
||||
web_module_pool = self.pool.get('ir.module.web')
|
||||
res = False
|
||||
|
||||
for d in depends:
|
||||
ids = web_module_pool.search(cr, uid, [('module','=',d)])
|
||||
if len(ids) > 0:
|
||||
cr.execute("Select id from ir_module_web_dependency where module_id=%s and web_module_id=%s and name=%s", (id, ids[0], d))
|
||||
res = cr.fetchone()
|
||||
if not res:
|
||||
cr.execute('INSERT INTO ir_module_web_dependency (module_id, web_module_id, name) values (%s, %s, %s)', (id, ids[0], d))
|
||||
|
||||
def _update_category(self, cr, uid, id, category='Uncategorized'):
|
||||
categs = category.split('/')
|
||||
p_id = None
|
||||
|
@ -493,39 +472,6 @@ class module(osv.osv):
|
|||
|
||||
module()
|
||||
|
||||
class web_module_dependency(osv.osv):
|
||||
_name = "ir.module.web.dependency"
|
||||
_description = "Web Module dependency"
|
||||
|
||||
def _state(self, cr, uid, ids, name, args, context={}):
|
||||
result = {}
|
||||
mod_obj = self.pool.get('ir.module.web')
|
||||
for md in self.browse(cr, uid, ids):
|
||||
ids = mod_obj.search(cr, uid, [('module', '=', md.name)])
|
||||
if ids:
|
||||
result[md.id] = mod_obj.read(cr, uid, [ids[0]], ['state'])[0]['state']
|
||||
else:
|
||||
result[md.id] = 'unknown'
|
||||
return result
|
||||
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=128, select=True),
|
||||
'module_id': fields.many2one('ir.module.module', 'Module', select=True, ondelete='cascade'),
|
||||
'web_module_id': fields.many2one('ir.module.web', 'Web Module', select=True, ondelete='cascade'),
|
||||
'state': fields.function(_state, method=True, type='selection', selection=[
|
||||
('uninstallable','Uninstallable'),
|
||||
('uninstalled','Not Installed'),
|
||||
('installed','Installed'),
|
||||
('to upgrade','To be upgraded'),
|
||||
('to remove','To be removed'),
|
||||
('to install','To be installed'),
|
||||
('unknown', 'Unknown'),
|
||||
], string='State', readonly=True, select=True),
|
||||
}
|
||||
|
||||
web_module_dependency()
|
||||
|
||||
class module_dependency(osv.osv):
|
||||
_name = "ir.module.module.dependency"
|
||||
_description = "Module dependency"
|
||||
|
|
|
@ -129,14 +129,6 @@
|
|||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Web Dependencies">
|
||||
<field colspan="4" name="web_dependencies_id" nolabel="1">
|
||||
<tree string="Dependencies">
|
||||
<field name="name"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Features" attrs="{'invisible':[('state','!=','installed')]}">
|
||||
<separator string="Created Menus" colspan="4"/>
|
||||
<field colspan="4" name="menus_by_module" nolabel="1"/>
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
from osv import fields, osv, orm
|
||||
|
||||
class module_web(osv.osv):
|
||||
_name = "ir.module.web"
|
||||
_description = "Web Module"
|
||||
|
||||
_columns = {
|
||||
'name': fields.char("Name", size=128, readonly=True, required=True),
|
||||
'module': fields.char("Module", size=128, readonly=True, required=True),
|
||||
'description': fields.text("Description", readonly=True, translate=True),
|
||||
'author': fields.char("Author", size=128, readonly=True),
|
||||
'website': fields.char("Website", size=256, readonly=True),
|
||||
'state': fields.selection([
|
||||
('uninstallable','Uninstallable'),
|
||||
('uninstalled','Not Installed'),
|
||||
('installed','Installed')
|
||||
], string='State', readonly=True)
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'state': lambda *a: 'uninstalled',
|
||||
}
|
||||
_order = 'name'
|
||||
|
||||
_sql_constraints = [
|
||||
('name_uniq', 'unique (name)', 'The name of the module must be unique !'),
|
||||
]
|
||||
|
||||
def update_module_list(self, cr, uid, modules, context={}):
|
||||
|
||||
for module in modules:
|
||||
mod_name = module['name']
|
||||
ids = self.search(cr, uid, [('name','=',mod_name)])
|
||||
if ids:
|
||||
self.write(cr, uid, ids, module)
|
||||
else:
|
||||
self.create(cr, uid, module)
|
||||
|
||||
def button_install(self, cr, uid, ids, context={}):
|
||||
return self.write(cr, uid, ids, {'state': 'installed'}, context)
|
||||
|
||||
def button_uninstall(self, cr, uid, ids, context={}):
|
||||
return self.write(cr, uid, ids, {'state': 'uninstalled'}, context)
|
||||
|
||||
module_web()
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="module_web_tree" model="ir.ui.view">
|
||||
<field name="name">ir.module.web.tree</field>
|
||||
<field name="model">ir.module.web</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="module"/>
|
||||
<field name="description"/>
|
||||
<field name="author"/>
|
||||
<field name="state"/>
|
||||
<button name="button_install" string="Install" type="object" states="uninstalled" context="{'reload': 1}"/>
|
||||
<button name="button_uninstall" string="Uninstall" type="object" states="installed" context="{'reload': 1}"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="open_module_web_list" model="ir.actions.url">
|
||||
<field name="name">web_module_list</field>
|
||||
<field name="url">/openerp/modules</field>
|
||||
</record>
|
||||
<menuitem name="Web Modules" action="open_module_web_list" id="open_module_web_list_url" type="url" parent="base.menu_management"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -124,6 +124,4 @@
|
|||
"access_ir_filter all","ir_filters all","model_ir_filters",,1,0,0,0
|
||||
"access_ir_filter employee","ir_filters employee","model_ir_filters","group_user",1,1,1,1
|
||||
"access_ir_filters","ir_filters_all","model_ir_filters",,1,1,1,1
|
||||
"access_ir_module_web","ir.module.web","model_ir_module_web","group_system",1,1,1,1
|
||||
"access_ir_module_web_dependency","ir.module.web.dependency","model_ir_module_web_dependency","group_system",1,1,1,1
|
||||
"access_res_partner_address","res.partner.address","model_res_partner_address","group_system",1,1,1,1
|
||||
|
|
|
Loading…
Reference in New Issue