diff options
| author | rch <rch@rch-desktop> | 2010-11-17 17:27:05 +0530 |
|---|---|---|
| committer | rch <rch@rch-desktop> | 2010-11-17 17:27:05 +0530 |
| commit | 148d430de8ff714d85a4c9f55c021f7b43f0efd2 (patch) | |
| tree | 51416d7287ef0f73787652f68795c158145d2dd5 | |
| parent | ea37429116f3f41c6f7702c190c36334cdded771 (diff) | |
[IMP]: Administration Dashboard.
bzr revid: rch@rch-desktop-20101117115705-gmvjeqzs8szqbt9g
| -rw-r--r-- | addons/board/board.py | 48 | ||||
| -rw-r--r-- | addons/board/board_administration_view.xml | 193 |
2 files changed, 137 insertions, 104 deletions
diff --git a/addons/board/board.py b/addons/board/board.py index 9cc660181ab..9677c8aaa17 100644 --- a/addons/board/board.py +++ b/addons/board/board.py @@ -21,6 +21,7 @@ from osv import fields, osv import time +import tools class board_board(osv.osv): """ @@ -223,12 +224,45 @@ class board_note(osv.osv): board_note() -class temp_log(osv.osv_memory): - _inherit = 'res.log' - _description = 'Temporary Log' - _columns = {'count': fields.integer("Count")} - _defaults = {'count': lambda *a: True} - -temp_log() +class res_log_report(osv.osv): + """ Log Report """ + _name = "res.log.report" + _auto = False + _description = "Log Report" + _columns = { + 'name': fields.char('Year', size=64, required=False, readonly=True), + 'month':fields.selection([('01', 'January'), ('02', 'February'), \ + ('03', 'March'), ('04', 'April'),\ + ('05', 'May'), ('06', 'June'), \ + ('07', 'July'), ('08', 'August'),\ + ('09', 'September'), ('10', 'October'),\ + ('11', 'November'), ('12', 'December')], 'Month', readonly=True), + 'day': fields.char('Day', size=128, readonly=True), + 'creation_date': fields.date('Creation Date', readonly=True), + 'res_model': fields.char('Object', size=128), + 'nbr': fields.integer('# of Entries', readonly=True) + } + + def init(self, cr): + """ + Log Report + @param cr: the current row, from the database cursor + """ + tools.drop_view_if_exists(cr,'res_log_report') + cr.execute(""" + CREATE OR REPLACE VIEW res_log_report AS ( + SELECT + l.id as id, + 1 as nbr, + to_char(l.create_date, 'YYYY') as name, + to_char(l.create_date, 'MM') as month, + to_char(l.create_date, 'YYYY-MM-DD') as day, + to_char(l.create_date, 'YYYY-MM-DD') as creation_date, + l.res_model as res_model, + date_trunc('day',l.create_date) as create_date + FROM + res_log l + )""") +res_log_report() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/board/board_administration_view.xml b/addons/board/board_administration_view.xml index 9c30e02ca9c..154669309d6 100644 --- a/addons/board/board_administration_view.xml +++ b/addons/board/board_administration_view.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> <data> + <!-- User Connection --> <record model="ir.ui.view" id="view_user_connection_tree"> <field name="name">user.connection.tree</field> @@ -28,133 +29,131 @@ <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <record id="board_administration_form" model="ir.ui.view"> - <field name="name">board.administration.form</field> - <field name="model">board.board</field> - <field name="type">form</field> + + <!-- Log report search view --> + <record id="view_res_log_report_filter" model="ir.ui.view"> + <field name="name">res.log.report.select</field> + <field name="model">res.log.report</field> + <field name="type">search</field> <field name="arch" type="xml"> - <form string="Administration Dashboard"> - <hpaned position="100"> - <child1> - <action name="%(action_latest_activities_tree)d" string="Latest Activities" sequence="1"/> - <action width="510" name="%(action_user_connection_tree)d" string="Latest Connections" /> - </child1> - </hpaned> - </form> + <search string="Log Analysis"> + <group col="20" colspan="8"> + <filter string="Last 30 Days" icon="terp-go-month" name="thismonth" + domain="[('create_date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"/> + <filter icon="terp-go-week" string="7 Days" separator="1" name="thisweek" + domain="[('create_date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"/> + </group> + <newline/> + <group expand="0" string="Extended Filters..." groups="base.group_extended"> + <field name="creation_date"/> + </group> + <newline/> + <group expand="1" string="Group By..."> + <filter string="Model" icon="terp-go-home" context="{'group_by':'res_model'}" /> + <separator orientation="vertical"/> + <filter string="Day" icon="terp-go-today" + domain="[]" context="{'group_by':'day'}"/> + <filter string="Month" icon="terp-go-month" + domain="[]" context="{'group_by':'month'}" /> + <filter string="Year" icon="terp-go-year" + domain="[]" context="{'group_by':'name'}" /> + </group> + </search> </field> </record> - <record id="open_board_administration_form" model="ir.actions.act_window"> - <field name="name">Administration Dashboard</field> - <field name="res_model">board.board</field> - <field name="view_type">form</field> - <field name="view_mode">form</field> - <field name="view_id" ref="board_administration_form"/> - </record> - <menuitem id="base.menu_reporting" name="Reporting" parent="base.menu_administration" sequence="11" - groups="base.group_extended"/> - <menuitem id="board.admin_menu_dasboard" name="Dashboard" sequence="0" parent="base.menu_reporting"/> - <menuitem id="menu_board_admin" action="open_board_administration_form" icon="terp-graph" parent="board.admin_menu_dasboard" /> - <!-- Monthly Activity per Document --> - <record id="board_res_log_graph" model="ir.ui.view"> - <field name="name">board.res.log.graph</field> - <field name="model">res.log</field> + <!-- Log report Tree view --> + <record id="view_res_log_report_tree" model="ir.ui.view"> + <field name="name">res.log.report.tree</field> + <field name="model">res.log.report</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Log Analysis"> + <field name="name" /> + <field name="month" /> + <field name="day" /> + <field name="res_model" /> + <field name="nbr" /> + <field name="creation_date" /> + </tree> + </field> + </record> + + <!-- Monthly Activity per Document --> + <record id="board_res_log_report_graph" model="ir.ui.view"> + <field name="name">board.res.log.report.graph</field> + <field name="model">res.log.report</field> <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Monthly Activity per Document" type="bar"> <field name="res_model"/> - <field name="count"/> + <field name="nbr" operator="+"/> </graph> </field> </record> - <record id="board_res_log_tree" model="ir.ui.view"> - <field name="name">board.res.log.tree</field> - <field name="model">res.log</field> - <field name="type">tree</field> - <field name="arch" type="xml"> - <tree string="Monthly Activity per Document"> - <field name="res_model"/> - <field name="create_date"/> - </tree> - </field> - </record> - <record id="board_res_log_action" model="ir.actions.act_window"> + <record id="board_monthly_res_log_report_action" model="ir.actions.act_window"> <field name="name">Monthly Activity per Document</field> - <field name="res_model">res.log</field> + <field name="res_model">res.log.report</field> <field name="view_type">form</field> <field name="view_mode">graph,tree</field> - <field name="view_id" ref="board_res_log_graph"></field> + <field name="context">{'group_by':['res_model'],'group_by_no_leaf':1}</field> + <field name="view_id" ref="board_res_log_report_graph"></field> </record> - <record id="board_open_res_log_tree" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="board_res_log_tree"/> - <field name="act_window_id" ref="board_res_log_action"/> - </record> - <record id="board_open_res_log_graph" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="board_res_log_graph"/> - <field name="act_window_id" ref="board_res_log_action"/> - </record> - - <!-- Weekly Global Activity --> - <record id="board_weekly_res_log_graph" model="ir.ui.view"> - <field name="name">board.weekly.res.log.graph</field> - <field name="model">res.log</field> + + <!-- Weekly Global Activity --> + <record id="board_weekly_res_log_report_graph" model="ir.ui.view"> + <field name="name">board.weekly.res.log.report.graph</field> + <field name="model">res.log.report</field> <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Weekly Global Activity" type="bar"> - <field name="create_date"/> - <field name="count"/> + <field name="day"/> + <field name="nbr" operator="+"/> </graph> </field> </record> - <record id="board_weekly_res_log_tree" model="ir.ui.view"> - <field name="name">board.weekly.res.log.tree</field> - <field name="model">res.log</field> - <field name="type">tree</field> - <field name="arch" type="xml"> - <tree string="Weekly Global Activity"> - <field name="res_model"/> - <field name="create_date"/> - </tree> - </field> - </record> - <record id="board_weekly_res_log_action" model="ir.actions.act_window"> + <record id="board_weekly_res_log_report_action" model="ir.actions.act_window"> <field name="name">Weekly Global Activity</field> - <field name="res_model">res.log</field> + <field name="res_model">res.log.report</field> <field name="view_type">form</field> <field name="view_mode">graph,tree</field> - <field name="view_id" ref="board_weekly_res_log_graph"></field> + <field name="context">{'group_by':['day'],'group_by_no_leaf':1}</field> + <field name="view_id" ref="board_weekly_res_log_report_graph"></field> </record> - <record id="board_open_weekly_res_log_tree" model="ir.actions.act_window.view"> - <field eval="2" name="sequence"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="board_weekly_res_log_tree"/> - <field name="act_window_id" ref="board_weekly_res_log_action"/> - </record> - <record id="board_open_weekly_res_log_graph" model="ir.actions.act_window.view"> - <field eval="1" name="sequence"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="board_weekly_res_log_graph"/> - <field name="act_window_id" ref="board_weekly_res_log_action"/> - </record> - - <record id="board_admin_graphs_form" model="ir.ui.view"> - <field name="name">board.admin.graphs.form</field> + + <record id="board_administration_form" model="ir.ui.view"> + <field name="name">board.administration.form</field> <field name="model">board.board</field> <field name="type">form</field> - <field name="inherit_id" ref="board_administration_form"/> <field name="arch" type="xml"> - <xpath expr="/form/hpaned/child1" position="after"> - <child2> - <action name="%(board_res_log_action)d" string="Monthly Activity per Document"/> - <action name="%(board_weekly_res_log_action)d" string="Weekly Global Activity"/> - </child2> - </xpath> + <form string="Administration Dashboard"> + <hpaned position="100"> + <child1> + <action name="%(action_latest_activities_tree)d" string="Latest Activities" sequence="1"/> + <action width="510" name="%(action_user_connection_tree)d" string="Latest Connections" /> + </child1> + <child2> + <action name="%(board_monthly_res_log_report_action)d" string="Monthly Activity per Document"/> + <action name="%(board_weekly_res_log_report_action)d" string="Weekly Global Activity" /> + </child2> + </hpaned> + </form> </field> </record> + + <record id="open_board_administration_form" model="ir.actions.act_window"> + <field name="name">Administration Dashboard</field> + <field name="res_model">board.board</field> + <field name="view_type">form</field> + <field name="view_mode">form</field> + <field name="view_id" ref="board_administration_form"/> + </record> + + <menuitem id="base.menu_reporting" name="Reporting" parent="base.menu_administration" sequence="11" + groups="base.group_extended"/> + <menuitem id="board.admin_menu_dasboard" name="Dashboard" sequence="0" parent="base.menu_reporting"/> + <menuitem id="menu_board_admin" action="open_board_administration_form" icon="terp-graph" parent="board.admin_menu_dasboard" /> + </data> </openerp> |
