diff options
| -rw-r--r-- | addons/board_hr/__init__.py | 24 | ||||
| -rw-r--r-- | addons/board_hr/__terp__.py | 42 | ||||
| -rw-r--r-- | addons/board_hr/board_hr_view.xml | 72 | ||||
| -rw-r--r-- | addons/board_project/__terp__.py | 15 | ||||
| -rw-r--r-- | addons/board_project/board_project_manager_view.xml | 36 | ||||
| -rw-r--r-- | addons/board_project/board_project_view.xml | 45 | ||||
| -rw-r--r-- | addons/board_sale/board_sale_view.xml | 29 | ||||
| -rw-r--r-- | addons/board_warehouse/__init__.py | 24 | ||||
| -rw-r--r-- | addons/board_warehouse/__terp__.py | 42 | ||||
| -rw-r--r-- | addons/board_warehouse/board_warehouse_view.xml | 42 | ||||
| -rw-r--r-- | addons/hr_expense/hr_expense_view.xml | 15 | ||||
| -rw-r--r-- | addons/hr_holidays/hr_view.xml | 15 | ||||
| -rw-r--r-- | addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml | 23 | ||||
| -rw-r--r-- | addons/project/project_view.xml | 15 | ||||
| -rw-r--r-- | addons/purchase/purchase_view.xml | 2 | ||||
| -rw-r--r-- | addons/report_task/report_task.py | 5 | ||||
| -rwxr-xr-x | addons/resource/resource_view.xml | 16 | ||||
| -rw-r--r-- | addons/stock/stock.py | 85 | ||||
| -rw-r--r-- | addons/stock/stock_view.xml | 83 |
19 files changed, 564 insertions, 66 deletions
diff --git a/addons/board_hr/__init__.py b/addons/board_hr/__init__.py new file mode 100644 index 00000000000..e68279cad8d --- /dev/null +++ b/addons/board_hr/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/board_hr/__terp__.py b/addons/board_hr/__terp__.py new file mode 100644 index 00000000000..80b00961dbe --- /dev/null +++ b/addons/board_hr/__terp__.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + + +{ + 'name': 'Board for Human Reasources Management', + 'version': '1.0', + 'category': '', + 'description': """ +This module implements a dashboard for human resource management that includes: + * My Current Timesheet + * My Leaves + * My Expenses + """, + 'author': 'Tiny', + 'depends': [ 'crm_project','board','hr_expense','hr_timesheet_sheet','hr_holidays' + ], + 'update_xml': ['board_hr_view.xml'], + 'demo_xml': [], + 'installable': True, + 'active': False, + 'certificate': '', +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/board_hr/board_hr_view.xml b/addons/board_hr/board_hr_view.xml new file mode 100644 index 00000000000..2e84eff0749 --- /dev/null +++ b/addons/board_hr/board_hr_view.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data> + <menuitem icon="terp-graph" id="base.dashboard" name="Dashboards" sequence="2" parent="base.reporting_menu"/> + <menuitem + id="menu_hr_deshboard" + name="Human Resources" + parent="base.dashboard"/> + + <record id="action_my_expense" model="ir.actions.act_window"> + <field name="name">My Expenses</field> + <field name="res_model">hr.expense.expense</field> + <field name="view_type">form</field> + <field name="domain">[('state','=','draft'),('user_id','=',uid)]</field> + <field name="view_id" ref="hr_expense.view_editable_expenses_tree"/> + </record> + + <record id="act_hr_current_timesheet_sheet_form" model="ir.actions.act_window"> + <field name="name">Timesheets</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">hr_timesheet_sheet.sheet</field> + <field name="view_type">form</field> + <field name="view_id" eval="False"/> + <field name="domain">[('date_to','>=',time.strftime('%Y-%m-01')),('date_from','<=',time.strftime('%Y-%m-01'))]</field> + <field name="search_view_id" ref="hr_timesheet_sheet.hr_timesheet_sheet_tree"/> + </record> + + <record id="action_view_holiday_status_board" model="ir.actions.act_window"> + <field name="name">My Leaves</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">hr.holidays.per.user</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="view_id" ref="hr_holidays.view_my_leave_board_tree"/> + </record> + + <record id="board_hr_form" model="ir.ui.view"> + <field name="name">board.hr.form</field> + <field name="model">board.board</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="My Board"> + <hpaned> + <child1> + <action colspan="4" height="220" name="%(act_hr_current_timesheet_sheet_form)d" string="My current timesheet" width="510"/> + </child1> + <child2> + <action colspan="4" height="220" name="%(action_view_holiday_status_board)d" string="My Leaves"/> + <action colspan="4" height="220" name="%(action_my_expense)d" string="My Expenses" /> + </child2> + </hpaned> + </form> + </field> + </record> + + <record id="open_board_hr" model="ir.actions.act_window"> + <field name="name">Human Resources Dashboard</field> + <field name="res_model">board.board</field> + <field name="view_type">form</field> + <field name="view_mode">form</field> + <field name="usage">menu</field> + <field name="view_id" ref="board_hr_form"/> + </record> + + <menuitem + action="open_board_hr" + icon="terp-graph" + id="menu_hr_project" + parent="menu_hr_deshboard" + sequence="4"/> + </data> +</openerp> diff --git a/addons/board_project/__terp__.py b/addons/board_project/__terp__.py index e32ae9a789b..558b633d36e 100644 --- a/addons/board_project/__terp__.py +++ b/addons/board_project/__terp__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution # Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). # @@ -15,7 +15,7 @@ # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## @@ -27,10 +27,9 @@ 'description': """ This module implements a dashboard for project member that includes: * List of my open tasks - * List of my next deadlines - * List of public notes - * Graph of my timesheet - * Graph of my work analysis + * List of messages + * Members list of project + * Issues """, 'author': 'Tiny', 'depends': [ @@ -40,7 +39,9 @@ This module implements a dashboard for project member that includes: 'report_analytic_planning', 'report_analytic_line', 'report_task', - 'hr_timesheet_sheet' + 'hr_timesheet_sheet', + 'crm_project', + 'resource' ], 'update_xml': ['board_project_view.xml', 'board_project_manager_view.xml'], 'demo_xml': ['board_project_demo.xml'], diff --git a/addons/board_project/board_project_manager_view.xml b/addons/board_project/board_project_manager_view.xml index a45857af033..3f805115fd4 100644 --- a/addons/board_project/board_project_manager_view.xml +++ b/addons/board_project/board_project_manager_view.xml @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> <data> - + <record id="note_project_type" model="board.note.type"> <field name="name">Project managers</field> </record> - + <!-- Board for project managers --> <act_window domain="[('manager', '=', uid)]" id="act_my_project" name="My projects" res_model="project.project" view_mode="tree,form" view_type="form"/> - + <act_window domain="[('user_id','=',uid),('state','<>','close')]" id="act_my_account" name="My accounts to invoice" res_model="account.analytic.account" view_id="view_account_analytic_simplified" view_mode="tree,form" view_type="form"/> - + <record id="action_project_pipeline_user" model="ir.actions.act_window"> <field name="name">Pipeline of tasks</field> <field name="res_model">report.task.user.pipeline.open</field> @@ -20,7 +20,7 @@ <field name="view_mode">graph,tree</field> <field name="domain">[('user_id','in',department_users_get())]</field> </record> - + <record id="hr_timesheet_sheet_tree" model="ir.ui.view"> <field name="name">hr.timesheet.sheet.tree.simplified.board</field> <field name="model">hr_timesheet_sheet.sheet</field> @@ -43,8 +43,8 @@ <field name="view_type">form</field> <field name="view_id" ref="hr_timesheet_sheet_tree"/> </record> - - + + <record id="board_project_manager_form" model="ir.ui.view"> <field name="name">board.project.manager.form</field> <field name="model">board.board</field> @@ -53,27 +53,27 @@ <form string="Project manager board"> <hpaned> <child1> - <action colspan="4" height="220" name="%(act_my_project)d" string="My projects" width="510"/> - + <!-- <action colspan="4" height="220" name="%(act_my_project)d" string="My projects" width="510"/>--> + <action colspan="4" height="150" name="%(act_my_account)d" string="My accounts to invoice"/> - + <action colspan="4" height="150" name="%(act_hr_timesheet_sheet)d" string="User's timesheets"/> - + </child1> <child2> - <button colspan="4" icon="terp-partner" name="%(open_board_project)d" string="My tasks board" type="action"/> - - + <button colspan="4" icon="terp-partner" name="%(open_board_project)d" string="My tasks board" type="action"/> + + <action colspan="4" name="%(report_analytic_planning.action_account_analytic_planning_stat_form)d" string="My Project's planning" domain="[('manager_id','=',uid),('planning_id.state','<>','cancel')]"/> - + <action colspan="4" name="%(action_project_pipeline_user)d" string="My user's pipeline"/> - + </child2> </hpaned> </form> </field> </record> - + <record id="open_board_project_manager" model="ir.actions.act_window"> <field name="name">Project Manager Dashboard</field> <field name="res_model">board.board</field> @@ -82,7 +82,7 @@ <field name="usage">menu</field> <field name="view_id" ref="board_project_manager_form"/> </record> - + <menuitem action="open_board_project_manager" icon="terp-graph" id="menu_board_project_manager" parent="board_project.next_id_86" sequence="1" groups="project.group_project_user"/> </data> diff --git a/addons/board_project/board_project_view.xml b/addons/board_project/board_project_view.xml index ebb5f6c86b7..3cadd1ed8b6 100644 --- a/addons/board_project/board_project_view.xml +++ b/addons/board_project/board_project_view.xml @@ -22,6 +22,23 @@ </tree> </field> </record> + <!-- Editable My task --> + <record id="view_task_tree" model="ir.ui.view"> + <field name="name">project.task.tree</field> + <field name="model">project.task</field> + <field name="type">tree</field> + <field eval="99" name="priority"/> + <field name="arch" type="xml"> + <tree editable="top" colors="red:date_deadline<current_date;blue:date_deadline==current_date;black:date_deadline>current_date" string="My Tasks"> + <field name="name"/> + <field name="project_id"/> + <field name="date_deadline"/> + <field name="planned_hours"/> + <field name="effective_hours"/> + <field name="priority"/> + </tree> + </field> + </record> <record id="action_view_task_tree" model="ir.actions.act_window"> <field name="name">My Open Tasks</field> <field name="res_model">project.task</field> @@ -47,6 +64,25 @@ <field name="domain">[('type','=','Project')]</field> </record> + <!--Actions for deshboard --> + + <record id="action_view_project_editable_messages_tree" model="ir.actions.act_window"> + <field name="name">Messages</field> + <field name="res_model">project.message</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="view_id" ref="project.view_project_editable_message_tree"/> + </record> + + <record id="action_view_project_member_tree" model="ir.actions.act_window"> + <field name="name">Project's Members</field> + <field name="res_model">resource.resource</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="domain">[('resource_type','=','user')]</field> + <field name="view_id" ref="resource.view_project_member_tree"/> + </record> + <record id="board_project_form" model="ir.ui.view"> <field name="name">board.project.form</field> <field name="model">board.board</field> @@ -56,12 +92,11 @@ <hpaned> <child1> <action colspan="4" height="220" name="%(action_view_task_tree)d" string="My Open Tasks" width="510"/> - <action colspan="4" height="150" name="%(action_view_task_tree_deadline)d" string="My Deadlines"/> - <action colspan="4" height="150" name="%(action_view_board_note_tree)d" string="Public Notes"/> - </child1> + <action colspan="4" height="150" name="%(action_view_project_member_tree)d" string="Members list of project"/> + </child1> <child2> - <action colspan="4" name="%(report_analytic_planning.action_account_analytic_planning_stat_form)d" string="My Planning" domain="[('user_id','=',uid),('planning_id.state','<>','cancel')]"/> - <action colspan="4" name="%(report_timesheet.action_timesheet_user_stat_all)d" string="Timesheets"/> + <action colspan="4" name="%(action_view_project_editable_messages_tree)d" string="Messages"/> + <action colspan="4" name="%(crm_project.crm_case_categ_act0)d" string="Issues"/> </child2> </hpaned> </form> diff --git a/addons/board_sale/board_sale_view.xml b/addons/board_sale/board_sale_view.xml index e5e469322c4..496f189bf89 100644 --- a/addons/board_sale/board_sale_view.xml +++ b/addons/board_sale/board_sale_view.xml @@ -5,6 +5,24 @@ <field name="name">Sales</field> </record> + <record model="ir.actions.act_window" id="board_crm_case_categ_phone_incoming0"> + <field name="res_model">crm.phonecall</field> + <field name="view_type">form</field> + <field name="view_mode">tree,calendar</field> + <field name="view_id" ref="crm.crm_case_phone_tree_view"/> + <field name="domain">[('user_id','=',uid)]</field> + <field name="context" eval="{'default_state':'open'}"/> + <field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/> + </record> + + <record model="ir.actions.act_window" id="board_crm_case_categ_meet"> + <field name="res_model">crm.meeting</field> + <field name="view_mode">tree,form,gantt</field> + <field name="view_id" ref="crm.crm_case_tree_view_meet"/> + <field name="domain">[('user_id','=',uid)]</field> + <field name="domain">[('date','>=',time.strftime('%Y-%m-%d')),('date','<=',(datetime.datetime.today() + datetime.timedelta(days=2)).strftime('%Y-%m-%d'))]</field> + <field name="context" eval="{'default_state':'open'}"/> + </record> <record id="board_sales_manager_form" model="ir.ui.view"> <field name="name">board.sales.manager.form</field> <field name="model">board.board</field> @@ -14,13 +32,16 @@ <hpaned position="100"> <child1> <action colspan="4" height="200" name="%(sale.action_order_tree5)d" string="My quotations" width="510" domain="[('state','=','draft'),('user_id','=',uid)]"/> - <action colspan="4" name="%(report_sale.action_order_sale_list)d" string="Top ten sales of the month"/> - <action colspan="4" name="%(report_crm.action_report_crm_case_user_tree)d" string="Cases statistics"/> + <action colspan="4" name="%(board_crm_case_categ_phone_incoming0)d" string="My planned calling calls (IN / OUT)" width="510"/> +<!-- <action colspan="4" name="%(report_sale.action_order_sale_list)d" string="Top ten sales of the month"/>--> +<!-- <action colspan="4" name="%(report_crm.action_report_crm_case_user_tree)d" string="Cases statistics"/>--> </child1> <child2> - <action colspan="4" name="%(report_sale.action_order_category_tree_all)d" string="Average Sales by Category of Products(this month)" view_mode="graph,tree"/> - <action colspan="4" name="%(report_crm.action_report_crm_case_user_tree)d" string="Cases of the month" view_mode="graph,tree"/> + <action colspan="4" name="%(crm.crm_case_category_act_oppor11)d" string="My Opportunities" width="510" domain="[('user_id','=',uid)]"/> + <action colspan="4" name="%(board_crm_case_categ_meet)d" String="My Meetings" domain="[('state','=','open')]" width="510"/> +<!-- <action colspan="4" name="%(report_sale.action_order_category_tree_all)d" string="Average Sales by Category of Products(this month)" view_mode="graph,tree"/>--> +<!-- <action colspan="4" name="%(report_crm.action_report_crm_case_user_tree)d" string="Cases of the month" view_mode="graph,tree"/>--> </child2> </hpaned> </form> diff --git a/addons/board_warehouse/__init__.py b/addons/board_warehouse/__init__.py new file mode 100644 index 00000000000..3c3121d954a --- /dev/null +++ b/addons/board_warehouse/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/board_warehouse/__terp__.py b/addons/board_warehouse/__terp__.py new file mode 100644 index 00000000000..b61c9432b0b --- /dev/null +++ b/addons/board_warehouse/__terp__.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + + +{ + 'name': 'Dashboard for Warehouse', + 'version': '1.0', + 'category': 'Board/Warehouse', + 'description': """ +This module implements a dashboard for warehouse that includes: + * Products to receive in delay (date < = today) + * Procurement in exception + * Graph : Number of Receive products vs planned (bar graph on week par day) + * Graph : Number of Delivery products vs planned (bar graph on week par day) + """, + 'author': 'Tiny', + 'depends': ['board','mrp','stock' ], + 'update_xml': ['board_warehouse_view.xml'], + 'demo_xml': [], + 'installable': True, + 'active': False, + +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/board_warehouse/board_warehouse_view.xml b/addons/board_warehouse/board_warehouse_view.xml new file mode 100644 index 00000000000..0ea7fb48297 --- /dev/null +++ b/addons/board_warehouse/board_warehouse_view.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data> + <record id="note_warehouse_type" model="board.note.type"> + <field name="name">Warehouse</field> + </record> + + + <record id="board_warehouse_form" model="ir.ui.view"> + <field name="name">board.warehouse.form</field> + <field name="model">board.board</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Warehouse board"> + <hpaned position="100"> + <child1> + <action colspan="4" name="%(mrp.mrp_procurement_action5)d" string="Procurement Exceptions" width="510" /> + <action colspan="4" name="%(stock.action_reception_picking_move)d" string="Products To Receive" /> + </child1> + + <child2> + <action colspan="4" name="%(stock.action_move_graph_reception_picking)d" string="Products To Receive" width="510"/> + <action colspan="4" name="%(stock.action_move_delivery_products_planned)d" string="Delivery Products Vs Planned" width="510"/> + </child2> + </hpaned> + </form> + </field> + </record> + + <record id="open_board_warehouse" model="ir.actions.act_window"> + <field name="name">Warehouse 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_warehouse_form"/> + </record> + + <menuitem icon="terp-graph" id="base.dashboard" name="Dashboards" sequence="2" parent="base.reporting_menu"/> + <menuitem id="menu_board_warehouse_main" name="Warehouse" parent="base.dashboard"/> + <menuitem action="open_board_warehouse" icon="terp-graph" id="menu_board_warehouse" parent="menu_board_warehouse_main" sequence="1"/> + </data> +</openerp>
\ No newline at end of file diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index 59452ff7cc8..580a0d371a5 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -37,6 +37,21 @@ </field> </record> + <record id="view_editable_expenses_tree" model="ir.ui.view"> + <field name="name">hr.expense.expense.tree</field> + <field name="model">hr.expense.expense</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Expenses" editable="top"> + <field name="date"/> + <field name="employee_id"/> + <field name="name"/> + <field name="ref"/> + <field name="amount"/> + <field name="state"/> + </tree> + </field> + </record> <record id="view_expenses_form" model="ir.ui.view"> <field name="name">hr.expense.form</field> diff --git a/addons/hr_holidays/hr_view.xml b/addons/hr_holidays/hr_view.xml index b8e6c2af47e..68138977d96 100644 --- a/addons/hr_holidays/hr_view.xml +++ b/addons/hr_holidays/hr_view.xml @@ -148,7 +148,20 @@ </field> </record> - + <!-- My leave dashboard --> + <record model="ir.ui.view" id="view_my_leave_board_tree"> + <field name="name">hr.holidays.per.user.form</field> + <field name="model">hr.holidays.per.user</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="My Leaves" editable="top"> + <field name="holiday_status"/> + <field name="max_leaves"/> + <field name="leaves_taken" /> + <field name="remaining_leaves"/> + </tree> + </field> + </record> <!-- <menuitem name="Holidays Management" diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml index 6e3c8c39004..79650ce2a59 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml @@ -19,6 +19,25 @@ </field> </record> + <!-- Editable current timesheet used in dashboard--> + <record id="hr_timesheet_sheet_tree" model="ir.ui.view"> + <field name="name">hr.timesheet.sheet.tree</field> + <field name="model">hr_timesheet_sheet.sheet</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Timesheets" editable="top"> + <field name="user_id"/> + <field name="date_from"/> + <field name="date_to"/> + <field name="name"/> + <field name="total_attendance" groups="hr_attendance.group_hr_attendance"/> + <field name="total_timesheet"/> + <field name="total_difference" groups="hr_attendance.group_hr_attendance"/> + <field name="state"/> + </tree> + </field> + </record> + <record id="hr_timesheet_account_form" model="ir.ui.view"> <field name="name">hr.timesheet.account.form</field> <field name="model">hr_timesheet_sheet.sheet.account</field> @@ -46,7 +65,7 @@ </tree> </field> </record> -<!-- +<!-- <record id="hr_timesheet_day_form" model="ir.ui.view"> <field name="name">hr.timesheet.day.form</field> <field name="model">hr_timesheet_sheet.sheet.day</field> @@ -61,7 +80,7 @@ </form> </field> </record> - + <record id="hr_timesheet_day_tree" model="ir.ui.view"> <field name="name">hr.timesheet.day.tree</field> <field name="model">hr_timesheet_sheet.sheet.day</field> diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 51b699b4163..51138dcdf0a 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -685,5 +685,20 @@ <act_window domain="[('user_id', '=', active_id),('date', '>=', time.strftime('%Y-%m-01'))]" id="act_res_users_2_project_task_work_month" name="Month works" res_model="project.task.work" src_model="res.users" view_mode="tree,form" view_type="form"/> + <!-- Editable list of messages --> + <record id="view_project_editable_message_tree" model="ir.ui.view"> + <field name="name">project.message.form</field> + <field name="model">project.message</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Messages" editable="top"> + <field name="subject" select="1"/> + <field name="description" select="1"/> + <field name="project_id" select="1"/> + <field name="date" select="1"/> + <field name="user_id" select="1"/> + </tree> + </field> + </record> </data> </openerp> diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index 9480f3327c3..4b6f184ebe2 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -27,7 +27,7 @@ <!--Invoice control--> <menuitem id="menu_procurement_management_invoice" name="Invoice Control" parent="menu_purchase_root" sequence="6"/> - <menuitem name="Pending Invoices" id="menu_procurement_management_panding_invoice" action="account.action_invoice_tree_panding_invoice" + <menuitem name="Pending Invoices" id="menu_procurement_management_panding_invoice" action="account.action_invoice_tree_panding_invoice" parent="menu_procurement_management_invoice"/> <!--product menu--> diff --git a/addons/report_task/report_task.py b/addons/report_task/report_task.py index dd2772b970e..2c13b570b86 100644 --- a/addons/report_task/report_task.py +++ b/addons/report_task/report_task.py @@ -91,11 +91,10 @@ class report_closed_task(osv.osv): tsk.date_deadline as date_deadline, tsk.planned_hours as planned_hours, tsk.delay_hours as delay_hours, tsk.progress as progress, tsk.priority as priority, tsk.state as state, - tsk.remaining_hours as remaining_hours, tsk.date_end as date_close + tsk.remaining_hours as remaining_hours from project_task tsk - where - (tsk.date_end <= CURRENT_DATE AND tsk.date_end > (CURRENT_DATE-15)) + ) ''') report_closed_task() diff --git a/addons/resource/resource_view.xml b/addons/resource/resource_view.xml index 7bb8358b104..5892b78fe5b 100755 --- a/addons/resource/resource_view.xml +++ b/addons/resource/resource_view.xml @@ -3,7 +3,7 @@ <data> <menuitem icon="terp-project" id="base.menu_main" name="Project Management"/> <menuitem id="base.menu_pm_resources" name="Resources" parent="base.menu_main" sequence="2"/> - + <record id="resource_calendar_form" model="ir.ui.view"> <field name="name">resource.calendar.form</field> <field name="model">resource.calendar</field> @@ -160,7 +160,19 @@ <field name="view_mode">tree,form,calendar</field> </record> - <menuitem action="action_resource_calendar_leave_tree" id="menu_resource_calendar_leave_tree" parent="base.menu_pm_resources"/> + <menuitem action="action_resource_calendar_leave_tree" id="menu_resource_calendar_leave_tree" parent="base.menu_pm_resources"/> + <!-- project member --> + <record id="view_project_member_tree" model="ir.ui.view"> + <field name="name">project.member.tree</field> + <field name="model">resource.resource</field> + <field name="type">tree</field> + <field eval="99" name="priority"/> + <field name="arch" type="xml"> + <tree string="Project's Members"> + <field name="name"/> + </tree> + </field> + </record> </data> </openerp> diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 8e8fed554fc..1e91f182568 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -474,7 +474,7 @@ class stock_picking(osv.osv): ("2binvoiced", "To Be Invoiced"), ("none", "Not from Picking")], "Invoice Status", select=True, required=True, readonly=True, states={'draft': [('readonly', False)]}), - 'company_id': fields.many2one('res.company', 'Company', required=True,select=1), + 'company_id': fields.many2one('res.company', 'Company', required=True,select=1), } _defaults = { 'name': lambda self, cr, uid, context: '/', @@ -908,12 +908,12 @@ stock_production_lot() class stock_split_production_lots(osv.osv_memory): _name = "stock.split.production.lots" _description = "Split Production Lots" - + def _quantity_default_get(self, cr, uid, object=False, field=False, context=None): cr.execute("select %s from %s where id=%s" %(field,object,context.get('active_id'))) res = cr.fetchone()[0] return res - + _columns = { 'name': fields.char('Lot Number/Prefix', size=64, required=True), 'qty': fields.float('Total Quantity'), @@ -922,13 +922,13 @@ class stock_split_production_lots(osv.osv_memory): _defaults = { 'qty': lambda self,cr,uid,c: self.pool.get('stock.split.production.lots')._quantity_default_get(cr, uid, 'stock_move', 'product_qty',context=c) or 1, } - + def split_lines(self, cr, uid, ids, context={}): data = self.read(cr, uid, ids[0]) prodlot_obj = self.pool.get('stock.production.lot') move_obj = self.pool.get('stock.move') move_browse = move_obj.browse(cr, uid, context['active_id']) - + quantity = data['qty'] if quantity <= 0 or move_browse.product_qty == 0: return {} @@ -936,12 +936,12 @@ class stock_split_production_lots(osv.osv_memory): quantity_rest = move_browse.product_qty%quantity uos_qty_rest = quantity_rest/move_browse.product_qty*move_browse.product_uos_qty - + update_val = { 'product_qty': quantity, 'product_uos_qty': uos_qty, } - + new_move = [] for idx in range(int(move_browse.product_qty//quantity)): if idx: @@ -952,7 +952,7 @@ class stock_split_production_lots(osv.osv_memory): new_prodlot = prodlot_obj.create(cr, uid, {'name': data['name'], 'ref': '%d'%idx}, {'product_id': move_browse.product_id.id}) update_val['prodlot_id'] = new_prodlot move_obj.write(cr, uid, [current_move], update_val) - + if quantity_rest > 0: idx = int(move_browse.product_qty//quantity) update_val['product_qty'] = quantity_rest @@ -965,7 +965,7 @@ class stock_split_production_lots(osv.osv_memory): new_prodlot = prodlot_obj.create(cr, uid, {'name': data['name'], 'ref': '%d'%idx}, {'product_id': move_browse.product_id.id}) update_val['prodlot_id'] = new_prodlot move_obj.write(cr, uid, [current_move], update_val) - + return {} stock_split_production_lots() @@ -1071,9 +1071,9 @@ class stock_move(osv.osv): digits=(16, int(config['price_accuracy']))), 'company_id': fields.many2one('res.company', 'Company', required=True,select=1), 'partner_id': fields.related('picking_id','address_id','partner_id',type='many2one', relation="res.partner", string="Partner"), - 'backorder_id': fields.related('picking_id','backorder_id',type='many2one', relation="stock.picking", string="Back Orders"), + 'backorder_id': fields.related('picking_id','backorder_id',type='many2one', relation="stock.picking", string="Back Orders"), 'origin': fields.related('picking_id','origin',type='char', size=64, relation="stock.picking", string="Origin"), - 'move_stock_return_history': fields.many2many('stock.move', 'stock_move_return_history', 'move_id', 'return_move_id', 'Move Return History',readonly=True), + 'move_stock_return_history': fields.many2many('stock.move', 'stock_move_return_history', 'move_id', 'return_move_id', 'Move Return History',readonly=True), } _constraints = [ (_check_tracking, @@ -1115,19 +1115,19 @@ class stock_move(osv.osv): 'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.move', context=c) } - + def copy(self, cr, uid, id, default=None, context={}): if default is None: default = {} default = default.copy() default['move_stock_return_history'] = [] return super(stock_move, self).copy(cr, uid, id, default, context) - + def create(self, cr, user, vals, context=None): if vals.get('move_stock_return_history',False): vals['move_stock_return_history'] = [] return super(stock_move, self).create(cr, user, vals, context) - + def _auto_init(self, cursor, context): res = super(stock_move, self)._auto_init(cursor, context) cursor.execute('SELECT indexname \ @@ -1444,11 +1444,11 @@ class stock_move(osv.osv): 'line_id': lines, 'ref': ref, }) - self.write(cr, uid, ids, {'state': 'done', 'date_planned': time.strftime('%Y-%m-%d %H:%M:%S')}) + self.write(cr, uid, ids, {'state': 'done', 'date_planned': time.strftime('%Y-%m-%d %H:%M:%S')}) for pick in self.pool.get('stock.picking').browse(cr, uid, picking_ids): if all(move.state == 'done' for move in pick.move_lines): self.pool.get('stock.picking').action_done(cr, uid, [pick.id]) - + wf_service = netsvc.LocalService("workflow") for id in ids: wf_service.trg_trigger(uid, 'stock.move', id, cr) @@ -1502,7 +1502,7 @@ class stock_inventory(osv.osv): 'name': 'INV:' + str(line.inventory_id.id) + ':' + line.inventory_id.name, 'product_id': line.product_id.id, 'product_uom': line.product_uom.id, - 'prodlot_id': lot_id, + 'prodlot_id': lot_id, 'date': inv.date, 'date_planned': inv.date, 'state': 'assigned' @@ -1522,7 +1522,7 @@ class stock_inventory(osv.osv): if lot_id: value.update({ 'prodlot_id': lot_id, - 'product_qty': line.product_qty + 'product_qty': line.product_qty }) move_ids.append(self.pool.get('stock.move').create(cr, uid, value)) if len(move_ids): @@ -1641,4 +1641,53 @@ class stock_picking_move_wizard(osv.osv_memory): stock_picking_move_wizard() +class report_products_to_received_planned(osv.osv): + _name = "report.products.to.received.planned" + _description = "Product to Received Vs Planned" + _auto = False + _columns = { + 'date':fields.date('Date'), + 'qty': fields.integer('Actual Qty'), + 'planned_qty': fields.integer('Planned Qty'), + + } + + def init(self, cr): + tools.drop_view_if_exists(cr, 'report_products_to_received_planned') + cr.execute(""" + create or replace view report_products_to_received_planned as ( + select + distinct current_date as date, + min(id) as id, + (select sum(product_qty) from stock_move where to_char(date,'YYYY-MM-DD')::date = current_date ) as qty, + (select sum(product_qty) from stock_move where to_char(date_planned,'YYYY-MM-DD')::date = current_date) as planned_qty + from stock_move + ) + """) +report_products_to_received_planned() + +class report_delivery_products_planned(osv.osv): + _name = "report.delivery.products.planned" + _description = "Number of Delivery products vs planned" + _auto = False + _columns = { + 'date':fields.date('Date'), + 'qty': fields.integer('Actual Qty'), + 'planned_qty': fields.integer('Planned Qty'), + + } + + def init(self, cr): + tools.drop_view_if_exists(cr, 'report_delivery_products_planned') + cr.execute(""" + create or replace view report_delivery_products_planned as ( + select + distinct current_date as date, + min(sm.id) as id, + (select sum(product_qty) from stock_move join stock_picking sp on (sm.picking_id = sp.id ) where to_char(sm.date,'YYYY-MM-DD')::date = current_date ) as qty, + (select sum(product_qty) from stock_move join stock_picking sp on (sm.picking_id = sp.id ) where to_char(sm.date_planned,'YYYY-MM-DD')::date = current_date) as planned_qty + from stock_move sm join stock_picking sp on (sm.picking_id = sp.id ) where sp.type = 'out' group by sm.picking_id, sm.date, sm.date_planned + ) + """) +report_delivery_products_planned() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index 66c7af2aa59..9adf0bbecba 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -72,7 +72,7 @@ <field context="location=location_id,uom=product_uom" name="product_id" on_change="on_change_product_id(location_id,product_id,product_uom)" select="1" domain="[('type','<>','service')]"/> <field name="product_qty"/> <field name="product_uom"/> - <field name="prod_lot_id"/> + <field name="prod_lot_id"/> <field colspan="4" domain="[('usage','=','internal')]" name="location_id" select="1"/> </tree> <form string="Inventory Lines"> @@ -84,7 +84,7 @@ <field name="prod_lot_id"/> <button name="%(split_inventory_lots)d" string="Split in Production Lots" type="action" icon="gtk-justify-fill"/> </group> - + </form> </field> </page><page string="Posted Inventory"> @@ -532,7 +532,7 @@ <field name="view_mode">form</field> <field name="target">new</field> </record> - + <record model="ir.ui.view" id="stock_picking_calendar"> <field name="name">stock.picking.calendar</field> <field name="model">stock.picking</field> @@ -1299,7 +1299,7 @@ <field name="prodlot_id" string="Lot"/> <field name="date_planned"/> <field name="backorder_id"/> - <field name="state"/> + <field name="state"/> <button name="%(partial_move)d" string="Partial" type="action" states="assigned" icon="gtk-justify-fill"/> <button name="action_cancel" states="assigned,confirmed" string="Cancel" type="object" icon="gtk-cancel"/> </tree> @@ -1375,7 +1375,7 @@ </group> </search> </field> - </record> + </record> <record id="action_reception_picking_move" model="ir.actions.act_window"> <field name="name">Reception Picking Stock Move</field> @@ -1486,5 +1486,78 @@ <field eval="True" name="object"/> </record> + <!-- Graph Views --> + <!-- Products To Received Vs Planned --> + <record model="ir.ui.view" id="view_move_graph_reception_picking_tree"> + <field name="name">Products To Received</field> + <field name="model">report.products.to.received.planned</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Products To Received" > + <field name="qty" /> + <field name="planned_qty" /> + <field name="date"/> + </tree> + </field> + </record> + + <record model="ir.ui.view" id="view_move_graph_reception_picking"> + <field name="name">Products To Received</field> + <field name="model">report.products.to.received.planned</field> + <field name="type">graph</field> + <field name="arch" type="xml"> + <graph string="Products To Received" type="bar" orientation="vertical"> + <field name="date"/> + <field name="qty" operator="+"/> + <field name="planned_qty" operator="+"/> + </graph> + </field> + </record> + + <record id="action_move_graph_reception_picking" model="ir.actions.act_window"> + <field name="name">Reception Picking Stock Move</field> + <field name="res_model">report.products.to.received.planned</field> + <field name="type">ir.actions.act_window</field> + <field name="view_type">form</field> + <field name="view_mode">graph,tree</field> + <field name="view_id" ref="view_move_graph_reception_picking"/> + </record> + + <!-- Delivery Product Vs Planned --> + <record model="ir.ui.view" id="view_move_delivery_products_planned_tree"> + <field name="name">Delivery Products</field> + <field name="model">report.delivery.products.planned</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Products To Received" > + <field name="qty" /> + <field name="planned_qty" /> + <field name="date"/> + </tree> + </field> + </record> + + <record model="ir.ui.view" id="view_move_delivery_products_planned_graph"> + <field name="name">Delivery Products</field> + <field name="model">report.delivery.products.planned</field> + <field name="type">graph</field> + <field name="arch" type="xml"> + <graph string="Products To Received" type="bar" orientation="vertical"> + <field name="date"/> + <field name="qty" operator="+"/> + <field name="planned_qty" operator="+"/> + </graph> + </field> + </record> + + <record id="action_move_delivery_products_planned" model="ir.actions.act_window"> + <field name="name">Delivery Products Vs Planned</field> + <field name="res_model">report.delivery.products.planned</field> + <field name="type">ir.actions.act_window</field> + <field name="view_type">form</field> + <field name="view_mode">graph,tree</field> + <field name="view_id" ref="view_move_delivery_products_planned_graph"/> + </record> + </data> </openerp> |
