Skip to content
Extraits de code Groupes Projets
Valider 2b468e34 rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[fix] js and css errors

parent 17aad722
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# -*- coding: utf-8 -*-
# © 2020 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': "Sapoval - Tableau de Bord",
'summary': """
......
......@@ -2,7 +2,6 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields, api
from odoo import tools
from datetime import datetime
......@@ -34,13 +33,11 @@ class SapovalTdb(models.Model):
'Comm. HYDRO',
compute="dashboard_values",
store=True)
dossiers = fields.Integer(
'Nouveaux dossiers',
compute="dashboard_values",
store=True)
rdv = fields.Integer('RDV', compute="dashboard_values", store=True)
pipe_mois = fields.Float(
'Pipe',
compute="dashboard_values",
......@@ -75,7 +72,7 @@ class SapovalTdb(models.Model):
def dashboard_values(self):
for record in self:
if record.date_tdb:
date_tdb = datetime.strptime(record.date_tdb, '%Y-%m-%d')
date_tdb = record.date_tdb
############## CA ################
# CA TOTAL
......@@ -99,7 +96,7 @@ class SapovalTdb(models.Model):
""", (date_tdb, date_tdb))
ca_fix = self.env.cr.fetchone()[0]
# CA MOB
self.env.cr.execute(""""
self.env.cr.execute("""
select sum(i.amount_untaxed_signed) from account_invoice as i
left join crm_team as t on i.team_id = t.id
where i.state!='draft' and type='out_invoice'
......@@ -268,10 +265,9 @@ class SapovalTdb(models.Model):
def get_month(self):
months = ['Janv', 'Fév', 'Mars', 'Avr', 'Mai', 'Juin',
'Juil', 'Août', 'Sept', 'Oct', 'Nov', 'Dec']
date_tdb = self.date_tdb
month = int(date_tdb[5:7])
year = date_tdb[2:4]
self.name = months[month-1] + " " + year
month = self.date_tdb.month
year = self.date_tdb.year
self.name = months[month-1] + " " + str(year)
@api.model
def new_data(self):
......
......@@ -31,14 +31,14 @@
.yeardashboard { background-color: #F7F7F7; padding: 20px; min-height: 100%; }
.yeardashboard h3 { margin: 10px 15px; font-size: 20px; font-weight: 400; border-bottom: 1px solid #ddd; color: #5E6975; }
.card { background-color: #fff; color: #73879C; padding: 20px; margin: 10px 0; }
.card a { color: inherit; }
.card-half { float: left; width: 50%; }
.card-header { margin-bottom: 4px; font-size: 14px; }
.card-description { font-size: 9px; font-style: italic; }
.sapo-card { background-color: #fff; color: #73879C; padding: 10px; margin: 10px 0;}
.sapo-card a { color: inherit; }
.sapo-card-header { margin-bottom: 4px; font-size: 14px; }
.sapo-card-description { font-size: 9px; font-style: italic; }
p.card-maj { margin: 0px; font-size: 10px; font-style: italic; font-weight: 300; }
.card-number { font-size: 30px; font-weight: 300; margin: 0!important; font-family: "Helvetica Neue", Helvetica, "Open Sans", Arial, sans-serif; }
.sapo-card-number { font-size: 30px; font-weight: 300; margin: 0!important; font-family: "Helvetica Neue", Helvetica, "Open Sans", Arial, sans-serif; }
.card-tab { background-color: #fff; color: #73879C; padding: 20px; margin: 0px 0 10px; }
.card-half { float: left; width: 50%; }
.tresorerie .card-number { font-size: 20px; font-weight: 300; }
.nav-tabs > li > a { border-radius: 0; }
......
// © 2020 Le Filament (<http://www.le-filament.com>)
// License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
odoo.define('sapoval_tdb.dashboard_year', function (require) {
"use strict";
var AbstractAction = require('web.AbstractAction');
var core = require('web.core');
var formats = require('web.formats');
var Model = require('web.Model');
var session = require('web.session');
var Widget = require('web.Widget');
var QWeb = core.qweb;
var _t = core._t;
var _lt = core._lt;
var YearDashboardView = Widget.extend({
var YearDashboardView = AbstractAction.extend({
template: 'YearDashboard',
events: {
......@@ -37,9 +35,11 @@ odoo.define('sapoval_tdb.dashboard_year', function (require) {
this.annee = moment().format('YYYY');
this.mois = moment().format('MMMM');
var dash_model = new Model('sapoval.dashboard');
dash_model.call('retrieve_datas_dashboard')
.then(function(results) {
this._rpc({
model: 'sapoval.dashboard',
method: 'retrieve_datas_dashboard',
args: [],
}).then(function(results) {
self.values = results;
self.progress = results.facture / results.target;
......
// © 2020 Le Filament (<http://www.le-filament.com>)
// License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
odoo.define('sapoval_tdb.dashboard', function(require) {
"use strict";
var AbstractAction = require('web.AbstractAction');
var core = require('web.core');
var data = require('web.data');
var Widget = require('web.Widget');
var model = require('web.Model');
var form_common = require('web.form_common');
var session = require('web.session');
var formats = require('web.formats');
var _t = core._t;
var QWeb = core.qweb;
var rpc = require('web.rpc');
var SapovalDashboard = Widget.extend({
var SapovalDashboard = AbstractAction.extend({
template: 'Dashboard',
events: {
......@@ -36,13 +36,15 @@ odoo.define('sapoval_tdb.dashboard', function(require) {
var self = this;
this.request = {};
new data.Query(new model("sapoval.dashboard"), [])
.order_by("date_tdb")
.limit(12)
.all()
.then(function(results) {
self.request = results;
rpc.query({
model: 'sapoval.dashboard',
method: 'search_read',
domain: [],
limit: 12,
}).then(function(results) {
self.request = results.reverse();
deferred.resolve();
console.log(self.request);
});
return jQuery.when(this._super.apply(this, arguments),deferred);
},
......@@ -73,18 +75,24 @@ odoo.define('sapoval_tdb.dashboard', function(require) {
},
render_monetary: function(value) {
if (value) {
value = value.toLocaleString('fr', { maximumFractionDigits: 0 }) + '';
return value;
}
},
render_percent: function(value) {
if (value) {
value = value.toLocaleString('fr', { maximumFractionDigits: 1 }) + ' %';
return value;
}
},
render_decimal: function(value) {
if (value) {
value = value.toLocaleString('fr', { maximumFractionDigits: 2 });
return value;
}
},
});
......@@ -96,18 +104,13 @@ odoo.define('sapoval_tdb.dashboard', function(require) {
odoo.define('lefilament_tdb.dashboard_year', function (require) {
"use strict";
var AbstractAction = require('web.AbstractAction');
var core = require('web.core');
var formats = require('web.formats');
var Model = require('web.Model');
var session = require('web.session');
var Widget = require('web.Widget');
var QWeb = core.qweb;
var _t = core._t;
var _lt = core._lt;
var YearDashboardView = Widget.extend({
var YearDashboardView = AbstractAction.extend({
template: 'YearDashboard',
events: {
......@@ -133,9 +136,11 @@ odoo.define('lefilament_tdb.dashboard_year', function (require) {
this.values = {};
this.progess = 0;
var dash_model = new Model('sapoval.dashboard');
dash_model.call('retrieve_datas_dashboard')
.then(function(results) {
this._rpc({
model: 'sapoval.dashboard',
method: 'retrieve_datas_dashboard',
args: [],
}).then(function(results) {
self.values = results;
self.progress = results.facture / results.target;
deferred.resolve();
......
......@@ -168,56 +168,68 @@
<div class="yeardashboard">
<div class="row">
<!-- COLONNE 1 -->
<div class="col-xxs-12 col-xs-6">
<div class="col-12 col-md-6">
<h3>En Cours</h3>
<div class="col-xs-12">
<div class="card">
<div class="col-sm-12">
<div class="sapo-card">
<div class="card-half">
<p class="card-header">Facturé cette année</p>
<p class="card-description">depuis le 1er janvier <t t-esc="widget.annee" /> (avec FAE)</p>
<p class="card-number">
<p class="sapo-card-header">Facturé cette année</p>
<p class="sapo-card-description">depuis le 1er janvier <t t-esc="widget.annee" /> (avec FAE)</p>
<p class="sapo-card-number">
<t t-esc="widget.render_monetary(widget.values.facture)"></t>
</p>
</div>
<div class="card-half">
<p class="card-header">Facturé ce mois-ci</p>
<p class="card-description">depuis le 1er <t t-esc="widget.mois" /></p>
<p class="card-number">
<p class="sapo-card-header">Facturé ce mois-ci</p>
<p class="sapo-card-description">depuis le 1er <t t-esc="widget.mois" /></p>
<p class="sapo-card-number">
<t t-esc="widget.render_monetary(widget.values.facture_mois)"></t>
</p>
</div>
<div class="clearfix"></div>
</div>
</div>
<div class="col-xs-12">
<div class="card">
<p class="card-header">Commandes en cours</p>
<p class="card-description">Montant HT des commandes à facturer</p>
<p class="card-number">
<div class="col-sm-12">
<div class="sapo-card">
<p class="sapo-card-header">Commandes en cours</p>
<p class="sapo-card-description">Montant HT des commandes à facturer</p>
<p class="sapo-card-number">
<a id="commandes">
<t t-esc="widget.render_monetary(widget.values.commandes)"></t>
</a>
</p>
</div>
</div>
<div class="col-xs-12 dashboard-tab">
<div class="col-sm-12 dashboard-tab">
<ul class="nav nav-tabs" id="myTab1">
<li class="active"><a data-toggle="tab" href="#pipe">Pipe <t t-esc="widget.annee" /></a></li>
<li><a data-toggle="tab" href="#pipe_n1">Pipe N+1</a></li>
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#pipe">
Pipe <t t-esc="widget.annee" />
</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#pipe_n1">
Pipe N+1
</a>
</li>
</ul>
<div class="tab-content card-tab" id="myTab1Content">
<div id="pipe" class="tab-pane fade active in">
<div id="pipe" class="tab-pane fade show active in">
<div class="card-half">
<p class="card-header">Pipe <t t-esc="widget.annee" /></p>
<p class="card-description">pondéré jusqu'au 31 décembre <t t-esc="widget.annee" /></p>
<p class="card-number">
<p class="sapo-card-header">Pipe <t t-esc="widget.annee" /></p>
<p class="sapo-card-description">pondéré jusqu'au 31 décembre <t t-esc="widget.annee" /></p>
<p class="sapo-card-number">
<t t-esc="widget.render_monetary(widget.values.pipe)"></t>
</p>
</div>
<div class="card-half">
<p class="card-header">Opportunités</p>
<p class="card-description">total jusqu'au 31 décembre <t t-esc="widget.annee" /></p>
<p class="card-number">
<p class="sapo-card-header">Opportunités</p>
<p class="sapo-card-description">total jusqu'au 31 décembre <t t-esc="widget.annee" /></p>
<p class="sapo-card-number">
<t t-esc="widget.values.nb_opp"></t>
</p>
</div>
......@@ -225,16 +237,16 @@
</div>
<div id="pipe_n1" class="tab-pane fade">
<div class="card-half">
<p class="card-header">Pipe N+1</p>
<p class="card-description">pondéré après le 31 décembre <t t-esc="widget.annee" /></p>
<p class="card-number">
<p class="sapo-card-header">Pipe N+1</p>
<p class="sapo-card-description">pondéré après le 31 décembre <t t-esc="widget.annee" /></p>
<p class="sapo-card-number">
<t t-esc="widget.render_monetary(widget.values.pipe_n1)"></t>
</p>
</div>
<div class="card-half">
<p class="card-header">Opportunités</p>
<p class="card-description">total après le 31 décembre <t t-esc="widget.annee" /></p>
<p class="card-number">
<p class="sapo-card-header">Opportunités</p>
<p class="sapo-card-description">total après le 31 décembre <t t-esc="widget.annee" /></p>
<p class="sapo-card-number">
<t t-esc="widget.values.nb_opp_n1"></t>
</p>
</div>
......@@ -242,11 +254,12 @@
</div>
</div>
</div>
<div class="col-xs-12">
<div class="card">
<p class="card-header">Facturé non encaissé</p>
<p class="card-description">Montant TTC des factures à encaisser</p>
<p class="card-number">
<div class="col-sm-12">
<div class="sapo-card">
<p class="sapo-card-header">Facturé non encaissé</p>
<p class="sapo-card-description">Montant TTC des factures à encaisser</p>
<p class="sapo-card-number">
<a id="facture_non_encaisse">
<t t-esc="widget.render_monetary(widget.values.a_encaisser)"></t>
</a>
......@@ -255,17 +268,16 @@
</div>
</div>
<!-- COLONNE 2 -->
<div class="col-xxs-12 col-xs-6">
<div class="col-12 col-md-6">
<h3>Objectif</h3>
<div class="col-xs-12">
<div class="card">
<p class="card-header">Target</p>
<p class="card-number">
<div class="col-12">
<div class="sapo-card">
<p class="sapo-card-header">Target</p>
<p class="sapo-card-number">
<t t-esc="widget.render_monetary(widget.values.target)"></t>
</p>
<canvas id="target" width="auto" height="70"></canvas>
<div id="chart" class="chart-container"></div>
<!-- <div id="hchart" ></div> -->
<table class="table-legend">
<tr>
<td style="background-color: #8ED8A2; width: 20px;"></td>
......
......@@ -9,9 +9,9 @@
<field name="numbercall">-1</field>
<field name="doal">1</field>
<field name="nextcall" >2017-01-31 23:10:00</field>
<field name="model" eval="'sapoval.dashboard'" />
<field name="function" eval="'new_data'" />
<field name="args" eval="" />
<field name="state">code</field>
<field name="model_id" ref="model_sapoval_dashboard" />
<field name="code">model.new_data()</field>
<field name="priority" eval="5" />
</record>
</data>
......
......@@ -14,11 +14,15 @@
<record id="action_home_page" model="ir.actions.client">
<field name="name">Tableau de Bord - Sapoval</field>
<field name="tag">sapoval_tdb.dashboard</field>
<field name="binding_model_id" ref="model_sapoval_dashboard"/>
<field name="binding_type">action</field>
</record>
<record id="action_year_page" model="ir.actions.client">
<field name="name">Rapport Annuel</field>
<field name="tag">sapoval_tdb.dashboard_year</field>
<field name="binding_model_id" ref="model_sapoval_dashboard"/>
<field name="binding_type">action</field>
</record>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter