Skip to Content
Menu
You need to be registered to interact with the community.
This question has been flagged
5413 Prikazi

Hello Guys!!

Could anyone help me to this problem please:

I'm in a kanban view and I want to dynamically allow an id in the context (here: service_type_id) and I didn't know how to do this.

(We have several buttons here and they should display their respective views)

<record id="fleet_vehicle_view_kanban_iso" model="ir.ui.view">
    <field name="name">fleet.vehicle.kanban.iso</field>
    <field name="model">fleet.vehicle</field>
    <field name="inherit_id" ref="fleet.fleet_vehicle_view_kanban"/>
    <field name="arch" type="xml">
        <xpath expr="//kanban/templates/t/div/div[2]/ul" position="after">
        <field name="service_type_ids" on_change="1">
        <tree editable="bottom">
            <field name="service_type_id" />
            <field name="name"/>
            <field name="config_kilometrage" readonly="1"/>
            <field name="type_vehicle_iso_id" readonly="1"/>
            <field name="is_renewal_soon"/>
            <field name="is_renewal_almost"/>
            <field name="is_renewal_ok"/>
       </tree>
      </field>
    </xpath>
    <xpath expr="//kanban/templates/t/div/div[2]/ul" position="after">
        <div class="col-md-12">
        <t t-foreach="record.service_type_ids.raw_value" t-as="o">
            <!-- ### RED ### -->
        <t t-if="o.is_renewal_soon">
           <a
            data-type="object"
            data-name="return_action_to_open_"
            style="margin:0.5px;font-size:10px;width:200px"
            href="#"
            class="col-md-5 oe_kanban_action btn btn-sm btn-danger"
            data-context='{"xml_id":"fleet_vehicle_log_services_action","service_type_id":o.service_type_id.id}'
            role="button">
                <t t-esc="o.name"/>
        </a>
        </t>
            <!-- ### YELLOW ### -->
        <t t-if="o.is_renewal_due_almost">
            <a
                data-type="object"
                data-name="return_action_to_open_"
                style="margin:0.5px;font-size:10px;width:200px"
                href="#"
                class="col-md-5 oe_kanban_action btn btn-sm btn-warning"
                data-context='{"xml_id":"fleet_vehicle_log_services_action","service_type_id":o.service_type_id.id}'
                role="button">
                    <t t-esc="o.name" />
                </a>
            </t>
             <!-- ### GREEN ### -->
        <t t-if="o.is_renewal_ok">
              <a
                data-type="object"
                data-name="return_action_to_open_"
                style="margin:0.5px;font-size:10px;width:200px"
                href="#"
                class="col-md-5 oe_kanban_action btn btn-sm btn-success"
                data-context='{"xml_id":"fleet_vehicle_log_services_action","service_type_id":o.service_type_id.id}'
                role="button">
                    <t t-esc="o.name"/>
                    </a>
                </t>
            </t>
          </div>
        </xpath>
    </field>
</record>

 

##### python ######

def return_action_to_open_(self):
""" This opens the xml view specified in xml_id for the current vehicle """
    self.ensure_one()
    xml_id = self.env.context.get('xml_id')
    service_type_id = self.env.context.get('service_type_id')
    if xml_id:
        res = self.env['ir.actions.act_window'].for_xml_id('fleet', xml_id)
        res.update(
        context=dict(self.env.context, default_vehicle_id=self.id, group_by=False),
        domain=[('vehicle_id', '=', self.id),('cost_subtype_id','=',service_type_id)]
        )
        return res
return False
Avatar
Opusti