Skip to content
Extraits de code Groupes Projets
dashboard_year.js 3,05 ko
Newer Older
  • Learn to ignore specific revisions
  • Benjamin's avatar
    Benjamin a validé
    odoo.define('lefilament_tdb.dashboard_year', function (require) {
    
    	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({
    	    template: 'YearDashboard',
    
    
    Benjamin's avatar
    Benjamin a validé
    	    init: function() {
    	      var result = this._super.apply(this, arguments);
    	      return result;
    	    },
    
    	    willStart: function() {
    	        var deferred = new jQuery.Deferred();
    	        var self = this;
    	        this.values = {};
    	        this.progess = 0
    	        new Model('lefilament.dashboard')
    	            .call('retrieve_datas_dashboard', [])
                    .then(function(results) {
                        self.values = results;
                        self.progress = results.facture / results.target;
                        deferred.resolve();
                    });
    	          return jQuery.when(this._super.apply(this, arguments),deferred);
    	    },
    
    	    start: function() {
    	    	self = this;
    
    	    	ctx = this.$el.find('#progressbar')[0];
    
    	    	var bar = new ProgressBar.Circle(ctx, {
    	    		color: '#ED6A5A', //FFEA82
    	    		easing: 'easeInOut',
    	    		strokeWidth: 5,
    	    		trailWidth: 1,
    	    		step: function(state, circle) {
    				    value = self.progress*100
    				    circle.setText(
    
    				    	'<span class="ca_target">'+
    				    	self.values.target.toLocaleString('fr', { maximumFractionDigits: 0 }) + ' € </span><br />'
    
    Benjamin's avatar
    Benjamin a validé
    				    	+value.toLocaleString('fr', { maximumFractionDigits: 0 }) + ' %');
    
    Benjamin's avatar
    Benjamin a validé
    	    	});
    			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)
    
    Benjamin's avatar
    Benjamin a validé
    			bar.text.style.textAlign = 'center';
    			bar.animate(self.progress);
    
    	    },
    
    	    render_monetary: function(value) {
    	        value = value.toLocaleString('fr', { maximumFractionDigits: 0 }) + '';
    	        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;
    	    },
    
    	    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);
    	    },
    
    Benjamin's avatar
    Benjamin a validé
    
    	});
    
    	core.action_registry.add('lefilament_tdb.dashboard_year', YearDashboardView);
    
    
    });