diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index f87c4bf750e..ee82c917351 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -331,38 +331,34 @@ This is useful for CRM leads for example"), default.update({'name':new_name}) return super(email_template, self).copy(cr, uid, id, default, context) - def compute_pl(self, - model_object_field, - sub_model_object_field, - null_value, template_language='mako'): + def build_expression(self, field_name, sub_field_name, null_value, template_language='mako'): """ - Returns the expression based on data provided - @param model_object_field: First level field - @param sub_model_object_field: Second level drilled down field (M2O) - @param null_value: What has to be returned if the value is empty - @param template_language: The language used for templating + Returns a template expression based on data provided + @param field_name: field name + @param sub_field_name: sub field name (M2O) + @param null_value: default value if the target value is empty + @param template_language: name of template engine @return: computed expression """ - #Configure for MAKO - copy_val = '' + + expression = '' if template_language == 'mako': - if model_object_field: - copy_val = "${object." + model_object_field - if sub_model_object_field: - copy_val += "." + sub_model_object_field - if null_value: - copy_val += " or '" + null_value + "'" - if model_object_field: - copy_val += "}" + if field_name: + expression = "${object." + field_name + if sub_field_name: + expression += "." + sub_field_name + if null_value: + expression += " or '''%s'''" % null_value + expression += "}" elif template_language == 'django': - if model_object_field: - copy_val = "{{object." + model_object_field - if sub_model_object_field: - copy_val += "." + sub_model_object_field - if null_value: - copy_val = copy_val + '|default:"' + null_value + '"' - copy_val = copy_val + "}}" - return copy_val + if field_name: + expression = "{{object." + field_name + if sub_field_name: + expression += "." + sub_field_name + if null_value: + expression += "|default: '''%s'''" % null_value + expression += "}}" + return expression def onchange_model_object_field(self, cr, uid, ids, model_object_field, template_language, context=None): if not model_object_field: @@ -374,7 +370,7 @@ This is useful for CRM leads for example"), res_ids = self.pool.get('ir.model').search(cr, uid, [('model', '=', field_obj.relation)], context=context) if res_ids: result['sub_object'] = res_ids[0] - result['copyvalue'] = self.compute_pl(False, + result['copyvalue'] = self.build_expression(False, False, False, template_language) @@ -383,7 +379,7 @@ This is useful for CRM leads for example"), else: #Its a simple field... just compute placeholder result['sub_object'] = False - result['copyvalue'] = self.compute_pl(field_obj.name, + result['copyvalue'] = self.build_expression(field_obj.name, False, False, template_language @@ -402,7 +398,7 @@ This is useful for CRM leads for example"), sub_field_obj = self.pool.get('ir.model.fields').browse(cr, uid, sub_model_object_field, context) if res_ids: result['sub_object'] = res_ids[0] - result['copyvalue'] = self.compute_pl(field_obj.name, + result['copyvalue'] = self.build_expression(field_obj.name, sub_field_obj.name, False, template_language @@ -412,7 +408,7 @@ This is useful for CRM leads for example"), else: #Its a simple field... just compute placeholder result['sub_object'] = False - result['copyvalue'] = self.compute_pl(field_obj.name, + result['copyvalue'] = self.build_expression(field_obj.name, False, False, template_language @@ -431,7 +427,7 @@ This is useful for CRM leads for example"), sub_field_obj = self.pool.get('ir.model.fields').browse(cr, uid, sub_model_object_field, context) if res_ids: result['sub_object'] = res_ids[0] - result['copyvalue'] = self.compute_pl(field_obj.name, + result['copyvalue'] = self.build_expression(field_obj.name, sub_field_obj.name, null_value, template_language @@ -441,7 +437,7 @@ This is useful for CRM leads for example"), else: #Its a simple field... just compute placeholder result['sub_object'] = False - result['copyvalue'] = self.compute_pl(field_obj.name, + result['copyvalue'] = self.build_expression(field_obj.name, False, null_value, template_language diff --git a/addons/event/event.py b/addons/event/event.py index ea4a9cf9b8b..88910f01914 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -303,7 +303,7 @@ class event_registration(osv.osv): 'name': fields.char('Summary', size=124, readonly=True, states={'draft': [('readonly', False)]}), 'email_cc': fields.text('CC', size=252 , readonly=False, states={'done': [('readonly', True)]}, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"), 'nb_register': fields.integer('Quantity', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="Number of Registrations or Tickets"), - 'event_id': fields.many2one('event.event', 'Event Related', required=True, readonly=True, states={'draft': [('readonly', False)]}), + 'event_id': fields.many2one('event.event', 'Event', required=True, readonly=True, states={'draft': [('readonly', False)]}), 'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}), "partner_invoice_id": fields.many2one('res.partner', 'Partner Invoiced', readonly=True, states={'draft': [('readonly', False)]}), "contact_id": fields.many2one('res.partner.contact', 'Partner Contact', readonly=False, states={'done': [('readonly', True)]}), #TODO: filter only the contacts that have a function into the selected partner_id diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index b1555ea7dc5..7e24b237331 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -219,27 +219,27 @@ - - + + - - + - + + + + - - - @@ -287,11 +287,11 @@ tree - - + - + +