Bonjour,
J’espère que vous allez tous bien.
J’aimerai savoir comment est-ce qu’un dashboard view est censé fonctionner.
J’essaie d’utiliser en créant une classe de cette manière :
class Dashboard_General(ModelSQL, ModelView):
"Dashboard General Pour l'app"
__name__="general.dashboard"
# Date : Éléments général de la recherche
date_debut = fields.Date("Date de Début", required=True)
date_fin = fields.Date("Date de Fin", required=True)
# Elément 1 : Etat / Classement Ventes Totale par Assurance
vente_assurance = fields.Boolean("Ventes Par Assurances", help="Cocher si vous voulez faire une actualisation des ventes par assurance")
assurance_name = fields.Function(fields.Char("Assurance"), "get_classement_assurance_vente")
total_vente = fields.Function(fields.Float("Total des ventes."), "get_classement_assurance_vente")
def default_date_debut():
return date.today()
def default_date_fin():
return date.today()
def get_classement_assurance_vente(self):
if self.vente_assurance == True :
list_of_save_elements = []
listes_factures = []
Ventes_Assurance = Pool().get("ventes.assurances")
Ventes_ass = Ventes_Assurance.search([])
Ventes_Assurance.delete(Ventes_ass)
Invoices = Pool().get("account.invoice")
Factures = Invoices.search([('invoice_date', '>=', self.date_debut), ('invoice_date', '<=', self.date_fin), ('state', 'in', ['paid', 'posted'])])
for Facture in Factures:
if Facture.number not in listes_factures:
listes_factures.append(Facture.number)
for Facture in Factures:
if Facture.reference in listes_factures:
listes_factures.remove(Facture.reference)
listes_factures.remove(Facture.number)
dict_assurance = {}
for facture_number in listes_factures:
facture = Invoices.search([('number', '=', facture_number)], limit=1)
if not facture:
continue
assurance = facture[0].party.sale_price_list
if assurance.name in dict_assurance:
dict_assurance[assurance.id]['total_vente'] += facture[0].montant_assurance
else:
dict_assurance[assurance.id] = {
'assurance_name': assurance.name, # nom réel du champ Many2One
'total_vente': facture[0].montant_assurance
}
return dict_assurance
Que j’utilise dans la vue déclarative comme ceci :
<record model="ir.ui.view" id="dashboard_ventes_assurance_view_list2">
<field name="model">general.dashboard</field>
<field name="type">board</field>
<field name="name">dashboard_ventes</field>
</record>
<record model="ir.action.act_window" id="act_dashboard_syntheses_assurances_form2">
<field name="name">Dashboard General</field>
<field name="res_model">general.dashboard</field>
</record>
<record model="ir.action.act_window.view" id="act_dashboard_syntheses_assurances_form_view12">
<field name="sequence" eval="10"/>
<field name="view" ref="dashboard_ventes_assurance_view_list2"/>
<field name="act_window" ref="act_dashboard_syntheses_assurances_form2"/>
</record>
<menuitem
parent="menu_rapport"
action="act_dashboard_syntheses_assurances_form2"
sequence="10"
id="menu_act_dashboard_syntheses_assurances_form"/>
A l’intérieur de ma vue dashboard_ventes
donc j’ai ceci.
<?xml version="1.0"?>
<board>
<action name="act_dashboard_syntheses_assurances_form2">
<label name="date_debut"/>
<label name="date_fin"/>
<separator string="Paramètres Additionnels."
colspan="4" id="parametres.additionnels"/>
<label name="vente_assurance"/>
<notebook colspan="6">
<label name="assurance_name"/>
<label name="total_vente"/>
</notebook>
</board>
QUi est particulièrement inexact à cause des propriétés Separator, notebook.
Mais Lorsque j’enlève plus rien ne se passe.
Je veux comprendre comment afficher les éléments de ma classe si j’ai bien compris le dashboard me permettra de le faire.
Besoin d’aide s’il vous plait