Skip to Content
Menu
This question has been flagged
3 Replies
5154 Views

Hello guys,

In my custom module __openerp__.py file, I have this entry :

       "qweb" : [
        'static/src/xml/pos_as.xml',
    ],

Is it possible to change this declaration in the python code? How?

My goal : I would want to choose the pos.xml file according to the user company.

Thanks

Avatar
Discard
Author

Still need it! WOuld you have some suggestions?

Best Answer

You could extend that function in a module(let's call it pos_test) with a js file like:

openerp.pos_test = function (instance) {
    var _t = instance.web._t,
    _lt = instance.web._lt;
    var QWeb = instance.web.qweb;

    instance.point_of_sale.ReceiptScreenWidget.include({
refresh: function() {
var order = this.pos.get('selectedOrder');
var user_template = 'PosTicket';

if(instance.session.uid == 1){
user_template = 'PosTicket_cf';
}
$('.pos-receipt-container', this.$el).html(QWeb.render(user_template,{
widget:this,
order: order,
orderlines: order.get('orderLines').models,
paymentlines: order.get('paymentLines').models,
}));

},
});
}
Avatar
Discard
Author

Axel, you are a real beast. I try it tomorrow and i come back! Thanks 11111 times

Thanks, happy to help

you need to change the pos_test with the name of the module, register the file to be loaded with the assets_backend template and a depend with point_of_sale in the __openerp__.py

Author Best Answer

Ok, here is the complet solution.

I have defined two differents file : pos_as.xml and pos_cf.xml

I have declared those two files in __openerp__.py file (https://www.odoo.com/fr_FR/forum/help-1/question/could-we-define-multiple-files-in-the-qweb-section-of-the-openerp-py-91576)

In the pos_as.xml, I have declared <t t-name="PosTicket_as">
In the pos_cf.xml, I have declared <t t-name="PosTicket_cf">


I have created a new file : /pos_lapagept/static/src/js/screens_all.js

I have included this file with :

    <template id="pos_lapagept.assets_backend_all" name="point_of_sale assets" inherit_id="point_of_sale.assets_backend">

        <xpath expr="//script[contains(@src,'models.js')]" position="replace">

            <script type="text/javascript" src="/pos_lapagept/static/src/js/models_all.js"></script>

            <script type="text/javascript" src="/pos_lapagept/static/src/js/screens_all.js"></script>

            </xpath>

    </template>


In the file screens_all.js :

            openerp.pos_lapagept = function (instance) {

                    var _t = instance.web._t,

                    _lt = instance.web._lt;

                    var QWeb = instance.web.qweb;

                    instance.point_of_sale.ReceiptScreenWidget.include({

                            refresh: function() {

                                    var order = this.pos.get('selectedOrder');

                                    var user_template = 'PosTicket';

                                    if(instance.session.uid == 21){

                                            user_template = 'PosTicket_as';

                                    } else if (instance.session.uid == 53 || instance.session.uid == 55 || instance.session.uid == 56 || instance.session.uid == 57 ) {

                                            user_template = 'PosTicket_cf';

                                    }

                                    $('.pos-receipt-container', this.$el).html(QWeb.render(user_template,{

                                                        widget:this,

                                                        order: order,

                                                        orderlines: order.get('orderLines').models,

                                                        paymentlines: order.get('paymentLines').models,

                                        }));

                            },

                    });

            }


THANKS TO AXEL!!!

Avatar
Discard
Related Posts Replies Views Activity
2
Sep 19
4489
0
Jul 24
911
3
Apr 23
7298
1
Apr 17
5697
1
Mar 15
5929