diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 8be310245ac..709009f8481 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -873,7 +873,7 @@
-
+
-
+
Project Manager Dashboardboard.board
@@ -82,7 +82,7 @@
menu
-
+
diff --git a/addons/board_project/board_project_view.xml b/addons/board_project/board_project_view.xml
index ebb5f6c86b7..e602b54d982 100644
--- a/addons/board_project/board_project_view.xml
+++ b/addons/board_project/board_project_view.xml
@@ -22,6 +22,23 @@
+
+
+ project.task.tree
+ project.task
+ tree
+
+
+
+
+
+
+
+
+
+
+
+ My Open Tasksproject.task
@@ -47,6 +64,25 @@
[('type','=','Project')]
+
+
+
+ Messages
+ project.message
+ form
+ tree,form
+
+
+
+
+ Project's Members
+ resource.resource
+ form
+ tree,form
+ [('resource_type','=','user')]
+
+
+
board.project.formboard.board
@@ -56,12 +92,12 @@
-
-
-
+
+
+
-
-
+
+
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 @@
Sales
+
+ crm.phonecall
+ form
+ tree,calendar
+
+ [('user_id','=',uid)]
+
+
+
+
+
+ crm.meeting
+ tree,form,gantt
+
+ [('user_id','=',uid)]
+ [('date','>=',time.strftime('%Y-%m-%d')),('date','<=',(datetime.datetime.today() + datetime.timedelta(days=2)).strftime('%Y-%m-%d'))]
+
+ board.sales.manager.formboard.board
@@ -14,13 +32,16 @@
-
-
+
+
+
-
-
+
+
+
+
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 ().
+#
+# 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 .
+#
+##############################################################################
+
+
+# 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 ().
+#
+# 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 .
+#
+##############################################################################
+
+
+{
+ '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 @@
+
+
+
+
+ Warehouse
+
+
+
+
+ board.warehouse.form
+ board.board
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Warehouse Dashboard
+ board.board
+ form
+ form
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/caldav/caldav.py b/addons/caldav/caldav.py
index 9b24c145a1b..4bd0e496303 100644
--- a/addons/caldav/caldav.py
+++ b/addons/caldav/caldav.py
@@ -31,6 +31,7 @@ import pooler
import pytz
import re
import time
+import tools
months = {
1:"January", 2:"February", 3:"March", 4:"April", \
@@ -65,6 +66,108 @@ def _links_get(self, cr, uid, context={}):
res = obj.read(cr, uid, ids, ['object', 'name'], context)
return [(r['object'], r['name']) for r in res]
+html_invitation = """
+
+
+
+%(name)s
+
+
+
+
+
Hello,
+
+
+
You are invited for OpenERP Event.
+
+
+
Below are the details of event :
+
+
+
+
+
+
+
%(name)s
+
+
+
+
+
+
+
+
Start Date
+
+
: %(start_date)s
+
+
End Date
+
+
: %(end_date)s
+
+
+
Description
+
: %(description)s
+
+
+
+
Location
+
+
: %(location)s
+
+
+
+
Event Attendees
+
+
+
+
: %(attendees)s
+
+
+
+
Are you coming?
+
+
+
+ YES
+
+ NO
+
+ MAYBE
+
+
+
+
+
+
+
+
+
+
Note: If you are interested please reply this
+ mail and keep only your response from options YES, NO
+ and MAYBE.
+
+
+
From:
+
+
+
%(user)s
+
+
+
--------------------------
+
+
+
%(sign)s
+
+
+
+
+"""
+
class calendar_attendee(osv.osv):
_name = 'calendar.attendee'
_description = 'Attendee information'
@@ -82,8 +185,11 @@ class calendar_attendee(osv.osv):
result = {}
def get_delegate_data(user):
- email = user.address_id and user.address_id.email or ''
- return self._get_address(user.name, email)
+ if not user.address_id.email:
+ raise osv.except_osv(_('Error!'), \
+ ("User does not have an email Address"))
+ email = (user.address_id and ('MAILTO:' + user.address_id.email)) or ''
+ return email
for attdata in self.browse(cr, uid, ids, context=context):
id = attdata.id
@@ -112,12 +218,11 @@ class calendar_attendee(osv.osv):
fromdata = map(get_delegate_data, attdata.del_from_user_ids)
result[id][name] = ', '.join(fromdata)
if name == 'event_date':
- # TO fix date for project task
if attdata.ref:
model, res_id = tuple(attdata.ref.split(','))
model_obj = self.pool.get(model)
obj = model_obj.read(cr, uid, res_id, ['date'])[0]
- result[id][name] = None#obj['date']
+ result[id][name] = obj.get('date')
else:
result[id][name] = None
if name == 'event_end_date':
@@ -125,7 +230,7 @@ class calendar_attendee(osv.osv):
model, res_id = tuple(attdata.ref.split(','))
model_obj = self.pool.get(model)
obj = model_obj.read(cr, uid, res_id, ['date_deadline'])[0]
- result[id][name] = obj['date_deadline']
+ result[id][name] = obj.get('date_deadline')
else:
result[id][name] = None
if name == 'sent_by_uid':
@@ -133,9 +238,13 @@ class calendar_attendee(osv.osv):
model, res_id = tuple(attdata.ref.split(','))
model_obj = self.pool.get(model)
obj = model_obj.read(cr, uid, res_id, ['user_id'])[0]
- result[id][name] = obj['user_id']
+ result[id][name] = obj.get('user_id')
else:
result[id][name] = uid
+ if name == 'language':
+ user_obj = self.pool.get('res.users')
+ lang = user_obj.read(cr, uid, uid, ['context_lang']) ['context_lang']
+ result[id][name] = lang.replace('_', '-')
return result
def _links_get(self, cr, uid, context={}):
@@ -182,15 +291,14 @@ request was delegated to"),
'del_from_user_ids': fields.many2many('res.users', 'att_del_from_user_rel', \
'attendee_id', 'user_id', 'Users'),
'sent_by': fields.function(_compute_data, method=True, string='Sent By', type="char", multi='sent_by', store=True, size=124, help="Specify the user that is acting on behalf of the calendar user"),
- 'sent_by_uid': fields.many2one('res.users', 'Sent by User'),
+ 'sent_by_uid': fields.function(_compute_data, method=True, string='Sent By User', type="many2one", relation="res.users", multi='sent_by_uid'),
'cn': fields.function(_compute_data, method=True, string='Common name', type="char", size=124, multi='cn', store=True),
'dir': fields.char('URI Reference', size=124, help="Reference to the URI that points to the directory information corresponding to the attendee."),
- 'language': fields.selection(_lang_get, 'Language',
- help="To specify the language for text values in a property or property parameter."),
+ 'language': fields.function(_compute_data, method=True, string='Language', type="selection", selection=_lang_get, multi='language', store=True, help="To specify the language for text values in a property or property parameter."),
'user_id': fields.many2one('res.users', 'User'),
'partner_address_id': fields.many2one('res.partner.address', 'Contact'),
'partner_id':fields.related('partner_address_id', 'partner_id', type='many2one', relation='res.partner', string='Partner'),
- 'email': fields.char('Email', size=124),
+ 'email': fields.char('Email', size=124, required=True),
'event_date': fields.function(_compute_data, method=True, string='Event Date', type="datetime", multi='event_date'),
'event_end_date': fields.function(_compute_data, method=True, string='Event End Date', type="datetime", multi='event_end_date'),
'ref': fields.reference('Document Ref', selection=_links_get, size=128),
@@ -199,6 +307,30 @@ request was delegated to"),
_defaults = {
'state': lambda *x: 'needs-action',
}
+
+ response_re = response_re = re.compile("Are you coming\?.*(YES|NO|MAYBE).*", re.UNICODE)
+
+ def msg_new(self, cr, uid, msg):
+ return False
+
+ def msg_act_get(self, msg):
+ mailgate_obj = self.pool.get('mail.gateway')
+ body = mailgate_obj.msg_body_get(msg)
+ actions = {}
+ res = self.response_re.findall(body['body'])
+ if res:
+ actions['state'] = res[0]
+ return actions
+
+ def msg_update(self, cr, uid, ids, msg, data={}, default_act='None'):
+ msg_actions = self.msg_act_get(msg)
+ if msg_actions.get('state'):
+ if msg_actions['state'] in ['YES', 'NO', 'MAYBE']:
+ mapping = {'YES': 'accepted', 'NO': 'declined', 'MAYBE': 'tentative'}
+ status = mapping[msg_actions['state']]
+ print 'Got response for invitation id: %s as %s' % (ids, status)
+ self.write(cr, uid, ids, {'state': status})
+ return True
def onchange_user_id(self, cr, uid, ids, user_id, *args, **argv):
if not user_id:
@@ -224,7 +356,7 @@ request was delegated to"),
vals['cn'] = vals.get("cn")
res = super(calendar_attendee, self).create(cr, uid, vals, context)
return res
-
+
calendar_attendee()
class res_alarm(osv.osv):
@@ -403,13 +535,13 @@ or contains the text to be used for display"""),
%s
""" % (alarm.name, alarm.trigger_date, alarm.description, \
- alarm.user_id.name, alarm.user_id.sign)
+ alarm.user_id.name, alarm.user_id.signature)
mail_to = [alarm.user_id.address_id.email]
for att in alarm.attendee_ids:
mail_to.append(att.user_id.address_id.email)
tools.email_send(
- tools.confirm['from_mail'],
+ tools.config.get('email_from',False),
mail_to,
sub,
body
@@ -426,7 +558,7 @@ class calendar_event(osv.osv):
__attribute__ = {}
def _tz_get(self,cr,uid, context={}):
- return [(x, x) for x in pytz.all_timezones]
+ return [(x.lower(), x) for x in pytz.all_timezones]
def onchange_rrule_type(self, cr, uid, ids, rtype, *args, **argv):
if rtype == 'none' or not rtype:
@@ -501,9 +633,7 @@ rule or repeating pattern for anexception to a recurrence set"),
event_data = self.read(cr, uid, ids)
event_obj = self.pool.get('basic.calendar.event')
ical = event_obj.export_cal(cr, uid, event_data, context={'model': self._name})
- cal_val = ical.serialize()
- cal_val = cal_val.replace('"', '').strip()
- return cal_val
+ return ical.serialize()
def import_cal(self, cr, uid, data, data_id=None, context={}):
event_obj = self.pool.get('basic.calendar.event')
@@ -1001,9 +1131,7 @@ class res_users(osv.osv):
status = 'busy'
res.update({user_id:status})
- #TOCHECK: Delegrated Event
- #cr.execute("SELECT user_id,'busy' FROM att_del_to_user_rel where user_id = ANY(%s)", (ids,))
- #res.update(cr.dictfetchall())
+ #TOCHECK: Delegrated Event
for user_id in ids:
if user_id not in res:
res[user_id] = 'free'
@@ -1061,8 +1189,37 @@ class invite_attendee_wizard(osv.osv_memory):
elif type == 'external' and datas.get('email'):
vals.update({'email': datas['email']})
+ company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.name
+ att_infos = []
+ for att in res_obj.attendee_ids:
+ att_infos.append(((att.user_id and att.user_id.name) or \
+ (att.partner_id and att.partner_id.name) or \
+ att.email) + ' - Status: ' + att.state.title())
att_id = att_obj.create(cr, uid, vals)
obj.write(cr, uid, res_obj.id, {'attendee_ids': [(4, att_id)]})
+ sign = res_obj.user_id and res_obj.user_id.signature or ''
+ sign = ' '.join(sign and sign.split('\n') or [])
+ sub = '[%s Invitation][%d] %s' % (company, att_id, res_obj.name)
+ body_vals = {'name': res_obj.name,
+ 'start_date': res_obj.date,
+ 'end_date': res_obj.date_deadline or None,
+ 'description': res_obj.description,
+ 'location': res_obj.location or '-',
+ 'attendees': ' '.join(att_infos), #Todo
+ 'user': res_obj.user_id and res_obj.user_id.name or 'OpenERP User',
+ 'sign': sign
+ }
+ body = html_invitation % body_vals
+ mail_to = [datas['email']]
+ tools.email_send(
+ tools.config.get('email_from',False),
+ mail_to,
+ sub,
+ body,
+ subtype='html',
+ reply_to=tools.config.get('email_from',False)
+ )
+
elif type == 'partner':
add_obj = self.pool.get('res.partner.address')
for contact in add_obj.browse(cr, uid, datas['contact_ids']):
diff --git a/addons/caldav/caldav_view.xml b/addons/caldav/caldav_view.xml
index 559c45485cc..2d3a59892c7 100644
--- a/addons/caldav/caldav_view.xml
+++ b/addons/caldav/caldav_view.xml
@@ -65,6 +65,8 @@
+
+
@@ -93,28 +95,23 @@
-
-
+
+
-
+ calendar.attendee.treecalendar.attendeetree
@@ -126,32 +123,9 @@
-
+
-
- My Invitations
- ir.actions.act_window
- calendar.attendee
- form
- tree,form
-
- [('user_id', '=', uid)]
- {'default_sent_by_uid': uid}
-
-
-
-
- tree
-
-
-
-
-
- form
-
-
- res.alarm.form
@@ -251,7 +225,7 @@
-
+ Custom Ruleir.actions.act_windowcalendar.custom.rrule
@@ -260,9 +234,14 @@
new
-
+
+
+
+
+
+
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index d9d4c6e6c9d..32035d06973 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -313,7 +313,7 @@ class crm_case(osv.osv):
_columns = {
'id': fields.integer('ID', readonly=True),
- 'name': fields.char('Description',size=64,required=True),
+ 'name': fields.char('Description', size=1024, required=True),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the case without removing it."),
'description': fields.text('Your action'),
'section_id': fields.many2one('crm.case.section', 'Section', select=True, help='Section to which Case belongs to. Define Responsible user and Email account for mail gateway.'),
@@ -406,6 +406,12 @@ class crm_case(osv.osv):
return True
+ def onchange_categ_id(self, cr, uid, ids, categ, context={}):
+ if not categ:
+ return {'value':{}}
+ cat = self.pool.get('crm.case.categ').browse(cr, uid, categ, context).probability
+ return {'value':{'probability':cat}}
+
def onchange_case_id(self, cr, uid, ids, case_id, name, partner_id, context={}):
if not case_id:
return {}
diff --git a/addons/crm/crm_claim.py b/addons/crm/crm_claim.py
index 5e83ce1c367..d9296c41352 100644
--- a/addons/crm/crm_claim.py
+++ b/addons/crm/crm_claim.py
@@ -19,16 +19,9 @@
#
##############################################################################
-import tools
from osv import fields, osv
-import os
-import pooler
-import netsvc
-from tools.translate import _
import crm
-
-
class crm_claim(osv.osv):
_name = "crm.claim"
_description = "Claim Cases"
@@ -59,12 +52,7 @@ class crm_claim(osv.osv):
_defaults = {
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
}
- def onchange_categ_id(self, cr, uid, ids, categ, context={}):
- if not categ:
- return {'value':{}}
- cat = self.pool.get('crm.case.categ').browse(cr, uid, categ, context).probability
- return {'value':{'probability':cat}}
-
+
crm_claim()
diff --git a/addons/crm/crm_claims_view.xml b/addons/crm/crm_claims_view.xml
index 17dd87caa50..5f7e9b07fdc 100644
--- a/addons/crm/crm_claims_view.xml
+++ b/addons/crm/crm_claims_view.xml
@@ -8,24 +8,24 @@
Claim Categoriescrm.case.categform
-
+ [('object_id.model', '=', 'crm.claim')]
- {'object_id':'crm.claim'}
+ {'object_id':'crm.claim'}
# ------------------------------------------------------
# Stages
- # ------------------------------------------------------
+ # ------------------------------------------------------
Claim Stagescrm.case.stageform[('object_id.model', '=', 'crm.claim')]
- {'object_id':'crm.claim'}
+ {'object_id':'crm.claim'}
-
+
CRM - Claims Tree
@@ -169,7 +169,7 @@
-
+
CRM - Claims Searchcrm.claim
@@ -198,12 +198,12 @@
-
+
-
+ />
+
diff --git a/addons/crm/crm_fund_view.xml b/addons/crm/crm_fund_view.xml
index 4fec4afb976..96b0ac51ad9 100644
--- a/addons/crm/crm_fund_view.xml
+++ b/addons/crm/crm_fund_view.xml
@@ -9,9 +9,9 @@
Fundraising Categoriescrm.case.categform
-
- [('object_id.model', '=', 'crm.fundraising')]
- {'object_id':'crm.fundraising'}
+
+ [('object_id.model', '=', 'crm.fundraising')]
+ {'object_id':'crm.fundraising'}
# ------------------------------------------------------
@@ -23,10 +23,10 @@
form[('object_id.model', '=', 'crm.fundraising')]
- {'object_id':'crm.fundraising'}
+ {'object_id':'crm.fundraising'}
-
+
# ------------------------------------------------------
# Fund Raising
# ------------------------------------------------------
@@ -194,12 +194,12 @@
-
+
-
+ />
+
diff --git a/addons/crm/crm_fundraising.py b/addons/crm/crm_fundraising.py
index 046065e61f2..c04b40c2c63 100644
--- a/addons/crm/crm_fundraising.py
+++ b/addons/crm/crm_fundraising.py
@@ -19,23 +19,9 @@
#
##############################################################################
-import time
-import re
-import os
-
-import mx.DateTime
-import base64
-
-from tools.translate import _
-
-import tools
from osv import fields,osv,orm
-from osv.orm import except_orm
-
import crm
-
-
class crm_fundraising(osv.osv):
_name = "crm.fundraising"
_description = "Fund Raising Cases"
@@ -67,11 +53,5 @@ class crm_fundraising(osv.osv):
_defaults = {
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
}
- def onchange_categ_id(self, cr, uid, ids, categ, context={}):
- if not categ:
- return {'value':{}}
- cat = self.pool.get('crm.case.categ').browse(cr, uid, categ, context).probability
- return {'value':{'probability':cat}}
-
crm_fundraising()
diff --git a/addons/crm/crm_helpdesk.py b/addons/crm/crm_helpdesk.py
index ca4bf47006b..6ffd71d351f 100644
--- a/addons/crm/crm_helpdesk.py
+++ b/addons/crm/crm_helpdesk.py
@@ -19,23 +19,9 @@
#
##############################################################################
-import time
-import re
-import os
-
-import mx.DateTime
-import base64
-
-from tools.translate import _
-
-import tools
from osv import fields,osv,orm
-from osv.orm import except_orm
-
import crm
-
-
class crm_helpdesk(osv.osv):
_name = "crm.helpdesk"
_description = "Helpdesk Cases"
@@ -57,12 +43,7 @@ class crm_helpdesk(osv.osv):
'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.helpdesk')]"),
'duration': fields.float('Duration'),
}
- def onchange_categ_id(self, cr, uid, ids, categ, context={}):
- if not categ:
- return {'value':{}}
- cat = self.pool.get('crm.case.categ').browse(cr, uid, categ, context).probability
- return {'value':{'probability':cat}}
-
+
crm_helpdesk()
diff --git a/addons/crm/crm_helpdesk_menu.xml b/addons/crm/crm_helpdesk_menu.xml
index 270237aa698..d3bce9dcb2e 100644
--- a/addons/crm/crm_helpdesk_menu.xml
+++ b/addons/crm/crm_helpdesk_menu.xml
@@ -10,7 +10,7 @@
tree,calendar,form
-
+
diff --git a/addons/crm/crm_helpdesk_view.xml b/addons/crm/crm_helpdesk_view.xml
index af702600e28..1f0877946c7 100644
--- a/addons/crm/crm_helpdesk_view.xml
+++ b/addons/crm/crm_helpdesk_view.xml
@@ -154,5 +154,42 @@
+
+
+ CRM - Helpdesk Search
+ crm.helpdesk
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index 9c6ae7bffa7..04a5a09da3d 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -19,22 +19,9 @@
#
##############################################################################
-import time
-import re
-import os
-
-import mx.DateTime
-import base64
-
-from tools.translate import _
-
-import tools
from osv import fields,osv,orm
-from osv.orm import except_orm
-
import crm
-
class crm_opportunity(osv.osv):
_name = "crm.opportunity"
_description = "Opportunity Cases"
@@ -65,13 +52,7 @@ class crm_lead(osv.osv):
'som': fields.many2one('res.partner.som', 'State of Mind', help="The minds states allow to define a value scale which represents" \
"the partner mentality in relation to our services.The scale has" \
"to be created with a factor for each level from 0 (Very dissatisfied) to 10 (Extremely satisfied)."),
-
'opportunity_id': fields.many2one ('crm.opportunity', 'Opportunity'),
}
- def onchange_categ_id(self, cr, uid, ids, categ, context={}):
- if not categ:
- return {'value':{}}
- cat = self.pool.get('crm.case.categ').browse(cr, uid, categ, context).probability
- return {'value':{'probability':cat}}
crm_lead()
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 975bb764ce7..2c5024ebd0f 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -2,23 +2,23 @@
-
-
- # ------------------------------------------------------
+
+
+ # ------------------------------------------------------
# Stage
- # ------------------------------------------------------
+ # ------------------------------------------------------
Lead Stagescrm.case.stageform[('object_id.model', '=', 'crm.lead')]
- {'object_id':'crm.lead'}
+ {'object_id':'crm.lead'}
# ------------------------------------------------------
# Leads
- # ------------------------------------------------------
+ # ------------------------------------------------------
CRM - Leads Form
@@ -29,9 +29,9 @@
-
+
-
+
@@ -53,7 +53,7 @@
-
+
-
+
+ />
diff --git a/addons/crm/crm_meeting_data.xml b/addons/crm/crm_meeting_data.xml
index 09566903d1c..a724d185e26 100644
--- a/addons/crm/crm_meeting_data.xml
+++ b/addons/crm/crm_meeting_data.xml
@@ -31,7 +31,7 @@
- meeting
+ Meetings
@@ -102,6 +102,7 @@
field
+ {'1': '1', '2': '2', '3': '2','4': '2', '5': '3', '6': '4', '7': '4', '8': '4', '9': '5'}
diff --git a/addons/crm/crm_meeting_menu.xml b/addons/crm/crm_meeting_menu.xml
index 678bc72a27d..34d03979897 100644
--- a/addons/crm/crm_meeting_menu.xml
+++ b/addons/crm/crm_meeting_menu.xml
@@ -42,12 +42,6 @@
-
-
-
-
+
+ Meeting Invitations
+ ir.actions.act_window
+ calendar.attendee
+ form
+ tree,form
+
+ [('ref','like','crm.meeting,')]
+ {'default_sent_by_uid': uid}
+
+
+
+
+
Next Meetingscrm.meeting
diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml
index 194bade3477..cd3cce574d5 100644
--- a/addons/crm/crm_meeting_view.xml
+++ b/addons/crm/crm_meeting_view.xml
@@ -9,11 +9,11 @@
Meeting Categoriescrm.case.categform
-
+ [('object_id.model', '=', 'crm.meeting')]
- {'object_id':'crm.meeting'}
+ {'object_id':'crm.meeting'}
-
+
# ------------------------------------------------------
# Meetings
@@ -43,11 +43,11 @@
colspan="1" />
-
+
@@ -88,7 +88,7 @@
-
+
@@ -133,10 +133,10 @@
calendar
-
+
-
+
@@ -167,16 +167,16 @@
-
+
-
+ />
+
-
+
diff --git a/addons/crm/crm_opportunity.py b/addons/crm/crm_opportunity.py
index 35a85cad6ee..4e2e6902f7f 100644
--- a/addons/crm/crm_opportunity.py
+++ b/addons/crm/crm_opportunity.py
@@ -19,22 +19,9 @@
#
##############################################################################
-import time
-import re
-import os
-
-import mx.DateTime
-import base64
-
-from tools.translate import _
-
-import tools
from osv import fields,osv,orm
-from osv.orm import except_orm
-
import crm
-
class crm_opportunity(osv.osv):
_name = "crm.opportunity"
_description = "Opportunity Cases"
@@ -58,11 +45,6 @@ class crm_opportunity(osv.osv):
'date_closed': fields.datetime('Closed', readonly=True),
'phonecall_id':fields.many2one ('crm.phonecall', 'Phonecall'),
}
- def onchange_categ_id(self, cr, uid, ids, categ, context={}):
- if not categ:
- return {'value':{}}
- cat = self.pool.get('crm.case.categ').browse(cr, uid, categ, context).probability
- return {'value':{'probability':cat}}
crm_opportunity()
diff --git a/addons/crm/crm_opportunity_view.xml b/addons/crm/crm_opportunity_view.xml
index a19eb2f3587..0268ffc0b3c 100644
--- a/addons/crm/crm_opportunity_view.xml
+++ b/addons/crm/crm_opportunity_view.xml
@@ -10,14 +10,14 @@
Opportunity Categoriescrm.case.categform
-
+ [('object_id.model', '=', 'crm.opportunity')]
- {'object_id':'crm.opportunity'}
+ {'object_id':'crm.opportunity'}
- # ------------------------------------------------------
+ # ------------------------------------------------------
# Stage
- # ------------------------------------------------------
+ # ------------------------------------------------------
Opportunity Stagescrm.case.stage
@@ -29,7 +29,7 @@
# ------------------------------------------------------
# Opportunities
- # ------------------------------------------------------
+ # ------------------------------------------------------
@@ -52,9 +52,9 @@
-
+
+ name="%(wizard_crm_opportunity_reschedule_phone_call)d" icon="gtk-redo" type="action" />
@@ -172,7 +172,7 @@
-
+
CRM - Opportunities Search
@@ -204,11 +204,11 @@
-
+
-
+ help="My section"/>
+
diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py
index 4c548af86e1..1c3bf015489 100644
--- a/addons/crm/crm_phonecall.py
+++ b/addons/crm/crm_phonecall.py
@@ -19,19 +19,9 @@
#
##############################################################################
-from dateutil.rrule import *
from osv import fields, osv
-import datetime
-import base64
-import re
-import time
-import tools
-
-from tools.translate import _
-
import crm
-
class crm_phonecall(osv.osv):
_name = "crm.phonecall"
_description = "Phonecall Cases"
@@ -53,11 +43,6 @@ class crm_phonecall(osv.osv):
'date_closed': fields.datetime('Closed', readonly=True),
'opportunity_id':fields.many2one ('crm.opportunity', 'Opportunity'),
}
- def onchange_categ_id(self, cr, uid, ids, categ, context={}):
- if not categ:
- return {'value':{}}
- cat = self.pool.get('crm.case.categ').browse(cr, uid, categ, context).probability
- return {'value':{'probability':cat}}
-
+
crm_phonecall()
diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml
index 791f0ebeaee..1294cabc364 100644
--- a/addons/crm/crm_phonecall_view.xml
+++ b/addons/crm/crm_phonecall_view.xml
@@ -1,20 +1,20 @@
-
+
# ------------------------------------------------------
# Phonecall Categories
# ------------------------------------------------------
-
+
Phonecall Categoriescrm.case.categform
- [('object_id.model', '=', 'crm.phonecall')]
+ [('object_id.model', '=', 'crm.phonecall')]{'object_id':'crm.phonecall'}
-
+
# ------------------------------------------------------
# Fund Stage
@@ -24,11 +24,11 @@
crm.case.stageform
- [('object_id.model', '=', 'crm.phonecall')]
+ [('object_id.model', '=', 'crm.phonecall')]{'object_id':'crm.phonecall'}
-
+
# ------------------------------------------------------
# Phone Calls
# ------------------------------------------------------
@@ -45,7 +45,7 @@
-
+
@@ -62,12 +62,12 @@
-
+
-
+
-
+
@@ -84,25 +84,25 @@
-
+
-
+
-
-
-
+
+
+
-
+
-
+
@@ -148,17 +148,6 @@
-
-
-
-
+
-
+ help="My section"/>
+
diff --git a/addons/crm/crm_report_view.xml b/addons/crm/crm_report_view.xml
index df76994d9b3..04e4f235988 100644
--- a/addons/crm/crm_report_view.xml
+++ b/addons/crm/crm_report_view.xml
@@ -68,7 +68,7 @@
-
+
diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml
index 2c8dc9209a9..1c9a7aa2bfd 100644
--- a/addons/crm/crm_view.xml
+++ b/addons/crm/crm_view.xml
@@ -48,9 +48,9 @@
- # ------------------------------------------------------
+ # ------------------------------------------------------
# Stage
- # ------------------------------------------------------
+ # ------------------------------------------------------
crm.case.stage.treecrm.case.stage
@@ -92,7 +92,7 @@
-
+
@@ -117,7 +117,7 @@
-
+
@@ -442,11 +442,11 @@
-
+
-
+
Casescrm.case
@@ -507,8 +507,8 @@
-
-
+
+
diff --git a/addons/crm/i18n/es.po b/addons/crm/i18n/es.po
index 2440d434cc2..85c3f0e87cf 100644
--- a/addons/crm/i18n/es.po
+++ b/addons/crm/i18n/es.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-01-17 17:11+0000\n"
-"Last-Translator: Jaerhigo \n"
+"PO-Revision-Date: 2010-02-02 02:48+0000\n"
+"Last-Translator: Carlos Alberto Ospina \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-01-18 04:44+0000\n"
+"X-Launchpad-Export-Date: 2010-02-03 04:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
#: field:crm.email.add.cc,name:0
msgid "Send to"
-msgstr ""
+msgstr "Enviar a"
#. module: crm
#: help:crm.meeting,exdate:0
@@ -33,16 +33,18 @@ msgstr ""
msgid ""
"Check this if you want the rule to send an email to the responsible person."
msgstr ""
+"Revise esto si quiere la regla para enviar un correo a la persona "
+"responsable."
#. module: crm
#: view:crm.meeting:0
msgid "Title"
-msgstr ""
+msgstr "Título"
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_categ2
msgid "Cases by section and category2"
-msgstr "Casos segmentados por sección y categoría 2"
+msgstr "Casos por sección y categoria2"
#. module: crm
#: wizard_field:crm.lead.partner_create,init,close:0
@@ -55,22 +57,22 @@ msgstr ""
#: view:crm.opportunity:0
#: view:crm.phonecall:0
msgid " 7 Days "
-msgstr ""
+msgstr " 7 días "
#. module: crm
#: help:crm.menu.config_wizard,helpdesk:0
msgid "Manages an Helpdesk service."
-msgstr ""
+msgstr "Gestiona un servicio de mesa de ayuda"
#. module: crm
#: view:crm.job:0
msgid "Pending Jobs"
-msgstr ""
+msgstr "Trabajos pendientes"
#. module: crm
#: field:crm.case.rule,trg_state_to:0
msgid "Button Pressed"
-msgstr "Botón presionado"
+msgstr "Botón oprimido"
#. module: crm
#: view:crm.case:0
@@ -85,7 +87,7 @@ msgstr "Requerimiento de trabajo a finalizar"
#. module: crm
#: field:crm.case.stage,name:0
msgid "Stage Name"
-msgstr ""
+msgstr "Nombre de etapa"
#. module: crm
#: view:crm.case:0
@@ -109,12 +111,12 @@ msgstr ""
#. module: crm
#: model:ir.ui.menu,name:crm.menu_hr
msgid "Human Resources"
-msgstr ""
+msgstr "Recursos humanos"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_categ2
msgid "Cases by Opportunities, Category and Type"
-msgstr ""
+msgstr "Casos por oportunidades, categoria y tipo"
#. module: crm
#: help:crm.menu.config_wizard,claims:0
@@ -122,22 +124,24 @@ msgid ""
"Manages the supplier and customers claims, including your corrective or "
"preventive actions."
msgstr ""
+"Gestiona los reclamos de proveedores y clientes, incluyendon sus acciones "
+"prevenivas ó correctivas."
#. module: crm
#: view:crm.fundraising:0
msgid "Amount"
-msgstr ""
+msgstr "Cantidad"
#. module: crm
#: model:process.transition,note:crm.process_transition_opportunitymeeting0
msgid "Normal or phone meeting for opportunity"
-msgstr ""
+msgstr "Oportunidad de reunion normal ó telefonico."
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim2
#: model:crm.case.stage,name:crm.stage_meet1
msgid "Fixed"
-msgstr ""
+msgstr "Reparado"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -146,35 +150,35 @@ msgstr ""
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
#, python-format
msgid "Warning !"
-msgstr "¡Atención!"
+msgstr "Advertencia !"
#. module: crm
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
#, python-format
msgid "Please specify user's email address !"
-msgstr ""
+msgstr "Por favor especiificar el nombre de usuario de correo"
#. module: crm
#: model:crm.case.categ,name:crm.categ_oppor5
msgid "Campaign"
-msgstr ""
+msgstr "Campaña"
#. module: crm
#: view:crm.opportunity:0
msgid "Search Opportunities"
-msgstr ""
+msgstr "Busqueda de oportunidades"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_section_stage_tree
#: view:report.crm.case.section.stage:0
msgid "Cases by Section and Stage"
-msgstr ""
+msgstr "Casos por sección y estados"
#. module: crm
#: wizard_field:crm.job.meeting_set,init,duration:0
#: wizard_field:crm.phonecall.meeting_set,init,duration:0
msgid "Duration (Hours)"
-msgstr ""
+msgstr "Duración (Horas)"
#. module: crm
#: selection:crm.meeting,transparent:0
@@ -194,6 +198,8 @@ msgid ""
"Section to which Case belongs to. Define Responsible user and Email account "
"for mail gateway."
msgstr ""
+"Sección a la cual pertenece el caso. Definir usuario responsable y cuenta de "
+"correo para correo de salida."
#. module: crm
#: view:crm.case:0
@@ -212,7 +218,7 @@ msgstr ""
#: wizard_field:crm.phonecall.opportunity_set,opportunity,partner_id:0
#: model:process.node,name:crm.process_node_partner0
msgid "Partner"
-msgstr "Empresa"
+msgstr "Compañero"
#. module: crm
#: field:crm.case.categ,section_id:0
@@ -227,12 +233,13 @@ msgstr "Sección del caso"
#. module: crm
#: view:crm.job:0
msgid "Proposed Salary"
-msgstr ""
+msgstr "Salario sugerido"
#. module: crm
#: help:crm.case.section,sequence:0
msgid "Gives the sequence order when displaying a list of case sections."
msgstr ""
+"Dar orden de la secuencia cuando se muestre la lista de casos de sección."
#. module: crm
#: code:addons/crm/wizard/crm_job_wizard.py:0
@@ -240,17 +247,17 @@ msgstr ""
#: model:crm.case.categ,name:crm.categ_meet3
#, python-format
msgid "Phone Call"
-msgstr ""
+msgstr "Llamada de telefono"
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_stage
msgid "Cases by section and stage"
-msgstr ""
+msgstr "Casos por secciòn y estado"
#. module: crm
#: field:crm.case.rule,act_mail_to_email:0
msgid "Mail to these emails"
-msgstr "Enviar correo a estos emails"
+msgstr "Correo a estos correos electronicos"
#. module: crm
#: selection:crm.case.rule,trg_date_type:0
@@ -260,7 +267,7 @@ msgstr "Ninguno"
#. module: crm
#: view:crm.case.rule:0
msgid "Special Keywords to Be Used in The Body"
-msgstr "Palabras clave especiales para ser usadas en el mensaje"
+msgstr "Palabras claves especiales para ser usadas en el cuerpo del mensaje."
#. module: crm
#: view:crm.case:0
@@ -270,12 +277,12 @@ msgstr "Palabras clave especiales para ser usadas en el mensaje"
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Send New Email"
-msgstr ""
+msgstr "Enviar nuevo correo eléctronico"
#. module: crm
#: view:crm.case.history:0
msgid "My Histories"
-msgstr "Mis historiales"
+msgstr "Mis historias"
#. module: crm
#: field:crm.segmentation,segmentation_line:0
@@ -286,12 +293,13 @@ msgstr "Criterios"
#: model:ir.actions.act_window,name:crm.crm_case_section_act
#: model:ir.ui.menu,name:crm.menu_crm_case_section_act
msgid "Sections"
-msgstr "Secciones"
+msgstr "Secciónes"
#. module: crm
#: help:crm.menu.config_wizard,opportunity:0
msgid "Tracks identified business opportunities for your sales pipeline."
msgstr ""
+"Temas de oportunidades de negocio identificadas para su canal de ventas."
#. module: crm
#: view:crm.meeting:0
@@ -301,12 +309,12 @@ msgstr ""
#. module: crm
#: selection:crm.case.rule,trg_date_type:0
msgid "Last Action Date"
-msgstr "Fecha última acción"
+msgstr "Fechas de ultima acción"
#. module: crm
#: view:crm.job:0
msgid "Appreciation"
-msgstr ""
+msgstr "Reconocimiento"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job3
@@ -316,7 +324,7 @@ msgstr ""
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_cal_subscribe
msgid "Subscribe to a Remote calendar"
-msgstr ""
+msgstr "Suscribirse a un calendario remoto"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_categ-act
@@ -328,7 +336,7 @@ msgstr "Categorías"
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
#, python-format
msgid "Warning!"
-msgstr ""
+msgstr "Advertencia!"
#. module: crm
#: view:crm.case:0
@@ -348,29 +356,29 @@ msgstr "Prueba de segmentación"
#. module: crm
#: model:process.transition,name:crm.process_transition_leadpartner0
msgid "Prospect Partner"
-msgstr ""
+msgstr "Socio prospecto"
#. module: crm
#: view:crm.fundraising:0
#: view:crm.opportunity:0
msgid "Description Information"
-msgstr ""
+msgstr "Información de descripción"
#. module: crm
#: view:crm.lead:0
msgid "Contact Name"
-msgstr ""
+msgstr "Nombre de contacto"
#. module: crm
#: selection:crm.lead.opportunity_set,create_partner,action:0
#: selection:crm.phonecall.opportunity_set,create_partner,action:0
msgid "Link to an existing partner"
-msgstr ""
+msgstr "Enlace al socio existente"
#. module: crm
#: field:crm.case.rule,trg_date_range_type:0
msgid "Delay type"
-msgstr "Tipo de demora"
+msgstr "Tipo de retraso"
#. module: crm
#: view:crm.claim:0
@@ -380,12 +388,12 @@ msgstr "Tipo de demora"
#: view:crm.opportunity:0
#: view:crm.phonecall:0
msgid "Contact"
-msgstr ""
+msgstr "Contacto"
#. module: crm
#: view:crm.job:0
msgid "Next Interview"
-msgstr ""
+msgstr "Próxima entrevista"
#. module: crm
#: field:crm.case.rule,regex_history:0
diff --git a/addons/crm/i18n/it.po b/addons/crm/i18n/it.po
index 39990a084d7..6d3527522a9 100644
--- a/addons/crm/i18n/it.po
+++ b/addons/crm/i18n/it.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-01-22 14:44+0000\n"
-"Last-Translator: Carlo \n"
+"PO-Revision-Date: 2010-02-02 16:15+0000\n"
+"Last-Translator: Carlo Vettore \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-01-23 04:45+0000\n"
+"X-Launchpad-Export-Date: 2010-02-03 04:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -678,7 +678,7 @@ msgstr " Oggi "
#: wizard_view:crm.job.reschedule_phone_call,init:0
#: wizard_view:crm.opportunity.reschedule_phone_call,init:0
msgid "Phone Call Description"
-msgstr ""
+msgstr "Descrizione Chiamata Telefonica"
#. module: crm
#: view:crm.case.categ:0
@@ -1397,7 +1397,7 @@ msgstr "Casi aperti"
#: field:report.crm.case.section.categ2,stage_id:0
#: field:report.crm.case.section.stage,stage_id:0
msgid "Stage"
-msgstr ""
+msgstr "Scenario"
#. module: crm
#: constraint:ir.ui.view:0
@@ -1428,7 +1428,7 @@ msgstr ""
#: model:ir.actions.act_window,name:crm.crm_case_stage_act
#: model:ir.ui.menu,name:crm.menu_crm_case_stage_act
msgid "Stages"
-msgstr ""
+msgstr "Tirocini"
#. module: crm
#: wizard_field:crm.case.opportunity.partner_opportunity,init,planned_revenue:0
@@ -1857,7 +1857,7 @@ msgstr "Permetti di cancellare i casi non in bozza"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor7
msgid "Closed Lost"
-msgstr ""
+msgstr "Perdita chiusa"
#. module: crm
#: field:crm.menu.config_wizard,bugs:0
@@ -1886,7 +1886,7 @@ msgstr "Alta"
#. module: crm
#: model:process.node,note:crm.process_node_partner0
msgid "Convert to prospect to business partner"
-msgstr ""
+msgstr "Converti candidato in business partner"
#. module: crm
#: view:crm.claim:0
@@ -2065,7 +2065,7 @@ msgstr "Minuti"
#: field:report.crm.case.section.categ2,amount_revenue:0
#: field:report.crm.case.section.stage,amount_revenue:0
msgid "Est.Revenue"
-msgstr ""
+msgstr "Entrate stimate"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job1
@@ -2278,7 +2278,7 @@ msgstr "Luglio"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor1
msgid "Prospecting"
-msgstr ""
+msgstr "Candidatura"
#. module: crm
#: field:crm.case,partner_name2:0
@@ -2362,7 +2362,7 @@ msgstr "Mese"
#: model:ir.ui.menu,name:crm.menu_crm_case_categ0_act_leads
#: model:process.node,name:crm.process_node_leads0
msgid "Leads"
-msgstr ""
+msgstr "Iniziative"
#. module: crm
#: wizard_button:crm.new.send.mail,init,send:0
@@ -2432,7 +2432,7 @@ msgstr "Note"
#: field:report.crm.case.section.categ2,delay_close:0
#: field:report.crm.case.section.stage,delay_close:0
msgid "Delay Close"
-msgstr ""
+msgstr "Ritardo Chiusura"
#. module: crm
#: selection:crm.case,priority:0
@@ -2595,7 +2595,7 @@ msgstr ">"
#. module: crm
#: view:crm.job:0
msgid "Candidate Phone"
-msgstr ""
+msgstr "Telefono Candidato"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_send_mail
@@ -2759,7 +2759,7 @@ msgstr ""
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
#, python-format
msgid "A partner is already existing with the same name."
-msgstr ""
+msgstr "Esiste già un Partner con lo stesso nome"
#. module: crm
#: model:ir.model,name:crm.model_crm_phonecall
@@ -2899,7 +2899,7 @@ msgstr ""
#. module: crm
#: view:crm.job:0
msgid "Open Jobs"
-msgstr ""
+msgstr "Lavori Aperti"
#. module: crm
#: selection:crm.email.add.cc,name:0
@@ -3071,7 +3071,7 @@ msgstr "Modulo Fondi"
#. module: crm
#: view:crm.meeting:0
msgid "Search Meetings"
-msgstr ""
+msgstr "Ricerca Incontri"
#. module: crm
#: selection:crm.lead.opportunity_set,create_partner,action:0
@@ -3174,7 +3174,7 @@ msgstr "Annullato"
#. module: crm
#: view:crm.job:0
msgid "Applied Job"
-msgstr ""
+msgstr "Lavoro Svolto"
#. module: crm
#: help:crm.meeting,exrule:0
@@ -4008,7 +4008,7 @@ msgstr "Sequenza"
#: wizard_view:caldav.crm.import,init:0
#: wizard_field:caldav.crm.import,init,file_path:0
msgid "Select ICS file"
-msgstr ""
+msgstr "Seleziona il file ICS"
#. module: crm
#: wizard_view:caldav.crm.import,display:0
@@ -4029,7 +4029,7 @@ msgstr "Casi per Sezione"
#. module: crm
#: view:crm.job:0
msgid "New Jobs"
-msgstr ""
+msgstr "Nuovo Lavoro"
#. module: crm
#: field:crm.menu.config_wizard,fund:0
diff --git a/addons/crm/i18n/pt_BR.po b/addons/crm/i18n/pt_BR.po
index e81b4ec93c1..462d0108159 100644
--- a/addons/crm/i18n/pt_BR.po
+++ b/addons/crm/i18n/pt_BR.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-01-26 22:43+0000\n"
+"PO-Revision-Date: 2010-02-02 17:06+0000\n"
"Last-Translator: pedrobom \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-01-29 04:52+0000\n"
+"X-Launchpad-Export-Date: 2010-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -1557,11 +1557,13 @@ msgid ""
"Helps you to organise the jobs hiring process: evaluation, meetings, email "
"integration..."
msgstr ""
+"Ajuda você a organizar as tarefas do processo de contratação: avaliação, "
+"reuniões, integração de e-mail ..."
#. module: crm
#: view:crm.fundraising:0
msgid "Funds"
-msgstr ""
+msgstr "Fundos"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -1573,7 +1575,7 @@ msgstr "esboço"
#: model:crm.case.stage,name:crm.stage_claim5
#: model:crm.case.stage,name:crm.stage_meet4
msgid "Awaiting Response"
-msgstr ""
+msgstr "Aguardando resposta"
#. module: crm
#: field:crm.case,date:0
@@ -1587,7 +1589,7 @@ msgstr "Data"
#. module: crm
#: view:crm.job:0
msgid "Candidate Name"
-msgstr ""
+msgstr "Nome do candidato"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead2
@@ -1598,12 +1600,12 @@ msgstr ""
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim3
msgid "Won't fix"
-msgstr ""
+msgstr "Não irá corrigir"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead4
msgid "Converted"
-msgstr ""
+msgstr "Convertido"
#. module: crm
#: view:crm.case:0
@@ -1613,7 +1615,7 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Reply to Last Email"
-msgstr ""
+msgstr "Resposta ao último Email"
#. module: crm
#: view:crm.segmentation:0
@@ -1623,7 +1625,7 @@ msgstr "Descrição da segmentação"
#. module: crm
#: help:crm.meeting,location:0
msgid "Gives Location of Meeting"
-msgstr ""
+msgstr "Dá a localização da reunião"
#. module: crm
#: view:crm.case:0
@@ -1638,7 +1640,7 @@ msgstr "Histórico"
#. module: crm
#: model:ir.model,name:crm.model_crm_job
msgid "Job Cases"
-msgstr ""
+msgstr "Casos de Emprego"
#. module: crm
#: view:crm.job:0
diff --git a/addons/crm/wizard/crm_lead_wizard.py b/addons/crm/wizard/crm_lead_wizard.py
index a7c24863ee1..c5a2a63f2ec 100644
--- a/addons/crm/wizard/crm_lead_wizard.py
+++ b/addons/crm/wizard/crm_lead_wizard.py
@@ -62,6 +62,15 @@ class lead2opportunity(wizard.interface):
'probability': {'type':'float', 'digits':(16,2), 'string': 'Success Probability'},
'partner_id' : {'type':'many2one', 'relation':'res.partner', 'string':'Partner'},
}
+
+ def _check_state(self, cr, uid, data, context):
+ pool = pooler.get_pool(cr.dbname)
+ case_obj = pool.get('crm.lead')
+ for case in case_obj.browse(cr, uid, data['ids']):
+ if case.state != 'open':
+ raise wizard.except_wizard(_('Warning !'),
+ _('Lead should be in \'Open\' state before converting to Opportunity.'))
+ return {}
def _selectopportunity(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
@@ -105,8 +114,10 @@ class lead2opportunity(wizard.interface):
'partner_id': data['form']['partner_id'],
'section_id':lead.section_id.id,
'description':lead.description,
+ 'date_deadline': lead.date_deadline,
'partner_address_id':lead.partner_address_id.id,
- 'priority':lead.priority,
+ 'priority':lead.priority,
+ 'date': lead.date,
})
new_opportunity = opportunity_case_obj.browse(cr, uid, new_opportunity_id)
@@ -118,7 +129,7 @@ class lead2opportunity(wizard.interface):
vals.update({'opportunity_id' : new_opportunity.id})
lead_case_obj.write(cr, uid, [lead.id], vals)
- lead_case_obj.case_cancel(cr, uid, [lead.id])
+ lead_case_obj.case_close(cr, uid, [lead.id])
opportunity_case_obj.case_open(cr, uid, [new_opportunity_id])
value = {
@@ -170,7 +181,7 @@ class lead2opportunity(wizard.interface):
states = {
'init': {
- 'actions': [],
+ 'actions': [_check_state],
'result': {'type':'choice','next_state':_selectChoice}
},
'create_partner': {
diff --git a/addons/crm/wizard/crm_opportunity_wizard.py b/addons/crm/wizard/crm_opportunity_wizard.py
index 945f92ea688..960baca12ad 100644
--- a/addons/crm/wizard/crm_opportunity_wizard.py
+++ b/addons/crm/wizard/crm_opportunity_wizard.py
@@ -56,6 +56,10 @@ class opportunity2phonecall(wizard.interface):
case_obj = pooler.get_pool(cr.dbname).get('crm.opportunity')
categ_id = pooler.get_pool(cr.dbname).get('crm.case.categ').search(cr, uid, [('name','=','Outbound')])
case = case_obj.browse(cr, uid, data['id'])
+ if case.state != 'open':
+ raise wizard.except_wizard(_('Warning !'),
+ _('Opportunity should be in \'Open\' state before converting to Phone Call.'))
+ return {}
return {
'user_id' : case.user_id and case.user_id.id,
'category_id' : categ_id and categ_id[0] or case.categ_id and case.categ_id.id,
diff --git a/addons/crm/wizard/crm_phonecall_wizard.py b/addons/crm/wizard/crm_phonecall_wizard.py
index e341e46f03e..dd4172a4345 100644
--- a/addons/crm/wizard/crm_phonecall_wizard.py
+++ b/addons/crm/wizard/crm_phonecall_wizard.py
@@ -62,6 +62,15 @@ class phonecall2opportunity(wizard.interface):
'probability': {'type':'float', 'digits':(16,2), 'string': 'Success Probability'},
'partner_id' : {'type':'many2one', 'relation':'res.partner', 'string':'Partner'},
}
+
+ def _check_state(self, cr, uid, data, context):
+ pool = pooler.get_pool(cr.dbname)
+ case_obj = pool.get('crm.phonecall')
+ for case in case_obj.browse(cr, uid, data['ids']):
+ if case.state != 'open':
+ raise wizard.except_wizard(_('Warning !'),
+ _('Phone Call state should be \'Open\' before converting to Opportunity.'))
+ return {}
def _selectopportunity(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
@@ -103,9 +112,11 @@ class phonecall2opportunity(wizard.interface):
'planned_revenue': data['form']['planned_revenue'],
'probability': data['form']['probability'],
'partner_id': data['form']['partner_id'],
- 'section_id':phonecall.section_id.id,
- 'description':phonecall.description,
- 'phonecall_id': phonecall.id
+ 'section_id': phonecall.section_id.id,
+ 'description': phonecall.description,
+ 'phonecall_id': phonecall.id,
+ 'date': phonecall.date,
+ 'priority': phonecall.priority
})
new_opportunity = opportunity_case_obj.browse(cr, uid, new_opportunity_id)
vals = {
@@ -113,7 +124,7 @@ class phonecall2opportunity(wizard.interface):
'opportunity_id' : new_opportunity_id,
}
phonecall_case_obj.write(cr, uid, [phonecall.id], vals)
- phonecall_case_obj.case_cancel(cr, uid, [phonecall.id])
+ phonecall_case_obj.case_close(cr, uid, [phonecall.id])
opportunity_case_obj.case_open(cr, uid, [new_opportunity_id])
value = {
'name': _('Opportunity'),
@@ -164,7 +175,7 @@ class phonecall2opportunity(wizard.interface):
states = {
'init': {
- 'actions': [],
+ 'actions': [_check_state],
'result': {'type':'choice','next_state':_selectChoice}
},
'create_partner': {
@@ -276,18 +287,18 @@ class partner_create(wizard.interface):
partner_obj = pool.get('res.partner')
contact_obj = pool.get('res.partner.address')
for case in case_obj.browse(cr, uid, data['ids']):
- partner_id = partner_obj.search(cr, uid, [('name', '=', case.partner_name or case.name)])
+ partner_id = partner_obj.search(cr, uid, [('name', '=', case.name)])
if partner_id:
raise wizard.except_wizard(_('Warning !'),_('A partner is already existing with the same name.'))
else:
partner_id = partner_obj.create(cr, uid, {
- 'name': case.partner_name or case.name,
+ 'name': case.name,
'user_id': case.user_id.id,
'comment': case.description,
})
contact_id = contact_obj.create(cr, uid, {
'partner_id': partner_id,
- 'name': case.partner_name2,
+ 'name': case.name,
'phone': case.partner_phone,
'mobile': case.partner_mobile,
'email': case.email_from
diff --git a/addons/crm/wizard/wizard_crm_new_send_email.py b/addons/crm/wizard/wizard_crm_new_send_email.py
index 6e9951ad328..583915a75b7 100644
--- a/addons/crm/wizard/wizard_crm_new_send_email.py
+++ b/addons/crm/wizard/wizard_crm_new_send_email.py
@@ -70,7 +70,7 @@ def _mass_mail_send(self, cr, uid, data, context):
attach = map(lambda x: x and ('Attachment'+str(attach.index(x)+1), base64.decodestring(x)), attach)
pool = pooler.get_pool(cr.dbname)
- case_pool=pool.get('crm.case')
+ case_pool=pool.get(data['model'])
case = case_pool.browse(cr,uid,data['ids'])[0]
case_pool.write(cr, uid, [case.id], {
@@ -110,13 +110,18 @@ def _mass_mail_send(self, cr, uid, data, context):
def _get_info(self, cr, uid, data, context):
if not data['id']:
return {}
+
pool = pooler.get_pool(cr.dbname)
- case = pool.get('crm.case').browse(cr,uid,data['ids'])[0]
- #if not case.email_from:
- # raise wizard.except_wizard(_('Error'),_('You must put a Partner eMail to use this action!'))
+ case = pool.get(data['model']).browse(cr, uid, data['id'])
+
if not case.user_id:
raise wizard.except_wizard(_('Error'),_('You must define a responsible user for this case in order to use this action!'))
- return {'to': case.email_from,'subject': case.name,'cc': case.email_cc or ''}
+
+ return {
+ 'to': case.email_from,
+ 'subject': case.name,
+ 'cc': case.email_cc or ''
+ }
class wizard_send_mail(wizard.interface):
states = {
diff --git a/addons/crm_hr/__terp__.py b/addons/crm_hr/__terp__.py
index a4715123679..71ef7da908e 100644
--- a/addons/crm_hr/__terp__.py
+++ b/addons/crm_hr/__terp__.py
@@ -48,6 +48,5 @@
],
'installable': True,
'active': False,
- 'certificate': '',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm_hr/crm_hr_view.xml b/addons/crm_hr/crm_hr_view.xml
index ca0a7d635d7..f4a46ec9621 100644
--- a/addons/crm_hr/crm_hr_view.xml
+++ b/addons/crm_hr/crm_hr_view.xml
@@ -240,6 +240,12 @@
+
+
+
diff --git a/addons/crm_project/__init__.py b/addons/crm_project/__init__.py
index a646cf81ad9..fd6e45fcf00 100644
--- a/addons/crm_project/__init__.py
+++ b/addons/crm_project/__init__.py
@@ -22,7 +22,6 @@
import crm_project_bug
-import crm_project_feature
-
import report
+import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm_project/__terp__.py b/addons/crm_project/__terp__.py
index 7a63ce1d1f4..c55a302f9da 100644
--- a/addons/crm_project/__terp__.py
+++ b/addons/crm_project/__terp__.py
@@ -22,7 +22,7 @@
{
- 'name': 'CRM Stuff in Project Management',
+ 'name': 'Bug Reporting in Project Management',
'version': '1.0',
'category': 'Generic Modules/CRM & SRM',
'description': """
@@ -35,9 +35,9 @@
'crm_bugs_data.xml'
],
'update_xml': [
+ 'crm_bug_wizard.xml',
'crm_bugs_view.xml',
- 'crm_bugs_menu.xml',
- 'crm_feature_view.xml',
+ 'crm_bugs_menu.xml',
'crm_feature_menu.xml',
'report_crm_project_bug_view.xml',
'security/crm_project_security.xml',
diff --git a/addons/crm_project/crm_bug_wizard.xml b/addons/crm_project/crm_bug_wizard.xml
new file mode 100644
index 00000000000..a62606e52a6
--- /dev/null
+++ b/addons/crm_project/crm_bug_wizard.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/addons/crm_project/crm_bugs_data.xml b/addons/crm_project/crm_bugs_data.xml
index ca891949499..2a8729e49c2 100644
--- a/addons/crm_project/crm_bugs_data.xml
+++ b/addons/crm_project/crm_bugs_data.xml
@@ -6,17 +6,12 @@
-->
-
+ Bugs
-
-
- Patches
-
-
-
-
+
+ Feature Requests
@@ -71,12 +66,6 @@
Works For Me
-
-
- Future
-
-
-
-
+
diff --git a/addons/crm_project/crm_bugs_demo.xml b/addons/crm_project/crm_bugs_demo.xml
index da1bdbdab21..2bda6099685 100644
--- a/addons/crm_project/crm_bugs_demo.xml
+++ b/addons/crm_project/crm_bugs_demo.xml
@@ -15,7 +15,7 @@
-
+
@@ -40,7 +40,7 @@
-
+
@@ -56,7 +56,7 @@
-
+
@@ -72,7 +72,7 @@
-
+
@@ -87,7 +87,7 @@
-
+
@@ -103,7 +103,7 @@
-
+
@@ -119,8 +119,8 @@
-
-
+
+
@@ -135,7 +135,7 @@
-
+
@@ -150,7 +150,7 @@
-
+
@@ -166,7 +166,7 @@
-
+
@@ -182,7 +182,7 @@
-
+
@@ -198,7 +198,7 @@
-
+
@@ -215,7 +215,7 @@
-
+
@@ -234,7 +234,7 @@
-
+
@@ -250,8 +250,8 @@
-
-
+
+
@@ -266,7 +266,7 @@
-
+
diff --git a/addons/crm_project/crm_bugs_menu.xml b/addons/crm_project/crm_bugs_menu.xml
index 627fab57aba..2518993fa08 100644
--- a/addons/crm_project/crm_bugs_menu.xml
+++ b/addons/crm_project/crm_bugs_menu.xml
@@ -1,38 +1,6 @@
-
-
-
-
- Bugs
-
-
-
-
- Patches
-
-
-
-
- Feature Requests
-
-
-
-
- Fixed
-
-
-
-
- Awaiting Response
-
-
-
-
- Future
-
-
-
+
######################## BUG TRACKING (menu) ###########################
@@ -40,11 +8,12 @@
ALL BUGS
-->
- Bugs
+ Issuescrm.project.bugformtree,calendar
+
diff --git a/addons/crm_project/crm_bugs_view.xml b/addons/crm_project/crm_bugs_view.xml
index 85a17d10505..0d84723f11e 100644
--- a/addons/crm_project/crm_bugs_view.xml
+++ b/addons/crm_project/crm_bugs_view.xml
@@ -36,25 +36,29 @@
+ """
for que in page.question_ids:
rml += """
@@ -213,11 +224,14 @@ class survey_browse_response(report_rml):
rml +="""
"""
table_data = col_heading.browse(cr, uid, col_heading.search(cr, uid, [('response_table_id', '=', answer[0].id),('name','=',row)]))
for column in matrix_ans:
- value = """ """
+ value = False
for col in table_data:
if column == col.column_id.title:
value = col.value
- rml += """