Brak reakcji - okienko "popup"

Panowie, szukałem rozwiązania jak w wyniku spełnienia warunku wyświetlić okienko z informacją i w końcu znalazłem sposób ..... tyle, ze ten sposob nijak nie chce otworzyć okienka ;)

                    if warunek is True:

                        return { 'name':_("Attention!"),
                            'view_id': False,                        
                            'view_mode': 'form',
                            'view_type': 'form',
                            'res_model': 'mes.wiz',
                            'type': 'ir.actions.act_window',
                            'nodestroy': True,
                            'target': 'new',
                            }

Wszystkie wymagane liby/procedury/moduły załadowane i dalej nic. Gdzie zrobiłem błąd ?

import xml
import json
import urllib2
import time
import datetime
import re
import os
import math
import traceback,sys
from openerp.osv import fields
from openerp.osv import osv
from openerp.tools.translate import _
from openerp.tools.float_utils import float_compare, float_round
from dateutil import relativedelta
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
from openerp.tools import (DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT)
from openerp.exceptions import except_orm, Warning, RedirectWarning

Czy coś pominąłem ?

Jeśli okaże się, że to jakaś drobnostka to chyba się upiję, spędziłem sporo czasu kombinując jak zmusić to do wyświetlenia okienka na próżno ;)

Zapisuje do tabeli wszystkie informacje dotyczące wywołania komunikatu, data utworzenia treść komunikatu itd:

 id | cre_uid |        create_date                   | wr_uid |         write_date                   |    message  
  1 |          1 | 2016-02-08 14:42:06.464569 |         1 | 2016-02-08 14:42:06.464569 | ('We still have this product above 3 * MWoS', '(', 2, ')')
  2 |          1 | 2016-02-08 14:42:37.317782 |         1 | 2016-02-08 14:42:37.317782 | ('We still have this product above 3 * MWoS', '(', 2, ')')

 

 

Dr.One
Dr.One
341
| 5 3 5
Data pytania 08.02.2016, 15:34
0
głos
438 Odsłony

if warunek is True:

Dariusz Żbikowski
na 09.02.2016, 11:35

Minęło trochę czasu a ja w dalszym ciągu nie wiem dlaczego nie wyświetla okienka z powiadomieniem :) Klasa

class wiz_mes(osv.osv_memory):
	_name = "wiz.mes"
	_columns={
			'text': fields.text('Message'),
	         }
wiz_mes()
Wywołanie
					if cust > full_stock:
						#create record in table
						message = self.pool.get('mes.wiz').create(cr, uid, {'message':text1})
						return {
							'name':_("Attention!"),
							'view_id': False,						
							'view_mode': 'form',
							'view_type': 'form',
							'res_model': 'mes.wiz',
							'res_id': message,
							'type': 'ir.actions.act_window',
							'nodestroy': True,
							'target': 'new',
							'domain': '[]',
							}
					if cust 
Dlaczego nie wyświetla okienka ?
Co źle zrobiłem ?
Dr.One
na 25.02.2016, 14:29

w klasie mes_wiz zamiast osv.osv_memory zmieniłem na osv.osv i zapisuję do utworzonej tabeli. Mogę w ten sposób zobaczyć czy i co teoretycznie powinno być wyświetlone :)

Dr.One
na 25.02.2016, 14:31

Czy nie prościej jest skorzystać ze standardowych metod dedykowany do wyświetlania komunikatów np. Warning lub ValidationError? Po drugie nie wiadomo w jakich okolicznościach/kontekscie usiłujesz je wywołać, w tym może tkwić problem.

Dariusz Żbikowski
na 26.02.2016, 12:19

Tak Darku, próbowałem 'Warning' itp ale problem polega na tym, że warning zatrzymuje operacje i po wyświetleniu komunikatu w zasadzie nic więcej się nie dzieje. Jeśli np robie obliczenia (stan produktu, chce wyświetlić ostrzeżenia na ekranie - wszystko podczas operacji stock_move/action_done) i w tym monecie dodam warunkowo wyświetlany komunikat wszysto się zatrzymuje, stock pozostaje nietknięty, move zatrzymany. Próbowałem wymusić kontunuowanie akcji ale jak narazie nic z tego nie wyszło. Przykład powyżej zaczerpnąłem z innego modułu który nota'bene działa bez zająknięcia i wyświetla komunikaty. Wygląda na to, że wywołanie następuje w nieodpowiednim momencie ...... co powoduje takie własnie zachowanie. Już wcześniej o ile pamiętasz próbowałem coś podobnego zrobić i po zmianie statusu wymusić zmianę widoku. Też do tej pory nie udało mi się tego zrobić choć to akurat nie jest tak ważne jak to powyżej.

Dr.One
na 26.02.2016, 15:37

Jest jeszcze coś takiego jak RedirectWarning

Dariusz Żbikowski
na 27.02.2016, 14:41

Mógł byś rozwinąć proszę?

Dr.One
na 28.02.2016, 16:48

Wystarczy poszukać przykładów w kodzie i zerknąć do dokumentacji. Jak sama nazwa wskazuje, dokonuje przekierowania do wybranej akcji po wyświetleniu komunikatu. Przykład użycia: raise openerp.exceptions.RedirectWarning(msg, action_id, _('Go to the configuration panel'))

Dariusz Żbikowski
na 28.02.2016, 17:42

Twoja odpowiedź

Spróbuj dać znacząca odpowiedź. Jeśli chcesz wypowiedzieć się na temat pytania lub odpowiedzi, po prostu użyj narzędzia komentowania. Proszę pamiętać, że zawsze można zrewidować swoją odpowiedź - nie ma potrzeby odpowiadać na to samo pytanie dwa razy. Także prosimy, nie zapomnij zagłosować - to naprawdę pomaga wybrać najlepsze pytania i odpowiedzi!

Zadaj Pytanie

Bądź na bieżąco

O tym forum

Forum dla profesjonalistów i entuzjastów systemu Odoo. Dyskusje, porady, opinie, komentarze.

Przeczytaj wytyczne

Narzędzia do pytań

4 obserwujący

Statystyki

Spytał/a: 08.02.2016, 15:34
Oglądano: 438 razy
Ostatnia aktualizacja: 28.02.2016, 17:42