Witamy!
Forum dla profesjonalistów i entuzjastów systemu Odoo. Dyskusje, porady, opinie, komentarze.
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, ')')
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 ?
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 :)
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.
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.
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'))
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!
Bądź na bieżąco
O tym forum
Narzędzia do pytań
Statystyki
Spytał/a: 08.02.2016, 15:34 |
Oglądano: 2193 razy |
Ostatnia aktualizacja: 28.02.2016, 17:42 |
if warunek is True: