Odoo - Verhindert, dass die Schaltfläche den Assistenten schließt

7

Ich habe ein transientes Modell, das als Dialog dient. In meiner Formularansicht habe ich einen Knopf wie folgt:

%Vor%

Die Schaltfläche ruft diese Funktion auf (ich kann bestätigen, dass sie tatsächlich aufgerufen wird):

%Vor%

Mein Problem ist, dass das Dialogfenster sofort geschlossen wird, sobald ich auf diese Schaltfläche klicke! Was mache ich falsch?

    
Áron Lőrincz 12.08.2015, 10:56
quelle

7 Antworten

16

Lösung 0

%Vor%

Diese Lösung wurde hier von Tadeusz Karpinski zur Verfügung gestellt.

Lösung 1

Sie können ein neues Formular mit derselben Datensatz-ID zurückgeben.

%Vor%

Lösung 2

Sie können ein Widget in jQuery erstellen. Dadurch wird der Assistent geöffnet und Sie können das gewünschte Verhalten manuell den Schaltflächen zuweisen. Sie können auch die Funktion call verwenden, um Python-Funktionen aufzurufen:

%Vor%

Lösung 3

Natürlich können Sie auch die create-Methode überschreiben, um in einigen Fällen die Erstellung des Datensatzes zu vermeiden

Lösung 4

Eine letzte Option. Erstellen Sie einen Workflow mit einem Statusfeld. Erstellen Sie Workflow-Schaltflächen, um Signale zum Ändern des Status zu senden. Sie können die übrigen Felder mithilfe des attrs-Attributs und des state-Felds ein- oder ausblenden. Aber ich weiß nicht, ob sich das an deine Bedürfnisse anpassen würde.

    
ChesuCR 12.08.2015, 17:35
quelle
5

In meinem Fall funktioniert dieser Code.

%Vor%     
Tadeusz Karpinski 23.02.2017 16:52
quelle
2

Das einfachste ist:

%Vor%

Da der Typ verwendet wird, um eine Methode in der Klasse ActionManager (javascript) aufzurufen

Es ist besser als "type": "ir.actions.do_nothing", die eine Ausnahme erzeugen (dieses Attribut existiert nicht)

    
user3778322 04.05.2017 14:06
quelle
2

gestern stieß ich auf das gleiche Problem. Ich musste einen Knopf zeigen, um etwas zu tun, ohne das ganze Wizard einzureichen. Ich habe mich darum gekümmert, überhaupt keinen Knopf zu benutzen. Es ist ziemlich einfach und effektiv. Was Sie brauchen:

  1. ein boolesches Flag in Ihrem Wizard-Modell
  2. eine onchange, die an das Flag angehängt ist (das ersetzt Ihre summit-Funktion)
  3. Ersetzen Sie die Schaltfläche in der Ansicht mit dem Flag mit invisible="1" und einem Label, das als Schaltfläche
  4. formatiert werden soll

Hier ist der Code:

%Vor%

Der Trick funktioniert, denn wenn ein Label% co_de hat, verhält sich das Attribut wie das Kontrollkästchen selbst. Wenn Sie also auf das Label klicken, wechseln Sie das Kontrollkästchen.

    
simahawk 30.08.2017 06:25
quelle
0

Ja, Sie haben Recht ... aber wir haben keine Lösung. Denn wenn Sie auf eine Schaltfläche des Assistenten klicken, wird der Assistent automatisch zerstört.

Aber Sie können diese Methode mit der Methode write onchange eines beliebigen Feldes ausführen.

    
Nikunj Antala 12.08.2015 16:17
quelle
0

auf odoo 7

%Vor%     
hamza_salem 28.04.2016 10:29
quelle
0

Sie können mit der Schaltfläche einen anderen Assistenten öffnen, der den Kontext mit allen Werten übergibt, die im ersten Assistenten eingegeben wurden. Dadurch können Sie eine Funktion ausführen, z. dein Knopf. Und behalte den Status deines Assistenten bei. Daher muss der Standardwert für die Felder in Ihrem Assistenten zuerst den Kontext und dann den Fallback auf etwas anderes überprüfen.

Hier ist ein Beispiel:

%Vor%     
Phillip Stack 07.09.2016 15:33
quelle

Tags und Links