Sari la conținut
Odoo Meniu
  • Autentificare
  • Try it free
  • Aplicații
    Finanțe
    • Contabilitate
    • Facturare
    • Cheltuieli
    • Spreadsheet (BI)
    • Documente
    • Semn
    Vânzări
    • CRM
    • Vânzări
    • POS Shop
    • POS Restaurant
    • Abonamente
    • Închiriere
    Site-uri web
    • Constructor de site-uri
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Lanț Aprovizionare
    • Inventar
    • Producție
    • PLM
    • Achiziție
    • Maintenance
    • Calitate
    Resurse Umane
    • Angajați
    • Recrutare
    • Time Off
    • Evaluări
    • Referințe
    • Flotă
    Marketing
    • Social Marketing
    • Marketing prin email
    • SMS Marketing
    • Evenimente
    • Automatizare marketing
    • Sondaje
    Servicii
    • Proiect
    • Foi de pontaj
    • Servicii de teren
    • Centru de asistență
    • Planificare
    • Programări
    Productivitate
    • Discuss
    • Artificial Intelligence
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Aplicații Terțe Odoo Studio Platforma Odoo Cloud
  • Industrii
    Retail
    • Book Store
    • Magazin de îmbrăcăminte
    • Magazin de Mobilă
    • Magazin alimentar
    • Magazin de materiale de construcții
    • Magazin de jucării
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Distribuitor de băuturi
    • Hotel
    Proprietate imobiliara
    • Real Estate Agency
    • Firmă de Arhitectură
    • Construcție
    • Property Management
    • Grădinărit
    • Asociația Proprietarilor de Proprietăți
    Consultanta
    • Firma de Contabilitate
    • Partener Odoo
    • Agenție de marketing
    • Law firm
    • Atragere de talente
    • Audit & Certification
    Producție
    • Textil
    • Metal
    • Mobilier
    • Mâncare
    • Brewery
    • Cadouri corporate
    Health & Fitness
    • Club Sportiv
    • Magazin de ochelari
    • Centru de Fitness
    • Wellness Practitioners
    • Farmacie
    • Salon de coafură
    Trades
    • Handyman
    • IT Hardware and Support
    • Asigurare socială de stat
    • Cizmar
    • Servicii de curățenie
    • HVAC Services
    Altele
    • Organizație nonprofit
    • Agenție de Mediu
    • Închiriere panouri publicitare
    • Fotografie
    • Închiriere biciclete
    • Asigurare socială
    Browse all Industries
  • Comunitate
    Învăță
    • Tutorials
    • Documentație
    • Certificări
    • Instruire
    • Blog
    • Podcast
    Empower Education
    • Program Educațional
    • Scale Up! Business Game
    • Visit Odoo
    Obține Software-ul
    • Descărcare
    • Compară Edițiile
    • Lansări
    Colaborați
    • Github
    • Forum
    • Evenimente
    • Translations
    • Devino Partener
    • Services for Partners
    • Înregistrează-ți Firma de Contabilitate
    Obține Servicii
    • Găsește un Partener
    • Găsiți un contabil
    • Meet an advisor
    • Servicii de Implementare
    • Referințe ale clienților
    • Suport
    • Actualizări
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Obține un demo
  • Prețuri
  • Ajutor
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Toate postările Oameni Insigne
Etichete (Vezi tot)
odoo accounting v14 pos v15
Despre acest forum
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Toate postările Oameni Insigne
Etichete (Vezi tot)
odoo accounting v14 pos v15
Despre acest forum
Suport

Search with functional fields

Abonare

Primiți o notificare când există activitate la acestă postare

Această întrebare a fost marcată
filtersearch
4 Răspunsuri
22998 Vizualizări
Imagine profil
Bruno Cascio

How to search with functional fields?

my code

'calculate_next_visit' : fields.function( 
     __get_next_visit,
    method=True,
    type='char',
    store=True,
    string="Calculo de próxima visita"),

 def __get_next_visit(self, cr, uid, obj, name, args, context):
      print 'something'
      res = {}
      for v in self.browse(cr, uid, obj):
         diagnosis = map(lambda x:x.upper(),v.diagnosis)
         if 'PAP' in diagnosis or 'P.A.P' in diagnosis:
           # more code....
            res[v.id] = True
      return res

and my view:

<record id="search_visit_filter" model="ir.ui.view">
      <field name="name">Visitas</field>
      <field name="model">visit</field>
      <field name="arch" type="xml">
        <search string="Search xxx">
            <filter domain="[('calculate_next_visit','=',True)]" string="Visitas Próximas a la fecha"/>
        </search>
      </field>
    </record>

When select filter, never print "something"

Somebody Help me?

THE SOLUTION

'calculate_next_visit' : fields.function(
         _next_visit,
         fnct_search=_search_next_visit,
         method=True, 
         type='char', 
         multi=True,
         string="Calculo de próxima visita", 
      ),

set fnct_search parameter, and implement that.

def _search_next_visit(self, cr, uid, obj, name, args, context=None):
      res = []
      ids = obj.search(cr,uid,[]) # ids of visits
      for v in self.browse(cr, uid, ids): # foreach visit
         diags = [d.name.upper() for d in v.diagnosis]
         if "PAP" in diags:
            res.append(v.id)
      return [('id','in',res)]

important return type of fnct_search

and my search view...

<group expand="0" string="Agrupar por...">
            <filter string="Próximas Visitas" domain="[('calculate_next_visit','=',True)]" context="{'group_by':'next_visit'}" />
</group>

check documentation for fnct_search functions

1
Imagine profil
Abandonează
Ajeng Shilvie

@ Bruno , i have the same problem as you . You already found the answer right ? did you change __get_next_visit method as well ?

Imagine profil
Roc cheng
Cel mai bun răspuns

Hi, It looks like you just want testing whether the __get_next_visit on working.. but on serach view,When select filter,this way won't trigger the function. because the object never changed.

4
Imagine profil
Abandonează
Bruno Cascio
Autor

Thanks! There is the possibility of implementing a filter to only such rows that meet a condition such that a date approximates the current date?

Imagine profil
Dhinesh
Cel mai bun răspuns

Hi, Functional fields get triggered at the time of saving the record. If u want to trigger at the time of loading try to give in _defaults.

3
Imagine profil
Abandonează
Bruno Cascio
Autor

I tried a default field, and I was not successful. Could you explain please?

Imagine profil
xingtongjie
Cel mai bun răspuns

let  function field `s store parameter equal True

0
Imagine profil
Abandonează
Imagine profil
Deepa Venkatesh
Cel mai bun răspuns

Hi...

Firstly, your data to that field is not correct, I mean you have defined functional field for "Char" whereas your function is returning True which is of type "Boolean"... so loook into your code again...

Then coming to search criteria, A functional field is of two type.. One having a "store" property and one without it..

1. when store is set True: then the functional field and its value will be saved in the database, which will act just like other physical fields, so you can specify it in search without any issue..

2. when store is not set: then the functional field will be like evalution field, meaning value for it will be evaluated/computed only when it is triggered... henceforth one cannot use it in search view, as the field and its data are not stored in db... So in order to search, you should write "fnct_search" property to your function field and define it accordingly...

Check this link for more details: Function Fields

You can find many examples in addons.

Hope this will help you.

 

0
Imagine profil
Abandonează
Îți place discuția? Nu doar citi, alătură-te!

Creează-ți un cont astăzi pentru a beneficia de funcții exclusive și a interacționa cu minunata noastră comunitate!

Înscrie-te
Postări similare Răspunsuri Vizualizări Activitate
how can i create a filter that uses the "and" condition
filter search
Imagine profil
Imagine profil
Imagine profil
2
nov. 23
4958
How to save a filter with today value from context Rezolvat
filter search
Imagine profil
Imagine profil
Imagine profil
Imagine profil
Imagine profil
7
apr. 21
23079
filter with related model field Rezolvat
filter search
Imagine profil
1
oct. 20
6543
change search filter Rezolvat
filter search
Imagine profil
Imagine profil
2
nov. 16
5656
How to set a new search filter?
filter search
Imagine profil
Imagine profil
1
mar. 15
15437
Comunitate
  • Tutorials
  • Documentație
  • Forum
Open Source
  • Descărcare
  • Github
  • Runbot
  • Translations
Servicii
  • Hosting Odoo.sh
  • Suport
  • Actualizare
  • Custom Developments
  • Educație
  • Găsiți un contabil
  • Găsește un Partener
  • Devino Partener
Despre Noi
  • Compania noastră
  • Active de marcă
  • Contactați-ne
  • Locuri de muncă
  • Evenimente
  • Podcast
  • Blog
  • Clienți
  • Aspecte juridice • Confidențialitate
  • Securitate
الْعَرَبيّة 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 Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo este o suită de aplicații de afaceri open source care acoperă toate nevoile companiei dvs.: CRM, comerț electronic, contabilitate, inventar, punct de vânzare, management de proiect etc.

Propunerea de valoare unică a Odoo este să fie în același timp foarte ușor de utilizat și complet integrat.

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