How to group by based on month in odoo 11?

1.9k views Asked by At

How to group by based on month in odoo 11?

<filter string="PO Date" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'order_date'}"/>

<filter string="PO Date"  domain="[]" context="{'group_by':'order_date'}"/>

tried using both the above syntax but not working

2

There are 2 answers

0
Bhoomi Vaishnani On BEST ANSWER

You can do like this in Purchase Order Group by based on Month.

<group expand="0" string="Group By">
    <filter string="Order Date" domain="[]" context="{'group_by':'date_order'}"/>
</group>
0
Dipen Shah On

You can specifically make the groupby on the month.

Example :

<filter string="Expected Closing" context="{'group_by':'date_deadline:month'}" name="date_deadline" help="Expiration Closing Month"/>

Is it also possible for this to implemented values are 'day', 'week', 'month', 'quarter' or 'year'.

@api.model
def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True):
    """
    Get the list of records in list view grouped by the given ``groupby`` fields
    :param domain: list specifying search criteria [['field_name', 'operator', 'value'], ...]
    :param list fields: list of fields present in the list view specified on the object
    :param list groupby: list of groupby descriptions by which the records will be grouped.
            A groupby description is either a field (then it will be grouped by that field)
            or a string 'field:groupby_function'.  Right now, the only functions supported
            are 'day', 'week', 'month', 'quarter' or 'year', and they only make sense for
            date/datetime fields.
    :param int offset: optional number of records to skip
    :param int limit: optional max number of records to return
    :param list orderby: optional ``order by`` specification, for
                         overriding the natural sort ordering of the
                         groups, see also :py:meth:`~osv.osv.osv.search`
                         (supported only for many2one fields currently)
    :param bool lazy: if true, the results are only grouped by the first groupby and the
            remaining groupbys are put in the __context key.  If false, all the groupbys are
            done in one call.
    :return: list of dictionaries(one dictionary for each record) containing:
                * the values of fields grouped by the fields in ``groupby`` argument
                * __domain: list of tuples specifying the search criteria
                * __context: dictionary with argument like ``groupby``
    :rtype: [{'field_name_1': value, ...]
    :raise AccessError: * if user has no read rights on the requested object
                        * if user tries to bypass access rules for read on the requested object
    """