From 30d855876396036df78a54b185f52725bca42e83 Mon Sep 17 00:00:00 2001 From: Benjamin <Benjamin@MBP-de-Benj.(none)> Date: Tue, 30 May 2017 18:14:58 +0200 Subject: [PATCH] =?UTF-8?q?[add]=20champs=20target=20dans=20res=5Fcompany?= =?UTF-8?q?=20pour=20d=C3=A9finition=20de=20l'objectif=20de=20chiffre=20d'?= =?UTF-8?q?affaire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/__init__.py | 1 + models/lefilament_tdb.py | 4 +++ static/src/css/lefilament_tdb.css | 4 ++- static/src/js/dashboard_year.js | 46 +++++++++++++++++++++++-------- static/src/xml/lefilament_tdb.xml | 2 +- views/views.xml | 12 ++++++++ 6 files changed, 56 insertions(+), 13 deletions(-) diff --git a/models/__init__.py b/models/__init__.py index 6b0cf99..dab0372 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -1,3 +1,4 @@ # -*- coding: utf-8 -*- import lefilament_tdb +import res_company diff --git a/models/lefilament_tdb.py b/models/lefilament_tdb.py index 80136fc..2000d61 100644 --- a/models/lefilament_tdb.py +++ b/models/lefilament_tdb.py @@ -120,6 +120,9 @@ class LeFilamentTdb(models.Model): (select sum(price_subtotal-qty_invoiced*price_unit) from sale_order_line where invoice_status='to invoice') as commandes; """) datas = cr.dictfetchall() + cr.execute("select ca_target from res_company;") + ca_target = cr.dictfetchall() + res['facture'] =+ datas[0]['facture'] res['a_encaisser'] =+ datas[0]['a_encaisser'] res['pipe'] =+ datas[0]['pipe'] @@ -128,6 +131,7 @@ class LeFilamentTdb(models.Model): res['sortie'] =+ datas[0]['sortie'] res['variation'] =+ datas[0]['variation'] res['commandes'] =+ datas[0]['commandes'] + res['target'] =+ ca_target[0]['ca_target'] return res diff --git a/static/src/css/lefilament_tdb.css b/static/src/css/lefilament_tdb.css index b3e6498..88e21c2 100644 --- a/static/src/css/lefilament_tdb.css +++ b/static/src/css/lefilament_tdb.css @@ -33,4 +33,6 @@ .card { background-color: #fff; color: #73879C; padding: 20px; margin: 10px; } .card-header { margin: 0!important; } .card-number { font-size: 30px; font-weight: 300; margin: 0!important; font-family: "Helvetica Neue", Helvetica, "Open Sans", Arial, sans-serif; } -.tresorerie .card-number { font-size: 20px; font-weight: 300; } \ No newline at end of file +.tresorerie .card-number { font-size: 20px; font-weight: 300; } + +.ca_target:hover { cursor: pointer; color: rgba(115, 135, 156,0.5); } \ No newline at end of file diff --git a/static/src/js/dashboard_year.js b/static/src/js/dashboard_year.js index 6b310c2..c76dbbf 100644 --- a/static/src/js/dashboard_year.js +++ b/static/src/js/dashboard_year.js @@ -14,6 +14,10 @@ odoo.define('lefilament_tdb.dashboard_year', function (require) { var YearDashboardView = Widget.extend({ template: 'YearDashboard', + events: { + 'click .ca_target': 'target_clicked', + }, + init: function() { var result = this._super.apply(this, arguments); return result; @@ -28,7 +32,6 @@ odoo.define('lefilament_tdb.dashboard_year', function (require) { .call('retrieve_datas_dashboard', []) .then(function(results) { self.values = results; - console.log(self.values); self.progress = results.facture / results.target; deferred.resolve(); }); @@ -48,14 +51,15 @@ odoo.define('lefilament_tdb.dashboard_year', function (require) { step: function(state, circle) { value = self.progress*100 circle.setText( - self.values.target.toLocaleString('fr', { maximumFractionDigits: 0 }) + ' € <br />' + '<span class="ca_target">'+ + self.values.target.toLocaleString('fr', { maximumFractionDigits: 0 }) + ' € </span><br />' +value.toLocaleString('fr', { maximumFractionDigits: 0 }) + ' %'); - } + }, }); bar.text.style.fontFamily = '"Raleway", Helvetica, sans-serif'; bar.text.style.fontSize = '2rem'; bar.text.style.color = '#73879C'; - this.$el.find('.progressbar-text').css('opacity',self.progress) + // this.$el.find('.progressbar-text').css('opacity',self.progress) bar.text.style.textAlign = 'center'; bar.animate(self.progress); @@ -66,13 +70,33 @@ odoo.define('lefilament_tdb.dashboard_year', function (require) { return value; }, render_monetary_color: function(value) { - if (value >= 0) - value = '<span class="positive">'+value.toLocaleString('fr', { maximumFractionDigits: 0 }) + ' €</span>'; - else - value = '<span class="negative">'+value.toLocaleString('fr', { maximumFractionDigits: 0 }) + ' €</span>'; - - return value; - }, + if (value >= 0) + value = '<span class="positive">'+value.toLocaleString('fr', { maximumFractionDigits: 0 }) + ' €</span>'; + else + value = '<span class="negative">'+value.toLocaleString('fr', { maximumFractionDigits: 0 }) + ' €</span>'; + + return value; + }, + + target_clicked: function(ev){ + var self = this; + id = this.session.uid; + + var context = { + 'user_id': self.session.uid, + } + var action = ({ + type: 'ir.actions.act_window', + res_model: 'res.company', + res_id: id, + view_type: 'form', + view_mode: 'form', + views: [[false, 'form']], + target:'current', + context: context + }) + this.do_action(action); + }, }); diff --git a/static/src/xml/lefilament_tdb.xml b/static/src/xml/lefilament_tdb.xml index cd17d16..41582b1 100644 --- a/static/src/xml/lefilament_tdb.xml +++ b/static/src/xml/lefilament_tdb.xml @@ -102,7 +102,7 @@ </div> <div class="col-xs-12"> <div class="card"> - <p class="card-header">Reste à encaisser</p> + <p class="card-header">Facturé non encaissé</p> <p class="card-number"> <t t-esc="widget.render_monetary(widget.values.a_encaisser)"></t> </p> diff --git a/views/views.xml b/views/views.xml index d86a883..be0a7b5 100644 --- a/views/views.xml +++ b/views/views.xml @@ -104,6 +104,18 @@ </form> </field> </record> + + <!-- Company Form --> + <record id="view_form_lefilament_project_form_inherited" model="ir.ui.view"> + <field name="name">res.company.form.tdb</field> + <field name="model">res.company</field> + <field name="inherit_id" ref="base.view_company_form"/> + <field name="arch" type="xml"> + <xpath expr="//field[@name='website']" position="after"> + <field name="ca_target" /> + </xpath> + </field> + </record> <!-- <record id="lefilament_dashboard_data" model="ir.ui.view"> <field name="name">Le Filament Dashboard Data</field> -- GitLab