report_view.py : -
import tools
from osv import fields,osv
class report_lib_register(osv.osv):
_name = "report.resource.register" # View Name
_description = "Report Registration Statistics" # Short Description
_auto = False # If false then does not create a table but create a view
_columns = { # Define the columns
'state': fields.selection([('draft','Draft'),('issue','Issue'),('exception','Exception'),('pay','Pay'),('close','Close'),('cancel','Cancel')],"State"),
'regisertid': fields.one2many('lib.sub.resource', 'id', select=True),
'eid': fields.many2one("hr.employee" , "Employee Id" , select=True),
'panelty': fields.boolean("Panalty paid/unpaid"),
'issue_date': fields.datetime("Issue Date"),
'return_date': fields.datetime("Return Date"),
'id': fields.datetime("Resource Id"),
}
def init(self, cr): # Required this method when _auto = False
tools.drop_view_if_exists(cr, 'report_resource_register') # Drop the view if exist
# Select query of view
cr.execute("""
create or replace view report_resource_register as (
SELECT lib_sub_resource.id as id,
lib_register.resource_id as regisertid,
lib_register.state as state,
lib_register.return_date as return_date,
lib_register.employee_id as eid,
lib_register.issue_date as issue_date,
lib_register.is_paid_panelty as panelty
FROM
lib_register, lib_sub_resource
WHERE
lib_register.sub_res_id = lib_sub_resource.id
)
""")
report_lib_register()
report_view.xml : -
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Form View of Report Resource Register -->
<record id="view_report_lib_register_tree" model="ir.ui.view">
<field name="name">report.library.tree</field>
<field name="model">report.resource.register</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Library Resource Register Analysis">
<field name="regisertid" string="Resource ID"/>
<field name="state"/>
<field name="eid"/>
<field name="panelty"/>
<field name="issue_date"/>
<field name="return_date"/>
</tree>
</field>
</record>
<!-- Search View of Report Resource Register -->
<record id="view_report_lib_register_search" model="ir.ui.view">
<field name="name">report.lib_register.search</field>
<field name="model">report.resource.register</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Library Resource Registe Analysis">
<group>
<!-- Search Parameters -->
<filter icon="terp-camera_test"
string="Draft"
domain="[('state','=',('draft'))]"/>
<filter icon="terp-camera_test"
string="Issued"
domain="[('state','=',('issue'))]"/>
<filter icon="terp-camera_test"
string="Exception"
domain="[('state','=',('exception'))]"/>
<filter icon="terp-gtk-stop"
string="Close"
domain="[('state','=',('close'))]"/>
<separator orientation="vertical"/>
</group>
<newline/>
<group expand="1" string="Group By...">
<filter string="State" icon="terp-stock_effects-object-colorize" name="State" context="{'group_by':'state'}"/>
</group>
</search>
</field>
</record>
<!-- Action of Report Resource Register -->
<record id="action_report_lib_register_all" model="ir.actions.act_window">
<field name="name">Resource Register Analysis</field>
<field name="res_model">report.resource.register</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_report_lib_register_search"/>
</record>
<!-- Menuitem -->
<menuitem action="action_report_lib_register_all" id="menu_report_lib_register_all" parent="menu_register" sequence="1"/>
</data>
</openerp>