Forum

Benvenuto!

Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.

0

Stato Pulsante locale o remoto

Avatar
Giuseppe Stoduto

Scusatemi. Ho un quesito un po strano. E' possibile, premendo un pulsante, sapere se questo è stato premuto in locale al server oppure da una connessione remota?

Avatar
Abbandona
5 Risposte
0
Avatar
Giuseppe Stoduto
Migliore risposta

Dopo un po di ricerche ho capito come fare.

Ipotizziamo che abbiamo un pulsante  costruito in questo modo:

<button name="start_edit" string="Edit" type="object" class="oe_highlight oe_inline" />

Questo pulsante chiama questa funzione:

 @api.multi
 def start_edit_glabels(self, data):
        return {
            'type': 'ir.actions.act_url',
            'url': '/web/print_labels?model=mio.modulo&id=%s' % (self.id),
            'target': 'self',
        }


Questa funzione chiama un controller 

from openerp.http import Controller, route, request
from openerp import http, _
class FrontPanelWeb(Controller):

    @http.route(['/web/print_labels'], type='json', auth="public")
    def download_document(self, model, id, **kw):
        url = request.httprequest.url
        # url_root = request.httprequest.url_root
        if 'localhost' not in url:
            # se non si trova in locale mi mostra un errore
            return {
                'message': _('Editing of this field is only possible on the local server.'),
                'title': _('Server Error')
            }
        ......... qui segue se si trova in locale

Il problema, purtroppo, è la gestione dell'errore che in un controller non si può fare con il tipico warning.

La soluzione l'ho trovata e descritta in un altro post

https://www.odoo-italia.org/forum/forum-1/question/warning-o-popup-in-controller-1203
Avatar
Abbandona
0
Avatar
Giuseppe Stoduto
Migliore risposta

Bene. Come avevo previsto in locale si riesce a far funzionare, avviare il programma, senza problemi. Ma in remoto, connesso da un'altra postazione lontana dal server, il programma non si avvia o meglio si avvia sul server come se fosse in locale. Quindi vorrei evitare questa cosa impedendo che il pulsante venga premuto su postazioni lontane dal server.

Qualche idea?

Grazie

Avatar
Abbandona
0
Avatar
Sergio Corato
Migliore risposta

Via js non riesci a risolvere?

Avatar
Abbandona
0
Avatar
Sergio Corato
Migliore risposta

Un po' strana si, da cosa origina questa richiesta?

Avatar
Abbandona
0
Avatar
Giuseppe Stoduto
Migliore risposta

Devo ancora studiare la fattibilità. Mi piacerebbe lanciare un programma per modificare delle etichette appoggiandomi a glabel. Penso che farlo partire dal server locale non ci siano problemi ma se mi collego da remoto ho qualche difficoltà per visualizzarlo. E' ancora tutto in fase di progetto.

Post Edit:

Quindi, magari se sono lontano vorrei far mostrare un errore con su scritto che la cosa non è possibile. O qualcosa del genere

Avatar
Abbandona