price_hist.py 2.25 KB
import logging
from datetime import datetime, timedelta

import pytz
from odoo import models, api, fields, _

# from odoo.addons.base.models.ir_sequence import (_create_sequence, _drop_sequences, _alter_sequence, _select_nextval,
#                                                  _update_nogap)
# from odoo.tools import sql
from odoo.exceptions import UserError
from psycopg2 import sql
from xml.etree import ElementTree

_logger = logging.getLogger(__name__)


class TandurPriceHist(models.Model):
    _name = 'tandur.price.hist'
    _description = 'History of Price'
    _order = "product_id"

    @api.depends('year', 'month')
    def _compute_period(self):
        for record in self:
            self.period = "{}-{}".format(str(int(record.year)),
                                         str(int(record.month)).zfill(2))

    year = fields.Float(string='Year', group_operator=False)
    month = fields.Float(string='Month', group_operator=False)
    period = fields.Char(compute='_compute_period', store=True,
                         index=True)
    product_id = fields.Many2one('product.product', 'Product',
                                 required=True)
    price = fields.Float(string='Price', group_operator="avg")
    @api.model
    def fields_view_get(self, view_id=None, view_type='form', toolbar=False,
                        submenu=False):
        return super().fields_view_get(view_id=view_id, view_type=view_type,
                                       toolbar=toolbar, submenu=submenu)
        # root = ElementTree.fromstring(res['arch'])
        # _logger.debug(dir(self.env.user))
        # _logger.debug(read_group())
        # if self.env.user.has_group('tandur.group_tandur_admin'):
        #     root.set('edit', 'true')
        #     root.set('create', 'true')
        # else:
        #     root.set('edit', 'false')
        #     root.set('create', 'false')
        #
        # res['arch'] = ElementTree.tostring(root)
        #
        # return res

    def name_get(self):
        result = []
        for record in self:
            result.append(
                (record.id, "{}-{}".format(str(int(record.year)),
                                           str(int(record.month)).zfill(2))))
        return result