[REM] web modules

bzr revid: xmo@openerp.com-20100927141344-hgzzsa4liemqnz8n
This commit is contained in:
Xavier Morel 2010-09-27 16:13:44 +02:00
parent 9bfc761a80
commit 3eac92fc4a
7 changed files with 2 additions and 146 deletions

View File

@ -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',

View File

@ -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:

View File

@ -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"

View File

@ -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"/>

View File

@ -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()

View File

@ -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>

View File

@ -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

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
124 access_ir_filter all ir_filters all model_ir_filters 1 0 0 0
125 access_ir_filter employee ir_filters employee model_ir_filters group_user 1 1 1 1
126 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
127 access_res_partner_address res.partner.address model_res_partner_address group_system 1 1 1 1