Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami
Ricordati di inserire la versioni di Odoo per cui poni la domanda

ARGOMENTO: "Pulsanti"

"Pulsanti" 3 Anni 1 Mese fa #23117

  • G.Conte
  • Avatar di G.Conte
  • Offline
  • Platinum Boarder
  • Messaggi: 344
  • Ringraziamenti ricevuti 40
  • Karma: 0


Salve a tutti, vorrei aggiungere uno di quei pulsanti(vedi allegato) in una form. Mi sono copiato dal modulo purchase la classe che crea quel pulsante(non so come si chiama effettivamente). Inoltre mi sono anche copiato nel mio modulo tutti gli import di quel file(purchase.py) . La classe che mi sono copiato è:
class product_product(osv.Model):

_name = 'product.product'
_inherit = 'product.product'

def _purchase_count(self, cr, uid, ids, field_name, arg, context=None):
Purchase = self.pool
return {
product_id: Purchase.search_count(cr,uid, [('order_line.product_id', '=', product_id)], context=context)
for product_id in ids
}
def action_view_purchases(self, cr, uid, ids, context=None):
if isinstance(ids, (int, long)):
ids = [ids]
result = self.pool._get_act_window_dict(cr, uid, 'purchase.action_purchase_line_product_tree', context=context)
result = "[('product_id','in',[" + ','.join(map(str, ids)) + "])]"
return result
_columns = {
'purchase_count': fields.function(_purchase_count, string='# Purchases', type='integer'),
}.

Qui parte dell'errore di quando provo ad avviare odoo:

File "/home/gianmarco/moduli/da_backooffice/models/__init__.py", line 26, in <module>
from . import da_backoffice
File "/home/gianmarco/moduli/da_backooffice/models/da_backoffice.py", line 732, in <module>
class product_product(osv.Model):
File "/home/gianmarco/moduli/da_backooffice/models/da_backoffice.py", line 751, in product_product
'purchase_count': fields.function(_purchase_count, string='# Purchases', type='integer'),
AttributeError: 'module' object has no attribute 'function


Non so se sono stato molto chiaro..
Dinamiche Aziendali
www.dinamicheaziendali.it
Ultima modifica: 3 Anni 1 Mese fa da G.Conte.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

"Pulsanti" 3 Anni 1 Mese fa #23120

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
I bottoni si inseriscono nella vista ... ti allego la definizione di una vista che aggiunge un pulsante
<?xml version="1.0"?>
<openerp>
    <data>

        <record id="act_crm_task" model="ir.actions.act_window">
            <field name="context">{'search_default_crm_lead_id':
                [active_id], 'default_crm_lead_id': active_id}</field>
            <field name="name">Tasks</field>
            <field name="res_model">project.task</field>
            <field name="domain">[('crm_lead_id','=',active_id)]</field>
            <field name="view_id" ref="project.view_task_tree2" />
            <field name="search_view_id" ref="project.view_task_search_form" />
        </record>

        <record id="crm_task_button_task" model="ir.ui.view">
            <field name="name">crm_task.button.task</field>
            <field name="model">crm.lead</field>
            <field name="inherit_id" ref="crm.crm_case_form_view_oppor" />
            <field name="arch" type="xml">
                <xpath expr='//div[1]' position='inside'>
                    <button class="oe_stat_button" type="action" icon="fa-tasks"
                        name="%(crm_task.act_crm_task)d"
                        string="Tasks" help="Tasks related to this lead/opportunity">
                    </button>
                </xpath>
            </field>
        </record>

    </data>
</openerp>

Con la prima parte definisci il comportamento che deve avere il pulsante quando fai click sopra ... la seconda parte definisce il pulsante stesso.

Nello specifico la vista aggiunge un pulsante alle lead per creare/visualizzare le task associate alla stessa.

Se vuoi anche inserire il numero di occorrenze (come nell'esempio degli acquisti) devi scriverti anche la funzione che le calcola.
@KTec
www.ktec.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

"Pulsanti" 3 Anni 1 Mese fa #23121

  • G.Conte
  • Avatar di G.Conte
  • Offline
  • Platinum Boarder
  • Messaggi: 344
  • Ringraziamenti ricevuti 40
  • Karma: 0
Allora io avevo fatto questo nel file .py


class product_product(osv.Model):
_name = 'product.product'
_inherit = 'product.product'

def _barcode_count(self, cr, uid, ids, field_name, arg, context=None):
Barcode = self.pool
return {
barcode_id: Barcode.search_count(cr,uid, [('order_line.product_id', '=', barcode_id)], context=context)
for barcode_id in ids
}

def action_view_barcode(self, cr, uid, ids, context=None):
if isinstance(ids, (int, long)):
ids = [ids]
result = self.pool._get_act_window_dict(cr, uid, 'ean13', context=context)
result = "[('barcode_id','in',[" + ','.join(map(str, ids)) + "])]"
return result

_columns = {
'barcode_count': fields.function(_barcode_count, string='# Barcode', type='integer'),
}


e questo nella vista

<record id="view_product_normal_barcode_buttons_from" model="ir.ui.view">
<field name="name">product.product.purchase.button.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="groups_id" eval="[(4, ref('purchase.group_purchase_user'))]"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='buttons']" position="inside">
<button class="oe_inline oe_stat_button" name="action_view_barcode" type="object"
icon="fa-shopping-cart">
<field string="Barcode" name="barcode_count" widget="statinfo"/>
</button>
</xpath>
</field>
</record>
Dinamiche Aziendali
www.dinamicheaziendali.it
Ultima modifica: 3 Anni 1 Mese fa da G.Conte.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.132 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam