From d7083b21fee2a4680eaa13bf8954a59c37c58200 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Mon, 6 Aug 2012 18:28:17 +0200 Subject: [PATCH] [IMP] rephrase some error and warning messages in base_action_rule, base_calendar, base_crypt, base_report_designer and base_status remove exclamation marks at the end of messages remove first person usage ('I' and 'We') remove unjustified capital letters rephrase the clumsy form 'No is defined' bzr revid: abo@openerp.com-20120806162817-241dzl664je6t1kt --- addons/base_action_rule/base_action_rule.py | 6 +- addons/base_calendar/base_calendar.py | 92 +++++++++---------- .../wizard/base_calendar_invite_attendee.py | 4 +- addons/base_crypt/crypt.py | 25 ++--- .../openerp_sxw2rml/openerp_sxw2rml.py | 10 +- .../bin/script/AddAttachment.py | 54 +++++------ .../bin/script/ExportToRML.py | 42 ++++----- .../bin/script/ModifyExistingReport.py | 53 ++++++----- .../bin/script/SendToServer.py | 50 +++++----- .../bin/script/ServerParameter.py | 58 ++++++------ .../bin/script/Translation.py | 44 ++++----- .../bin/script/lib/tiny_socket.py | 8 +- .../bin/script/modify.py | 43 +++++---- addons/base_status/base_stage.py | 26 +++--- 14 files changed, 255 insertions(+), 260 deletions(-) diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py index e8a8d5afa3a..7699256985c 100644 --- a/addons/base_action_rule/base_action_rule.py +++ b/addons/base_action_rule/base_action_rule.py @@ -37,7 +37,7 @@ def get_datetime(date_field): date_split = date_field.split(' ') if len(date_split) == 1: date_field = date_split[0] + " 00:00:00" - + return datetime.strptime(date_field[:19], '%Y-%m-%d %H:%M:%S') @@ -185,7 +185,7 @@ the rule to mark CC(mail to any other person defined in actions)."), self.post_action(cr, uid, [new_id], model, context=context) return new_id return wrapper - + def _write(self, old_write, model, context=None): """ Return a wrapper around `old_write` calling both `old_write` and @@ -327,7 +327,7 @@ the rule to mark CC(mail to any other person defined in actions)."), reply_to = emailfrom if not emailfrom: raise osv.except_osv(_('Error!'), - _("No Email ID is found for your Company address!")) + _("No email ID found for your company address.")) return mail_message.schedule_with_attach(cr, uid, emailfrom, emails, name, body, model='base.action.rule', reply_to=reply_to, res_id=obj.id) diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index 818b37a67a1..3f9282bb95f 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -48,18 +48,18 @@ def get_recurrent_dates(rrulestring, exdate, startdate=None, exrule=None): def todate(date): val = parser.parse(''.join((re.compile('\d')).findall(date))) return val - + if not startdate: startdate = datetime.now() - + if not exdate: exdate = [] - + rset1 = rrule.rrulestr(str(rrulestring), dtstart=startdate, forceset=True) for date in exdate: datetime_obj = todate(date) rset1._exdate.append(datetime_obj) - + if exrule: rset1.exrule(rrule.rrulestr(str(exrule), dtstart=startdate)) @@ -413,7 +413,7 @@ property or property parameter."), cal = vobject.iCalendar() event = cal.add('vevent') if not event_obj.date_deadline or not event_obj.date: - raise osv.except_osv(_('Warning !'),_("First specified the date for Invitation.")) + raise osv.except_osv(_('Warning !'),_("First you have to specify the date of the invitation.")) event.add('created').value = ics_datetime(time.strftime('%Y-%m-%d %H:%M:%S')) event.add('dtstart').value = ics_datetime(event_obj.date) event.add('dtend').value = ics_datetime(event_obj.date_deadline) @@ -995,11 +995,11 @@ class calendar_event(osv.osv): @param context: A standard dictionary for contextual values @return: dictionary of rrule value. """ - + result = {} if not isinstance(ids, list): ids = [ids] - + for datas in self.read(cr, uid, ids, ['id','byday','recurrency', 'month_list','end_date', 'rrule_type', 'select1', 'interval', 'count', 'end_type', 'mo', 'tu', 'we', 'th', 'fr', 'sa', 'su', 'exrule', 'day', 'week_list' ], context=context): event = datas['id'] if datas.get('interval', 0) < 0: @@ -1092,7 +1092,7 @@ rule or repeating pattern of time to exclude from the recurring rule."), true, it will allow you to hide the event alarm information without removing it."), 'recurrency': fields.boolean('Recurrent', help="Recurrent Meeting"), } - + def default_organizer(self, cr, uid, context=None): user_pool = self.pool.get('res.users') user = user_pool.browse(cr, uid, uid, context=context) @@ -1189,23 +1189,23 @@ rule or repeating pattern of time to exclude from the recurring rule."), byday = map(lambda x: x.upper(), filter(lambda x: datas.get(x) and x in weekdays, datas)) if byday: return ';BYDAY=' + ','.join(byday) - return '' - + return '' + def get_month_string(freq, datas): if freq == 'monthly': if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31): - raise osv.except_osv(_('Error!'), ("Please select proper Day of month.")) - + raise osv.except_osv(_('Error!'), ("Please select a proper day of the month.")) + if datas.get('select1')=='day': return ';BYDAY=' + datas.get('byday') + datas.get('week_list') elif datas.get('select1')=='date': return ';BYMONTHDAY=' + str(datas.get('day')) return '' - + def get_end_date(datas): if datas.get('end_date'): datas['end_date_new'] = ''.join((re.compile('\d')).findall(datas.get('end_date'))) + 'T235959Z' - + return (datas.get('end_type') == 'count' and (';COUNT=' + str(datas.get('count'))) or '') +\ ((datas.get('end_date_new') and datas.get('end_type') == 'end_date' and (';UNTIL=' + datas.get('end_date_new'))) or '') @@ -1216,32 +1216,32 @@ rule or repeating pattern of time to exclude from the recurring rule."), interval_srting = datas.get('interval') and (';INTERVAL=' + str(datas.get('interval'))) or '' return 'FREQ=' + freq.upper() + get_week_string(freq, datas) + interval_srting + get_end_date(datas) + get_month_string(freq, datas) - + def _get_empty_rrule_data(self): return { 'byday' : False, 'recurrency' : False, - 'end_date' : False, - 'rrule_type' : False, - 'select1' : False, - 'interval' : 0, - 'count' : False, - 'end_type' : False, - 'mo' : False, - 'tu' : False, - 'we' : False, - 'th' : False, - 'fr' : False, - 'sa' : False, - 'su' : False, - 'exrule' : False, - 'day' : False, + 'end_date' : False, + 'rrule_type' : False, + 'select1' : False, + 'interval' : 0, + 'count' : False, + 'end_type' : False, + 'mo' : False, + 'tu' : False, + 'we' : False, + 'th' : False, + 'fr' : False, + 'sa' : False, + 'su' : False, + 'exrule' : False, + 'day' : False, 'week_list' : False } #def _write_rrule(self, cr, uid, ids, field_value, rule_date=False, context=None): # data = self._get_empty_rrule_data() - # + # # if field_value: # data['recurrency'] = True # for event in self.browse(cr, uid, ids, context=context): @@ -1250,16 +1250,16 @@ rule or repeating pattern of time to exclude from the recurring rule."), # data.update(update_data) # #parse_rrule # self.write(cr, uid, event.id, data, context=context) - + def _parse_rrule(self, rule, data, date_start): day_list = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'] rrule_type = ['yearly', 'monthly', 'weekly', 'daily'] r = rrule.rrulestr(rule, dtstart=datetime.strptime(date_start, "%Y-%m-%d %H:%M:%S")) - + if r._freq > 0 and r._freq < 4: data['rrule_type'] = rrule_type[r._freq] - + data['count'] = r._count data['interval'] = r._interval data['end_date'] = r._until and r._until.strftime("%Y-%m-%d %H:%M:%S") @@ -1270,36 +1270,36 @@ rule or repeating pattern of time to exclude from the recurring rule."), data[day_list[i]] = True data['rrule_type'] = 'weekly' #repeat monthly bynweekday ((weekday, weeknumber), ) - if r._bynweekday: + if r._bynweekday: data['week_list'] = day_list[r._bynweekday[0][0]].upper() data['byday'] = r._bynweekday[0][1] data['select1'] = 'day' - data['rrule_type'] = 'monthly' - + data['rrule_type'] = 'monthly' + if r._bymonthday: data['day'] = r._bymonthday[0] data['select1'] = 'date' data['rrule_type'] = 'monthly' - + #yearly but for openerp it's monthly, take same information as monthly but interval is 12 times if r._bymonth: data['interval'] = data['interval'] * 12 - + #FIXEME handle forever case - #end of recurrence + #end of recurrence #in case of repeat for ever that we do not support right now if not (data.get('count') or data.get('end_date')): data['count'] = 100 if data.get('count'): data['end_type'] = 'count' else: - data['end_type'] = 'end_date' - return data + data['end_type'] = 'end_date' + return data def remove_virtual_id(self, ids): if isinstance(ids, (str, int, long)): return base_calendar_id2real_id(ids) - + if isinstance(ids, (list, tuple)): res = [] for id in ids: @@ -1345,7 +1345,7 @@ rule or repeating pattern of time to exclude from the recurring rule."), def need_to_update(self, event_id, vals): split_id = str(event_id).split("-") if len(split_id) < 2: - return False + return False else: date_start = vals.get('date', '') try: @@ -1409,7 +1409,7 @@ rule or repeating pattern of time to exclude from the recurring rule."), def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None, orderby=False): if not context: context = {} - + if 'date' in groupby: raise osv.except_osv(_('Warning !'), _('Group by date is not supported, use the calendar view instead.')) virtual_id = context.get('virtual_id', True) @@ -1479,7 +1479,7 @@ rule or repeating pattern of time to exclude from the recurring rule."), def copy(self, cr, uid, id, default=None, context=None): if context is None: context = {} - + res = super(calendar_event, self).copy(cr, uid, base_calendar_id2real_id(id), default, context) alarm_obj = self.pool.get('res.alarm') alarm_obj.do_alarm_create(cr, uid, [res], self._name, 'date', context=context) diff --git a/addons/base_calendar/wizard/base_calendar_invite_attendee.py b/addons/base_calendar/wizard/base_calendar_invite_attendee.py index 46f0004dd4a..b49c4219ce8 100644 --- a/addons/base_calendar/wizard/base_calendar_invite_attendee.py +++ b/addons/base_calendar/wizard/base_calendar_invite_attendee.py @@ -92,7 +92,7 @@ send an Email to Invited Person') else: return {'type': 'ir.actions.act_window_close'} if type == 'internal': - + if not datas.get('user_ids'): raise osv.except_osv(_('Error!'), ("Please select any user.")) for user_id in datas.get('user_ids'): @@ -141,7 +141,7 @@ send an Email to Invited Person') if not mail_to: name = map(lambda x: x[1], filter(lambda x: type==x[0], \ self._columns['type'].selection)) - raise osv.except_osv(_('Error!'), _("%s must have an email address to send mail.") %(name[0])) + raise osv.except_osv(_('Error!'), _("%s must have an email address to send mail.") %(name[0])) att_obj._send_mail(cr, uid, attendees, mail_to, \ email_from = current_user.user_email or tools.config.get('email_from', False)) diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py index a990e68c5b0..f7e200560a3 100644 --- a/addons/base_crypt/crypt.py +++ b/addons/base_crypt/crypt.py @@ -139,7 +139,7 @@ class users(osv.osv): def set_pw(self, cr, uid, id, name, value, args, context): if not value: - raise osv.except_osv(_('Error!'), _("Please specify the password !")) + raise osv.except_osv(_('Error!'), _("You have to specify a password.")) obj = pooler.get_pool(cr.dbname).get('res.users') if not hasattr(obj, "_salt_cache"): @@ -181,8 +181,8 @@ class users(osv.osv): cr = pooler.get_db(db).cursor() return self._login(cr, db, login, password) except Exception: - _logger.exception('Cannot authenticate!') - return Exception('Access is denied!') + _logger.exception('Cannot authenticate.') + return Exception('Access denied.') finally: if cr is not None: cr.close() @@ -196,9 +196,9 @@ class users(osv.osv): else: # Return early if no one has a login name like that. return False - + stored_pw = self.maybe_encrypt(cr, stored_pw, id) - + if not stored_pw: # means couldn't encrypt or user is not active! return False @@ -210,16 +210,16 @@ class users(osv.osv): obj._salt_cache = {} salt = obj._salt_cache[id] = stored_pw[len(magic_md5):11] encrypted_pw = encrypt_md5(password, salt) - + # Check if the encrypted password matches against the one in the db. cr.execute("""UPDATE res_users SET date=now() AT TIME ZONE 'UTC' WHERE id=%s AND password=%s AND active - RETURNING id""", + RETURNING id""", (int(id), encrypted_pw.encode('utf-8'))) res = cr.fetchone() cr.commit() - + if res: return res[0] else: @@ -249,13 +249,13 @@ class users(osv.osv): stored_login = cr.fetchone() if stored_login: stored_login = stored_login[0] - + res = self._login(cr, db, stored_login, passwd) if not res: raise security.ExceptionNoTb('AccessDenied') else: salt = self._salt_cache[db][uid] - cr.execute('SELECT COUNT(*) FROM res_users WHERE id=%s AND password=%s AND active', + cr.execute('SELECT COUNT(*) FROM res_users WHERE id=%s AND password=%s AND active', (int(uid), encrypt_md5(passwd, salt))) res = cr.fetchone()[0] finally: @@ -271,10 +271,10 @@ class users(osv.osv): else: self._uid_cache[db] = {uid: passwd} return bool(res) - + def maybe_encrypt(self, cr, pw, id): """ Return the password 'pw', making sure it is encrypted. - + If the password 'pw' is not encrypted, then encrypt all active passwords in the db. Returns the (possibly newly) encrypted password for 'id'. """ @@ -296,4 +296,5 @@ class users(osv.osv): return pw users() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_report_designer/openerp_sxw2rml/openerp_sxw2rml.py b/addons/base_report_designer/openerp_sxw2rml/openerp_sxw2rml.py index 7dd94f9856b..a37d46b78a2 100644 --- a/addons/base_report_designer/openerp_sxw2rml/openerp_sxw2rml.py +++ b/addons/base_report_designer/openerp_sxw2rml/openerp_sxw2rml.py @@ -138,7 +138,7 @@ class DomApi(DomApiGeneral): if self.styles_dom.getElementsByTagName("style:page-master").__len__()<>0: self.page_master = self.styles_dom.getElementsByTagName("style:page-master")[0] if self.styles_dom.getElementsByTagName("style:page-layout").__len__()<>0 : - self.page_master = self.styles_dom.getElementsByTagName("style:page-layout")[0] + self.page_master = self.styles_dom.getElementsByTagName("style:page-layout")[0] self.document = self.content_dom.getElementsByTagName("office:document-content")[0] def buildStylePropertiesDict(self): @@ -307,16 +307,16 @@ def sxw2rml(sxw_file, xsl, output='.', save_pict=False): tool = PyOpenOffice(output, save_pict = save_pict) res = tool.unpackNormalize(sxw_file) - + f = StringIO(xsl) styledoc = etree.parse(f) style = etree.XSLT(styledoc) - + f = StringIO(res) doc = etree.parse(f) result = style(doc) root = etree.XPathEvaluator(result)("/document/stylesheet") - + if root: root=root[0] images = etree.Element("images") @@ -341,7 +341,7 @@ if __name__ == "__main__": parser.add_option("-o", "--output", dest="output", default='.', help="directory of image output") (opt, args) = parser.parse_args() if len(args) != 1: - parser.error("Incorrect number of arguments!") + parser.error("Incorrect number of arguments.") import sys diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/AddAttachment.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/AddAttachment.py index e6de5185358..a9a18cd9bfa 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/AddAttachment.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/AddAttachment.py @@ -3,31 +3,31 @@ # Portions of this file are under the following copyright and license: # # -# Copyright (c) 2003-2004 Danny Brewer -# d29583@groovegarden.com -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library 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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See: http://www.gnu.org/licenses/lgpl.html +# Copyright (c) 2003-2004 Danny Brewer +# d29583@groovegarden.com +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See: http://www.gnu.org/licenses/lgpl.html +# # -# # and other portions are under the following copyright and license: # # # OpenERP, Open Source Management Solution>.. -# Copyright (C) 2004-2010 OpenERP SA (). +# Copyright (C) 2004-2010 OpenERP SA (). # # 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 @@ -145,7 +145,7 @@ class AddAttachment(unohelper.Base, XJobExecutor ): self.aSearchResult =self.sock.execute( database, uid, self.password, self.dModel[modelSelectedItem], 'name_search', self.win.getEditText("txtSearchName")) self.win.removeListBoxItems("lstResource", 0, self.win.getListBoxItemCount("lstResource")) if self.aSearchResult == []: - ErrorDialog("No search result is found !", "", "Search ERROR" ) + ErrorDialog("No search result found.", "", "Search Error.") return for result in self.aSearchResult: @@ -172,7 +172,7 @@ class AddAttachment(unohelper.Base, XJobExecutor ): docinfo = oDoc2.getDocumentInfo() if oDoc2.getURL() == "": - ErrorDialog("Please save your file.", "", "Saving ERROR!" ) + ErrorDialog("You should save your file.", "", "Saving Error.") return None url = oDoc2.getURL() @@ -180,7 +180,7 @@ class AddAttachment(unohelper.Base, XJobExecutor ): url = self.doc2pdf(url[7:]) if url == None: - ErrorDialog( "Problem in creating PDF!", "", "PDF Error!" ) + ErrorDialog( "Problem in creating PDF.", "", "PDF Error.") return None url = url[7:] @@ -193,7 +193,7 @@ class AddAttachment(unohelper.Base, XJobExecutor ): docinfo = oDoc2.getDocumentInfo() if self.win.getListBoxSelectedItem("lstResourceType") == "": - ErrorDialog("Please select resource type.", "", "Selection ERROR!" ) + ErrorDialog("You have to select a resource type.", "", "Selection Error." ) return res = self.send_attachment( docinfo.getUserFieldValue(3), docinfo.getUserFieldValue(2) ) @@ -201,11 +201,11 @@ class AddAttachment(unohelper.Base, XJobExecutor ): def btnOkWithInformation_clicked(self,oActionEvent): if self.win.getListBoxSelectedItem("lstResourceType") == "": - ErrorDialog( "Please select resource type.", "", "Selection ERROR!" ) + ErrorDialog( "You have to select a resource type.", "", "Selection Error." ) return if self.win.getListBoxSelectedItem("lstResource") == "" or self.win.getListBoxSelectedItem("lstmodel") == "": - ErrorDialog("Please select Model and Resource.","","Selection ERROR!") + ErrorDialog("You have to select Model and Resource.", "", "Selection Error.") return resourceid = None @@ -215,7 +215,7 @@ class AddAttachment(unohelper.Base, XJobExecutor ): break if resourceid == None: - ErrorDialog("No resource is selected !", "", "Resource ERROR!" ) + ErrorDialog("No resource is selected.", "", "Resource Error." ) return res = self.send_attachment( self.dModel[self.win.getListBoxSelectedItem('lstmodel')], resourceid ) diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ExportToRML.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ExportToRML.py index d05b3e61024..644763595df 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ExportToRML.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ExportToRML.py @@ -3,31 +3,31 @@ # Portions of this file are under the following copyright and license: # # -# Copyright (c) 2003-2004 Danny Brewer -# d29583@groovegarden.com -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library 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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See: http://www.gnu.org/licenses/lgpl.html +# Copyright (c) 2003-2004 Danny Brewer +# d29583@groovegarden.com +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See: http://www.gnu.org/licenses/lgpl.html +# # -# # and other portions are under the following copyright and license: # # # OpenERP, Open Source Management Solution>.. -# Copyright (C) 2004-2010 OpenERP SA (). +# Copyright (C) 2004-2010 OpenERP SA (). # # 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 @@ -106,7 +106,7 @@ class ExportToRML( unohelper.Base, XJobExecutor ): import traceback,sys info = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)) self.logobj.log_write('ExportToRML',LOG_ERROR, info) - ErrorDialog("Cannot save the file to the hard drive.", "Exception: %s !" % e, "Error" ) + ErrorDialog("Cannot save the file to the hard drive.", "Exception: %s." % e, "Error" ) def GetAFileName(self): sFilePickerArgs = Array(10) diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ModifyExistingReport.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ModifyExistingReport.py index 8102417c857..b463bfa41e2 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ModifyExistingReport.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ModifyExistingReport.py @@ -3,31 +3,31 @@ # Portions of this file are under the following copyright and license: # # -# Copyright (c) 2003-2004 Danny Brewer -# d29583@groovegarden.com -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library 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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See: http://www.gnu.org/licenses/lgpl.html +# Copyright (c) 2003-2004 Danny Brewer +# d29583@groovegarden.com +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See: http://www.gnu.org/licenses/lgpl.html +# # -# # and other portions are under the following copyright and license: # # # OpenERP, Open Source Management Solution>.. -# Copyright (C) 2004-2010 OpenERP SA (). +# Copyright (C) 2004-2010 OpenERP SA (). # # 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 @@ -64,7 +64,6 @@ if __name__<>'package': database="test" uid = 3 -# class ModifyExistingReport(unohelper.Base, XJobExecutor): def __init__(self,ctx): self.ctx = ctx @@ -167,11 +166,11 @@ class ModifyExistingReport(unohelper.Base, XJobExecutor): if oDoc2.hasLocation() and not oDoc2.isReadonly(): oDoc2.store() - ErrorDialog("Download is Completed.","Your file has been placed here :\n ."+ fp_name,"Download Message !") + ErrorDialog("Download is completed.","Your file has been placed here :\n ."+ fp_name,"Download Message !") obj=Logger() obj.log_write('Modify Existing Report',LOG_INFO, ':successful download report %s using database %s' % (self.report_with_id[selectedItemPos][2], database)) except Exception, e: - ErrorDialog("Report has not been downloaded.", "Report: %s\nDetails: %s" % ( fp_name, str(e) ),"Download Message !") + ErrorDialog("The report could not be downloaded.", "Report: %s\nDetails: %s" % ( fp_name, str(e) ),"Download Message !") import traceback,sys info = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)) self.logobj.log_write('ModifyExistingReport', LOG_ERROR, info) @@ -193,15 +192,15 @@ class ModifyExistingReport(unohelper.Base, XJobExecutor): str_value='ir.actions.report.xml,'+str(id) ids = self.sock.execute(database, uid, self.password, 'ir.values' , 'search',[('value','=',str_value)]) if ids: - rec = self.sock.execute(database, uid, self.password, 'ir.values', 'unlink', ids,) + rec = self.sock.execute(database, uid, self.password, 'ir.values', 'unlink', ids,) else : pass if temp: - ErrorDialog("Report","Report has been Delete:\n ."+name,"Message !") - self.logobj.log_write('Delete Report',LOG_INFO, ':successful delete report %s using database %s' % (name, database)) + ErrorDialog("Report", "The report could not be deleted:\n"+name+".", "Message !") + self.logobj.log_write('Delete Report', LOG_INFO, ': report %s successfully deleted using database %s.' % (name, database)) else: - ErrorDialog("Report","Report has not Delete:\n ."+name," Message !") + ErrorDialog("Report", "The report could not be deleted:\n"+name+".", "Message !") self.win.endExecute() diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/SendToServer.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/SendToServer.py index 2566b3b1551..2b11555c0af 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/SendToServer.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/SendToServer.py @@ -3,31 +3,31 @@ # Portions of this file are under the following copyright and license: # # -# Copyright (c) 2003-2004 Danny Brewer -# d29583@groovegarden.com -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library 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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See: http://www.gnu.org/licenses/lgpl.html +# Copyright (c) 2003-2004 Danny Brewer +# d29583@groovegarden.com +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See: http://www.gnu.org/licenses/lgpl.html +# # -# # and other portions are under the following copyright and license: # # # OpenERP, Open Source Management Solution>.. -# Copyright (C) 2004-2010 OpenERP SA (). +# Copyright (C) 2004-2010 OpenERP SA (). # # 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 @@ -65,8 +65,6 @@ if __name__<>'package': database="report" uid = 3 -# -# class SendtoServer(unohelper.Base, XJobExecutor): Kind = { 'PDF' : 'pdf', @@ -172,8 +170,8 @@ class SendtoServer(unohelper.Base, XJobExecutor): } res = self.sock.execute(database, uid, self.password, 'ir.values' , 'create',rec ) else : - ErrorDialog(" Report Name is already given !\n\n\n Please specify other name.","","Report Name !") - self.logobj.log_write('SendToServer',LOG_WARNING, ':Report name all ready given DB %s' % (database)) + ErrorDialog("This name is already used for another report.\nPlease try with another name.", "", "Report Name !") + self.logobj.log_write('SendToServer',LOG_WARNING, ': report name already used DB %s' % (database)) self.win.endExecute() except Exception,e: import traceback,sys @@ -205,8 +203,8 @@ class SendtoServer(unohelper.Base, XJobExecutor): self.logobj.log_write('SendToServer',LOG_INFO, ':Report %s successfully send using %s'%(params['name'],database)) self.win.endExecute() else: - ErrorDialog("Either Report Name or Technical Name is blank !\nPlease specify appropriate Name.","","Blank Field ERROR !") - self.logobj.log_write('SendToServer',LOG_WARNING, ':Either Report Name or Technical Name is blank') + ErrorDialog("Either report name or technical name is blank.\nPlease specify an appropriate name.","","Blank Field Error !") + self.logobj.log_write('SendToServer',LOG_WARNING, ': either report name or technical name is blank.') self.win.endExecute() def getID(self): diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ServerParameter.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ServerParameter.py index 2965c6d4099..399e52819f3 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ServerParameter.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ServerParameter.py @@ -3,31 +3,31 @@ # Portions of this file are under the following copyright and license: # # -# Copyright (c) 2003-2004 Danny Brewer -# d29583@groovegarden.com -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library 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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See: http://www.gnu.org/licenses/lgpl.html +# Copyright (c) 2003-2004 Danny Brewer +# d29583@groovegarden.com +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See: http://www.gnu.org/licenses/lgpl.html +# # -# # and other portions are under the following copyright and license: # # # OpenERP, Open Source Management Solution>.. -# Copyright (C) 2004-2010 OpenERP SA (). +# Copyright (C) 2004-2010 OpenERP SA (). # # 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 @@ -86,7 +86,7 @@ class ServerParameter( unohelper.Base, XJobExecutor ): self.win.addButton('btnOK',-2 ,-5, 60,15,'Connect' ,actionListenerProc = self.btnOk_clicked ) self.win.addButton('btnPrevious',15 -80 ,-5,50,15,'Previous',actionListenerProc = self.btnPrevious_clicked) self.win.addButton('btnCancel',-2 - 110 - 5 ,-5, 35,15,'Cancel' ,actionListenerProc = self.btnCancel_clicked ) - + sValue="" if docinfo.getUserFieldValue(0)<>"": global url @@ -100,8 +100,8 @@ class ServerParameter( unohelper.Base, XJobExecutor ): # sValue="Could not connect to the server!" # self.lstDatabase.addItem("Could not connect to the server!",0) elif res == 0: - sValue="No Database is found !" - self.lstDatabase.addItem("No Database is found !",0) + sValue="No database found !" + self.lstDatabase.addItem("No database found !",0) else: self.win.addComboListBox("lstDatabase", -2,28,123,15, True) self.lstDatabase = self.win.getControl( "lstDatabase" ) @@ -129,12 +129,12 @@ class ServerParameter( unohelper.Base, XJobExecutor ): self.sock=RPCSession(url) UID = self.sock.login(sDatabase,sLogin,sPassword) if not UID or UID==-1 : - ErrorDialog("Connection Refuse...","Please enter valid Login/Password.") + ErrorDialog("Connection denied.", "Please enter valid login/password.") # self.win.endExecute() ids_module =self.sock.execute(sDatabase, UID, sPassword, 'ir.module.module', 'search', [('name','=','base_report_designer'),('state', '=', 'installed')]) if not len(ids_module): ErrorDialog("Please install base_report_designer module.", "", "Module Uninstalled Error !") - self.logobj.log_write('Module is not found.',LOG_WARNING, ':base_report_designer not install in database %s.' % (sDatabase)) + self.logobj.log_write('Module not found.',LOG_WARNING, ': base_report_designer not installed in database %s.' % (sDatabase)) #self.win.endExecute() else: desktop=getDesktop() @@ -153,11 +153,11 @@ class ServerParameter( unohelper.Base, XJobExecutor ): #docinfo.setUserFieldValue(2,self.win.getListBoxSelectedItem("lstDatabase")) #docinfo.setUserFieldValue(3,"") - ErrorDialog(" You can start creating your report in \n \t the current document.","After Creating sending to the server.","Message !") - self.logobj.log_write('successful login',LOG_INFO, ':successful login from %s using database %s' % (sLogin, sDatabase)) + ErrorDialog("You can start creating your report in the current document.", "After creating, sending to the server.", "Message !") + self.logobj.log_write('successful login',LOG_INFO, ': successful login from %s using database %s' % (sLogin, sDatabase)) self.win.endExecute() - + def btnCancel_clicked( self, oActionEvent ): self.win.endExecute() @@ -165,7 +165,7 @@ class ServerParameter( unohelper.Base, XJobExecutor ): self.win.endExecute() Change(None) self.win.endExecute() - + if __name__<>"package" and __name__=="__main__": ServerParameter(None) diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Translation.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Translation.py index 8cdd8b5ab6d..06bce1f9fa5 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Translation.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Translation.py @@ -3,31 +3,31 @@ # Portions of this file are under the following copyright and license: # # -# Copyright (c) 2003-2004 Danny Brewer -# d29583@groovegarden.com -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library 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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See: http://www.gnu.org/licenses/lgpl.html +# Copyright (c) 2003-2004 Danny Brewer +# d29583@groovegarden.com +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See: http://www.gnu.org/licenses/lgpl.html +# # -# # and other portions are under the following copyright and license: # # # OpenERP, Open Source Management Solution>.. -# Copyright (C) 2004-2010 OpenERP SA (). +# Copyright (C) 2004-2010 OpenERP SA (). # # 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 @@ -175,7 +175,7 @@ class AddLang(unohelper.Base, XJobExecutor ): res = self.sock.execute(database, uid, self.password, sObject , 'read',[ids[0]]) self.win.setEditText("txtUName",res[0][sMain[sMain.rfind("/")+1:]]) else: - ErrorDialog("Please select the Language field.") + ErrorDialog("Please select a language.") except: import traceback;traceback.print_exc() @@ -261,7 +261,7 @@ class AddLang(unohelper.Base, XJobExecutor ): self.win.endExecute() else: - ErrorDialog("Please fill appropriate data in Name field \nor select particular value from the list of fields.") + ErrorDialog("Please fill appropriate data in name field \nor select particular value from the list of fields.") def btnCancel_clicked( self, oActionEvent ): self.win.endExecute() diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/tiny_socket.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/tiny_socket.py index df61ae50af7..a4f8d75dac7 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/tiny_socket.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/tiny_socket.py @@ -56,14 +56,14 @@ class mysocket: while totalsent < size: sent = self.sock.send(msg[totalsent:]) if sent == 0: - raise RuntimeError, "Socket connection broken!" + raise RuntimeError, "Socket connection broken." totalsent = totalsent + sent def myreceive(self): buf='' while len(buf) < 8: chunk = self.sock.recv(8 - len(buf)) if chunk == '': - raise RuntimeError, "Socket connection broken!" + raise RuntimeError, "Socket connection broken." buf += chunk size = int(buf) buf = self.sock.recv(1) @@ -75,7 +75,7 @@ class mysocket: while len(msg) < size: chunk = self.sock.recv(size-len(msg)) if chunk == '': - raise RuntimeError, "Socket connection broken!" + raise RuntimeError, "Socket connection broken." msg = msg + chunk msgio = cStringIO.StringIO(msg) unpickler = cPickle.Unpickler(msgio) @@ -90,6 +90,4 @@ class mysocket: return res[0] - - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/modify.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/modify.py index 9a7b796df65..03478651def 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/modify.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/modify.py @@ -3,31 +3,31 @@ # Portions of this file are under the following copyright and license: # # -# Copyright (c) 2003-2004 Danny Brewer -# d29583@groovegarden.com -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library 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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See: http://www.gnu.org/licenses/lgpl.html +# Copyright (c) 2003-2004 Danny Brewer +# d29583@groovegarden.com +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See: http://www.gnu.org/licenses/lgpl.html +# # -# # and other portions are under the following copyright and license: # # # OpenERP, Open Source Management Solution>.. -# Copyright (C) 2004-2010 OpenERP SA (). +# Copyright (C) 2004-2010 OpenERP SA (). # # 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 @@ -100,8 +100,7 @@ class modify(unohelper.Base, XJobExecutor ): RepeatIn( start_group1, group2, stop_group1, item, True ) else: ErrorDialog( - "Please place your cursor at begaining of field \n" - "which you want to modify.","" + "Please place your cursor at beginning of field that you want to modify.","" ) else: diff --git a/addons/base_status/base_stage.py b/addons/base_status/base_stage.py index ffb355dcc29..af9e2366373 100644 --- a/addons/base_status/base_stage.py +++ b/addons/base_status/base_stage.py @@ -25,7 +25,7 @@ from tools.translate import _ class base_stage(object): """ Base utility mixin class for objects willing to manage their stages. Object that inherit from this class should inherit from mailgate.thread - to have access to the mail gateway, as well as Chatter. Objects + to have access to the mail gateway, as well as Chatter. Objects subclassing this class should define the following colums: - ``date_open`` (datetime field) - ``date_closed`` (datetime field) @@ -104,13 +104,13 @@ class base_stage(object): def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): """ Find stage, with a given (optional) domain on the search, - ordered by the order parameter. If several stages match the + ordered by the order parameter. If several stages match the search criterions, the first one will be returned, according to the requested search order. This method is meant to be overriden by subclasses. That way specific behaviors can be achieved for every class inheriting from base_stage. - + :param cases: browse_record of cases :param section_id: section limitating the search, given for a generic search (for example default search). @@ -202,7 +202,7 @@ class base_stage(object): if case.section_id.parent_id.user_id: data['user_id'] = case.section_id.parent_id.user_id.id else: - raise osv.except_osv(_('Error !'), _("You are already at the top level of your sales-team category.\n That is why you cannot escalate.")) + raise osv.except_osv(_('Error !'), _("You are already at the top level of your sales-team category.\nTherefore you cannot escalate furthermore.")) self.write(cr, uid, [case.id], data, context=context) case.case_escalate_send_note(case.section_id.parent_id, context=context) cases = self.browse(cr, uid, ids, context=context) @@ -221,7 +221,7 @@ class base_stage(object): self.case_set(cr, uid, [case.id], 'open', data, context=context) self.case_open_send_note(cr, uid, [case.id], context=context) return True - + def case_close(self, cr, uid, ids, context=None): """ Closes case """ self.case_set(cr, uid, ids, 'done', {'active': True, 'date_closed': fields.datetime.now()}, context=context) @@ -250,14 +250,14 @@ class base_stage(object): """ Generic method for setting case. This methods wraps the update of the record, as well as call to _action and browse_record case setting to fill the cache. - + :params new_state_name: the new state of the record; this method will call ``stage_set_with_state_name`` that will find the stage matching the new state, using the ``stage_find`` method. :params new_stage_id: alternatively, you may directly give the new stage of the record - :params state_name: the new value of the state, such as + :params state_name: the new value of the state, such as 'draft' or 'close'. :params update_values: values that will be added with the state update when writing values to the record. @@ -370,20 +370,20 @@ class base_stage(object): l.append(case.user_id.user_email) res[case.id] = l return res - + # ****************************** # Notifications # ****************************** - + def case_get_note_msg_prefix(self, cr, uid, id, context=None): - """ Default prefix for notifications. For example: "%s has been + """ Default prefix for notifications. For example: "%s has been closed.". As several models will inherit from base_stage, this method returns a void string. Class using base_stage will have to override this method to define the prefix they want to display. """ return '' - + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): """ Send a notification when the stage changes. This method has to be overriden, because each document will have its particular @@ -391,7 +391,7 @@ class base_stage(object): crm.case.stage). """ return True - + def case_open_send_note(self, cr, uid, ids, context=None): for id in ids: msg = _('%s has been opened.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) @@ -421,7 +421,7 @@ class base_stage(object): msg = _('%s has been renewed.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) self.message_append_note(cr, uid, [id], body=msg, context=context) return True - + def case_escalate_send_note(self, cr, uid, ids, new_section=None, context=None): for id in ids: if new_section: