This question has been flagged
4 Replies
2138 Views

Consider 4 models which are

Model1.model1
Model2.model2
Model3.model3
Model4.model4

I need to show there form view on a same page like that 

----------------------------------  ---------------------------------
-       Model1.model1    -  -       Model2.model2    -
----------------------------------  ---------------------------------

----------------------------------  ---------------------------------

-       Model3.model3    -  -       Model4.model4    -

----------------------------------  ---------------------------------  


Any idea how can i do that in odoo ? i really need that type of view.

Avatar
Discard
Best Answer

Try this method

1) Write your menu like this 

<!--ACTION-->
<record id="action_display" model="ir.actions.act_url">
     <field name="name">Menu Name</field>
     <field name="url">/display_models</field>
     <field name="target">self</field>
 </record>
<!--MENU -->

<record id="menu_action" model="ir.ui.menu">

    <field name="name">Menu Name</field> 

    <field name="sequence" eval="10"/>

    <field name="action" ref="action_display"/>

</record>


2) Write Python code

from openerp import http 
from openerp.http import request

class YourClass(http.Controller):
    @http.route('/display_models', type='http', website=True)
    def index_grid(self, **kw):
             .....
        return request.render('your_module.your_template_id', {
                'model1':model1,'model2':model2,'model3':model3,'model4':model4})

3) Write Template

 <template id="your_module.your_template_id">
     <t t-call="web.menu"/><!--For menu bar-->
     <table>
        <tr>
            <td><t t-esc="model1.name"/><t t-esc="model1.partner_id"/> etc....</td>
            <td><t t-esc="model2.name"/><t t-esc="model2.partner_id"/> etc....</td>
        </tr>
        <tr><td><t t-esc="model3.name"/><t t-esc="model3.partner_id"/> etc....</td>
            <td><t t-esc="model4.name"/><t t-esc="model4.partner_id"/> etc....</td>
        </tr>
     </table>

    
</template>



Avatar
Discard
Author

But how can i display those model fields in that route, i am using that code for display, but it not showing an thing

<div t-field="jewleryset.customer_id" t-field-options='{"widget": "relative"}'/>

Best Answer

You could do it by creating a model0 with a many2one field for every model and related fields to all the fields of the models using the model name as a suffix for the related fields and the corresponding field path using the model many2one. That will cause you to have the model0 writing to the 4 other models fields but you could manage all like one into a single view form that you could divide into four areas as you like

Avatar
Discard
Author

Sorry am not clear with your idea, could you plz explain it using code

still waiting on this, I have time to provide an example if still is needed

Best Answer

yep, you can create one more model is `model0` then create 4 one2many fields to each your model

- one2many f1 to model1

- one2many f2 to model2

- one2many f3 to model3

- one2many f4 to model4


then design the form view for `model0` as you want

Avatar
Discard
Author

No, i want those model all fields (includind one2many and many2one) onthat page. Like i need to show whole four forms on single page