Skip to Content
Menu
This question has been flagged
6 Replies
31881 Views

Hi everyone,

I'm trying to make a simple wizard using a value from the current menu context.
But I can't find anyway to this.  The farthest I get a warning popup with a None value.
Is it possible to use a context value from the view and pass it to a wizard ?

my view :

<?xml version="1.0" encoding="UTF-8"?>

<openerp>
    <data>
        <record id='view_form_custom_details' model='ir.ui.view'>
            <field name="name">view_form_custom_details</field>
            <field name="model">custom.details</field>
            <field name="arch" type="xml">
                <form string="Get details" version="8.0">
                    <sheet>
                        <center>
                            <center>
                                <button string="Details" name="get_details" type="object" class="oe_highlight" />
                                or
                                <button string="Cancel" class="oe_link" special="cancel" />
                            </center>
                        </center>
                    </sheet>
                </form>
            </field>
        </record>

        <act_window name="Get details" res_model="custom.details" src_model="account.invoice"
            view_mode="form" key2="client_action_multi"
   target="new" id="act_get_details"
            context="{'journal_type':context.get('journal_type')}"
        />
    </data>
</openerp>


my code

# -*- coding: utf-8 -*- 
from openerp import models, api
from openerp.exceptions import Warning
class custom_details(models.TransientModel):
  _name = 'custom.details'

  @api.multi
  def get_details(self):
   invoice_obj = self.env['account.invoice']
   context = self.env.context

   raise Warning(str(context.get('journal_type')))
   return True


Thanks

Avatar
Discard

?:)

--
Отправлено из мобильной Яндекс.Почты

05.03.2020, 12:44, "Sehrish" <sehrishnaz47@gmail.com>:

Best Answer

see button return action

https://stackoverflow.com/questions/13235220/openerp-context-in-act-window

or alternative option use ir.actions.act_window

<record id="model_action_id" model="ir.actions.act_window">
                <field name="name">Валидация пароля</field>
                <field name="type">ir.actions.act_window</field> 
                <field name="res_model">tabel.temp</field>
                <field name="view_type">form</field>
                <field name="view_mode">form</field>
         </record>
 
<!-- POPUP WIZARD -->
 <record model="ir.ui.view" id="my_specific_view">  <field name="name">password.form2</field>  <field name="model">tabel.temp</field>  <field name="act_window_id" ref="model_action_id"/>  <field name="arch" type="xml">  <form string="Password Form Validation">      <sheet>      <group>      <field name="user_id" />      <field name="password" password="True" default_focus="1" placeholder="Введите подпись"/>    <button                                 name="validation"                                 type="object"                                 string="Подписать"     context="{'password':password,'user_id':user_id,}"     class="oe_inline oe_stat_button"     icon="fa-check-circle-o"/>    <button name="cancel" string="Отмена" special="cancel" class="oe_inline oe_stat_button" icon="fa-stop"/>      </group>      </sheet>  </form>  </field>     </record>

<!--In source model -->
<record model="ir.ui.view" id="tabel_form_view">  <field name="name">tabel.form</field>  <field name="model">tabel.tabel</field>  <field name="arch" type="xml">  <form string="Tabel Form">  <button   name="%(model_action_id)d"   type="action"   string="Аннулировать"   context="{'tabel_id':active_id,'state':'draft'}"   states="confirmed,confirmed2"   class="oe_inline oe_stat_button"   icon="fa-check-square-o"  />

class Temp(models.TransientModel):
 def validation(self, cr, uid, values, context):
  #now there all context
  #context['password'] from Transient
  #context['user_id']
                #context['state'] from source
Avatar
Discard
Author Best Answer

@Shurshilov,

Thank you for your answer but it's not exactly what I want to do. I want to use the context value "journal_type" from
the left menu and pass it to the wizard which is called from the "more menu". 

If I do 

context="{'journal_type': context.get('journal_type')}"

The value of "journal_type" is None but if I do

context="{'journal_type': 'sale'}"

 The value of "journal_type" is 'sale'

So maybe "context.get" is not designed to be used this way.







Avatar
Discard

Because journal_type not in context. You should use not object button, use action button, write to my mail, i can help you

edit first comment see answer