mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
update to 15 sample
This commit is contained in:
5
app_sample/report/__init__.py
Normal file
5
app_sample/report/__init__.py
Normal 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
|
||||
|
||||
77
app_sample/report/model_new_report.py
Normal file
77
app_sample/report/model_new_report.py
Normal file
@@ -0,0 +1,77 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
# Copyright (C) 2009-TODAY odooai.cn Ltd. https://www.odooai.cn
|
||||
# Author: Ivan Deng,300883@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)
|
||||
88
app_sample/report/model_new_report_views.xml
Normal file
88
app_sample/report/model_new_report_views.xml
Normal 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>
|
||||
Reference in New Issue
Block a user