Skip to content
Extraits de code Groupes Projets
Valider aeb33084 rédigé par Benjamin's avatar Benjamin
Parcourir les fichiers

[modif] migration :

- changement de méthode de calcul des heures via project_id de la table account_analytic_line
- changement de méthode de calcul des coûts annexes via l'account_analytic_id sur la table hr_expense
- surcharge du widget PROGRESSBAR pour qu'il marque l'overflow sur les projets (comme dans la v9)
parent c55dd32c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -28,9 +28,9 @@ class FilamentProjet(models.Model):
@api.one
def _total_heures_passees(self):
res = 0.0
account = self.analytic_account_id.id
############## Calcul couts annexes ################
self.env.cr.execute("select sum(unit_amount) from account_analytic_line where account_id=%s;", (account, ) )
project = self.id
############## Calcul heures ################
self.env.cr.execute("select sum(unit_amount) from account_analytic_line where project_id=%s;", (project, ) )
heures_passees = self.env.cr.fetchone()[0]
if heures_passees:
self.lf_heures_passees = heures_passees
......@@ -49,8 +49,7 @@ class FilamentProjet(models.Model):
def _couts_annexes(self):
account = self.analytic_account_id.id
############## Calcul couts annexes ################
## self.env.cr.execute("select sum(amount) from account_analytic_line where amount<0 and is_timesheet=FALSE and account_id=%s;", (account, ) )
self.env.cr.execute("select sum(amount) from account_analytic_line where amount<0 and account_id=%s;", (account, ) )
self.env.cr.execute("select sum(untaxed_amount) from hr_expense where analytic_account_id=%s;", (account, ) )
couts_annexes = self.env.cr.fetchone()[0]
if couts_annexes:
self.lf_couts_annexes = couts_annexes * (-1.0)
......
// path_to_your_module/static/src/js/form_widgets.js
odoo.define('lefilament_projets.progress_bar', function (require) {
"use strict";
var core = require('web.core');
var utils = require('web.utils');
var Widget = require('web.Widget');
var ProgressBar = require('web.ProgressBar');
ProgressBar.include({
_render_value: function(v) {
var value = this.value;
var max_value = this.max_value;
if(!isNaN(v)) {
if(this.edit_max_value) {
max_value = v;
} else {
value = v;
}
}
value = value || 0;
max_value = max_value || 0;
var widthComplete;
if(value <= max_value) {
widthComplete = value/max_value * 100;
} else {
widthComplete = max_value/value * 100;
}
this.$('.o_progress').toggleClass('o_progress_overflow', value > max_value);
this.$('.o_progressbar_complete').css('width', widthComplete + '%');
if(this.readonly) {
if(max_value !== 100) {
this.$('.o_progressbar_value').html(utils.human_number(value) + " / " + utils.human_number(max_value));
} else {
this.$('.o_progressbar_value').html(utils.human_number(value) + "%");
}
} else if(isNaN(v)) {
this.$('.o_progressbar_value').val(this.edit_max_value ? max_value : value);
}
}
});
});
\ No newline at end of file
......@@ -15,3 +15,5 @@
.project-progress .o_progressbar .o_progress.o_progress_overflow {
background-color: rgb(246, 172, 162);
}
.o_kanban_view.o_kanban_dashboard.o_project_kanban .o_project_kanban_main { margin-bottom: 0; }
.o_kanban_view .o_invisible { height: 0;}
\ No newline at end of file
......@@ -7,6 +7,8 @@
<template id="assets_backend" name="project assets le filament" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/lefilament_projets/static/src/less/style.less"/>
<script type="text/javascript" src="/lefilament_projets/static/src/js/widget.js"></script>
</xpath>
</template>
......
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