Siirry sisältöön
Odoo Menu
  • Kirjaudu sisään
  • Kokeile ilmaiseksi
  • Sovellukset
    Talous
    • Kirjanpito
    • Laskutus
    • Kulut
    • Datataulukot (BI)
    • Asiakirjat
    • Allekirjoita
    Myynti
    • CRM
    • Myynti
    • Kassajärjestelmä myymälään
    • Kassajärjestelmä ravintolaan
    • Tilaukset
    • Vuokraus
    Verkkosivut
    • Verkkosivun Rakennustyökalu
    • Verkkokauppa
    • Blogi
    • Foorumi
    • Livechat
    • Verkko-oppiminen
    Toimitusketju
    • Varastointi
    • Tuotanto
    • Tuotteen elinkaaren hallinta (PLM)
    • Ostot
    • Huolto
    • Laatu
    Henkilöstöhallinto
    • Työntekijät
    • Rekrytointi
    • Vapaat
    • Arvioinnit
    • Suositukset
    • Kuljetuskalusto
    Markkinointi
    • Somemarkkinointi
    • Sähköpostimarkkinointi
    • Tekstiviestimarkkinointi
    • Tapahtumat
    • Markkinoinnin automaatio
    • Kyselyt
    Palvelut
    • Projekti
    • Työaikakirjaukset
    • Kenttähuolto
    • Asiakaspalvelu
    • Suunnittelu
    • Ajanvaraukset
    Tuottavuus
    • Viestintä
    • Hyväksynnät
    • IoT
    • IP-puhe
    • Tietokirjasto
    • WhatsApp
    Kolmannen osapuolen sovellukset Odoo-Studio Odoo-Pilvialusta
  • Toimialat
    Vähittäiskauppa
    • Kirjakauppa
    • Vaatekauppa
    • Huonekaluliike
    • Ruokakauppa
    • Laitteistokauppa
    • Lelukauppa
    Ruoka & Majoitus
    • Baari ja Pubi
    • Ravintola
    • Pikaruoka
    • Majatalo
    • Juomien jakelija
    • Hotelli
    Kiinteistöt
    • Kiinteistönvälitystoimisto
    • Arkkitehtitoimisto
    • Rakentaminen
    • Kiinteistönhallinta
    • Puutarhanhoito
    • Kiinteistön omistajien yhdistys
    Konsultointi
    • Tilitoimisto
    • Odoo-kumppani
    • Markkinointitoimisto
    • Lakitoimisto
    • Osaajahankinta
    • Tilintarkastus & sertifiointi
    Tuotanto
    • Tekstiili
    • Metalli
    • Huonekalut
    • Ruoka
    • Panimo
    • Yrityslahjat
    Terveys & Liikunta
    • Urheiluseura
    • Silmälasiliike
    • Kuntokeskus
    • Hyvinvointialan ammattilaiset
    • Apteekki
    • Kampaamo
    Kaupat
    • Yleismies
    • IT-laitteisto & Tuki
    • Aurinkoenergiajärjestelmät
    • Suutari
    • Siivouspalvelut
    • LVI-palvelut
    Muut
    • Voittoa tavoittelematon järjestö
    • Ympäristötoimisto
    • Mainostaulujen vuokraus  
    • Valokuvaus
    • Leasing-pyörät
    • Ohjelmistojen jälleenmyyjä
    Selaa kaikkia toimialoja
  • Yhteisö
    Opi
    • Kurssit
    • Dokumentaatio
    • Todistukset
    • Koulutus
    • Blogi
    • Podcast
    Kannusta kouluttautumaan
    • Koulutusohjelmat
    • Scale Up! Liiketoimintapeli
    • Vieraile Odoolla
    Hanki ohjelmisto
    • Lataa
    • Vertaile versioita
    • Julkaisut
    Tee yhteistyötä
    • Github
    • Foorumi
    • Tapahtumat
    • Käännökset
    • Ryhdy kumppaniksi
    • Kumppanipalvelut
    • Rekisteröi tilitoimistosi
    Hanki palveluja
    • Löydä kumppani
    • Löydä kirjanpitäjä
    • Varaa asiantuntijatapaaminen
    • Implementaatiopalvelut
    • Asiakasreferenssit
    • Tuki
    • Versionkorotukset
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Varaa demo
  • Hinnoittelu
  • Asiakaspalvelu

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

  • CRM
  • e-Commerce
  • Kirjanpito
  • Varastointi
  • PoS
  • Projekti
  • MRP
All apps
Sinun on rekisteröidyttävä, jotta voit olla vuorovaikutuksessa yhteisön kanssa.
Kaikki kirjoitukset Ihmiset Merkit
Tunnisteet (Näytä kaikki)
odoo accounting v14 pos v15
Tietoa tästä foorumista
Sinun on rekisteröidyttävä, jotta voit olla vuorovaikutuksessa yhteisön kanssa.
Kaikki kirjoitukset Ihmiset Merkit
Tunnisteet (Näytä kaikki)
odoo accounting v14 pos v15
Tietoa tästä foorumista
Apua

Odoo v8 custom model with workflow error

Tilaa

Saat ilmoituksen, kun tähän viestiin ilmaantuu aktiviteettia

Tämä kysymys on merkitty
workflowmodelsodooV8
1 Vastaa
5355 Näkymät
Avatar
Dennis

I am currently working on a school project with Odoo v8 with custom models and workflows. For each state of the workflow I want to execute python code, but recently I got the following error. I have used the following website: https://www.odoo.com/nl_NL/forum/help-1/question/how-to-move-around-workflow-states-back-and-forth-21509

  File "/usr/lib/python2.7/dist-packages/openerp/tools/safe_eval.py", line 314, in safe_eval
    return eval(c, globals_dict, locals_dict)
  File "", line 1, in <module>
ValueError: "name 'action_draft' is not defined" while evaluating
u'action_draft()'

Model:

from openerp import models, fields, api, _
from openerp.exceptions import Warning class child(models.Model):
 _name = 'xmi2odoo.child'
    _description = 'child'
    _states_ = [
        # State machine: untitle
        ('draft', 'Draft'),
        ('submitted', 'Submitted'),
        ('confirmed', 'Confirmed'),
        ('cancelled', 'Cancelled'),
    ]
    name = fields.Char(
        string='name'
        )
    state = fields.Selection(
        _states_,
        'State',
        default='draft',
        )
    parents = fields.Many2many(
        'xmi2odoo.person',
        'xmi2odoo_parents_parentoff_rel',
        'child_id',
        'person_id',
        string='parents'
        )
@api.multi def action_cancelled(self): 
    res = self.write({'state': 'cancelled'}) return res
@api.multi def action_confirmed(self): 
    res = self.write({'state': 'confirmed'}) return res
@api.multi def action_draft(self): 
    res = self.write({'state': 'draft'}) return res
@api.multi def action_submitted(self): 
    res = self.write({'state': 'submitted'}) return res

Model view:

<!-- FORMVIEW -->
        <record id="view_xmi2odoo_child_form" model="ir.ui.view">
            <field name="name">xmi2odoo.child.form</field>
            <field name="model">xmi2odoo.child</field>
            <field name="arch" type="xml">
                <form string="child">
                    <header>
                        <button name="action_draft"
                          type="object"
                          states="cancelled"
                          string="To Draft"
                          class="oe_highlight"
                        />
                        <button name="action_submitted"
                          type="object"
                          states="draft"
                          string="Submit"
                          class="oe_highlight"
                        />
                        <button name="action_confirmed"
                          type="object"
                          states="submitted"
                          string="Confirm"
                          class="oe_highlight"
                        />
                        <button name="action_cancelled"
                          type="object"
                          states="confirmed,draft,submitted"
                          string="Cancel"
                          class="oe_highlight"
                        />
                        <field name="state" widget="statusbar"
                            statusbar_colors='{}'
                        />
                    </header>
                    <sheet string="child">
                       <div class="oe_right oe_button_box" name="buttons">
                       </div>
                     <group>
                        <field name="name"
                            /> 
                        <field name="parents"
                        /> 
                     </group>
                    </sheet>
                </form>
            </field>
        </record>

Workflow:

<openerp>
    <data>
        <!-- Workflow -->
        <record id="child_untitle_wkf" model="workflow">
            <field name="name">xmi2odoo.child.untitle</field>
            <field name="osv">xmi2odoo.child</field>
            <field name="on_create">True</field>
        </record>
        <!-- Activities -->
        <record id="a_0D08_0D26" model="workflow.activity">
            <field name="wkf_id" ref="child_untitle_wkf"/>
            <field name="flow_start">True</field>
            <field name="name">Draft</field>
            <field name="action">action_draft()</field>
            <field name="kind">function</field>
        </record>
        <record id="a_0D08_0D32" model="workflow.activity">
            <field name="wkf_id" ref="child_untitle_wkf"/>
            <field name="name">Submitted</field>
            <field name="action">action_submitted()</field>
            <field name="kind">function</field>
        </record>
        <record id="a_0D08_0D27" model="workflow.activity">
            <field name="wkf_id" ref="child_untitle_wkf"/>
            <field name="name">Confirmed</field>
            <field name="action">action_confirmed()</field>
            <field name="kind">function</field>
        </record>
        <record id="a_0D08_0D28" model="workflow.activity">
            <field name="wkf_id" ref="child_untitle_wkf"/>
            <field name="flow_stop">True</field>
            <field name="name">Cancelled</field>
            <field name="action">action_cancelled()</field>
            <field name="kind">function</field>
        </record>
        <!-- Transitions -->
        <record id="t_0D08_0D2B" model="workflow.transition">
            <field name="act_from" ref="a_0D08_0D26"/>
            <field name="act_to" ref="a_0D08_0D28"/>
            <field name="signal">action_cancelled</field>
            <field name="condition">True</field>
        </record>
        <record id="t_0D08_0D2C" model="workflow.transition">
            <field name="act_from" ref="a_0D08_0D27"/>
            <field name="act_to" ref="a_0D08_0D28"/>
            <field name="signal">action_cancelled</field>
            <field name="condition">True</field>
        </record>
        <record id="t_0D08_0D2D" model="workflow.transition">
            <field name="act_from" ref="a_0D08_0D28"/>
            <field name="act_to" ref="a_0D08_0D26"/>
            <field name="signal">action_draft</field>
            <field name="condition">True</field>
        </record>
        <record id="t_0D08_0D33" model="workflow.transition">
            <field name="act_from" ref="a_0D08_0D26"/>
            <field name="act_to" ref="a_0D08_0D32"/>
            <field name="signal">action_submitted</field>
            <field name="condition">True</field>
        </record>
        <record id="t_0D08_0D34" model="workflow.transition">
            <field name="act_from" ref="a_0D08_0D32"/>
            <field name="act_to" ref="a_0D08_0D27"/>
            <field name="signal">action_confirmed</field>
            <field name="condition">True</field>
        </record>
        <record id="t_0D08_0D36" model="workflow.transition">
            <field name="act_from" ref="a_0D08_0D32"/>
            <field name="act_to" ref="a_0D08_0D28"/>
            <field name="signal">action_cancelled</field>
            <field name="condition">True</field>
        </record>
    </data>
</openerp>
0
Avatar
Hylkää
Avatar
Prakash
Paras vastaus

I have checked  your code ,i find the problem in indentation  , so just correct the indentation of your code , it will work

class child(models.Model):

_name = 'xmi2odoo.child'

_description = 'child'

_states_ = [

# State machine: untitle

('draft', 'Draft'),

('submitted', 'Submitted'),

('confirmed', 'Confirmed'),

('cancelled', 'Cancelled'),

]

name = fields.Char(

string='name'

)

state = fields.Selection(

_states_,

'State',

default='draft',

)

# parents = fields.Many2many(

# 'xmi2odoo.person',

# 'xmi2odoo_parents_parentoff_rel',

# 'child_id',

# 'person_id',

# string='parents'

# )

@api.multi

def action_cancelled(self):

res = self.write({'state': 'cancelled'})

return res

@api.multi

def action_confirmed(self):

res = self.write({'state': 'confirmed'})

return res

@api.multi

def action_draft(self):

res = self.write({'state': 'draft'})

return res

@api.multi

def action_submitted(self):

res = self.write({'state': 'submitted'})

return res



In your code you have put these method (action_cancelled,action_confirmed,action_draft,action_submitted) at the class level .

working image: http://prntscr.com/avb71g

In python the namespace define by the indentation  .
1
Avatar
Hylkää
Dennis
Tekijä

Wow I was totally looking in the wrong direction. It's working now, thanks Sharma!

Nautitko keskustelusta? Älä vain lue, vaan osallistu!

Luo tili jo tänään nauttiaksesi yksinoikeusominaisuuksista ja osallistuaksesi mahtavaan yhteisöömme!

Rekisteröidy
Aiheeseen liittyviä artikkeleita Vastaukset Näkymät Toimenpide
how programmate workflow file on odoo v8
workflow odooV8
Avatar
Avatar
1
syysk. 17
3569
workflow transition Ratkaistu
workflow odooV8
Avatar
1
elok. 17
3997
Delete sale order workflow instance and create a new one?
workflow odooV8
Avatar
Avatar
1
maalisk. 16
4462
workflows and models
workflow models
Avatar
0
maalisk. 15
4104
Multiple workflows are not working in single module Ratkaistu
workflow odooV8
Avatar
Avatar
2
maalisk. 15
4383
Yhteisö
  • Kurssit
  • Dokumentaatio
  • Foorumi
Avoin lähdekoodi
  • Lataa
  • Github
  • Runbot
  • Käännökset
Palvelut
  • Odoo.sh hosting
  • Tuki
  • Versionkorotus
  • Räätälöidyt kehitykset
  • Koulutus
  • Löydä kirjanpitäjä
  • Löydä kumppani
  • Ryhdy kumppaniksi
Meistä
  • Yrityksemme
  • Brändiominaisuudet
  • Ota yhteyttä
  • Työpaikat
  • Tapahtumat
  • Podcast
  • Blogi
  • Asiakkaat
  • Oikeudellinen ilmoitus • Yksityisyys
  • Tietoturva
الْعَرَبيّة 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 on kokoelma avoimen lähdekoodin yrityssovelluksia, jotka kattavat kaikki yrityksesi tarpeet: asiakkuudenhallinta eli CRM, verkkokauppa, kirjanpito, varastointi, kassajärjestelmä, projektinhallinta, jne.

Odoon uniikki arvolupaus on olla samanaikaisesti erittäin helppokäyttöinen ja täysin integroitu.

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