def insert_record(self, request, model, values, custom, meta=None): record = request.env[model.model].sudo().with_context(mail_create_nosubscribe=True).create(values) if custom or meta: default_field = model.website_form_default_field_id default_field_data = values.get(default_field.name, '') custom_content = (default_field_data + "\n\n" if default_field_data else '') \ + (self._custom_label + custom + "\n\n" if custom else '') \ + (self._meta_label + meta if meta else '') # If there is a default field configured for this model, use it. # If there isn't, put the custom data in a message instead if default_field.name: if default_field.ttype == 'html' or model.model == 'mail.mail': custom_content = nl2br(custom_content) record.update({default_field.name: custom_content}) else: values = { 'body': nl2br(custom_content), 'model': model.model, 'message_type': 'comment', 'no_auto_thread': False, 'res_id': record.id, } mail_id = request.env['mail.message'].sudo().create(values) return record.id
def insert_record(self, request, model, values, custom, meta=None): record = request.env[model.model].sudo().with_context(mail_create_nosubscribe=True).create(values) if custom or meta: default_field = model.website_form_default_field_id default_field_data = values.get(default_field.name, '') custom_content = (default_field_data + "\n\n" if default_field_data else '') \ + (self._custom_label + custom + "\n\n" if custom else '') \ + (self._meta_label + meta if meta else '') # If there is a default field configured for this model, use it. # If there isn't, put the custom data in a message instead if default_field.name: if default_field.ttype == 'html' or model.model == 'mail.mail': custom_content = nl2br(custom_content) record.update({default_field.name: custom_content}) else: values = { 'body': nl2br(custom_content), 'model': model.model, 'message_type': 'comment', 'no_auto_thread': False, 'res_id': record.id, } mail_id = request.env['mail.message'].sudo().create(values) return record.id
def website_form_saleorder(self, **kwargs): model_record = request.env.ref('sale.model_sale_order') try: data = self.extract_data(model_record, kwargs) except ValidationError as e: return json.dumps({'error_fields': e.args[0]}) order = request.website.sale_get_order() if data['record']: order.write(data['record']) if data['custom']: values = { 'body': nl2br(data['custom']), 'model': 'sale.order', 'message_type': 'comment', 'no_auto_thread': False, 'res_id': order.id, } request.env['mail.message'].sudo().create(values) if data['attachments']: self.insert_attachment(model_record, order.id, data['attachments']) return json.dumps({'id': order.id})
def website_form_saleorder(self, **kwargs): model_record = request.env.ref('sale.model_sale_order') try: data = self.extract_data(model_record, kwargs) except ValidationError as e: return json.dumps({'error_fields': e.args[0]}) order = request.website.sale_get_order() if data['record']: order.write(data['record']) if data['custom']: values = { 'body': nl2br(data['custom']), 'model': 'sale.order', 'message_type': 'comment', 'no_auto_thread': False, 'res_id': order.id, } request.env['mail.message'].sudo().create(values) if data['attachments']: self.insert_attachment(model_record, order.id, data['attachments']) return json.dumps({'id': order.id})
class WebsiteSaleForm(WebsiteForm): @http.route('/website_form/shop.sale.order', type='http', auth="public", methods=['POST'], website=True) def website_form_saleorder(self, **kwargs): model_record = request.env.ref('sale.model_sale_order') try: data = self.extract_data(model_record, kwargs) except ValidationError, e: return json.dumps({'error_fields': e.args[0]}) order = request.website.sale_get_order() if data['record']: order.write(data['record']) if data['custom']: values = { 'body': nl2br(data['custom']), 'model': 'sale.order', 'message_type': 'comment', 'no_auto_thread': False, 'res_id': order.id, } request.env['mail.message'].sudo().create(values) if data['attachments']: self.insert_attachment(model_record, order.id, data['attachments']) return json.dumps({'id': order.id})
def value_to_html(self, value, options): if not value: return False value = value.sudo().display_name if not value: return False return nl2br(html_escape(value, options)) if value else ''
def insert_or_update_record(self, request, model, values, custom, rec_id=0, meta=None): _logger.debug(values) record = False if rec_id: if not isinstance(rec_id, int): rec_id = int(rec_id) record = request.env[model.model].browse(rec_id) _logger.debug('Writing %s with %s', record, values) record.write(values) if not record: record = request.env[model.model].create(values) if custom or meta: default_field = model.website_form_default_field_id default_field_data = values.get(default_field.name, '') custom_content = \ (default_field_data + "\n\n" if default_field_data else '') +\ (self._custom_label + custom + "\n\n" if custom else '') +\ (self._meta_label + meta if meta else '') # If there is a default field configured for this model, use it. # If there isn't, put the custom data in a message instead if default_field.name: if default_field.ttype == 'html' or model.model == 'mail.mail': custom_content = nl2br(custom_content) record.update({default_field.name: custom_content}) else: values = { 'body': nl2br(custom_content), 'model': model.model, 'message_type': 'comment', 'no_auto_thread': False, 'res_id': record.id, } request.env['mail.message'].sudo().create(values) return record.id
def website_form_saleorder(self, **kwargs): model_record = request.env.ref('sale.model_sale_order') try: data = self.extract_data(model_record, kwargs) except ValidationError as e: return json.dumps({'error_fields': e.args[0]}) order = request.website.sale_get_order() if data['record']: order.write(data['record']) if 'dbname' in kwargs and 'dbname_base_saas_domain' in kwargs: dbname = (kwargs['dbname'] or '') + '.' + (kwargs['dbname_base_saas_domain'] or '') if request.env['saas_portal.database'].sudo().search([('name', '=', dbname)]): order.write({'saas_dbname': 'ERROR_DB_EXISTS!'}) #TODO improve else: order.write({'saas_dbname': kwargs['dbname']}) if request.website: msg = _('Please wait a few seconds for it to complete.') msg_title = 'Your Instance will be created upon confirming the order!' http.request.website.add_status_message(msg, type_='info', title=msg_title) # return http.request.render('website_sale_saas.add_saas_instance_notification') if 'instance_id' in kwargs: order.write({'saas_instance_id': kwargs['instance_id']}) if data['custom']: values = { 'body': nl2br(data['custom']), 'model': 'sale.order', 'message_type': 'comment', 'no_auto_thread': False, 'res_id': order.id, } request.env['mail.message'].sudo().create(values) if data['attachments']: self.insert_attachment(model_record, order.id, data['attachments']) return json.dumps({'id': order.id})
def value_to_html(self, value, options): """ Escapes the value and converts newlines to br. This is bullshit. """ return nl2br(html_escape(value, options)) if value else ''