Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.

Module: Connector Search Engine

Entity: se.index

Compute Method: _compute_count_binding

Inputs Method Outputs
res = defaultdict(lambda: defaultdict(int))
data = self.env["se.binding"]._read_group(
            [
                ("index_id", "in", self.ids),
            ],
            ["index_id", "state"],
            aggregates=["__count"],
        )
_all = 0
for index, state, count in data:
            res[index][state] = count
            _all += count
def get(index, states):
            return sum([res[index][state] for state in states])
for record in self:
            record.count_done = get(record, ["done"])
            record.count_pending = get(
                record,
                [
                    "to_recompute",
                    "recomputing",
                    "to_export",
                    "exporting",
                    "to_delete",
                    "deleting",
                ],
            )
            record.count_error = get(record, ["invalid_data", "recompute_error"])
            record.count_all = _all
            if record.count_error:
                record.color = 1
            elif record.count_pending:
                record.color = 2
            else:
                record.color = 10

Back to entity