Skip to content
Snippets Groups Projects
Commit 537b3fc9 authored by Benjamin - Le Filament's avatar Benjamin - Le Filament
Browse files

[add] cashpad upload and debug from dashboard

parent a2694853
No related branches found
No related tags found
No related merge requests found
......@@ -6,7 +6,7 @@
"version": "16.0.1.0.0",
"development_status": "Beta",
"license": "AGPL-3",
"depends": ["hall", "hall_flow", "hall_sale"],
"depends": ["hall", "hall_flow", "hall_sale", "hall_sale_cashpad"],
"data": [
"security/dashboard_security.xml",
"security/ir.model.access.csv",
......
......@@ -5,7 +5,7 @@ from datetime import date
from dateutil.relativedelta import relativedelta
from odoo import fields, models
from odoo import api, fields, models
class HallContract(models.Model):
......@@ -39,6 +39,10 @@ class HallContract(models.Model):
}
return action
@api.model
def update_cashpad_values(self):
self.search([("cashpad_id", "!=", False)]).get_sales()
# ------------------------------------------------------
# Common functions
# ------------------------------------------------------
......@@ -55,11 +59,23 @@ class HallContract(models.Model):
return False
def get_overview(self):
job_ids = (
self.env["queue.job"]
.sudo()
.search(
[
("model_name", "=", "hall.contract"),
("method_name", "=", "_import_sales"),
("state", "in", ["pending", "enqueued", "started", "failed"]),
]
)
)
return {
"contract_ids": self,
"hall_ids": self.mapped("hall_id"),
"company_id": self.env.company,
"sales": self.get_overview_sales(),
"job_ids": job_ids,
}
def get_overview_sales(self):
......
......@@ -4,9 +4,32 @@ odoo.define("festa_dashboard.contract_overview", function (require) {
const qweb = require("web.qweb");
const viewRegistry = require("web.view_registry");
const Controller = qweb.Controller.extend({
events: _.extend({}, qweb.Controller.prototype.events, {
"click #update_cashpad_values": "_onClickUpdateCashpad",
"click #update_view": "_onClickUpdateView",
}),
async _onClickUpdateCashpad() {
self = this;
await this._rpc({
model: "hall.contract",
method: "update_cashpad_values",
}).then(function () {
self.reload();
});
},
_onClickUpdateView() {
this.reload();
},
});
const ContractOverview = qweb.View.extend({
withSearchBar: true,
searchMenuTypes: ["filter", "favorite"],
config: _.extend({}, qweb.View.prototype.config, {
Controller: Controller,
}),
});
viewRegistry.add("contract_overview", ContractOverview);
......
......@@ -6,10 +6,70 @@
<field name="model">hall.contract</field>
<field name="arch" type="xml">
<qweb js_class="contract_overview">
<nav class="o_qweb_cp_buttons">
<button type="object" class="btn" id="update_view">
<i class="fa fa-refresh" />
</button>
<button
type="object"
class="btn btn-outline-primary"
id="update_cashpad_values"
groups="base.group_no_one,hall.group_hall_manager"
>
Mettre à jour les données Cashpad
</button>
</nav>
<div class="o_form_view o_form_readonly o_project_plan">
<div class="o_form_sheet_bg">
<div class="o_form_sheet position-relative">
<t t-set="values" t-value="records.get_overview()" />
<t t-set="job_ids" t-value="values['job_ids']" />
<div
class="row"
groups="base.group_no_one,hall.group_hall_manager"
>
<div class="col-12">
<div
class="alert alert-warning"
role="alert"
t-if="job_ids"
>
<h3 class="text-uppercase fw-bolder mb-4">
Archives en cours de traitement :
</h3>
<table class="table table-sm text-center">
<tr>
<td>en attente</td>
<td>dans la file</td>
<td>en cours</td>
<td>en échec</td>
</tr>
<tr>
<td><t
t-out="len(job_ids.filtered(lambda j: j.state == 'pending'))"
/></td>
<td><t
t-out="len(job_ids.filtered(lambda j: j.state == 'enqueued'))"
/></td>
<td><t
t-out="len(job_ids.filtered(lambda j: j.state == 'started'))"
/></td>
<td><t
t-out="len(job_ids.filtered(lambda j: j.state == 'failed'))"
/></td>
</tr>
</table>
</div>
<div
class="alert alert-success"
role="alert"
t-if="not job_ids"
>
Aucune archive en cours de traitement ou en échec
</div>
</div>
</div>
<div class="row">
<!-- Global Values -->
<div class="col-12">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment