+ Once the end date of the contract is
+ passed or the maximum number of service
+ units is reached, the account manager
+ is warned by email to renew the contract.
+
+
+
+
+
diff --git a/addons/analytic_contract_expense_project/analytic_contract_expense_project.py b/addons/analytic_contract_expense_project/analytic_contract_expense_project.py
deleted file mode 100644
index efbb8b75a9e..00000000000
--- a/addons/analytic_contract_expense_project/analytic_contract_expense_project.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# 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 .
-#
-##############################################################################
-
-from osv import osv
-
-class project_project(osv.osv):
- _inherit = "project.project"
-
- def open_hr_expense(self, cr, uid, ids, context=None):
- account_ids = [x.analytic_account_id.id for x in self.browse(cr, uid, ids, context=context)]
- return self.pool.get('account.analytic.account').open_hr_expense(cr, uid, account_ids, context=context)
-
- def hr_to_invoice_expense(self, cr, uid, ids, context=None):
- account_ids = [x.analytic_account_id.id for x in self.browse(cr, uid, ids, context=context)]
- return self.pool.get('account.analytic.account').hr_to_invoice_expense(cr, uid, account_ids, context=context)
-
-project_project()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/analytic_contract_expense_project/analytic_contract_expense_project_view.xml b/addons/analytic_contract_expense_project/analytic_contract_expense_project_view.xml
deleted file mode 100644
index f461ed224b8..00000000000
--- a/addons/analytic_contract_expense_project/analytic_contract_expense_project_view.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
- project.project.form.expense.inherit
- project.project
-
-
-
-
-
diff --git a/addons/project/project.py b/addons/project/project.py
index ab1c3c47dfe..f16cb905807 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -26,6 +26,7 @@ from osv import fields, osv
from openerp.addons.resource.faces import task as Task
import time
from tools.translate import _
+from openerp import SUPERUSER_ID
_TASK_STATE = [('draft', 'New'),('open', 'In Progress'),('pending', 'Pending'), ('done', 'Done'), ('cancelled', 'Cancelled')]
@@ -210,7 +211,7 @@ class project(osv.osv):
'complete_name': fields.function(_complete_name, string="Project Name", type='char', size=250),
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the project without removing it."),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of Projects."),
- 'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', help="Link this project to an analytic account if you need financial management on projects. It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc.", ondelete="cascade", required=True),
+ 'analytic_account_id': fields.many2one('account.analytic.account', 'Contract/Analytic', help="Link this project to an analytic account if you need financial management on projects. It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc.", ondelete="cascade", required=True),
'priority': fields.integer('Sequence', help="Gives the sequence order when displaying the list of projects"),
'members': fields.many2many('res.users', 'project_user_rel', 'project_id', 'uid', 'Project Members',
help="Project's members are users who can have an access to the tasks related to this project.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
@@ -877,7 +878,7 @@ class task(base_stage, osv.osv):
if context is None: context = {}
# read uom as admin to avoid access rights issues, e.g. for portal/share users,
# this should be safe (no context passed to avoid side-effects)
- obj_tm = users_obj.browse(cr, 1, uid, context=context).company_id.project_time_mode_id
+ obj_tm = users_obj.browse(cr, SUPERUSER_ID, uid, context=context).company_id.project_time_mode_id
tm = obj_tm and obj_tm.name or 'Hours'
res = super(task, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu=submenu)
@@ -1265,7 +1266,7 @@ class account_analytic_account(osv.osv):
_inherit = 'account.analytic.account'
_description = 'Analytic Account'
_columns = {
- 'use_tasks': fields.boolean('Tasks Mgmt.',help="If check,this contract will be available in the project menu and you will be able to manage tasks or track issues"),
+ 'use_tasks': fields.boolean('Tasks',help="If check,this contract will be available in the project menu and you will be able to manage tasks or track issues"),
'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'),
}
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 6195ca909d2..f864e207141 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -76,33 +76,29 @@
-
-