[IMP] ir.module.web (simple web module management)

bzr revid: ame@tinyerp.com-20100112090628-ddwphfzrx340tixm
This commit is contained in:
ame (Tiny) 2010-01-12 14:36:28 +05:30
parent 8ee8ba1251
commit 510d0edff7
4 changed files with 75 additions and 0 deletions

View File

@ -42,6 +42,7 @@
'ir/workflow/workflow_view.xml',
'module/module_wizard.xml',
'module/module_view.xml',
'module/module_web_view.xml',
'module/module_data.xml',
'module/module_report.xml',
'res/res_request_view.xml',

View File

@ -20,6 +20,7 @@
##############################################################################
import module
import module_web
import wizard
import report

View File

@ -0,0 +1,45 @@
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),
'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

@ -0,0 +1,28 @@
<?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="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">/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>