[IMP] Add ospp_base and ospp_slide modules

enterprise-opentkr-16.0
Oliver Yuan 2023-04-15 23:02:17 +08:00
parent 157d10894b
commit 040a9d0617
21 changed files with 446 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/odoo/

View File

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import controllers
from . import models

View File

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
{
'name': "OSPP BASE",
'summary': """
OSPP BASE""",
'description': """
OSPP BASE
""",
'author': "Zhiguo Yuan",
'website': "https://www.newbizpaas.cn",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/16.0/odoo/addons/base/data/ir_module_category_data.xml
# for the full list
'category': 'Website/eLearning',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base', 'website_slides'],
# always loaded
'data': [
# 'security/ir.model.access.csv',
'views/views.xml',
'views/templates.xml',
],
# only loaded in demonstration mode
'demo': [
'demo/demo.xml',
],
}

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import controllers

View File

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# from odoo import http
# class OsppBase(http.Controller):
# @http.route('/ospp_base/ospp_base', auth='public')
# def index(self, **kw):
# return "Hello, world"
# @http.route('/ospp_base/ospp_base/objects', auth='public')
# def list(self, **kw):
# return http.request.render('ospp_base.listing', {
# 'root': '/ospp_base/ospp_base',
# 'objects': http.request.env['ospp_base.ospp_base'].search([]),
# })
# @http.route('/ospp_base/ospp_base/objects/<model("ospp_base.ospp_base"):obj>', auth='public')
# def object(self, obj, **kw):
# return http.request.render('ospp_base.object', {
# 'object': obj
# })

View File

@ -0,0 +1,30 @@
<odoo>
<data>
<!--
<record id="object0" model="ospp_base.ospp_base">
<field name="name">Object 0</field>
<field name="value">0</field>
</record>
<record id="object1" model="ospp_base.ospp_base">
<field name="name">Object 1</field>
<field name="value">10</field>
</record>
<record id="object2" model="ospp_base.ospp_base">
<field name="name">Object 2</field>
<field name="value">20</field>
</record>
<record id="object3" model="ospp_base.ospp_base">
<field name="name">Object 3</field>
<field name="value">30</field>
</record>
<record id="object4" model="ospp_base.ospp_base">
<field name="name">Object 4</field>
<field name="value">40</field>
</record>
-->
</data>
</odoo>

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import models

View File

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class OSPPInstance(models.Model):
_name = 'ospp.instance'
_description = 'OSPP Instance'
name = fields.Char("Name")
code = fields.Char("Code")
type = fields.Selection([('saas', 'SAAS'), ('paas', 'PAAS')], required=True, string="Type")
stack = fields.Selection([('docker', 'Docker'), ('k8s', 'K8S'), ('odoo', 'ODOO')], required=True, string="Stack")
management_api = fields.Char('Management Api', required=True)
management_key = fields.Char('Management Key')
management_secret = fields.Char('Management Secret')
service_base_host = fields.Char('Service Base Host')
service_scheme = fields.Selection(
[('http', 'HTTP'), ('https', 'HTTPS'), ('ws', 'WS'), ('wss', 'WSS')],
required=True, string="Service Scheme")
dockerfile = fields.Text("Dockerfile")
active = fields.Boolean('Active', default=True)

View File

@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_ospp_base_ospp_base,ospp_base.ospp_base,model_ospp_base_ospp_base,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_ospp_base_ospp_base ospp_base.ospp_base model_ospp_base_ospp_base base.group_user 1 1 1 1

View File

@ -0,0 +1,24 @@
<odoo>
<data>
<!--
<template id="listing">
<ul>
<li t-foreach="objects" t-as="object">
<a t-attf-href="#{ root }/objects/#{ object.id }">
<t t-esc="object.display_name"/>
</a>
</li>
</ul>
</template>
<template id="object">
<h1><t t-esc="object.display_name"/></h1>
<dl>
<t t-foreach="object._fields" t-as="field">
<dt><t t-esc="field"/></dt>
<dd><t t-esc="object[field]"/></dd>
</t>
</dl>
</template>
-->
</data>
</odoo>

View File

@ -0,0 +1,60 @@
<odoo>
<data>
<!-- explicit list view definition -->
<!--
<record model="ir.ui.view" id="ospp_base.list">
<field name="name">ospp_base list</field>
<field name="model">ospp_base.ospp_base</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="value"/>
<field name="value2"/>
</tree>
</field>
</record>
-->
<!-- actions opening views on models -->
<!--
<record model="ir.actions.act_window" id="ospp_base.action_window">
<field name="name">ospp_base window</field>
<field name="res_model">ospp_base.ospp_base</field>
<field name="view_mode">tree,form</field>
</record>
-->
<!-- server action to the one above -->
<!--
<record model="ir.actions.server" id="ospp_base.action_server">
<field name="name">ospp_base server</field>
<field name="model_id" ref="model_ospp_base_ospp_base"/>
<field name="state">code</field>
<field name="code">
action = {
"type": "ir.actions.act_window",
"view_mode": "tree,form",
"res_model": model._name,
}
</field>
</record>
-->
<!-- Top menu item -->
<!--
<menuitem name="ospp_base" id="ospp_base.menu_root"/>
-->
<!-- menu categories -->
<!--
<menuitem name="Menu 1" id="ospp_base.menu_1" parent="ospp_base.menu_root"/>
<menuitem name="Menu 2" id="ospp_base.menu_2" parent="ospp_base.menu_root"/>
-->
<!-- actions -->
<!--
<menuitem name="List" id="ospp_base.menu_1_list" parent="ospp_base.menu_1"
action="ospp_base.action_window"/>
<menuitem name="Server to list" id="ospp_base" parent="ospp_base.menu_2"
action="ospp_base.action_server"/>
-->
</data>
</odoo>

View File

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import controllers
from . import models

View File

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
{
'name': "OSPP SLIDE",
'summary': """
OSPP SLIDE""",
'description': """
OSPP SLIDE
""",
'author': "Zhiguo Yuan",
'website': "https://www.newbizpaas.cn",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/16.0/odoo/addons/base/data/ir_module_category_data.xml
# for the full list
'category': 'Website/eLearning',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['ospp_base'],
# always loaded
'data': [
# 'security/ir.model.access.csv',
'views/views.xml',
'views/templates.xml',
],
# only loaded in demonstration mode
'demo': [
'demo/demo.xml',
],
}

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import controllers

View File

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# from odoo import http
# class OsppSlide(http.Controller):
# @http.route('/ospp_slide/ospp_slide', auth='public')
# def index(self, **kw):
# return "Hello, world"
# @http.route('/ospp_slide/ospp_slide/objects', auth='public')
# def list(self, **kw):
# return http.request.render('ospp_slide.listing', {
# 'root': '/ospp_slide/ospp_slide',
# 'objects': http.request.env['ospp_slide.ospp_slide'].search([]),
# })
# @http.route('/ospp_slide/ospp_slide/objects/<model("ospp_slide.ospp_slide"):obj>', auth='public')
# def object(self, obj, **kw):
# return http.request.render('ospp_slide.object', {
# 'object': obj
# })

View File

@ -0,0 +1,30 @@
<odoo>
<data>
<!--
<record id="object0" model="ospp_slide.ospp_slide">
<field name="name">Object 0</field>
<field name="value">0</field>
</record>
<record id="object1" model="ospp_slide.ospp_slide">
<field name="name">Object 1</field>
<field name="value">10</field>
</record>
<record id="object2" model="ospp_slide.ospp_slide">
<field name="name">Object 2</field>
<field name="value">20</field>
</record>
<record id="object3" model="ospp_slide.ospp_slide">
<field name="name">Object 3</field>
<field name="value">30</field>
</record>
<record id="object4" model="ospp_slide.ospp_slide">
<field name="name">Object 4</field>
<field name="value">40</field>
</record>
-->
</data>
</odoo>

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import models

View File

@ -0,0 +1,61 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api, _
class SlideChannel(models.Model):
_inherit = 'slide.channel'
code = fields.Char('Code', required=True, copy=False, readonly=True, default=lambda self: _('New'))
instance_arrangement = fields.Selection(
[('share', 'Share'), ('exclude', 'Exclude'), ('both', 'Both'), ('no_need', 'No Need')],
string="Instance Arrangement")
share_instance_count = fields.Integer('Shared Instance Count')
instance_base = fields.Many2one('ospp.instance', string="Instance Base")
instance_ids = fields.One2many('channel.instance', 'channel_id', string="Instances")
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 [(channel.id, '%s%s' % (channel.code and '[%s] ' % channel.code or '', channel.name))
for channel 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('name', _("New")) == _("New"):
seq_date = None
vals['name'] = self.env['ir.sequence'].next_by_code('slide.channel', sequence_date=seq_date) or _("New")
return super().create(vals_list)
class ChannelInstance(models.Model):
_name = "channel.instance"
_inherit = ['mail.thread', 'mail.activity.mixin', 'image.mixin']
_description = "Channel Instance"
channel_id = fields.Many2one('slide.channel', required=True, string="Channel")
instance_id = fields.Many2one('ospp.instance', required=True, string="Instance")
name = fields.Char('Name', required=True)
code = fields.Char('Code', required=True, copy=False, readonly=True, default=lambda self: _('New'))
service_name = fields.Char('Service Name', required=True)
service_url = fields.Char('Service URL', required=True)
user_scope = fields.Many2many('slide.channel.partner', string="User Scope")
active = fields.Boolean('Active', default=True)
# class ospp_slide(models.Model):
# _name = 'ospp_slide.ospp_slide'
# _description = 'ospp_slide.ospp_slide'
# name = fields.Char()
# value = fields.Integer()
# value2 = fields.Float(compute="_value_pc", store=True)
# description = fields.Text()
#
# @api.depends('value')
# def _value_pc(self):
# for record in self:
# record.value2 = float(record.value) / 100

View File

@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_ospp_slide_ospp_slide,ospp_slide.ospp_slide,model_ospp_slide_ospp_slide,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_ospp_slide_ospp_slide ospp_slide.ospp_slide model_ospp_slide_ospp_slide base.group_user 1 1 1 1

View File

@ -0,0 +1,24 @@
<odoo>
<data>
<!--
<template id="listing">
<ul>
<li t-foreach="objects" t-as="object">
<a t-attf-href="#{ root }/objects/#{ object.id }">
<t t-esc="object.display_name"/>
</a>
</li>
</ul>
</template>
<template id="object">
<h1><t t-esc="object.display_name"/></h1>
<dl>
<t t-foreach="object._fields" t-as="field">
<dt><t t-esc="field"/></dt>
<dd><t t-esc="object[field]"/></dd>
</t>
</dl>
</template>
-->
</data>
</odoo>

View File

@ -0,0 +1,60 @@
<odoo>
<data>
<!-- explicit list view definition -->
<!--
<record model="ir.ui.view" id="ospp_slide.list">
<field name="name">ospp_slide list</field>
<field name="model">ospp_slide.ospp_slide</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="value"/>
<field name="value2"/>
</tree>
</field>
</record>
-->
<!-- actions opening views on models -->
<!--
<record model="ir.actions.act_window" id="ospp_slide.action_window">
<field name="name">ospp_slide window</field>
<field name="res_model">ospp_slide.ospp_slide</field>
<field name="view_mode">tree,form</field>
</record>
-->
<!-- server action to the one above -->
<!--
<record model="ir.actions.server" id="ospp_slide.action_server">
<field name="name">ospp_slide server</field>
<field name="model_id" ref="model_ospp_slide_ospp_slide"/>
<field name="state">code</field>
<field name="code">
action = {
"type": "ir.actions.act_window",
"view_mode": "tree,form",
"res_model": model._name,
}
</field>
</record>
-->
<!-- Top menu item -->
<!--
<menuitem name="ospp_slide" id="ospp_slide.menu_root"/>
-->
<!-- menu categories -->
<!--
<menuitem name="Menu 1" id="ospp_slide.menu_1" parent="ospp_slide.menu_root"/>
<menuitem name="Menu 2" id="ospp_slide.menu_2" parent="ospp_slide.menu_root"/>
-->
<!-- actions -->
<!--
<menuitem name="List" id="ospp_slide.menu_1_list" parent="ospp_slide.menu_1"
action="ospp_slide.action_window"/>
<menuitem name="Server to list" id="ospp_slide" parent="ospp_slide.menu_2"
action="ospp_slide.action_server"/>
-->
</data>
</odoo>