[IMP] : convert add_new wizard into osv memory wizard
authorksa (Open ERP) <ksa@tinyerp.co.in>
Fri, 27 Aug 2010 13:28:06 +0000 (18:58 +0530)
committerksa (Open ERP) <ksa@tinyerp.co.in>
Fri, 27 Aug 2010 13:28:06 +0000 (18:58 +0530)
bzr revid: ksa@tinyerp.co.in-20100827132806-lo1po6qwnagwwevu

bin/addons/base/module/wizard/__init__.py
bin/addons/base/module/wizard/add_new.py [deleted file]
bin/addons/base/module/wizard/base_module_scan.py [new file with mode: 0644]
bin/addons/base/module/wizard/base_module_scan_view.xml [new file with mode: 0644]
bin/addons/base/res/partner/wizard/partner_sms_send_view.xml

index 45234a2..8a1556e 100644 (file)
@@ -21,7 +21,6 @@
 
 import wizard_module_upgrade
 import wizard_configuration
-import add_new
 import wizard_export_lang
 import wizard_update_translations
 
diff --git a/bin/addons/base/module/wizard/add_new.py b/bin/addons/base/module/wizard/add_new.py
deleted file mode 100644 (file)
index c6eddab..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#    
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
-#    Copyright (C) 2010 OpenERP s.a. (<http://openerp.com>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    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/>.     
-#
-##############################################################################
-
-import os
-import re
-import glob
-import time
-import imp
-
-import tools
-import wizard
-import pooler
-
-import zipfile
-
-module_name_re = re.compile('.*addons.(.*?).__terp__.py$')
-
-_info_arch = '''<?xml version="1.0"?>
-<form string="Scan for new modules">
-  <label string="This function will check if you installed new modules in the 'addons' path of your server installation." colspan="4" />
-</form>
-'''
-_info_fields = {}
-
-class wizard_install_module(wizard.interface):
-    def watch_dir(self, cr, uid, data, context):
-        mod_obj = pooler.get_pool(cr.dbname).get('ir.module.module')
-        all_mods = mod_obj.read(cr, uid, mod_obj.search(cr, uid, []), ['name', 'state'])
-        known_modules = [x['name'] for x in all_mods]
-        ls_ad = glob.glob(os.path.join(tools.config['addons_path'], '*', '__terp__.py'))
-        modules = [module_name_re.match(name).group(1) for name in ls_ad]
-        for fname in os.listdir(tools.config['addons_path']):
-            if zipfile.is_zipfile(fname):
-                modules.append( fname.split('.')[0])
-        for module in modules:
-            if module in known_modules:
-                continue
-            terp = mod_obj.get_module_info(module)
-            if not terp.get('installable', True):
-                continue
-
-            # XXX check if this code is correct...
-            fm = imp.find_module(module)
-            try:
-                imp.load_module(module, *fm)
-            finally:
-                if fm[0]:
-                    fm[0].close()
-
-            values = mod_obj.get_values_from_terp(terp)
-            mod_id = mod_obj.create(cr, uid, dict(name=module, state='uninstalled', **values))
-            dependencies = terp.get('depends', [])
-            for d in dependencies:
-                cr.execute('insert into ir_module_module_dependency (module_id,name) values (%s, %s)', (mod_id, d))
-        for module in known_modules:
-            terp = mod_obj.get_module_info(module)
-            if terp.get('installable', True):
-                for mod in all_mods:
-                    if mod['name'] == module and mod['state'] == 'uninstallable':
-                        mod_obj.write(cr, uid, [mod['id']], {'state': 'uninstalled'})
-        return {}
-
-    states = {
-        'init': {
-            'actions': [], 
-            'result': {'type':'form', 'arch': _info_arch, 'fields': _info_fields, 'state':[('end','Cancel','gtk-cancel'),('addmod','Check new modules','gtk-ok')]}
-        },
-        'addmod': {
-            'actions': [watch_dir],
-            'result': {'type':'state', 'state':'end'}
-        },
-    }
-wizard_install_module('module.module.scan')
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/bin/addons/base/module/wizard/base_module_scan.py b/bin/addons/base/module/wizard/base_module_scan.py
new file mode 100644 (file)
index 0000000..cd8d4ab
--- /dev/null
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    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/>.
+#
+##############################################################################
+import os
+import re
+import glob
+import time
+import imp
+
+import tools
+import pooler
+
+import zipfile
+from osv import osv, fields
+
+class base_module_scan(osv.osv_memory):
+    """ scan module """
+
+    _name = "base.module.scan"
+    _description = "scan module"
+
+    def watch_dir(self, cr, uid, ids, context):
+        mod_obj = self.pool.get('ir.module.module')
+        all_mods = mod_obj.read(cr, uid, mod_obj.search(cr, uid, []), ['name', 'state'])
+        known_modules = [x['name'] for x in all_mods]
+        ls_ad = glob.glob(os.path.join(tools.config['addons_path'], '*', '__terp__.py'))
+        modules = [module_name_re.match(name).group(1) for name in ls_ad]
+        for fname in os.listdir(tools.config['addons_path']):
+            if zipfile.is_zipfile(fname):
+                modules.append( fname.split('.')[0])
+        for module in modules:
+            if module in known_modules:
+                continue
+            terp = mod_obj.get_module_info(module)
+            if not terp.get('installable', True):
+                continue
+
+            # XXX check if this code is correct...
+            fm = imp.find_module(module)
+            try:
+                imp.load_module(module, *fm)
+            finally:
+                if fm[0]:
+                    fm[0].close()
+
+            values = mod_obj.get_values_from_terp(terp)
+            mod_id = mod_obj.create(cr, uid, dict(name=module, state='uninstalled', **values))
+            dependencies = terp.get('depends', [])
+            for d in dependencies:
+                cr.execute('insert into ir_module_module_dependency (module_id,name) values (%s, %s)', (mod_id, d))
+        for module in known_modules:
+            terp = mod_obj.get_module_info(module)
+            if terp.get('installable', True):
+                for mod in all_mods:
+                    if mod['name'] == module and mod['state'] == 'uninstallable':
+                        mod_obj.write(cr, uid, [mod['id']], {'state': 'uninstalled'})
+        return {}
+
+base_module_scan()
\ No newline at end of file
diff --git a/bin/addons/base/module/wizard/base_module_scan_view.xml b/bin/addons/base/module/wizard/base_module_scan_view.xml
new file mode 100644 (file)
index 0000000..a039c31
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+
+        <record id="view_base_module_scan" model="ir.ui.view">
+            <field name="name">Module Scan</field>
+            <field name="model">base.module.scan</field>
+            <field name="type">form</field>
+            <field name="arch" type="xml">
+            <form string="Scan for new modules">
+            <separator string="" colspan="4"/>
+            <label string="This function will check if you installed new modules in the 'addons' path of your server installation." colspan="4" />
+            <separator string="" colspan="4"/>
+            <newline/>
+            <group colspan="4">
+                <button special="cancel" string="Close" icon="gtk-cancel"/>
+                <button name="watch_dir" string="Check new modules" type="object" icon="gtk-ok"/>
+            </group>
+             </form>
+            </field>
+        </record>
+
+        <record id="action_view_base_module_scan" model="ir.actions.act_window">
+            <field name="name">Module Scan</field>
+            <field name="type">ir.actions.act_window</field>
+            <field name="res_model">base.module.scan</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">form</field>
+            <field name="target">new</field>
+        </record>
+
+    </data>
+</openerp>
+
index fafdc33..a0687f7 100644 (file)
@@ -14,7 +14,7 @@
                     <field name="mobile_to"/>
                     <field name="app_id"/>
                                    <field name="user"/>
-                                   <field name="password"/>                                
+                                   <field name="password"/>
                     <separator string="Message" colspan="4" />
                                    <field name="text" colspan="4" nolabel="1"/>
                                <separator string="" colspan="4" />
@@ -32,7 +32,6 @@
             view_mode="form"
             target="new"
             key2="client_action_multi"
-            id="action_partner_sms_send"
-            groups="base.group_extended"/>
+            id="action_partner_sms_send"/>
     </data>
 </openerp>