summaryrefslogtreecommitdiff
path: root/network
diff options
context:
space:
mode:
Diffstat (limited to 'network')
-rw-r--r--network/__init__.py4
-rw-r--r--network/__manifest__.py35
-rw-r--r--network/__pycache__/__init__.cpython-36.pycbin0 -> 212 bytes
-rw-r--r--network/controllers/__init__.py3
-rw-r--r--network/controllers/__pycache__/__init__.cpython-36.pycbin0 -> 195 bytes
-rw-r--r--network/controllers/__pycache__/controllers.cpython-36.pycbin0 -> 162 bytes
-rw-r--r--network/controllers/controllers.py21
-rw-r--r--network/demo/demo.xml30
-rw-r--r--network/models/__init__.py3
-rw-r--r--network/models/__pycache__/__init__.cpython-36.pycbin0 -> 207 bytes
-rw-r--r--network/models/__pycache__/device.cpython-36.pycbin0 -> 919 bytes
-rw-r--r--network/models/__pycache__/res_partner.cpython-36.pycbin0 -> 497 bytes
-rw-r--r--network/models/device.py18
-rw-r--r--network/models/res_partner.py9
-rw-r--r--network/security/ir.model.access.csv3
-rw-r--r--network/static/description/icon.pngbin0 -> 2649 bytes
-rw-r--r--network/views/network_views.xml57
-rw-r--r--network/views/res_partner_views.xml20
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
new file mode 100644
index 0000000..9eda2bf
--- /dev/null
+++ b/network/__pycache__/__init__.cpython-36.pyc
Binary files differ
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
new file mode 100644
index 0000000..79b788a
--- /dev/null
+++ b/network/controllers/__pycache__/__init__.cpython-36.pyc
Binary files differ
diff --git a/network/controllers/__pycache__/controllers.cpython-36.pyc b/network/controllers/__pycache__/controllers.cpython-36.pyc
new file mode 100644
index 0000000..65a6bd7
--- /dev/null
+++ b/network/controllers/__pycache__/controllers.cpython-36.pyc
Binary files differ
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
new file mode 100644
index 0000000..12a6ed4
--- /dev/null
+++ b/network/models/__pycache__/__init__.cpython-36.pyc
Binary files differ
diff --git a/network/models/__pycache__/device.cpython-36.pyc b/network/models/__pycache__/device.cpython-36.pyc
new file mode 100644
index 0000000..ac5ba46
--- /dev/null
+++ b/network/models/__pycache__/device.cpython-36.pyc
Binary files differ
diff --git a/network/models/__pycache__/res_partner.cpython-36.pyc b/network/models/__pycache__/res_partner.cpython-36.pyc
new file mode 100644
index 0000000..0a7a63a
--- /dev/null
+++ b/network/models/__pycache__/res_partner.cpython-36.pyc
Binary files differ
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
new file mode 100644
index 0000000..d77f979
--- /dev/null
+++ b/network/static/description/icon.png
Binary files differ
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>