84 lines
3.6 KiB
Python
84 lines
3.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import uuid
|
|
from odoo import models, fields, api, _
|
|
|
|
|
|
class View(models.Model):
|
|
_inherit = 'ir.ui.view'
|
|
|
|
@api.model
|
|
def _render_template(self, template, values=None):
|
|
if template in ['web.login', 'web.webclient_bootstrap']:
|
|
if not values:
|
|
values = {}
|
|
values["title"] = _("Newbiz")
|
|
values["disable_footer"] = self.env['ir.config_parameter'].sudo().get_param("disable_footer", "") or True
|
|
return super(View, self)._render_template(template, values)
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
_inherit = 'res.partner'
|
|
|
|
uuid = fields.Char(
|
|
'UUID', required=True, copy=False, readonly=True, default=lambda self: uuid.uuid4(), tracking=True)
|
|
code = fields.Char('Code', required=True, copy=False, readonly=True, default=lambda self: _('New'), tracking=True)
|
|
|
|
def name_get(self):
|
|
# Prefetch the fields used by the `name_get`, so `browse` doesn't fetch other fields
|
|
self.browse(self.ids).read(['name', 'code'])
|
|
return [(partner.id, '%s%s' % (partner.code and '[%s] ' % partner.code or '', partner.name))
|
|
for partner in self]
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
for vals in vals_list:
|
|
if vals.get('code', _("New")) == _("New"):
|
|
seq_date = None
|
|
vals['code'] = self.env['ir.sequence'].next_by_code('res.partner', sequence_date=seq_date) or _("New")
|
|
|
|
return super().create(vals_list)
|
|
|
|
|
|
class OSPPInstance(models.Model):
|
|
_name = 'ospp.instance'
|
|
_inherit = ['mail.thread', 'mail.activity.mixin']
|
|
_description = 'OSPP Instance'
|
|
|
|
sequence = fields.Integer('Sequence', default=10)
|
|
name = fields.Char("Name", tracking=True)
|
|
uuid = fields.Char(
|
|
'UUID', required=True, copy=False, readonly=True, default=lambda self: uuid.uuid4(), tracking=True)
|
|
code = fields.Char('Code', required=True, copy=False, readonly=True, default=lambda self: _('New'), tracking=True)
|
|
type = fields.Selection([('saas', 'SAAS'), ('paas', 'PAAS')], required=True, string="Type", tracking=True)
|
|
stack = fields.Selection(
|
|
[('docker', 'Docker'), ('k8s', 'K8S'), ('odoo', 'ODOO'), ('other', 'Other')], required=True, string="Stack",
|
|
tracking=True)
|
|
management_api = fields.Char('Management Api', required=True, tracking=True)
|
|
management_key = fields.Char('Management Key', tracking=True)
|
|
management_secret = fields.Char('Management Secret')
|
|
service_base_host = fields.Char('Service Base Host', tracking=True)
|
|
service_scheme = fields.Selection(
|
|
[('http', 'HTTP'), ('https', 'HTTPS'), ('ws', 'WS'), ('wss', 'WSS')],
|
|
required=True, string="Service Scheme", tracking=True)
|
|
dockerfile = fields.Text("Dockerfile", tracking=True)
|
|
active = fields.Boolean('Active', default=True, tracking=True)
|
|
|
|
def name_get(self):
|
|
# Prefetch the fields used by the `name_get`, so `browse` doesn't fetch other fields
|
|
self.browse(self.ids).read(['name', 'code'])
|
|
return [(instance.id, '%s%s' % (instance.code and '[%s] ' % instance.code or '', instance.name))
|
|
for instance in self]
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
for vals in vals_list:
|
|
if 'company_id' in vals:
|
|
self = self.with_company(vals['company_id'])
|
|
if vals.get('code', _("New")) == _("New"):
|
|
seq_date = None
|
|
vals['code'] = self.env['ir.sequence'].next_by_code(
|
|
'ospp.instance', sequence_date=seq_date) or _("New")
|
|
|
|
return super().create(vals_list)
|