Esempio n. 1
0
    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
Esempio n. 2
0
File: main.py Progetto: RoganW/odoo
    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
Esempio n. 3
0
File: main.py Progetto: befks/odoo
    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})
Esempio n. 4
0
    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})
Esempio n. 5
0
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})
Esempio n. 6
0
 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 ''
Esempio n. 7
0
    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
Esempio n. 8
0
    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})
Esempio n. 9
0
 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 ''