+
+
+
+
+
+
+
+
+
diff --git a/addons/hr_holidays/__openerp__.py b/addons/hr_holidays/__openerp__.py
index 6f9f61afabc..4509508b2be 100644
--- a/addons/hr_holidays/__openerp__.py
+++ b/addons/hr_holidays/__openerp__.py
@@ -50,7 +50,7 @@ Note that:
for example, you maybe will do it for the user 'admin'.
""",
'images': ['images/hr_allocation_requests.jpeg', 'images/hr_leave_requests.jpeg', 'images/leaves_analysis.jpeg'],
- 'depends': ['hr', 'crm', 'process', 'resource'],
+ 'depends': ['hr', 'base_calendar', 'process', 'resource'],
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index a1ab0ae04f3..2a2648f1beb 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -74,7 +74,8 @@ class hr_holidays_status(osv.osv):
_columns = {
'name': fields.char('Leave Type', size=64, required=True, translate=True),
- 'categ_id': fields.many2one('crm.case.categ', 'Meeting', domain="[('object_id.model', '=', 'crm.meeting')]", help='If you set a meeting type, OpenERP will create a meeting in the calendar once a leave is validated.'),
+ 'categ_id': fields.many2one('crm.meeting.type', 'Meeting Type',
+ help='Once a leave is validated, OpenERP will create a corresponding meeting of this type in the calendar.'),
'color_name': fields.selection([('red', 'Red'),('blue','Blue'), ('lightgreen', 'Light Green'), ('lightblue','Light Blue'), ('lightyellow', 'Light Yellow'), ('magenta', 'Magenta'),('lightcyan', 'Light Cyan'),('black', 'Black'),('lightpink', 'Light Pink'),('brown', 'Brown'),('violet', 'Violet'),('lightcoral', 'Light Coral'),('lightsalmon', 'Light Salmon'),('lavender', 'Lavender'),('wheat', 'Wheat'),('ivory', 'Ivory')],'Color in Report', required=True, help='This color will be used in the leaves summary located in Reporting\Leaves by Departement'),
'limit': fields.boolean('Allow to Override Limit', help='If you select this checkbox, the system allows the employees to take more leaves than the available ones for this type.'),
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the leave type without removing it."),
@@ -128,7 +129,7 @@ class hr_holidays(osv.osv):
'notes': fields.text('Reasons',readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
'number_of_days_temp': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
'number_of_days': fields.function(_compute_number_of_days, string='Number of Days', store=True),
- 'case_id': fields.many2one('crm.meeting', 'Meeting'),
+ 'meeting_id': fields.many2one('crm.meeting', 'Meeting'),
'type': fields.selection([('remove','Leave Request'),('add','Allocation Request')], 'Request Type', required=True, readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}, help="Choose 'Leave Request' if someone wants to take an off-day. \nChoose 'Allocation Request' if you want to increase the number of leaves available for someone", select=True),
'parent_id': fields.many2one('hr.holidays', 'Parent'),
'linked_request_ids': fields.one2many('hr.holidays', 'parent_id', 'Linked Requests',),
@@ -217,19 +218,12 @@ class hr_holidays(osv.osv):
}
return result
- def onchange_sec_id(self, cr, uid, ids, status, context=None):
- warning = {}
+ def onchange_status_id(self, cr, uid, ids, status_id, context=None):
double_validation = False
- obj_holiday_status = self.pool.get('hr.holidays.status')
- if status:
- holiday_status = obj_holiday_status.browse(cr, uid, status, context=context)
+ if status_id:
+ holiday_status = self.pool.get('hr.holidays.status').browse(cr, uid, status_id, context=context)
double_validation = holiday_status.double_validation
- if holiday_status.categ_id and holiday_status.categ_id.section_id and not holiday_status.categ_id.section_id.allow_unlink:
- warning = {
- 'title': "Warning for ",
- 'message': "You won\'t be able to cancel this leave request because the CRM Sales Team of the leave type disallows."
- }
- return {'warning': warning, 'value': {'double_validation': double_validation}}
+ return {'value': {'double_validation': double_validation}}
def set_to_draft(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {
@@ -271,7 +265,7 @@ class hr_holidays(osv.osv):
holiday_ids.append(record.id)
if record.holiday_type == 'employee' and record.type == 'remove':
meeting_obj = self.pool.get('crm.meeting')
- vals = {
+ meeting_vals = {
'name': record.name,
'categ_id': record.holiday_status_id.categ_id.id,
'duration': record.number_of_days_temp * 8,
@@ -280,11 +274,11 @@ class hr_holidays(osv.osv):
'date': record.date_from,
'end_date': record.date_to,
'date_deadline': record.date_to,
- 'leave_id': record.id,
+ 'state': 'done', # to block that meeting date in the calendar
}
- case_id = meeting_obj.create(cr, uid, vals)
+ meeting_id = meeting_obj.create(cr, uid, meeting_vals)
self._create_resource_leave(cr, uid, [record], context=context)
- self.write(cr, uid, ids, {'case_id': case_id})
+ self.write(cr, uid, ids, {'meeting_id': meeting_id})
elif record.holiday_type == 'category':
emp_ids = obj_emp.search(cr, uid, [('category_ids', 'child_of', [record.category_id.id])])
leave_ids = []
@@ -330,11 +324,11 @@ class hr_holidays(osv.osv):
return True
def holidays_cancel(self, cr, uid, ids, context=None):
- obj_crm_meeting = self.pool.get('crm.meeting')
+ meeting_obj = self.pool.get('crm.meeting')
for record in self.browse(cr, uid, ids):
# Delete the meeting
- if record.case_id:
- obj_crm_meeting.unlink(cr, uid, [record.case_id.id])
+ if record.meeting_id:
+ meeting_obj.unlink(cr, uid, [record.meeting_id.id])
# If a category that created several holidays, cancel all related
wf_service = netsvc.LocalService("workflow")
@@ -519,10 +513,4 @@ class hr_employee(osv.osv):
hr_employee()
-class crm_meeting(osv.osv):
- _inherit = 'crm.meeting'
- _columns = {
- 'leave_id': fields.many2one('hr.holidays','Leave'),
- }
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml
index 1237cdb14f4..c22c4add718 100644
--- a/addons/hr_holidays/hr_holidays_view.xml
+++ b/addons/hr_holidays/hr_holidays_view.xml
@@ -119,7 +119,7 @@
-
+
-
@@ -178,7 +178,7 @@
-
+
diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py
index b83a482e1c1..e5df8cf2bf3 100644
--- a/addons/hr_recruitment/__openerp__.py
+++ b/addons/hr_recruitment/__openerp__.py
@@ -42,11 +42,10 @@ system to store and search in your CV base.
'decimal_precision',
'hr',
'survey',
- 'crm',
+ 'base_calendar',
'fetchmail',
],
'update_xml': [
- 'wizard/hr_recruitment_phonecall_view.xml',
'wizard/hr_recruitment_employee_hired.xml',
'wizard/hr_recruitment_create_partner_job_view.xml',
'hr_recruitment_view.xml',
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 26eeca1aedc..a3cd2f3a629 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -24,15 +24,10 @@ import time
from datetime import datetime, timedelta
from osv import fields, osv
-from crm import crm
import tools
import collections
import binascii
-import tools
from tools.translate import _
-from crm import wizard
-
-wizard.mail_compose_message.SUPPORTED_MODELS.append('hr.applicant')
AVAILABLE_STATES = [
('draft', 'New'),
@@ -98,6 +93,7 @@ class hr_applicant(base_stage, osv.Model):
_description = "Applicant"
_order = "id desc"
_inherit = ['ir.needaction_mixin', 'mail.thread']
+ _mail_compose_message = True
def _get_default_department_id(self, cr, uid, context=None):
""" Gives default department by checking if present in the context """
@@ -239,7 +235,7 @@ class hr_applicant(base_stage, osv.Model):
'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c),
'department_id': lambda s, cr, uid, c: s._get_default_department_id(cr, uid, c),
'priority': lambda *a: '',
- 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c),
+ 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'hr.applicant', context=c),
'color': 0,
}
@@ -293,49 +289,22 @@ class hr_applicant(base_stage, osv.Model):
return False
def action_makeMeeting(self, cr, uid, ids, context=None):
+ """ This opens Meeting's calendar view to schedule meeting on current applicant
+ @return: Dictionary value for created Meeting view
"""
- This opens Meeting's calendar view to schedule meeting on current Opportunity
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of Opportunity to Meeting IDs
- @param context: A standard dictionary for contextual values
-
- @return: Dictionary value for created Meeting view
- """
- data_obj = self.pool.get('ir.model.data')
- if context is None:
- context = {}
- value = {}
- for opp in self.browse(cr, uid, ids, context=context):
- # Get meeting views
- search_view = data_obj.get_object(cr, uid, 'crm', 'view_crm_case_meetings_filter', context)
- calendar_view = data_obj.get_object(cr, uid, 'crm', 'crm_case_calendar_view_meet', context)
- form_view = data_obj.get_object(cr, uid, 'crm', 'crm_case_form_view_meet', context)
- tree_view = data_obj.get_object(cr, uid, 'crm', 'crm_case_tree_view_meet', context)
- category = data_obj.get_object(cr, uid, 'hr_recruitment', 'categ_meet_interview', context)
- context.update({
- 'default_applicant_id': opp.id,
- 'default_partner_id': opp.partner_id and opp.partner_id.id or False,
- 'default_email_from': opp.email_from,
- 'default_state': 'open',
- 'default_categ_id': category.id,
- 'default_name': opp.name,
- })
- value = {
- 'name': ('Meetings'),
- 'domain': "[('user_id','=',%s)]" % (uid),
- 'context': context,
- 'view_type': 'form',
- 'view_mode': 'calendar,form,tree',
- 'res_model': 'crm.meeting',
- 'view_id': False,
- 'views': [(calendar_view.id, 'calendar'), (form_view.id, 'form'), (tree_view.id, 'tree')],
- 'type': 'ir.actions.act_window',
- 'search_view_id': search_view.id,
- 'nodestroy': True,
- }
- return value
+ applicant = self.browse(cr, uid, ids[0], context)
+ category = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'categ_meet_interview', context)
+ res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'base_calendar', 'action_crm_meeting', context)
+ res['context'] = {
+ 'default_applicant_id': applicant.id,
+ 'default_partner_id': applicant.partner_id and applicant.partner_id.id or False,
+ 'default_user_id': uid,
+ 'default_email_from': applicant.email_from,
+ 'default_state': 'open',
+ 'default_name': applicant.name,
+ 'default_categ_id': category.id,
+ }
+ return res
def action_print_survey(self, cr, uid, ids, context=None):
"""
diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
index 92301717a25..0b73d1a173f 100644
--- a/addons/hr_recruitment/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/hr_recruitment_data.xml
@@ -27,11 +27,9 @@
imap
-
-
+
+ Interview
-
-
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 285ab13f8d2..9118fb05ea1 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -16,18 +16,6 @@
view_mode="tree,form,calendar,graph"
view_type="form"/>
- # ------------------------------------------------------
- # Job Categories
- # ------------------------------------------------------
-
-
- Applicant Categories
- crm.case.categ
- form
-
- [('object_id.model', '=', 'hr.applicant')]
-
-
# ------------------------------------------------------
# Stage
# ------------------------------------------------------
@@ -517,21 +505,15 @@
action="hr_recruitment_source_action"
sequence="10" groups="base.group_no_one"/>
-
+ CRM - Meetings Formcrm.meetingform
-
+
-
- {'invisible': [('categ_id','=',%(hr_recruitment.categ_meet_interview)d)]}
-
-
- {'invisible': [('categ_id','=',%(hr_recruitment.categ_meet_interview)d)]}
-
diff --git a/addons/hr_recruitment/security/ir.model.access.csv b/addons/hr_recruitment/security/ir.model.access.csv
index 8b3bd48bcb6..8b029c9324a 100644
--- a/addons/hr_recruitment/security/ir.model.access.csv
+++ b/addons/hr_recruitment/security/ir.model.access.csv
@@ -5,7 +5,6 @@ access_hr_recruitment_stage_user,hr.recruitment.stage.user,model_hr_recruitment_
access_hr_recruitment_degree,hr.recruitment.degree,model_hr_recruitment_degree,base.group_hr_user,1,1,1,1
access_res_partner_hr_user,res.partner.user,base.model_res_partner,base.group_hr_user,1,1,1,1
access_survey_hr_user,survey.hr.user,survey.model_survey,base.group_hr_user,1,1,1,0
-access_crm_phonecall_hruser,crm.phonecall hruser,crm.model_crm_phonecall,base.group_hr_user,1,1,1,1
-access_crm_meeting_hruser,crm.meeting.hruser,crm.model_crm_meeting,base.group_hr_user,1,1,1,1
+access_crm_meeting_hruser,crm.meeting.hruser,base_calendar.model_crm_meeting,base.group_hr_user,1,1,1,1
access_hr_recruitment_source_hr_officer,hr.recruitment.source,model_hr_recruitment_source,base.group_hr_user,1,1,1,1
access_hr_recruitment_source_all,hr.recruitment.source,model_hr_recruitment_source,,1,0,0,0
diff --git a/addons/hr_recruitment/test/recruitment_process.yml b/addons/hr_recruitment/test/recruitment_process.yml
index 38b84fccab2..841a49dc866 100644
--- a/addons/hr_recruitment/test/recruitment_process.yml
+++ b/addons/hr_recruitment/test/recruitment_process.yml
@@ -50,13 +50,6 @@
-
!python {model: hr.applicant}: |
self.write(cr, uid, [ref('hr_case_programmer')], {'job_id':ref('hr.job_developer')})
--
- I start communication with applicant, first schedule phonecall.
--
- !python {model: hr.recruitment.job2phonecall}: |
- context.update({'active_model': 'hr.applicant', 'active_id': ref("hr_case_programmer"), 'active_ids': [ref("hr_case_programmer")], 'survey_id': ref("survey_job_0")})
- id = self.create(cr, uid, {}, context=context)
- self.make_phonecall(cr, uid, [id], context=context)
-
I schedule meeting with applicant for interview.
-
diff --git a/addons/hr_recruitment/wizard/__init__.py b/addons/hr_recruitment/wizard/__init__.py
index acabd219857..fde7df63456 100644
--- a/addons/hr_recruitment/wizard/__init__.py
+++ b/addons/hr_recruitment/wizard/__init__.py
@@ -20,7 +20,6 @@
##############################################################################
-import hr_recruitment_phonecall
import hr_recruitment_create_partner_job
import hr_recruitment_employee_hired
diff --git a/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py b/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py
deleted file mode 100644
index 12c294c20bc..00000000000
--- a/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py
+++ /dev/null
@@ -1,126 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# 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 .
-#
-##############################################################################
-import time
-
-from osv import osv, fields
-from tools.translate import _
-
-class job2phonecall(osv.osv_memory):
- _name = 'hr.recruitment.job2phonecall'
- _description = 'Schedule Phone Call'
- _columns = {
- 'user_id': fields.many2one('res.users', 'Assign To'),
- 'deadline': fields.datetime('Planned Date'),
- 'note': fields.text('Goals'),
- 'category_id': fields.many2one('crm.case.categ', 'Category', required=True),
- }
-
- def _date_user(self, cr, uid, context=None):
- case_obj = self.pool.get('hr.applicant')
- if context is None:
- context = {}
- case = case_obj.browse(cr, uid, context.get('active_id', False), context=context)
- return case.user_id and case.user_id.id or False
-
- def _date_category(self, cr, uid, context=None):
- case_obj = self.pool.get('hr.applicant')
- if context is None:
- context = {}
- case = case_obj.browse(cr, uid, context.get('active_id', False), context=context)
- categ_id = self.pool.get('crm.case.categ').search(cr, uid, [('name','=','Outbound')], context=context)
- return categ_id and categ_id[0] or case.categ_id and case.categ_id.id or False
-
- def _get_note(self, cr, uid, context=None):
- mail_message = self.pool.get('mail.message')
- if context is None:
- context = {}
- if context.get('active_id'):
- case = self.pool.get('hr.applicant').browse(cr, uid, context['active_id'], context=context)
- if case.description:
- return case.description
- else:
- msg_ids = mail_message.search(cr, uid, [('model', '=', 'hr.applicant'), ('res_id', '=', case.id), ('email_from', '!=', ''), ('email_to', '!=', '')], limit=1)
- if msg_ids:
- return mail_message.browse(cr, uid, msg_ids[0], context=context).body_text
- return False
-
-
- _defaults = {
- 'user_id': _date_user,
- 'category_id': _date_category,
- 'note': _get_note
- }
-
- def make_phonecall(self, cr, uid, ids, context=None):
- mod_obj = self.pool.get('ir.model.data')
- job_case_obj = self.pool.get('hr.applicant')
- data_obj = self.pool.get('ir.model.data')
- phonecall_case_obj = self.pool.get('crm.phonecall')
- if context is None:
- context = {}
- form = self.browse(cr, uid, ids, context=context)[0]
- result = mod_obj._get_id(cr, uid, 'crm', 'view_crm_case_phonecalls_filter')
- res = mod_obj.read(cr, uid, result, ['res_id'], context=context)
- # Select the view
-
- id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_tree_view')
- id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_form_view')
- if id2:
- id2 = data_obj.browse(cr, uid, id2, context=context).res_id
- if id3:
- id3 = data_obj.browse(cr, uid, id3, context=context).res_id
- new_phonecall_id = []
- for job in job_case_obj.browse(cr, uid, context.get('active_ids', []), context=context):
- #TODO: Take other info from job
- new_phonecall_id = phonecall_case_obj.create(cr, uid, {
- 'name': job.name,
- 'user_id': form.user_id.id,
- 'categ_id': form.category_id.id,
- 'description': form.note,
- 'date': form.deadline,
- 'description': job.description,
- 'partner_id': job.partner_id.id,
- 'partner_phone': job.partner_phone,
- 'partner_mobile': job.partner_mobile,
- 'description': job.description,
- 'date':job.date,
- }, context=context)
- new_phonecall = phonecall_case_obj.browse(cr, uid, new_phonecall_id, context=context)
- vals = {}
- job_case_obj.write(cr, uid, [job.id], vals, context=context)
-# job_case_obj.case_cancel(cr, uid, [job.id])
- phonecall_case_obj.case_open(cr, uid, [new_phonecall_id])
-
- return {
- 'name': _('Phone Call'),
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'crm.phonecall',
- 'res_id': new_phonecall_id,
- 'views': [(id3,'form'), (id2,'tree'), (False,'calendar'), (False,'graph')],
- 'type': 'ir.actions.act_window',
- 'search_view_id': res['res_id']
- }
-
-job2phonecall()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_recruitment/wizard/hr_recruitment_phonecall_view.xml b/addons/hr_recruitment/wizard/hr_recruitment_phonecall_view.xml
deleted file mode 100644
index 8537186ac6f..00000000000
--- a/addons/hr_recruitment/wizard/hr_recruitment_phonecall_view.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
- hr.recruitment.job2phonecall.form
- hr.recruitment.job2phonecall
- form
-
-
-
-
- or
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Schedule Phone Call
- ir.actions.act_window
- hr.recruitment.job2phonecall
- form
- form
- new
-
-
-
-
diff --git a/addons/import_google/__openerp__.py b/addons/import_google/__openerp__.py
index 5c538e5912f..5242633747f 100644
--- a/addons/import_google/__openerp__.py
+++ b/addons/import_google/__openerp__.py
@@ -26,7 +26,7 @@
'description': """The module adds google contact in partner address and add google calendar events details in Meeting""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
- 'depends': ['base', 'import_base', 'google_base_account','crm'],
+ 'depends': ['base', 'import_base', 'google_base_account', 'base_calendar'],
'init_xml': [],
'update_xml': ['security/ir.model.access.csv',
'sync_google_calendar_view.xml',
diff --git a/addons/import_google/i18n/ar.po b/addons/import_google/i18n/ar.po
new file mode 100644
index 00000000000..1f6bda316dc
--- /dev/null
+++ b/addons/import_google/i18n/ar.po
@@ -0,0 +1,217 @@
+# Arabic translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-02-08 00:36+0000\n"
+"PO-Revision-Date: 2012-07-07 15:59+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Arabic \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-07-08 04:41+0000\n"
+"X-Generator: Launchpad (build 15558)\n"
+
+#. module: import_google
+#: help:synchronize.google.import,group_name:0
+msgid "Choose which group to import, By default it takes all."
+msgstr ""
+
+#. module: import_google
+#: view:synchronize.google.import:0
+msgid "Import Google Calendar Events"
+msgstr ""
+
+#. module: import_google
+#: view:synchronize.google.import:0
+msgid "_Import Events"
+msgstr "_جلب الأحداث"
+
+#. module: import_google
+#: code:addons/import_google/wizard/import_google_data.py:71
+#, python-format
+msgid ""
+"No Google Username or password Defined for user.\n"
+"Please define in user view"
+msgstr ""
+
+#. module: import_google
+#: code:addons/import_google/wizard/import_google_data.py:127
+#, python-format
+msgid ""
+"Invalid login detail !\n"
+" Specify Username/Password."
+msgstr ""
+
+#. module: import_google
+#: field:synchronize.google.import,supplier:0
+msgid "Supplier"
+msgstr ""
+
+#. module: import_google
+#: view:synchronize.google.import:0
+msgid "Import Options"
+msgstr ""
+
+#. module: import_google
+#: field:synchronize.google.import,group_name:0
+msgid "Group Name"
+msgstr ""
+
+#. module: import_google
+#: model:ir.model,name:import_google.model_crm_case_categ
+msgid "Category of Case"
+msgstr ""
+
+#. module: import_google
+#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form
+#: model:ir.ui.menu,name:import_google.menu_sync_contact
+msgid "Import Google Contacts"
+msgstr "جلب اتصالات قوقل"
+
+#. module: import_google
+#: view:google.import.message:0
+msgid "Import Google Data"
+msgstr ""
+
+#. module: import_google
+#: view:crm.meeting:0
+msgid "Meeting Type"
+msgstr ""
+
+#. module: import_google
+#: code:addons/import_google/wizard/import_google.py:38
+#: code:addons/import_google/wizard/import_google_data.py:28
+#, python-format
+msgid ""
+"Please install gdata-python-client from http://code.google.com/p/gdata-"
+"python-client/downloads/list"
+msgstr ""
+
+#. module: import_google
+#: model:ir.model,name:import_google.model_google_login
+msgid "Google Contact"
+msgstr ""
+
+#. module: import_google
+#: view:synchronize.google.import:0
+msgid "Import contacts from a google account"
+msgstr ""
+
+#. module: import_google
+#: code:addons/import_google/wizard/import_google_data.py:133
+#, python-format
+msgid "Please specify correct user and password !"
+msgstr ""
+
+#. module: import_google
+#: field:synchronize.google.import,customer:0
+msgid "Customer"
+msgstr ""
+
+#. module: import_google
+#: view:synchronize.google.import:0
+msgid "_Cancel"
+msgstr ""
+
+#. module: import_google
+#: model:ir.model,name:import_google.model_synchronize_google_import
+msgid "synchronize.google.import"
+msgstr ""
+
+#. module: import_google
+#: view:synchronize.google.import:0
+msgid "_Import Contacts"
+msgstr ""
+
+#. module: import_google
+#: model:ir.actions.act_window,name:import_google.act_google_login_form
+#: model:ir.ui.menu,name:import_google.menu_sync_calendar
+msgid "Import Google Calendar"
+msgstr ""
+
+#. module: import_google
+#: code:addons/import_google/wizard/import_google_data.py:50
+#, python-format
+msgid "Import google"
+msgstr ""
+
+#. module: import_google
+#: code:addons/import_google/wizard/import_google_data.py:127
+#: code:addons/import_google/wizard/import_google_data.py:133
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: import_google
+#: code:addons/import_google/wizard/import_google_data.py:71
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: import_google
+#: field:synchronize.google.import,create_partner:0
+msgid "Options"
+msgstr ""
+
+#. module: import_google
+#: view:google.import.message:0
+msgid "_Ok"
+msgstr ""
+
+#. module: import_google
+#: code:addons/import_google/wizard/import_google.py:38
+#: code:addons/import_google/wizard/import_google_data.py:28
+#, python-format
+msgid "Google Contacts Import Error!"
+msgstr ""
+
+#. module: import_google
+#: model:ir.model,name:import_google.model_google_import_message
+msgid "Import Message"
+msgstr ""
+
+#. module: import_google
+#: field:synchronize.google.import,calendar_name:0
+msgid "Calendar Name"
+msgstr ""
+
+#. module: import_google
+#: help:synchronize.google.import,supplier:0
+msgid "Check this box to set newly created partner as Supplier."
+msgstr ""
+
+#. module: import_google
+#: selection:synchronize.google.import,create_partner:0
+msgid "Import only address"
+msgstr ""
+
+#. module: import_google
+#: field:crm.case.categ,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: import_google
+#: view:synchronize.google.import:0
+msgid "Partner Status for this Group:"
+msgstr ""
+
+#. module: import_google
+#: field:google.import.message,name:0
+msgid "Message"
+msgstr ""
+
+#. module: import_google
+#: selection:synchronize.google.import,create_partner:0
+msgid "Create partner for each contact"
+msgstr ""
+
+#. module: import_google
+#: help:synchronize.google.import,customer:0
+msgid "Check this box to set newly created partner as Customer."
+msgstr ""
diff --git a/addons/import_google/i18n/ja.po b/addons/import_google/i18n/ja.po
index ad1ab085495..dad8acc1860 100644
--- a/addons/import_google/i18n/ja.po
+++ b/addons/import_google/i18n/ja.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
-"PO-Revision-Date: 2012-05-24 18:56+0000\n"
+"PO-Revision-Date: 2012-07-09 04:44+0000\n"
"Last-Translator: Akira Hiyama \n"
"Language-Team: Japanese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-05-25 04:40+0000\n"
-"X-Generator: Launchpad (build 15288)\n"
+"X-Launchpad-Export-Date: 2012-07-09 04:51+0000\n"
+"X-Generator: Launchpad (build 15558)\n"
#. module: import_google
#: help:synchronize.google.import,group_name:0
@@ -70,7 +70,7 @@ msgstr "グループ名"
#. module: import_google
#: model:ir.model,name:import_google.model_crm_case_categ
msgid "Category of Case"
-msgstr "ケースの分類"
+msgstr "案件の分類"
#. module: import_google
#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form
diff --git a/addons/import_google/partner.py b/addons/import_google/partner.py
index 232f18d06a3..e7aa4dd8ca7 100644
--- a/addons/import_google/partner.py
+++ b/addons/import_google/partner.py
@@ -21,11 +21,11 @@
from osv import fields,osv
-class crm_case_categ(osv.osv):
- """ Category of Case """
- _inherit = "crm.case.categ"
+class crm_meeting_type(osv.osv):
+ """ Meeting Types """
+ _inherit = "crm.meeting.type"
_columns = {
'user_id': fields.many2one('res.users', 'User')
}
-crm_case_categ()
+
# vim:expandtab:smartindent:toabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/import_google/sync_google_calendar_view.xml b/addons/import_google/sync_google_calendar_view.xml
index 84f0176c5ec..626d803d4df 100644
--- a/addons/import_google/sync_google_calendar_view.xml
+++ b/addons/import_google/sync_google_calendar_view.xml
@@ -1,30 +1,14 @@
-
+ CRM - Meetings Form (Inherited)crm.meetingform
-
+
-
-
-
-
-
-
- CRM - Meetings Tree (Inherited)
- crm.meeting
- tree
-
-
-
-
+
diff --git a/addons/import_google/wizard/import_google.py b/addons/import_google/wizard/import_google.py
index 9a9b2802826..c34a14e224d 100644
--- a/addons/import_google/wizard/import_google.py
+++ b/addons/import_google/wizard/import_google.py
@@ -235,10 +235,10 @@ class google_import(import_framework):
def get_event_category(self, val, name):
- fields = ['name', 'object_id']
- nameid = 'event_category_'+name
- data = [name, 'crm.meeting']
- return self.import_object(fields, data, 'crm.case.categ', "crm_case_categ", nameid, [('name', 'ilike', name)])
+ nameid = 'event_category_' + name
+ fields = ['name']
+ data = [name]
+ return self.import_object(fields, data, 'crm.meeting.type', "crm_meeting_type", nameid, [('name', 'ilike', name)])
def get_rec(self, val):
if val.get("recurrency"):
diff --git a/addons/knowledge/res_config_view.xml b/addons/knowledge/res_config_view.xml
index ad3488deb98..0cec5899c41 100644
--- a/addons/knowledge/res_config_view.xml
+++ b/addons/knowledge/res_config_view.xml
@@ -13,19 +13,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py
index a85c976db57..47256cd5730 100644
--- a/addons/mail/__openerp__.py
+++ b/addons/mail/__openerp__.py
@@ -20,36 +20,41 @@
##############################################################################
{
- 'name': 'Emails Management',
+ 'name': 'Social Network',
'version': '1.0',
- 'category': 'Hidden/Dependency',
+ 'category':'Social Network',
+ "sequence": 2,
'description': """
-A generic email subsystem with message storage and queuing
-==========================================================
+A bussiness oriented Social Networking with a fully-integrated email
+and message management.
+=====================================================================
+The Social Networking module provides an unified social network
+abstraction layer allowing applications to display a complete
+communication history on documents.It gives the users the possibility
+to read and send messages and emails in an unified way.
-This email subsystem is not intended to be used as as standalone
-application, but to provide a unified email abstraction that all
-other applications can use.
+It also provides a feeds page combined to a subscription mechanism, that
+allows to follow documents, and to be constantly updated about recent
+news.
+
+The main features of the module are :
-The main features are:
-
- * Relies on the global Outgoing Mail Servers configured in the
- Administration menu for delivering outgoing mail
- * Provides an API for sending messages and archiving them,
- grouped by conversation
- * Any OpenERP document can act as a conversation topic, provided
- it includes the necessary support for handling incoming emails
- (see the ``mail.thread`` class for more details).
- * Includes queuing mechanism with automated configurable
- scheduler-based processing
- * Includes a generic email composition assistant, that can turn
+ * a clean and renewed communication history for any OpenERP
+ document that can act as a discussion topic,
+ * a discussion mean on documents,
+ * a subscription mechanism to be updated about new messages on
+ interesting documents,
+ * an unified feeds page to see recent messages and activity
+ on followed documents,
+ * user communication through the feeds page,
+ * a threaded discussion design,
+ * relies on the global outgoing mail server, an integrated email
+ management system allowing to send emails with a configurable
+ scheduler-based processing engine
+ * includes an extensible generic email composition assistant, that can turn
into a mass-mailing assistant, and is capable of interpreting
simple *placeholder expressions* that will be replaced with
- dynamic data when each email is actually sent.
- This generic assistant is easily extensible to provide advanced
- features (see ``email_template`` for example, which adds email
- templating features to this assistant)
-
+ dynamic data when each email is actually sent
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
@@ -69,6 +74,7 @@ The main features are:
],
'installable': True,
'auto_install': False,
+ 'application':True,
'certificate': '001056784984222247309',
'images': [
'images/customer_history.jpeg',
@@ -95,6 +101,6 @@ The main features are:
],
'demo': [
'mail_demo.xml',
- ],
+ ],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mail/static/src/img/icon.png b/addons/mail/static/src/img/icon.png
new file mode 100644
index 00000000000..53ccc469127
Binary files /dev/null and b/addons/mail/static/src/img/icon.png differ
diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py
index 29dc11d2ebe..24da7b07ba3 100644
--- a/addons/mail/wizard/mail_compose_message.py
+++ b/addons/mail/wizard/mail_compose_message.py
@@ -409,4 +409,43 @@ class mail_compose_message(osv.TransientModel):
return tools.ustr(result)
return template and EXPRESSION_PATTERN.sub(merge, template)
+
+
+class mail_compose_message_extended(osv.osv_memory):
+ """ Extension of 'mail.compose.message' to support default field values related
+ to CRM-like models that follow the following conventions:
+
+ 1. The model object must have an attribute '_mail_compose_message' equal to True.
+
+ 2. The model should define the following fields:
+ - 'name' as subject of the message (required);
+ - 'email_from' as destination email address (required);
+ - 'email_cc' as cc email addresses (required);
+ - 'section_id.reply_to' as reply-to address (optional).
+ """
+ _inherit = 'mail.compose.message'
+
+ def get_value(self, cr, uid, model, res_id, context=None):
+ """Overrides the default implementation to provide more default field values
+ related to the corresponding CRM case.
+ """
+ result = super(mail_compose_message_extended, self).get_value(cr, uid, model, res_id, context=context)
+ model_obj = self.pool.get(model)
+ if getattr(model_obj, '_mail_compose_message', False) and res_id:
+ data = model_obj.browse(cr, uid , res_id, context)
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+ result.update({
+ 'model': model,
+ 'res_id': res_id,
+ 'email_from': user.user_email or tools.config.get('email_from', False),
+ 'email_to': data.email_from or False,
+ 'email_cc': tools.ustr(data.email_cc or ''),
+ 'subject': data.name or False,
+ 'body_text': '\n' + tools.ustr(user.signature or ''),
+ 'subtype': 'plain',
+ })
+ if hasattr(data, 'section_id'):
+ result['reply_to'] = data.section_id and data.section_id.reply_to or False
+ return result
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp/res_config_view.xml b/addons/mrp/res_config_view.xml
index 48938972f60..db337c9b178 100644
--- a/addons/mrp/res_config_view.xml
+++ b/addons/mrp/res_config_view.xml
@@ -12,25 +12,23 @@
or
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/mrp/security/ir.model.access.csv b/addons/mrp/security/ir.model.access.csv
index cd6b8db2195..5d254f86b4e 100644
--- a/addons/mrp/security/ir.model.access.csv
+++ b/addons/mrp/security/ir.model.access.csv
@@ -80,3 +80,4 @@ access_product_pricelist_item_mrp_manager,product.pricelist.item mrp_manager,pro
access_resource_calendar_manufacturinguser,resource.calendar manufacturing.user,resource.model_resource_calendar,mrp.group_mrp_user,1,0,0,0
access_account_journal_mrp_manager,account.journal mrp manager,account.model_account_journal,mrp.group_mrp_manager,1,0,0,0
access_purchase_order_stock_user,purchase.order stock user,purchase.model_purchase_order,stock.group_stock_user,1,1,1,0
+access_mrp_bom_purchase_manager,mrp.bom,model_mrp_bom,purchase.group_purchase_manager,1,0,0,0
diff --git a/addons/mrp_subproduct/security/ir.model.access.csv b/addons/mrp_subproduct/security/ir.model.access.csv
index 7c012237dd6..e91c8158d19 100644
--- a/addons/mrp_subproduct/security/ir.model.access.csv
+++ b/addons/mrp_subproduct/security/ir.model.access.csv
@@ -1,3 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_mrp_subproduct_user,mrp.subproduct,model_mrp_subproduct,mrp.group_mrp_user,1,1,1,1
-access_mrp_subproduct_manager,mrp.subproduct manager,model_mrp_subproduct,mrp.group_mrp_manager,1,0,0,0
+access_mrp_subproduct_user,mrp.subproduct,model_mrp_subproduct,mrp.group_mrp_user,1,0,0,0
+access_mrp_subproduct_manager,mrp.subproduct manager,model_mrp_subproduct,mrp.group_mrp_manager,1,1,1,1
+access_mrp_subproduct_all,mrp.subproduct,model_mrp_subproduct,base.group_user,1,0,0,0
diff --git a/addons/project/i18n/hr.po b/addons/project/i18n/hr.po
index 83182e409ef..d17da5727b3 100644
--- a/addons/project/i18n/hr.po
+++ b/addons/project/i18n/hr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-07-05 11:02+0000\n"
+"PO-Revision-Date: 2012-07-06 12:24+0000\n"
"Last-Translator: Marko Carevic \n"
"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n"
+"X-Launchpad-Export-Date: 2012-07-07 05:12+0000\n"
"X-Generator: Launchpad (build 15558)\n"
"Language: hr\n"
@@ -281,7 +281,7 @@ msgstr "Zadatak"
#. module: project
#: view:project.project:0
msgid "Members"
-msgstr ""
+msgstr "Članovi"
#. module: project
#: view:board.board:0
diff --git a/addons/project/res_config_view.xml b/addons/project/res_config_view.xml
index ff1511d49f2..b6497e56d62 100644
--- a/addons/project/res_config_view.xml
+++ b/addons/project/res_config_view.xml
@@ -12,28 +12,26 @@
or
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv
index c795daa9df9..3f79cfee3de 100644
--- a/addons/project/security/ir.model.access.csv
+++ b/addons/project/security/ir.model.access.csv
@@ -1,6 +1,8 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_project_project,project.project,model_project_project,project.group_project_user,1,1,1,1
-access_account_analytic_account,account.analytic.account,analytic.model_account_analytic_account,project.group_project_user,1,1,1,1
+access_project_project,project.project,model_project_project,project.group_project_user,1,0,0,0
+access_project_project_manager,project.project,model_project_project,project.group_project_manager,1,1,1,1
+access_account_analytic_account_user,account.analytic.account,analytic.model_account_analytic_account,project.group_project_user,1,0,0,0
+access_account_analytic_account,account.analytic.account,analytic.model_account_analytic_account,project.group_project_manager,1,1,1,1
access_project_task_type_user,project.task.type user,model_project_task_type,project.group_project_user,1,1,1,1
access_project_task,project.task,model_project_task,project.group_project_user,1,1,1,1
access_project_task_work,project.task.work,model_project_task_work,project.group_project_user,1,1,1,1
@@ -8,7 +10,9 @@ access_report_project_task_user,report.project.task.user,model_report_project_ta
access_partner_task user,base.res.partner user,base.model_res_partner,project.group_project_user,1,0,0,0
access_task_on_partner,project.task on partners,model_project_task,base.group_user,1,0,0,0
access_project_on_partner,project.project on partners,model_project_project,base.group_user,1,0,0,0
-access_project_task_sale_user,project.task salesman,model_project_task,base.group_sale_salesman,1,0,0,0
+access_project_task_sale_user,project.task salesman,model_project_task,base.group_sale_salesman,1,1,1,1
+access_project_task_type_sale_user,project.task.type salesman,project.model_project_task_type,base.group_sale_salesman,1,1,1,1
+access_project_task_history_sale_user,project.task.history salesman,project.model_project_task_history,base.group_sale_salesman,1,1,1,1
access_project_project_sale_user,project.project salesman,model_project_project,base.group_sale_salesman,1,0,0,0
access_account_analytic_line_project,account.analytic.line project,analytic.model_account_analytic_line,project.group_project_manager,1,1,1,1
access_project_task_history,project.task.history project,project.model_project_task_history,project.group_project_user,1,1,1,0
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index be3a1d013b4..ca5bd9224f2 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -27,9 +27,6 @@ from tools.translate import _
import binascii
import time
import tools
-from crm import wizard
-
-wizard.mail_compose_message.SUPPORTED_MODELS.append('project.issue')
class project_issue_version(osv.osv):
_name = "project.issue.version"
@@ -50,6 +47,7 @@ class project_issue(base_stage, osv.osv):
_description = "Project Issue"
_order = "priority, create_date desc"
_inherit = ['ir.needaction_mixin', 'mail.thread']
+ _mail_compose_message = True
def _get_default_project_id(self, cr, uid, context=None):
""" Gives default project by checking if present in the context """
diff --git a/addons/project_issue/security/ir.model.access.csv b/addons/project_issue/security/ir.model.access.csv
index 3cee5d1dc8b..5799fb0b611 100644
--- a/addons/project_issue/security/ir.model.access.csv
+++ b/addons/project_issue/security/ir.model.access.csv
@@ -7,3 +7,5 @@ access_project_issue_version_project_user,project_issue_version user,model_proje
access_resource_calendar_project_manager,resource.calendar.project.manager,resource.model_resource_calendar,project.group_project_manager,1,1,1,1
access_project_issue_report_user,project.issue.report user,model_project_issue_report,project.group_project_user,1,0,0,0
access_crm_case_section,crm.case.section,crm.model_crm_case_section,project.group_project_user,1,0,0,0
+access_project_issue_salesman,project.issue,model_project_issue,base.group_sale_salesman,1,0,0,0
+access_project_issue_manager,project.issue,model_project_issue,base.group_sale_manager,1,0,0,0
diff --git a/addons/project_long_term/security/ir.model.access.csv b/addons/project_long_term/security/ir.model.access.csv
index 6ca496f691d..2a00088b8f4 100644
--- a/addons/project_long_term/security/ir.model.access.csv
+++ b/addons/project_long_term/security/ir.model.access.csv
@@ -7,3 +7,6 @@ access_resource_resource_user,user.user user,resource.model_resource_resource,pr
access_resource_calendar_leaves_user,user.calendar.leaves user,resource.model_resource_calendar_leaves,project.group_project_user,1,1,1,1
access_resource_resource_manager,user.user manager,resource.model_resource_resource,project.group_project_manager,1,1,1,1
access_project_user_allocation_manager,project.user.allocation.manager,model_project_user_allocation,project.group_project_manager,1,1,1,1
+access_project_resource_calendar_attendance,resource.calendar.attendance,resource.model_resource_calendar_attendance,project.group_project_manager,1,0,0,0
+
+
diff --git a/addons/project_timesheet/security/ir.model.access.csv b/addons/project_timesheet/security/ir.model.access.csv
index 85ccf63e19f..24143531f53 100644
--- a/addons/project_timesheet/security/ir.model.access.csv
+++ b/addons/project_timesheet/security/ir.model.access.csv
@@ -2,3 +2,5 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_report_timesheet_task_user_manager,report.timesheet.task.user.manager,model_report_timesheet_task_user,project.group_project_manager,1,1,1,1
access_hr_analytic_timesheet_user,hr.analytic.timesheet.user,hr_timesheet_sheet.model_hr_analytic_timesheet,project.group_project_user,1,1,1,0
access_hr_timesheet_sheet_sheet_user,hr.timesheet.sheet.sheet.user,hr_timesheet_sheet.model_hr_timesheet_sheet_sheet,project.group_project_user,1,1,1,0
+access_sale_order_manager,sale.order,sale.model_sale_order,project.group_project_manager,1,0,0,0
+access_sale_order_user,sale.order,sale.model_sale_order,project.group_project_user,1,0,0,0
diff --git a/addons/purchase/res_config_view.xml b/addons/purchase/res_config_view.xml
index 06b06c7bae4..1e8588bf618 100644
--- a/addons/purchase/res_config_view.xml
+++ b/addons/purchase/res_config_view.xml
@@ -12,25 +12,23 @@
or
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
diff --git a/addons/purchase/security/ir.model.access.csv b/addons/purchase/security/ir.model.access.csv
index b19a62bf5d1..c45b8a9b070 100644
--- a/addons/purchase/security/ir.model.access.csv
+++ b/addons/purchase/security/ir.model.access.csv
@@ -64,3 +64,4 @@ access_account_account_purchase_manager,account.account purchase manager,account
access_account_journal_purchase_manager,account.journal purchase manager,account.model_account_journal,purchase.group_purchase_manager,1,0,0,0
access_stock_tracking_purchase_user,stock.tracking purchase.user,stock.model_stock_tracking,purchase.group_purchase_user,1,1,1,0
access_stock_location_purchase_manager,stock.location purchase manager,stock.model_stock_location,purchase.group_purchase_manager,1,0,0,0
+access_stock_warehouse_orderpoint_manager,stock.warehouse.orderpoint,procurement.model_stock_warehouse_orderpoint,purchase.group_purchase_manager,1,0,0,0
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index b840fd3b2d3..f586305573b 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -175,7 +175,6 @@
-
diff --git a/addons/sale/security/ir.model.access.csv b/addons/sale/security/ir.model.access.csv
index 721d706a5fb..617678eccbe 100644
--- a/addons/sale/security/ir.model.access.csv
+++ b/addons/sale/security/ir.model.access.csv
@@ -57,4 +57,6 @@ access_product_pricelist_type_sale_manager,product.pricelist.type salemanager,pr
access_product_pricelist_sale_manager,product.pricelist salemanager,product.model_product_pricelist,base.group_sale_manager,1,1,1,1
access_product_group_res_partner_sale_manager,res_partner group_sale_manager,base.model_res_partner,base.group_sale_manager,1,1,1,0
access_product_pricelist_version_sale_manager,product.pricelist.version sale_manager,product.model_product_pricelist_version,base.group_sale_manager,1,1,1,1
-access_account_invoice_report_salesman,account.invoice.report salesman,account.model_account_invoice_report,base.group_sale_salesman,1,0,0,0
\ No newline at end of file
+access_account_invoice_report_salesman,account.invoice.report salesman,account.model_account_invoice_report,base.group_sale_salesman,1,0,0,0
+access_stock_warehouse_orderpoint_sale_salesman,stock.warehouse.orderpoint,procurement.model_stock_warehouse_orderpoint,base.group_sale_salesman,1,0,0,0
+access_account_move_line_salesman,account.move.line invoice,account.model_account_move_line,base.group_sale_salesman,1,0,0,0
diff --git a/addons/sale_crm/i18n/ja.po b/addons/sale_crm/i18n/ja.po
index 90dee9e022a..2c6e158a939 100644
--- a/addons/sale_crm/i18n/ja.po
+++ b/addons/sale_crm/i18n/ja.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
-"PO-Revision-Date: 2012-06-08 09:02+0000\n"
-"Last-Translator: Tomomi Mengelberg \n"
+"PO-Revision-Date: 2012-07-06 21:31+0000\n"
+"Last-Translator: Akira Hiyama \n"
"Language-Team: Japanese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-06-09 05:39+0000\n"
-"X-Generator: Launchpad (build 15376)\n"
+"X-Launchpad-Export-Date: 2012-07-07 05:13+0000\n"
+"X-Generator: Launchpad (build 15558)\n"
#. module: sale_crm
#: field:sale.order,categ_id:0
@@ -105,13 +105,13 @@ msgstr "オポチュニティ成立"
#. module: sale_crm
#: view:board.board:0
msgid "My Planned Revenues by Stage"
-msgstr "状況による私の計画売上高"
+msgstr "段階別私の計画売上高"
#. module: sale_crm
#: code:addons/sale_crm/wizard/crm_make_sale.py:110
#, python-format
msgid "Opportunity '%s' is converted to Quotation."
-msgstr "オポチュニティの'%s' は、見積りへ変わりました。"
+msgstr "オポチュニティの'%s' は、見積に変換されました。"
#. module: sale_crm
#: view:sale.order:0
diff --git a/addons/sale_mrp/security/ir.model.access.csv b/addons/sale_mrp/security/ir.model.access.csv
index a0f117b61e5..4f0f0f8072c 100644
--- a/addons/sale_mrp/security/ir.model.access.csv
+++ b/addons/sale_mrp/security/ir.model.access.csv
@@ -2,3 +2,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_mrp_bom_user,mrp.bom,mrp.model_mrp_bom,base.group_sale_salesman,1,0,0,0
access_sale_order_manufacturing_user,sale.order manufacturing.user,sale.model_sale_order,mrp.group_mrp_user,1,1,0,0
access_sale_order_line_manufacturing_user,sale.order.line manufacturing.user,sale.model_sale_order_line,mrp.group_mrp_user,1,1,0,0
+access_mrp_bom_revision_salesman,mrp.bom.revision,mrp.model_mrp_bom_revision,base.group_sale_salesman,1,0,0,0
diff --git a/addons/stock/res_config_view.xml b/addons/stock/res_config_view.xml
index 64c151af33c..f6638f22002 100644
--- a/addons/stock/res_config_view.xml
+++ b/addons/stock/res_config_view.xml
@@ -13,38 +13,36 @@
or
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
-
+
+
+
+
diff --git a/addons/stock/security/ir.model.access.csv b/addons/stock/security/ir.model.access.csv
index 593dc7eb9f3..dd3e791d41a 100644
--- a/addons/stock/security/ir.model.access.csv
+++ b/addons/stock/security/ir.model.access.csv
@@ -22,10 +22,10 @@ access_stock_production_lot_user,stock.production.lot user,model_stock_productio
access_stock_production_lot_revision,stock.production.lot.revision,model_stock_production_lot_revision,stock.group_stock_user,1,1,1,1
access_stock_move_manager,stock.move manager,model_stock_move,stock.group_stock_manager,1,1,0,0
access_stock_move_user,stock.move user,model_stock_move,stock.group_stock_user,1,0,0,0
-access_stock_inventory_user,stock.inventory user,model_stock_inventory,stock.group_stock_user,1,1,1,1
-access_stock_inventory_manager,stock.inventory manager,model_stock_inventory,stock.group_stock_manager,1,0,0,0
-access_stock_inventory_line_user,stock.inventory.line user,model_stock_inventory_line,stock.group_stock_user,1,1,1,1
-access_stock_inventory_line_manager,stock.inventory.line manager,model_stock_inventory_line,stock.group_stock_manager,1,0,0,0
+access_stock_inventory_user,stock.inventory user,model_stock_inventory,stock.group_stock_user,1,0,0,0
+access_stock_inventory_manager,stock.inventory manager,model_stock_inventory,stock.group_stock_manager,1,1,1,1
+access_stock_inventory_line_user,stock.inventory.line user,model_stock_inventory_line,stock.group_stock_user,1,0,0,0
+access_stock_inventory_line_manager,stock.inventory.line manager,model_stock_inventory_line,stock.group_stock_manager,1,1,1,1
access_stock_report_prodlots,stock.report.prodlots,model_stock_report_prodlots,stock.group_stock_manager,1,0,0,0
access_stock_location_sale_manager,stock.location sale manager,model_stock_location,base.group_sale_manager,1,0,0,0
access_stock_location_stock_manager,stock.location stock manager,model_stock_location,stock.group_stock_manager,1,0,0,0
diff --git a/addons/survey/i18n/ja.po b/addons/survey/i18n/ja.po
index b3670aba55e..66630dfe697 100644
--- a/addons/survey/i18n/ja.po
+++ b/addons/survey/i18n/ja.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n"
+"X-Launchpad-Export-Date: 2012-07-07 05:13+0000\n"
"X-Generator: Launchpad (build 15558)\n"
#. module: survey
diff --git a/addons/web_livechat/i18n/mn.po b/addons/web_livechat/i18n/mn.po
new file mode 100644
index 00000000000..9ab220033ae
--- /dev/null
+++ b/addons/web_livechat/i18n/mn.po
@@ -0,0 +1,28 @@
+# Mongolian translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-02-08 01:37+0100\n"
+"PO-Revision-Date: 2012-07-08 18:51+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Mongolian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-07-09 04:51+0000\n"
+"X-Generator: Launchpad (build 15558)\n"
+
+#. module: web_livechat
+#: sql_constraint:publisher_warranty.contract:0
+msgid "That contract is already registered in the system."
+msgstr "Энэ гэрээг системд өмнө нь бүртгэгдсэн байна."
+
+#. module: web_livechat
+#: model:ir.model,name:web_livechat.model_publisher_warranty_contract
+msgid "publisher_warranty.contract"
+msgstr "publisher_warranty.contract"