Selaa lähdekoodia

[ADD] more features

robert 6 vuotta sitten
vanhempi
commit
2af15cc12b

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+*.pyc

+ 8 - 1
__openerp__.py

@@ -4,5 +4,12 @@
     'author': "Robert Gauto",
     'category': 'Tools',
     'version': '0.1',
-    'depends': ['base']
+    'depends': [
+        'base'
+    ],
+    'data': [
+        'templates.xml',
+        'views/odoo_container.xml',
+        'views/payment_plan.xml'
+    ]
 }

+ 14 - 8
models/odoo_container.py

@@ -13,27 +13,29 @@ import time
 
 
 class OdooContainer(models.Model):
-    _name = 'odoo.management.odoo.container'
+    _name = 'odoo.container'
 
     CONTAINER_STATUS = [
-        ('to_activate', 'Por activar'),
+        ('draft', 'Por activar'),
         ('activated', 'Activado'),
         ('disapproved', 'No aprobado'),
         ('suspended', 'Suspendido'),
         ('destroyed', 'Eliminado')
     ]
 
-    normalized_name = fields.Char(string='Normalized Name', compute='_normalize_name', size=50)
+    name = fields.Char(string='Name', size=50)
+    normalized_name = fields.Char(string='Normalized name', compute='_normalize_name', size=50)
     logo = fields.Binary(string='Logo')
     internal_ip = fields.Char(string='Internal IP', size=15)
-    internal_port = fields.Integer(string='Internal Port')
+    internal_port = fields.Integer(string='Internal port')
     external_ip = fields.Char(string='External IP', size=15)
-    external_port = fields.Integer(string='External Port')
-    expose_service = fields.Boolean(string='Expose Service', default=True)
-    status = fields.Selection(string='Estado', selection=CONTAINER_STATUS, default='draft')
+    external_port = fields.Integer(string='External port')
+    expose_ip = fields.Boolean(string='Expose IP', default=True)
+    state = fields.Selection(string='Estado', selection=CONTAINER_STATUS, default='draft')
     demo = fields.Boolean(string='Is Demo?', default=False)
+    domain = fields.Char(string='Dominio', size=100)
     active = fields.Boolean(string='Is Active', default=False)
-    payment_plan_id = fields.Many2one(string='Payment Plan', comodel_name='odoo.management.payment.plan', required=True)
+    payment_plan_id = fields.Many2one(string='Payment plan', comodel_name='payment.plan', required=True)
 
     @api.one
     # @api.depends('name')
@@ -48,6 +50,10 @@ class OdooContainer(models.Model):
         name = stringcase.lowercase(name)
         self.normalized_name = stringcase.snakecase(name)
 
+    @api.one
+    def action_activate(self):
+        print(self)
+
     def check_existence(self):
         root_path = config['odoo_root_path'] or None
 

BIN
models/odoo_container.pyc


+ 4 - 2
models/payment_plan.py

@@ -3,7 +3,9 @@ from openerp import models, fields
 
 
 class PaymentPlan(models.Model):
-    _name = 'odoo.management.payment.plan'
+    _name = 'payment.plan'
 
+    name = fields.Char(string='Name', size=50)
     amount = fields.Float(string='Amount')
-    limit_storage = fields.Float(string='Limit Storage')
+    storage_limit = fields.Float(string='Storage limit (MB)')
+    ttl = fields.Integer(string='Time to live (Hours)')

BIN
models/payment_plan.pyc


+ 39 - 0
templates.xml

@@ -1,5 +1,44 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <openerp>
     <data>
+        <!-- odoo container action window -->
+        <record id="odoo_container_action" model="ir.actions.act_window">
+            <field name="name">Odoo Systems</field>
+            <field name="type">ir.actions.act_window</field>
+            <field name="res_model">odoo.container</field>
+            <field name="view_mode">tree,form</field>
+            <field name="view_type">form</field>
+            <field name="help" type="html">
+                <p class="oe_view_nocontent_create">
+                    Cree una nueva sistema de Odoo
+                </p>
+            </field>
+        </record>
+
+        <!-- payment plan action window -->
+        <record id="payment_plan_action" model="ir.actions.act_window">
+            <field name="name">Payment Plans</field>
+            <field name="type">ir.actions.act_window</field>
+            <field name="res_model">payment.plan</field>
+            <field name="view_mode">tree,form</field>
+            <field name="view_type">form</field>
+            <field name="help" type="html">
+                <p class="oe_view_nocontent_create">
+                    Cree un nuevo plan de pago para su contenedor
+                </p>
+            </field>
+        </record>
+
+        <!-- root menu -->
+        <menuitem id="sysadmin_menu_root" name="Administración de Sistemas" />
+
+        <!-- containers menu -->
+        <menuitem id="containers_menu_categ" name="Contenedores" parent="sysadmin_menu_root" />
+        <menuitem id="odoo_container_menu_act" name="Sistemas" parent="containers_menu_categ" action="odoo_container_action" />
+        
+        <!-- configuration menu  -->
+        <menuitem id="configuration_menu_categ" name="Configuración" parent="sysadmin_menu_root" />
+        <menuitem id="payment_plan_menu_act" name="Planes" parent="configuration_menu_categ" action="payment_plan_action" />
+        <menuitem id="configuration_menu_act" name="Configuración" parent="configuration_menu_categ" action="payment_plan_action" />
     </data>
 </openerp>

+ 34 - 12
views/odoo_container.xml

@@ -1,36 +1,58 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="UTF-8" ?>
 <openerp>
     <data>
         <!--Tree-->
         <record id="odoo_management.odoo_container_tree" model="ir.ui.view">
-            <field name="name">odoo.management.odoo.container.tree</field>
+            <field name="name">odoo.container.tree</field>
             <field name="model">odoo.container</field>
             <field name="arch" type="xml">
-                <tree>
+                <tree string="Sistemas odoo">
                     <field name="name" />
                     <field name="normalized_name" />
                     <field name="external_port" />
-                    <field name="status" />
+                    <field name="state" />
                 </tree>
             </field>
         </record>
 
         <!--Form-->
         <record id="odoo_management.odoo_container_form" model="ir.ui.view">
-            <field name="name">odoo.management.odoo.container.form</field>
+            <field name="name">odoo.container.form</field>
             <field name="model">odoo.container</field>
             <field name="arch" type="xml">
-                <form string="Odoo Container">
+                <form string="Sistema odoo">
+                    <header>
+                        <button name="action_activate" states="draft" string="Activar" type="object" modifiers="{'invisible': [('state', '!=', 'draft')]}" />
+                        <button name="action_destroy" states="destroyed" string="Destruir" type="object" modifiers="{'invisible': [('state', '!=', 'draft'), ('active', '=', True)]}" />
+                        <field name="state" widget="statusbar" statusbar="draft,activated,disapproved,suspended,destroyed" readonly="1" modifiers="{'readonly': true}" />
+                    </header>
                     <sheet>
-                        <div class="oe_title oe_left">
-                            <h1>
-                                <field name="name" class="oe_inline"></field>
-                            </h1>
+                        <div class="oe_button_box oe_right">
+                            <button string="Schedule Meeting" name="action_makeMeeting" type="object" />
                         </div>
-                        <group>
-                            <group>
+                        <div class="oe_left" style="width: 500px;">
+                            <field name="logo" widget="image" class="oe_avatar oe_left" modifiers="{}" />
+                            <div class="oe_title" style="width: 390px;">
+                                <label class="oe_edit_only" for="name" string="Name" />
+                                <h1>
+                                    <field name="name" class="oe_inline" modifiers="{'required': true}" />
+                                </h1>
                                 <field name="normalized_name" />
+                            </div>
+                        </div>
+                        <group>
+                            <group string="Información del Servicio">
+                                <field name="payment_plan_id" widget="selection" />
+                                <field name="domain" />
+                                <field name="demo" />
+                                <field name="active" />
+                            </group>
+                            <group string="Información del Contenedor">
                                 <field name="internal_ip" />
+                                <field name="internal_port" />
+                                <field name="external_ip" />
+                                <field name="external_port" />
+                                <field name="expose_ip" />
                             </group>
                         </group>
                     </sheet>

+ 38 - 0
views/payment_plan.xml

@@ -1,5 +1,43 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <openerp>
     <data>
+        <!-- payment.plan tree view -->
+        <record id="odoo_management.payment_plan_tree" model="ir.ui.view">
+            <field name="name">payment.plan.tree</field>
+            <field name="model">payment.plan</field>
+            <field name="arch" type="xml">
+                <tree>
+                    <field name="name" />
+                    <field name="amount" />
+                </tree>
+            </field>
+        </record>
+
+        <!-- payment.plan form view -->
+        <record id="odoo_management.payment_plan_form" model="ir.ui.view">
+            <field name="name">payment.plan.form</field>
+            <field name="model">payment.plan</field>
+            <field name="arch" type="xml">
+                <form>
+                    <sheet>
+                        <div class="oe_title oe_left">
+                            <label class="oe_edit_only" for="name" string="Name" />
+                            <h1>
+                                <field name="name" class="oe_inline" />
+                            </h1>
+                        </div>
+                        <group>
+                            <group string="Información de pago">
+                                <field name="amount" />
+                            </group>
+                            <group string="Información del servicio">
+                                <field name="storage_limit" />
+                                <field name="ttl" />
+                            </group>
+                        </group>
+                    </sheet>
+                </form>
+            </field>
+        </record>
     </data>
 </openerp>