source: addons/isp/isp.py

Last change on this file was 62, checked in by chronos, 12 years ago
  • Přidáno: Evidence využitých frekvencí v modulu ISP.
File size: 9.5 KB
Line 
1# -*- encoding: utf-8 -*-
2##############################################################################
3#
4# OpenERP, Open Source Management Solution
5# Copyright (C) 2009 (<http://www.filsystem.ro>). All Rights Reserved
6# $Id$
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with this program. If not, see <http://www.gnu.org/licenses/>.
20#
21##############################################################################
22
23from osv import fields, osv
24
25class network_point(osv.osv):
26 _name = "network.point"
27 _columns = {
28 'name': fields.char('Name', size=32, required=True, translate=True),
29 'latitude': fields.float('Position latitude', digits=(12,6), required=True),
30 'longitude': fields.float('Position longitude', digits=(12,6), required=True),
31 'address_id': fields.many2one('res.partner.address', 'Address'),
32 'description': fields.text('Description', translate=True),
33 }
34network_point()
35
36class network_address(osv.osv):
37 _name = "network.address"
38 _columns = {
39 'name': fields.char('Name', size=64, required=True, translate=True, help='Text alias for address'),
40 'ipv4': fields.char('IPv4', size=15, help='IPv4 address in form nnn.nnn.nnn.nnn'),
41 'ipv6': fields.char('IPv6', size=39, help='IPv6 address in form hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh'),
42 }
43network_address()
44
45class network_device_type(osv.osv):
46 _name = "network.device.type"
47 _columns = {
48 'name': fields.char('Name', size=32, required=True),
49 'running_permanent': fields.boolean('Running permanent', help='Determine if device is not running temporary'),
50 'icon_name': fields.char('Icon file name', size=32),
51 }
52network_device_type()
53
54class network_device(osv.osv):
55 _name = "network.device"
56 _columns = {
57 'name': fields.char('Name', size=32, required=True),
58 'partner_id': fields.many2one('res.partner', 'Partner', required=True),
59 'interface_ids': fields.one2many('network.interface', 'device_id', 'Interfaces'),
60 'type_id': fields.many2one('network.device.type', 'Type', required=True),
61 'used': fields.boolean('Used'),
62 'position': fields.many2one('network.point', 'Position'),
63 'online': fields.boolean('Online', readonly=True, help='Network reachability state of device'),
64 'last_online': fields.datetime('Last online', readonly=True),
65 'inbound_nat_priority': fields.integer('Inbound NAT priority', help="If multiple device is hidden by same NATed public ip, this gives their priority and thus which device will be used for ingoing traffic"),
66 }
67network_device()
68
69class network_interface_type(osv.osv):
70 _name = "network.interface.type"
71 _columns = {
72 'name': fields.char('Name', size=32, required=True, translate=True),
73 'link_speed': fields.integer('Link speed'),
74 'full_duplex': fields.boolean('Full duplex'),
75 'color': fields.integer('Color'),
76 'wireless': fields.boolean('Wireless'),
77 }
78network_interface_type()
79
80class network_link(osv.osv):
81 _name = "network.link"
82 _columns = {
83 'name': fields.char('Name', size=32, required=True, translate=True),
84 'type_id': fields.many2one('network.interface.type', 'Type'),
85 'interface_ids': fields.one2many('network.interface', 'link_id', 'Interfaces'),
86 'points_ids': fields.many2many('network.point', 'network_link_point_rel', 'link_id', 'point_id', 'Points'),
87 }
88network_link()
89
90class network_interface(osv.osv):
91 _name = "network.interface"
92 _columns = {
93 'name': fields.char('Name', size=32, required=True),
94 'type_id': fields.many2one('network.interface.type', 'Type', required=True),
95 'mac': fields.char('MAC', size=17, help='Physical address in form XX:XX:XX:XX:XX:XX'),
96 'local_address_id': fields.many2one('network.address', 'Local address', help='Local IPv4 address in form nnn.nnn.nnn.nnn'),
97 'external_address_id': fields.many2one('network.address', 'External address'),
98 'device_id': fields.many2one('network.device', 'Device', required=True),
99 'online': fields.boolean('Online', readonly=True, help='Network reachability state of device'),
100 'last_online': fields.datetime('Last online', readonly=True),
101 'link_id': fields.many2one('network.link', 'Link'),
102 }
103network_interface()
104
105class network_domain(osv.osv):
106 _name = "network.domain"
107 _columns = {
108 'name': fields.char('Name', size=32, required=True),
109 'parent_id': fields.many2one('network.domain', 'Parent'),
110 'alias': fields.char('Alias', size=32),
111 }
112network_domain()
113
114class network_subnet(osv.osv):
115 _name = "network.subnet"
116 _columns = {
117 'name': fields.char('Name', size=32, required=True, translate=True),
118 'address': fields.char('Address', size=15, required=True),
119 'prefix': fields.integer('Prefix', required=True),
120 'dhcp_id': fields.many2one('network.address', 'DHCP'),
121 'gateway_id': fields.many2one('network.address', 'Default gateway'),
122 'dns_ids': fields.many2many('network.address', 'network_subnet_dns_rel', 'subnet_id', 'address_id', 'DNS servers'),
123 'ntp_ids': fields.many2many('network.address', 'network_subnet_ntp_rel', 'subnet_id', 'address_id', 'NTP servers'),
124 'domain_id': fields.many2one('network.domain', 'Domain'),
125 'wins_id': fields.many2one('network.address', 'WINS server'),
126 'partner_id': fields.many2one('res.partner', 'Partner'),
127 }
128network_subnet()
129
130class network_billing_period(osv.osv):
131 _name = "network.billing.period"
132 _columns = {
133 'name': fields.char('Name', size=32, required=True, translate=True),
134 'months': fields.integer('Month count', required=True),
135 }
136network_billing_period()
137
138class network_service_type(osv.osv):
139 _name = "network.service.type"
140 _columns = {
141 'name': fields.char('Name', size=32, required=True, translate=True),
142 }
143network_service_type()
144
145class network_service_internet(osv.osv):
146 _name = "network.service.internet"
147 _columns = {
148 'name': fields.char('Name', size=32, required=True, translate=True),
149 'download_min_speed': fields.integer('Download min. speed', required=True),
150 'download_max_speed': fields.integer('Download max. speed', required=True),
151 'upload_min_speed': fields.integer('Upload min. speed', required=True),
152 'upload_max_speed': fields.integer('Upload max. speed', required=True),
153 }
154network_service_internet()
155
156class network_service_hosting_vps(osv.osv):
157 _name = "network.service.hosting.vps"
158 _columns = {
159 'name': fields.char('Name', size=32, required=True, translate=True),
160 'memory_capacity': fields.integer('Memory capacity', required=True, help='Total memory capacity of virtual machine in MB'),
161 'storage_capacity': fields.integer('Storage capacity', required=True, help='Total storage capacity of virtual machine in GB'),
162 }
163network_service_hosting_vps()
164
165class network_service(osv.osv):
166 _name = "network.service"
167 _columns = {
168 'name': fields.char('Name', size=32, required=True, translate=True),
169 'type_id': fields.many2one('network.service.type', 'Type'),
170 'price': fields.integer('Price', help='Price per period'),
171 'price_period_id': fields.many2one('network.billing.period', 'Price period'),
172 'available': fields.boolean('Available', help='Define if service is available for customers'),
173 'standard': fields.boolean('Standard', help='Define if service is standard offer for customers'),
174 'partner_ids': fields.many2many('res.partner', 'network_service_partner_rel', 'service_id', 'partner_id', 'Partners'),
175 }
176network_service()
177
178class network_service_instance(osv.osv):
179 _name = "network.service"
180 _columns = {
181 'name': fields.char('Name', size=32, required=True, translate=True),
182 'type_id': fields.many2one('network.service.type', 'Type'),
183 'price': fields.integer('Price', help='Price per period'),
184 'price_period_id': fields.many2one('network.billing.period', 'Price period'),
185 'available': fields.boolean('Available', help='Define if service is available for customers'),
186 'standard': fields.boolean('Standard', help='Define if service is standard offer for customers'),
187 }
188network_service()
189
190class network_frequency(osv.osv):
191 _name = "network.frequency"
192 _columns = {
193 'name': fields.char('Name', size=32, required=True, translate=True),
194 'ssid': fields.char('SSID', size=32),
195 'frequency': fields.integer('Frequency', help='Frequency in MHz'),
196 'channel_width': fields.integer('Channel width', help='Channel width in MHz'),
197 'channel_width_upper': fields.integer('Upper channel width', help='Upper side channel width in MHz'),
198 'channel_width_lower': fields.integer('Lower channel width', help='Lower side channel width in MHz'),
199 'device_id': fields.many2one('network.device', 'Device'),
200 'link_type_id': fields.many2one('network.interface.type', 'Link type'),
201 }
202network_frequency()
Note: See TracBrowser for help on using the repository browser.