3. Dashboard con Chart.js en Odoo OWL Framework - readGroup

Поделиться
HTML-код
  • Опубликовано: 7 ноя 2024

Комментарии • 4

  • @kleiverperez5455
    @kleiverperez5455 9 месяцев назад +1

    muy buena serie de videos usando Odoo OWL

  • @ronaldinhofarfan7729
    @ronaldinhofarfan7729 7 месяцев назад

    pregunta de novato, que tengo que hacer para que me agrupe no por el campo state sino por otro valor que hace lo mismo pero se llama status, que deberia cambiar?

    • @joguenco
      @joguenco  7 месяцев назад +1

      Hola Ronald. Primero te recomiendo entender bien el "group by" en SQL, es decir ejecutes la consulta como tú quieres directo ha postgres. Luego probar en Odoo shell -> $ ``` odoo shell -c odoo.conf ``` . Por ejemplo: Para el state es -> ``` self.env['ir.module.module'].read_group([],[],['state']) ``` para el status supongo que sería -> ``` self.env['ir.module.module'].read_group([],[],['status']) ``` pero no estoy seguro, te lo dejo ha tí comprobrar o si hay error, lo solucionas. Saludos.

    • @ronaldinhofarfan7729
      @ronaldinhofarfan7729 7 месяцев назад

      @@joguenco mm... esta bien, pasa que pense que sin saber js podria hacer dashboards bonitos, me referia a que debia cambiar en el archivoi chart_renderer.js, | /** @odoo-module **/
      import { loadJS } from "@web/core/assets";
      const {Component, useState, onWillStart, useRef, onMounted} = owl
      export class OwlChartRendered extends Component{
      setup (){
      this.chartRef = useRef('chart')
      this.state = useState({
      title: this.props.title,
      type: this.props.type,
      data: this.props.data
      })
      onWillStart(async () => {
      await loadJS('cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.js')
      })
      onMounted(() => {
      console.log('Chart Renderer Mounted')
      console.log('Chart Renderer Data', this.state.data)
      const labels = []
      const metrics = []

      this.state.data.map((item) => {
      labels.push(item.state)
      metrics.push(item.state_count)
      })
      this.render(this.state.title, labels, metrics, this.state.type)
      })
      }
      render (title, labels, metrics,type="pie") {
      new Chart(this.chartRef.el, {
      type,
      data: {
      labels: labels,
      datasets: [{
      label: title,
      data: metrics,
      }]
      },

      });
      }
      }
      OwlChartRendered.template = 'owl.OwlChartRendered', por ejemplo quisiera ver en el dashboard los datos agrupados x el campo category_id y no por el state. Cosa que puedo ver en el dashboard todas las categorias, sin ningun domain