2017-12-11 2 views
1

In der Baumansicht habe ich Feld "Code" und ich möchte nur Datensätze filtern, wenn Code mit 910 beginnt und es sollte Standardfilter sein. Ich versuche mit dem Kontext zu spielen, aber nicht viel. Ich kann nach Code filtern, aber wie kann ich diese 910 dort hinzufügen.Standardfilter mit Teilnummer

<field name="context">{"search_default_code":1}</field> 

Aktualisierung.

<record id="project_proposal_view_search" model="ir.ui.view"> 
    <field name="name">project.part.search</field> 
    <field name="model">project.proposal</field> 
    <field name="arch" type="xml"> 
     <search> 
      <field name="name"/> 
      <field name="project_id"/> 
      <field name="code"/> 
      <filter name="code" string="Starts with 910" domain="[('code','ilike', '910')]"/> 
     </search> 
    </field> 
</record> 

class ProjectProposal(models.Model): 
    _name = 'project.proposal' 
    _inherit = ['mail.thread'] 

    code = fields.Char(compute='_compute_code') 

@api.multi 
    @api.onchange('project_id', 'object', 'stage_id', 'part_template_id') 
    def _compute_code(self): 
     for r in self: 
      code = [] 
      if r.project_id: 
       code.append(r.project_id.code or '') 
      if r.object: 
       code.append(r.object or '') 
      if r.stage_id: 
       code.append(r.stage_id.code or '') 
      if r.part_template_id: 
       code.append(r.part_template_id.code or '') 
      r.code = '-'.join(code) 

Antwort

2

müssen Sie uns über den Codefeldtyp informieren. es scheint von Typ char.also scheint es, dass Sie eine Aktion mit Kontext verwenden.

so müssen Sie Filter Code definieren, die Sie verwenden möchten, { "search_default_code": 1}

<filter name="code" string="starts with 910" domain="[('code','ilike', '910')]" /> 

so werden Sie etwas wie das

<!-- FILTERS FOR YOUR MODEL --> 
<record id="filter_model_name" model="ir.ui.view"> 
    <field name="name">FILTER NAME</field> 
    <field name="model">MODEL.NAME</field> 
    <field name="arch" type="xml"> 
     <search string="MODEL NAME"> 
      <filter name="code" string="starts with 910" domain="[('code','ilike', '910')]" /> 
     </search> 
    </field> 
</record> 
<!-- FILTERS FOR YOUR MODEL --> 

am Ende definieren, bitte Stellen Sie sicher, dass Ihre Felddefinition wie folgt aussieht:

code = fields.Char(compute='_compute_code', store=True) 
+0

Ihre Antwort ist richtig, aber versuche mehr zu erklären. Wo setzt er den Filter? – Cherif

+0

Edited meine Frage mit mehr Code, und yeas Typ ist char. Das Problem ist, dass es nicht filtert. mit oder ohne Filter ist das Ergebnis in der Baumansicht gleich. – Chaban33

+0

Stellen Sie sicher, dass Sie Ihr Modul aktualisiert haben. Sie können sicherstellen, dass Ihre Suche geladen wird unter Einstellungen → Technisch → Sequenzen & Identifikatoren → Externe Identifikatoren – kerbrose

Verwandte Themen