summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorame (Tiny) <ame@tinyerp.com>2010-01-12 14:36:28 +0530
committerame (Tiny) <ame@tinyerp.com>2010-01-12 14:36:28 +0530
commit510d0edff7a99bd059f24aa672d440bb515c0424 (patch)
tree8e38ecd3e417e8cb2a35819460848fe82543e9fd
parent8ee8ba1251114e374c75f2db121326c9ec071350 (diff)
[IMP] ir.module.web (simple web module management)
bzr revid: ame@tinyerp.com-20100112090628-ddwphfzrx340tixm
-rw-r--r--bin/addons/base/__terp__.py1
-rw-r--r--bin/addons/base/module/__init__.py1
-rw-r--r--bin/addons/base/module/module_web.py45
-rw-r--r--bin/addons/base/module/module_web_view.xml28
4 files changed, 75 insertions, 0 deletions
diff --git a/bin/addons/base/__terp__.py b/bin/addons/base/__terp__.py
index 2e42b5a08e3..d273c55a8d4 100644
--- a/bin/addons/base/__terp__.py
+++ b/bin/addons/base/__terp__.py
@@ -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',
diff --git a/bin/addons/base/module/__init__.py b/bin/addons/base/module/__init__.py
index b07332b81d4..aa775e29c1c 100644
--- a/bin/addons/base/module/__init__.py
+++ b/bin/addons/base/module/__init__.py
@@ -20,6 +20,7 @@
##############################################################################
import module
+import module_web
import wizard
import report
diff --git a/bin/addons/base/module/module_web.py b/bin/addons/base/module/module_web.py
new file mode 100644
index 00000000000..ca4463f620e
--- /dev/null
+++ b/bin/addons/base/module/module_web.py
@@ -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()
+
diff --git a/bin/addons/base/module/module_web_view.xml b/bin/addons/base/module/module_web_view.xml
new file mode 100644
index 00000000000..d1348aa89e2
--- /dev/null
+++ b/bin/addons/base/module/module_web_view.xml
@@ -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>