Skip to Content
Menu
This question has been flagged
5258 Views

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
Discard