update to 15 sample

This commit is contained in:
Ivan Office
2023-10-09 01:39:01 +08:00
parent 4e4e55e0c0
commit 502ad843f0
90 changed files with 1498 additions and 76 deletions

View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import model_new_report

View File

@@ -0,0 +1,77 @@
# -*- coding: utf-8 -*-
##############################################################################
# Copyright (C) 2009-TODAY odooai.cn Ltd. https://www.odooai.cn
# Author: Ivan Deng300883@qq.com
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
# See <http://www.gnu.org/licenses/>.
#
# It is forbidden to publish, distribute, sublicense, or sell copies
# of the Software or modified copies of the Software.
# Create on 2023-10-06
##############################################################################
from odoo import fields, models, tools, api
class ModelNewReport(models.Model):
# Model New Analysis
_name = 'model.new.report'
_auto = False
_description = 'Model New Analysis'
_rec_name = 'name'
# Base field
name = fields.Char(string='Name', readonly=True)
ref = fields.Char(string='Reference', readonly=True)
amount = fields.Float(string="Amount", readonly=True)
date = fields.Datetime(string="Date", readonly=True)
user_id = fields.Many2one('res.users', string='User', readonly=True)
user_login = fields.Char(string='User Login', readonly=True)
company_id = fields.Many2one('res.company', 'Company', readonly=True)
active = fields.Boolean(string="Active", readonly=True)
@api.model
def _select(self):
return '''
SELECT
m.id,
m.name,
m.ref,
m.amount,
m.date,
m.user_id,
u.login AS user_login,
m.company_id,
m.active
'''
@api.model
def _from(self):
return '''
FROM model_new AS m
'''
@api.model
def _join(self):
return '''
JOIN res_users AS u ON m.user_id = u.id
'''
@api.model
def _where(self):
return ''
def init(self):
tools.drop_view_if_exists(self._cr, self._table)
sql = '''
CREATE OR REPLACE VIEW %s AS (
%s
%s
%s
%s
)
''' % (self._table, self._select(), self._from(), self._join(), self._where())
self._cr.execute(sql)

View File

@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Graph view, 图表-->
<record id="app_model_new_report_view_graph" model="ir.ui.view">
<field name="name">app.model.new.report.graph</field>
<field name="model">model.new.report</field>
<field name="arch" type="xml">
<graph string="Model New Analysis" sample="1">
<field name="amount"/>
<field name="date" interval="month"/>
</graph>
</field>
</record>
<!-- Pivot view, 透视表-->
<record id="app_model_new_report_view_pivot" model="ir.ui.view">
<field name="name">app.model.new.report.pivot</field>
<field name="model">model.new.report</field>
<field name="arch" type="xml">
<pivot string="Model new pivot" sample="1">
<field name="name" type="col"/>
<field name="user_id" type="col"/>
<field name="date" interval="month" type="row"/>
</pivot>
</field>
</record>
<!-- Tree view, 列表-->
<record id="app_model_new_report_view_tree" model="ir.ui.view">
<field name="name">app.model.new.report.tree</field>
<field name="model">model.new.report</field>
<field name="arch" type="xml">
<tree default_order="date desc">
<field name="date"/>
<field name="name"/>
<field name="amount"/>
<field name="user_id" groups="base.group_multi_company"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record id="app_model_new_report_view_search" model="ir.ui.view">
<field name="name">app.model.new.report.search</field>
<field name="model">model.new.report</field>
<field name="arch" type="xml">
<search string="Model New Search">
<field name="name"/>
<field name="user_id"/>
<filter string="Trailing 12 months" name="completion_date" domain="[
('date', '>=', (datetime.datetime.combine(context_today() + relativedelta(days=-365), datetime.time(0,0,0)).to_utc()).strftime('%Y-%m-%d %H:%M:%S')),
('date', '>=', (datetime.datetime.combine(context_today(), datetime.time(0,0,0)).to_utc()).strftime('%Y-%m-%d %H:%M:%S'))]"/>
<separator/>
<filter name="filter_date" date="date"/>
<separator/>
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
<group expand="1" string="Group By">
<filter string="Date" name="group_by_date" context="{'group_by': 'date:month'}"/>
<separator/>
<filter string="User" name="group_by_user_id" context="{'group_by': 'user_id'}"/>
<filter string="Company" name="company" context="{'group_by': 'company_id'}" groups="base.group_multi_company"/>
</group>
</search>
</field>
</record>
<record id="action_model_new_report" model="ir.actions.act_window">
<field name="name">Model New Report</field>
<field name="res_model">model.new.report</field>
<field name="view_mode">graph,pivot,tree</field>
<field name="context">{
'pivot_column_groupby': ['user_id'],
'pivot_row_groupby': ['date:month'],
'graph_mode': 'bar',
'graph_groupbys': ['date:month', 'user_id'],
}
</field>
<field name="domain">[]</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No data yet!
</p>
<p>
Start Analysis
</p>
</field>
</record>
</odoo>