Reviewers: ,


Please review this at http://codereview.tryton.org/133001/

Affected files:
  M CHANGELOG
  M trytond/ir/ui/view.py
  M trytond/ir/ui/view.xml


Index: CHANGELOG
===================================================================
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,4 @@
+* Add wizard to show views
 * Search on Many2One fields include inactive records
 * Change select on fields into Boolean
 * Change format of search_value on ir.action.act_window
Index: trytond/ir/ui/view.py
===================================================================
--- a/trytond/ir/ui/view.py
+++ b/trytond/ir/ui/view.py
@@ -233,6 +233,57 @@
 View()


+class ShowViewInit(ModelView):
+    'Show view init'
+    _name = 'ir.ui.view.show.init'
+
+ShowViewInit()
+
+
+class ShowView(Wizard):
+    'Show view'
+    _name = 'ir.ui.view.show'
+
+    states = {
+        'init': {
+            'result': {
+                'type': 'form',
+                'object': 'ir.ui.view.show.init',
+                'state': [
+                    ('end', 'Close', 'tryton-cancel', True),
+                    ],
+                },
+            },
+        }
+
+    def __init__(self):
+        super(ShowView, self).__init__()
+        self._error_messages.update({
+                'view_type': 'Only "form" view can be shown!',
+                })
+
+    def execute(self, wiz_id, data, state='init'):
+        pool = Pool()
+        view_obj = pool.get('ir.ui.view')
+        result = super(ShowView, self).execute(wiz_id, data, state=state)
+        view = view_obj.browse(data['id'])
+        view_id = view.id
+        view_type = view.type
+        if view.inherit:
+            view_id = view.inherit.id
+            view_type = view.inherit.type
+        if view_type != 'form':
+            self.raise_user_error('view_type')
+        model_obj = pool.get(view.model)
+        fields_view = model_obj.fields_view_get(view_id=view.id)
+        result['fields'] = fields_view['fields']
+        result['arch'] = fields_view['arch']
+        result['object'] = view.model
+        return result
+
+ShowView()
+
+
 class ViewShortcut(ModelSQL, ModelView):
     "View shortcut"
     _name = 'ir.ui.view_sc'
Index: trytond/ir/ui/view.xml
===================================================================
--- a/trytond/ir/ui/view.xml
+++ b/trytond/ir/ui/view.xml
@@ -3,6 +3,12 @@
 this repository contains the full copyright notices and license terms. -->
 <tryton>
     <data>
+
+        <record model="ir.action.wizard" id="act_view_show">
+            <field name="name">Show View</field>
+            <field name="wiz_name">ir.ui.view.show</field>
+        </record>
+
         <record model="ir.ui.view" id="view_view_form">
             <field name="model">ir.ui.view</field>
             <field name="type">form</field>
@@ -23,6 +29,11 @@
                     <field name="field_childs"/>
                     <separator name="arch" colspan="4"/>
                     <field name="arch" colspan="4"/>
+                    <button name="%(act_view_show)d"
+                        string="_Show"
+                        type="action"
+                        colspan="4"
+                        />
                 </form>
                 ]]>
             </field>


--
[email protected] mailing list

Reply via email to