[ADD] dashboard: registration and display of config overview client action handler, initial drafty
bzr revid: xmo@openerp.com-20110701115805-h3tto0t2eaz9hd8c
This commit is contained in:
@@ -126,3 +126,25 @@
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
.openerp .oe-dashboard-config-overview ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
background-color: #fafafa;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview li {
|
||||
cursor: default;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview li.ui-state-error {
|
||||
border: none;
|
||||
background-image: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.openerp .oe-dashboard-config-overview li.ui-state-error:hover {
|
||||
background-color: #fde6dd;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview li span.ui-icon {
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
@@ -273,4 +273,38 @@ openerp.base.form.DashBoardLegacy = openerp.base.form.DashBoard.extend({
|
||||
openerp.base.form.widgets.add('hpaned', 'openerp.base.form.DashBoardLegacy');
|
||||
openerp.base.form.widgets.add('vpaned', 'openerp.base.form.DashBoardLegacy');
|
||||
openerp.base.form.widgets.add('board', 'openerp.base.form.DashBoard');
|
||||
|
||||
openerp.base.client_actions.add(
|
||||
'board.config.overview', 'openerp.base_dashboard.ConfigOverview'
|
||||
);
|
||||
if (!openerp.base_dashboard) {
|
||||
openerp.base_dashboard = {};
|
||||
}
|
||||
openerp.base_dashboard.ConfigOverview = openerp.base.Controller.extend({
|
||||
start: function () {
|
||||
new openerp.base.DataSetSearch(this.session, 'ir.actions.todo')
|
||||
.read_slice(['state', 'action_id'], undefined, undefined,
|
||||
this.on_records_loaded);
|
||||
},
|
||||
on_records_loaded: function (records) {
|
||||
var done_records = _(records).filter(function (record) {
|
||||
return record.state === 'done';}),
|
||||
done_ratio = done_records.length / records.length;
|
||||
this.$element.html(QWeb.render('ConfigOverview', {
|
||||
completion: done_ratio * 100,
|
||||
todos: _(records).map(function (record) {
|
||||
return {
|
||||
action: record.action_id[0],
|
||||
name: record.action_id[1],
|
||||
state: record.state,
|
||||
done: record.state === 'done',
|
||||
skipped: record.state === 'skip',
|
||||
to_do: record.state !== 'done' && record.state !== 'skip'
|
||||
}
|
||||
})
|
||||
}));
|
||||
var $progress = this.$element.find('div.oe-config-progress');
|
||||
$progress.progressbar({value: $progress.data('completion')});
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
@@ -64,4 +64,19 @@
|
||||
</board>
|
||||
</form>
|
||||
</t>
|
||||
<div t-name="ConfigOverview" class="oe-dashboard-config-overview">
|
||||
<div class="oe-config-progress" t-att-data-completion="completion"/>
|
||||
<ul>
|
||||
|
||||
<li t-foreach="todos" t-as="todo"
|
||||
t-att-class="!todo.done ? 'ui-state-error ' + (todo.skipped ? 'ui-priority-secondary' : 'ui-priority-primary') : ''">
|
||||
<span t-if="todo.done" class="ui-icon ui-icon-circle-check"/>
|
||||
<span t-if="todo.skipped" class="ui-icon ui-icon-circle-minus"/>
|
||||
<span t-if="todo.to_do" class="ui-icon ui-icon-circle-close"/>
|
||||
<span t-att-class="!todo.done ? 'ui-state-error-text' : ''">
|
||||
<t t-esc="todo.name"/>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user