如何在odoo中使用barchart小部件?我必须使用什么类型的功能领域?

时间:2015-06-12 06:02:23

标签: widget openerp odoo

我想在表单视图上显示条形图,我必须使用哪种类型的功能字段?功能领域的回归是什么?提前谢谢..

1 个答案:

答案 0 :(得分:0)

我们需要通过以下方式完成条形图小工具:

字段计算功能:

def _get_daily_statistics(self, cr, uid, ids, field_name, arg, context=None):
    """ Get the daily statistics of the mass mailing. This is done by a grouping
    on opened and replied fields. Using custom format in context, we obtain
    results for the next 6 days following the mass mailing date. """
    obj = self.pool['mail.mail.statistics']
    res = {}
    for mailing in self.browse(cr, uid, ids, context=context):
        res[mailing.id] = {}
        date = mailing.sent_date if mailing.sent_date else mailing.create_date
        date_begin = datetime.strptime(date, tools.DEFAULT_SERVER_DATETIME_FORMAT)
        date_end = date_begin + relativedelta.relativedelta(days=self._period_number - 1)
        date_begin_str = date_begin.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)
        date_end_str = date_end.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)
        domain = [('mass_mailing_id', '=', mailing.id), ('opened', '>=', date_begin_str), ('opened', '<=', date_end_str)]
        res[mailing.id]['opened_daily'] = json.dumps(self.__get_bar_values(cr, uid, obj, domain, ['opened'], 'opened_count', 'opened:day', date_begin, context=context))
        domain = [('mass_mailing_id', '=', mailing.id), ('replied', '>=', date_begin_str), ('replied', '<=', date_end_str)]
        res[mailing.id]['replied_daily'] = json.dumps(self.__get_bar_values(cr, uid, obj, domain, ['replied'], 'replied_count', 'replied:day', date_begin, context=context))
    return res

从我这边添加为功能字段的字段。

    'opened_daily': fields.function(
        _get_daily_statistics, string='Opened',
        type='char', multi='_get_daily_statistics',
    ),

字段,作为XML视图侧的功能字段

<field name="opened_daily" string="Opened Daily" widget="barchart"/>

Odoo中提供了不同的不同小部件我只是向您展示 barchar小部件

我希望这对你有用..:)