diff options
Diffstat (limited to 'network')
| -rw-r--r-- | network/__init__.py | 4 | ||||
| -rw-r--r-- | network/__manifest__.py | 35 | ||||
| -rw-r--r-- | network/__pycache__/__init__.cpython-36.pyc | bin | 0 -> 212 bytes | |||
| -rw-r--r-- | network/controllers/__init__.py | 3 | ||||
| -rw-r--r-- | network/controllers/__pycache__/__init__.cpython-36.pyc | bin | 0 -> 195 bytes | |||
| -rw-r--r-- | network/controllers/__pycache__/controllers.cpython-36.pyc | bin | 0 -> 162 bytes | |||
| -rw-r--r-- | network/controllers/controllers.py | 21 | ||||
| -rw-r--r-- | network/demo/demo.xml | 30 | ||||
| -rw-r--r-- | network/models/__init__.py | 3 | ||||
| -rw-r--r-- | network/models/__pycache__/__init__.cpython-36.pyc | bin | 0 -> 207 bytes | |||
| -rw-r--r-- | network/models/__pycache__/device.cpython-36.pyc | bin | 0 -> 919 bytes | |||
| -rw-r--r-- | network/models/__pycache__/res_partner.cpython-36.pyc | bin | 0 -> 497 bytes | |||
| -rw-r--r-- | network/models/device.py | 18 | ||||
| -rw-r--r-- | network/models/res_partner.py | 9 | ||||
| -rw-r--r-- | network/security/ir.model.access.csv | 3 | ||||
| -rw-r--r-- | network/static/description/icon.png | bin | 0 -> 2649 bytes | |||
| -rw-r--r-- | network/views/network_views.xml | 57 | ||||
| -rw-r--r-- | network/views/res_partner_views.xml | 20 |
18 files changed, 203 insertions, 0 deletions
diff --git a/network/__init__.py b/network/__init__.py new file mode 100644 index 0000000..511a0ca --- /dev/null +++ b/network/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from . import controllers +from . import models
\ No newline at end of file diff --git a/network/__manifest__.py b/network/__manifest__.py new file mode 100644 index 0000000..6a53b13 --- /dev/null +++ b/network/__manifest__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +{ + 'name': "Network", + + 'summary': """ + Adds support for networking devices and their associations with + customers.""", + + 'description': """ + This application adds generic device models that represent the ISP's + network. These models can and should be associated with customers for + ease of access and/or support. + """, + + 'author': "Richard Sassine", + 'website': "", + 'license': "GPL-3 or any later version", + 'application': True, + + # Categories can be used to filter modules in modules listing + # Check https://github.com/odoo/odoo/blob/14.0/odoo/addons/base/data/ir_module_category_data.xml + # for the full list + 'category': 'Technical', + 'version': '0.4', + + # any module necessary for this one to work correctly + 'depends': ['base', 'contacts'], + + # always loaded + 'data': [ + 'security/ir.model.access.csv', + 'views/network_views.xml', + 'views/res_partner_views.xml' + ], +} diff --git a/network/__pycache__/__init__.cpython-36.pyc b/network/__pycache__/__init__.cpython-36.pyc Binary files differnew file mode 100644 index 0000000..9eda2bf --- /dev/null +++ b/network/__pycache__/__init__.cpython-36.pyc diff --git a/network/controllers/__init__.py b/network/controllers/__init__.py new file mode 100644 index 0000000..457bae2 --- /dev/null +++ b/network/controllers/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import controllers
\ No newline at end of file diff --git a/network/controllers/__pycache__/__init__.cpython-36.pyc b/network/controllers/__pycache__/__init__.cpython-36.pyc Binary files differnew file mode 100644 index 0000000..79b788a --- /dev/null +++ b/network/controllers/__pycache__/__init__.cpython-36.pyc diff --git a/network/controllers/__pycache__/controllers.cpython-36.pyc b/network/controllers/__pycache__/controllers.cpython-36.pyc Binary files differnew file mode 100644 index 0000000..65a6bd7 --- /dev/null +++ b/network/controllers/__pycache__/controllers.cpython-36.pyc diff --git a/network/controllers/controllers.py b/network/controllers/controllers.py new file mode 100644 index 0000000..608dd33 --- /dev/null +++ b/network/controllers/controllers.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# from odoo import http + + +# class Network(http.Controller): +# @http.route('/network/network/', auth='public') +# def index(self, **kw): +# return "Hello, world" + +# @http.route('/network/network/objects/', auth='public') +# def list(self, **kw): +# return http.request.render('network.listing', { +# 'root': '/network/network', +# 'objects': http.request.env['network.network'].search([]), +# }) + +# @http.route('/network/network/objects/<model("network.network"):obj>/', auth='public') +# def object(self, obj, **kw): +# return http.request.render('network.object', { +# 'object': obj +# }) diff --git a/network/demo/demo.xml b/network/demo/demo.xml new file mode 100644 index 0000000..ac9eb73 --- /dev/null +++ b/network/demo/demo.xml @@ -0,0 +1,30 @@ +<odoo> + <data> +<!-- + <record id="object0" model="network.network"> + <field name="name">Object 0</field> + <field name="value">0</field> + </record> + + <record id="object1" model="network.network"> + <field name="name">Object 1</field> + <field name="value">10</field> + </record> + + <record id="object2" model="network.network"> + <field name="name">Object 2</field> + <field name="value">20</field> + </record> + + <record id="object3" model="network.network"> + <field name="name">Object 3</field> + <field name="value">30</field> + </record> + + <record id="object4" model="network.network"> + <field name="name">Object 4</field> + <field name="value">40</field> + </record> +--> + </data> +</odoo>
\ No newline at end of file diff --git a/network/models/__init__.py b/network/models/__init__.py new file mode 100644 index 0000000..92de9ed --- /dev/null +++ b/network/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import device, res_partner diff --git a/network/models/__pycache__/__init__.cpython-36.pyc b/network/models/__pycache__/__init__.cpython-36.pyc Binary files differnew file mode 100644 index 0000000..12a6ed4 --- /dev/null +++ b/network/models/__pycache__/__init__.cpython-36.pyc diff --git a/network/models/__pycache__/device.cpython-36.pyc b/network/models/__pycache__/device.cpython-36.pyc Binary files differnew file mode 100644 index 0000000..ac5ba46 --- /dev/null +++ b/network/models/__pycache__/device.cpython-36.pyc diff --git a/network/models/__pycache__/res_partner.cpython-36.pyc b/network/models/__pycache__/res_partner.cpython-36.pyc Binary files differnew file mode 100644 index 0000000..0a7a63a --- /dev/null +++ b/network/models/__pycache__/res_partner.cpython-36.pyc diff --git a/network/models/device.py b/network/models/device.py new file mode 100644 index 0000000..328509a --- /dev/null +++ b/network/models/device.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields, api + + +class DeviceType(models.Model): + _name = 'networking.device.type' + name = fields.Char('Type') + +class Device(models.Model): + _name = 'networking.device' + name = fields.Char('IP Address', size=15) + owner = fields.Many2one('res.partner', 'Owner') + _type = fields.Many2one('networking.device.type', 'Type') + parent_id = fields.Many2one('networking.device', 'Source') + _parent_store = True + parent_path = fields.Char(index=True) + child_ids = fields.One2many('networking.device', 'parent_id', + 'Child Devices') diff --git a/network/models/res_partner.py b/network/models/res_partner.py new file mode 100644 index 0000000..267a112 --- /dev/null +++ b/network/models/res_partner.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields, api + +class Client(models.Model): + _name = 'res.partner' + _inherit = 'res.partner' + + device = fields.One2many('networking.device', 'owner', 'Devices') diff --git a/network/security/ir.model.access.csv b/network/security/ir.model.access.csv new file mode 100644 index 0000000..f211f86 --- /dev/null +++ b/network/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_network_device,networking.device,model_networking_device,base.group_user,1,1,1,1 +access_network_device_type,networking.device.type,model_networking_device_type,base.group_user,1,1,1,1 diff --git a/network/static/description/icon.png b/network/static/description/icon.png Binary files differnew file mode 100644 index 0000000..d77f979 --- /dev/null +++ b/network/static/description/icon.png diff --git a/network/views/network_views.xml b/network/views/network_views.xml new file mode 100644 index 0000000..5308cc3 --- /dev/null +++ b/network/views/network_views.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data> + <!-- Window Action --> + <record model="ir.actions.act_window" id="device_tree_action"> + <field name="name">Devices</field> + <field name="res_model">networking.device</field> + <field name="view_mode">tree,form</field> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face">Create the first device</p> + </field> + </record> + + <!-- Menu Items --> + <menuitem id="main_network_menu" name="Network"/> + <menuitem id="network_menu" name="Network" + parent="main_network_menu"/> + <menuitem id="devices_menu" name="Devices" + parent="network_menu" action="device_tree_action"/> + + <!-- Views --> + <record id="networking_device_view_tree" model="ir.ui.view"> + <field name="name">networking.device.tree</field> + <field name="model">networking.device</field> + <field name="arch" type="xml"> + <tree string="Devices" multi_edit="1" sample="1"> + <field name="name"/> + <field name="owner"/> + <field name="_type"/> + </tree> + </field> + </record> + <record id="networking_device_view_form" model="ir.ui.view"> + <field name="name">networking.device.form</field> + <field name="model">networking.device</field> + <field name="arch" type="xml"> + <form string="Device Form"> + <sheet> + <group colspan="2"> + <group> + <field name="name"/> + <field name="_type"/> + <field name="parent_id"/> + </group> + <group> + <field name="owner" widget="res_partner_many2one"/> + </group> + <group col="2" colspan="2"> + <field name="child_ids" widget="one2many_list"/> + </group> + </group> + </sheet> + </form> + </field> + </record> + </data> +</odoo> diff --git a/network/views/res_partner_views.xml b/network/views/res_partner_views.xml new file mode 100644 index 0000000..e95f05f --- /dev/null +++ b/network/views/res_partner_views.xml @@ -0,0 +1,20 @@ +<odoo> + <record id="inherit_res_partner_form" model="ir.ui.view"> + <field name="name">res.partner.form</field> + <field name="model">res.partner</field> + <field name="inherit_id" ref="base.view_partner_form"/> + <field name="arch" type="xml"> + <xpath expr="//notebook" position="inside"> + <page name="networking_devices" string="Devices"> + <field name="device" string="Devices" widget="one2many"> + <tree> + <field name="name"/> + <field name="owner" invisible="1"/> + <field name="_type"/> + </tree> + </field> + </page> + </xpath> + </field> + </record> +</odoo> |
