[IMP] load description from 'description.html' file in module directory
authorFrédéric van der Essen <fva@openerp.com>
Mon, 25 Mar 2013 17:36:25 +0000 (18:36 +0100)
committerFrédéric van der Essen <fva@openerp.com>
Mon, 25 Mar 2013 17:36:25 +0000 (18:36 +0100)
bzr revid: fva@openerp.com-20130325173625-ntb9z3bgcr85ozpl

openerp/addons/base/module/module.py
openerp/addons/base/module/module_view.xml

index 5dcb169..fe473cb 100644 (file)
@@ -149,6 +149,18 @@ class module(osv.osv):
                           'module %s', name, exc_info=True)
         return info
 
+    def _get_desc_from_file(self, cr, uid, ids, field_name=None, arg=None, context=None):
+        res = dict.fromkeys(ids, '')
+        for module in self.browse(cr, uid, ids, context=context):
+            path = addons.get_module_resource(module.name, 'description.html')
+            if path:
+                desc_file = tools.file_open(path, 'rb')
+                try:
+                    res[module.id] = desc_file.read()
+                finally:
+                    desc_file.close()
+        return res
+
     def _get_desc(self, cr, uid, ids, field_name=None, arg=None, context=None):
         res = dict.fromkeys(ids, '')
         for module in self.browse(cr, uid, ids, context=context):
@@ -247,7 +259,7 @@ class module(osv.osv):
         'shortdesc': fields.char('Module Name', size=64, readonly=True, translate=True),
         'summary': fields.char('Summary', size=64, readonly=True, translate=True),
         'description': fields.text("Description", readonly=True, translate=True),
-        'description_html': fields.function(_get_desc, string='Description HTML', type='html', method=True, readonly=True),
+        'description_html': fields.function(_get_desc_from_file, string='Description HTML', type='html', method=True, readonly=True),
         'author': fields.char("Author", size=128, readonly=True),
         'maintainer': fields.char('Maintainer', size=128, readonly=True),
         'contributors': fields.text('Contributors', readonly=True),
index 3923c9d..9c4ca71 100644 (file)
             <field name="name">ir.module.module.form</field>
             <field name="model">ir.module.module</field>
             <field name="arch" type="xml">
-                <form create="0" edit="0" string="Module" version="7.0">
+                <form create="0" edit="0" string="Module" version="7.0" class='oe_styling_v8'>
                 <sheet>
                     <field name="icon_image" widget="image" class="oe_avatar oe_left"/>
                     <div class="oe_title">
                         <h1><field name="shortdesc"/></h1>
                         <h2 class="oe_fade"><field name="summary"/></h2>
-                        <button name="button_immediate_install" states="uninstalled" string="Install" type="object" class="oe_highlight"/>
+                    </div>
+                    <div class='oe_right oe_button_box'>
+                        <button name="button_immediate_install" states="uninstalled" string="Install" type="object" class="oe_highlight oe_big_purple"/>
                         <button name="button_immediate_upgrade" states="installed" string="Upgrade" type="object" class="oe_highlight"/>
                         <button name="button_immediate_uninstall" states="installed" string="Uninstall" type="object"
                             confirm="Do you confirm the uninstallation of this module? This will permanently erase all data currently stored by the module!"/>
                         <button name="button_upgrade_cancel" states="to upgrade" string="Cancel Upgrade" type="object"/>
                         <button name="button_install_cancel" states="to install" string="Cancel Install" type="object"/>
                     </div>
-                    <group>
-                        <group>
-                            <field name="author"/>
-                            <field name="website" widget="url" attrs="{'invisible':[('website','=',False)]}"/>
-                            <field name="category_id" widget="selection"/>
-                        </group>
-                        <group>
-                            <field name="name"/>
-                            <field name="license"/>
-                            <field name="installed_version"/>
-                        </group>
-                    </group>
                     <notebook>
                         <page string="Description">
-                            <field name="description_html"/>
+                            <field name="description_html" class='oe_app_description oe_styling_v8'/>
+                        </page>
+                        <page string="Info">
+                            <group>
+                                <group>
+                                    <field name="author"/>
+                                    <field name="website" widget="url" attrs="{'invisible':[('website','=',False)]}"/>
+                                    <field name="category_id" widget="selection"/>
+                                </group>
+                                <group>
+                                    <field name="name"/>
+                                    <field name="license"/>
+                                    <field name="installed_version"/>
+                                </group>
+                            </group>
                         </page>
                         <page string="Technical Data" groups="base.group_no_one">
                             <group col="4">
                                 </tree>
                             </field>
                         </page>
-                        <page string="Features" attrs="{'invisible':[('state','!=','installed')]}">
+                        <page string="Installed Features" attrs="{'invisible':[('state','!=','installed')]}">
                             <label for="menus_by_module" string="Created Menus"/>
                             <field name="menus_by_module"/>
                             <label for="reports_by_module" string="Defined Reports"/>