Skip to Content
Odoo Menú
  • Registra entrada
  • Prova-ho gratis
  • Aplicacions
    Finances
    • Comptabilitat
    • Facturació
    • Despeses
    • Full de càlcul (IA)
    • Documents
    • Signatura
    Vendes
    • CRM
    • Vendes
    • Punt de venda per a botigues
    • Punt de venda per a restaurants
    • Subscripcions
    • Lloguer
    Imatges de llocs web
    • Creació de llocs web
    • Comerç electrònic
    • Blog
    • Fòrum
    • Xat en directe
    • Aprenentatge en línia
    Cadena de subministrament
    • Inventari
    • Fabricació
    • PLM
    • Compres
    • Manteniment
    • Qualitat
    Recursos humans
    • Empleats
    • Reclutament
    • Absències
    • Avaluacions
    • Recomanacions
    • Flota
    Màrqueting
    • Màrqueting Social
    • Màrqueting per correu electrònic
    • Màrqueting per SMS
    • Esdeveniments
    • Automatització del màrqueting
    • Enquestes
    Serveis
    • Projectes
    • Fulls d'hores
    • Servei de camp
    • Suport
    • Planificació
    • Cites
    Productivitat
    • Converses
    • Validacions
    • IoT
    • VoIP
    • Coneixements
    • WhatsApp
    Aplicacions de tercers Odoo Studio Plataforma d'Odoo al núvol
  • Sectors
    Comerç al detall
    • Llibreria
    • Botiga de roba
    • Botiga de mobles
    • Botiga d'ultramarins
    • Ferreteria
    • Botiga de joguines
    Food & Hospitality
    • Bar i pub
    • Restaurant
    • Menjar ràpid
    • Guest House
    • Distribuïdor de begudes
    • Hotel
    Immobiliari
    • Agència immobiliària
    • Estudi d'arquitectura
    • Construcció
    • Gestió immobiliària
    • Jardineria
    • Associació de propietaris de béns immobles
    Consultoria
    • Empresa comptable
    • Partner d'Odoo
    • Agència de màrqueting
    • Bufet d'advocats
    • Captació de talent
    • Auditoria i certificació
    Fabricació
    • Textile
    • Metal
    • Mobles
    • Menjar
    • Brewery
    • Regals corporatius
    Salut i fitness
    • Club d'esport
    • Òptica
    • Centre de fitness
    • Especialistes en benestar
    • Farmàcia
    • Perruqueria
    Trades
    • Servei de manteniment
    • Hardware i suport informàtic
    • Sistemes d'energia solar
    • Shoe Maker
    • Serveis de neteja
    • Instal·lacions HVAC
    Altres
    • Nonprofit Organization
    • Agència del medi ambient
    • Lloguer de panells publicitaris
    • Fotografia
    • Lloguer de bicicletes
    • Distribuïdors de programari
    Browse all Industries
  • Comunitat
    Aprèn
    • Tutorials
    • Documentació
    • Certificacions
    • Formació
    • Blog
    • Pòdcast
    Potenciar l'educació
    • Programa educatiu
    • Scale-Up! El joc empresarial
    • Visita Odoo
    Obtindre el programari
    • Descarregar
    • Comparar edicions
    • Novetats de les versions
    Col·laborar
    • GitHub
    • Fòrum
    • Esdeveniments
    • Traduccions
    • Converteix-te en partner
    • Services for Partners
    • Registra la teva empresa comptable
    Obtindre els serveis
    • Troba un partner
    • Troba un comptable
    • Contacta amb un expert
    • Serveis d'implementació
    • Referències del client
    • Suport
    • Actualitzacions
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Programar una demo
  • Preus
  • Ajuda

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Comptabilitat
  • Inventari
  • PoS
  • Projectes
  • MRP
All apps
You need to be registered to interact with the community.
All Posts People Badges
Etiquetes (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Etiquetes (View all)
odoo accounting v14 pos v15
About this forum
Ajuda

fields function type selection

Subscriure's

Get notified when there's activity on this post

This question has been flagged
functionfieldselectiontype
4 Respostes
37378 Vistes
Avatar
omkar

Hi Buddies.

Good morning.

I am trying this from the couple of days but no luck..

I read the data from the table and split that into selection fields list and try to return through the function..

The Function was working Fine , But I am unable to see or edit the Selection field ..

Here is My XML Code..

    <record id="hr_team_action" model="ir.actions.act_window">
        <field name="name">Team</field>
        <field name="res_model">hr.employee</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
        <field name="view_id" ref="view_hr_team_tree"/>
    </record>

    <record model="ir.ui.view" id="view_hr_team_form">
        <field name="name">hr.team.form</field>
        <field name="model">hr.employee</field>
        <field name="arch" type="xml">
            <notebook position="inside">
               <page string="Team">
                    <group col="4">
                        <field name="name_related"/>
                        <field name="department_id"/>
                        <field name="work_location"/>
                        <field name="job_id"/>
                        <button name="%(act_view_hr_performancegoals_tree)d" type="action" string="Assign Goals" class="oe_link oe_edit_only" icon="STOCK_DIRECTORY_MENU"/>
                    </group>
                </page>
              </notebook>
        </field>
    </record>

    <record model="ir.ui.view" id="view_hr_team_tree">
        <field name="name">hr.team.form</field>
        <field name="model">hr.employee</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Team" editable="bottom" >
                        <field name="name_related"/>
                        <field name="department_id"/>
                        <field name="work_location"/>
                        <field name="job_id"/>
                        <button name="%(act_view_hr_performancegoals_tree)d" type="action" string="Assign Goals" class="oe_link oe_edit_only" icon="STOCK_DIRECTORY_MENU"/>
            </tree>
        </field>
    </record>

...................................................................................

.py file

class hr_performancegoals(osv.osv): _name = "hr.performancegoals" _description = "Performance Goals"

 def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
     if context is None:
        context = {}
     print "Sateesh testing here",uid
     result = super(hr_performancegoals, self).fields_view_get(cr, uid, view_id,view_type, context, toolbar,submenu)
     data = result['arch']
     if uid == 1:
        L=[]
        ldata = data.split("\n")
        for var in ldata:
             if re.search("parent_id",var):
                 pass
             else:
                 L.append(var)
        reqdata =''.join(L)
        result['arch']=reqdata
     else:
        L=[]
        ldata = data.split("\n")
        for var in ldata:
             if re.search("strategic_goals",var):
                 pass
             else:
                 L.append(var)
        reqdata =''.join(L)
        result['arch']=reqdata
     return result


 def _get_objectives(self,cr,uid,ids,name,args,context=None):
     res= dict.fromkeys(ids,'')
     print "In Objectives"
     cr.execute("select objectives from hr_performancegoals")
     data = cr.dictfetchall()
     L=[]
     for i,values in enumerate(data):
         a=unicodedata.normalize('NFKD', values['objectives']).encode('ascii','ignore')
         rest=a.split(',')
         print "Here is the List:",rest
         if len(rest)!=0:
             for j,val in enumerate(rest):
                 L.append((j,val))
                 i=j
         else:
             L.append((i,rest))
     print "Value Here :",L
     res['values']=L
     return res


 def _get_employee_id(self,cr,uid,ids,name,arg,context=None):
    res = dict.fromkeys(ids, uid)
    print "sateesh testing employee_id",res   #res['employee_id'], type(res['employee_id'])
    return res

 _columns = {
'employee_id': fields.function(_get_employee_id,method=True, type='integer', string="Employee",store=True),
'strategic_goals': fields.char('Strategic Goals', required=True),
'parent_id': fields.function(_get_objectives, type='selection',method=True, string="Stratergic Goals Parent"),
'objectives' : fields.text('Objectives'),
'completion_date' : fields.date('Completion Date'),
'specific_actions_required_to_deliver_strategic_goal' : fields.text('Specific Actions Required To Deliver Strategic Goal'),
'status': fields.selection([('1','Yet To Start'),
                           ('2','In Progress'),
                           ('3','Invalid'),
                           ('4','Completed'),
                           ('5','Closed'),],
                            'Status', required=True),

}

Working with Human Resource Module

1
Avatar
Descartar
Avatar
Prakash
Best Answer

In python file selection functional field replace with below code it will works:-

from osv import osv, fields

SELECTION_LIST = [
   ('1','Yet To Start'),
   ('2','In Progress'),
   ('3','Invalid'),
    ('4','Completed'),
    ('5','Closed'),
]
'parent_id': fields.function(_get_objectives, type='selection',method=True,  selection=SELECTION_LIST, string="Stratergic Goals Parent"),
2
Avatar
Descartar
omkar
Autor

Thanks a Lot

Avatar
wilson zauma
Best Answer

I use a function and relation with this in my_file.py:

def _buscar_shortname_alm(self, cr, uid, context=None):

        obj=self.pool.get('stock.location')
        ids = obj.search(cr, uid, [('shortcut', '!=', False),('usage','in',('internal','production'))],
            order='shortcut') 
         resultado = obj.read(cr, uid, ids, ['id','shortcut'], context)

        #convertimos a una lista de tuplas
        res = []
        for record in resultado:
            #creamos la tupla interna
            rec = []
            #convertimos a cadena el ID para crear la tupla
            rec.append(str(record['id']))
            rec.append(record['shortcut'])
            #agregamos a tupla final
            res.append(tuple(rec))
         return res

And the _columns put this:

'aux_almacen_orig': fields.selection(_buscar_shortname_alm, type="char",store=True, method=True,size=256, required=True, string="Almacen Origen" ),

Then i put this in my_file.xml

<field name="aux_almacen_orig" />

And finally this is the result. http://(www).orchidshouseperu.com/screenshots/Seleccion_041.png

1
Avatar
Descartar
Avatar
omkar
Autor Best Answer

Thanks Prakash..

Thanks for your Help.

I worked in different manner and it help me in getting the tuple.

def get_objectives(self,cr,uid,ids,context):
    cr.execute("select objectives from hr_performancegoals")
     data = cr.dictfetchall()
     L=[]
     for i,values in enumerate(data):
         a=unicodedata.normalize('NFKD', values['objectives']).encode('ascii','ignore')
             L.append((str(i),rest))
     return L


'parent_id': fields.function(get_objectives, type='selection',method=True,  string="Stratergic Goals Parent"),

This work for me..

1
Avatar
Descartar
Avatar
TEIMI Yassine
Best Answer

Hi omkar, I have the same problem, Could you please tell me what is rest variable for ? Thanks a lot.

0
Avatar
Descartar
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Registrar-se
Related Posts Respostes Vistes Activitat
Purchase Order Function Field Issue
function field
Avatar
0
de març 15
4643
field visible as text for manager and dropdown for employee
field selection
Avatar
0
de març 15
4438
get Id in field selection
field selection
Avatar
Avatar
1
de març 15
9376
Function field issue
function field
Avatar
Avatar
1
de març 15
4943
Can you check a code of my module : filed. function
function field
Avatar
Avatar
2
de març 15
5500
Community
  • Tutorials
  • Documentació
  • Fòrum
Codi obert
  • Descarregar
  • GitHub
  • Runbot
  • Traduccions
Serveis
  • Allotjament a Odoo.sh
  • Suport
  • Actualització
  • Desenvolupaments personalitzats
  • Educació
  • Troba un comptable
  • Troba un partner
  • Converteix-te en partner
Sobre nosaltres
  • La nostra empresa
  • Actius de marca
  • Contacta amb nosaltres
  • Llocs de treball
  • Esdeveniments
  • Pòdcast
  • Blog
  • Clients
  • Informació legal • Privacitat
  • Seguretat
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo és un conjunt d'aplicacions empresarials de codi obert que cobreix totes les necessitats de la teva empresa: CRM, comerç electrònic, comptabilitat, inventari, punt de venda, gestió de projectes, etc.

La proposta única de valor d'Odoo és ser molt fàcil d'utilitzar i estar totalment integrat, ambdues alhora.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now