Browse Source

class loader implemented to register in metadata storage

robert2206 8 years ago
parent
commit
d7a622ba97

+ 2 - 0
package.json

@@ -21,6 +21,8 @@
     "@angular/platform-server": "2.2.1",
     "@ionic/storage": "1.1.7",
     "angular2-odoo-jsonrpc": "0.0.7",
+    "app-root-path": "^2.0.1",
+    "glob": "^7.1.1",
     "ionic-angular": "2.0.0",
     "ionic-native": "2.4.1",
     "ionicons": "3.0.0",

+ 2 - 0
src/app/main.ts

@@ -1,5 +1,7 @@
 import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
 
 import { AppModule } from './app.module';
+import { importModels } from "../odoo/utils/import-models";
 
 platformBrowserDynamic().bootstrapModule(AppModule);
+importModels();

+ 0 - 10
src/models/product.ts

@@ -1,10 +0,0 @@
-import { OdooModel } from "../odoo-engine/decorators/model";
-import { OdooField } from "../odoo-engine/decorators/field";
-import { FieldTypes } from "../odoo-engine/types/field";
-
-@OdooModel('product.template')
-export class Product {
-
-    @OdooField(FieldTypes.CHAR)
-    name: string;
-}

+ 0 - 0
src/odoo-engine/collections/field-metadata.ts → src/odoo/collections/field-metadata.ts


+ 0 - 0
src/odoo-engine/collections/model-metadata.ts → src/odoo/collections/model-metadata.ts


+ 0 - 0
src/odoo-engine/decorators/field.ts → src/odoo/decorators/field.ts


+ 0 - 0
src/odoo-engine/decorators/model.ts → src/odoo/decorators/model.ts


+ 0 - 0
src/odoo-engine/metadata/field-metadata.ts → src/odoo/metadata/field-metadata.ts


+ 7 - 0
src/odoo-engine/metadata/metadata-storage.ts → src/odoo/metadata/metadata-storage.ts

@@ -7,4 +7,11 @@ export class MetadataStorage {
 
     readonly models = new ModelMetadataCollection<OdooModelMetadata>();
     readonly fields = new FieldMetadataCollection<OdooFieldMetadata>();
+
+    /**
+     *
+     */
+    getModels(models?: Function[]) {
+        return this.models;
+    }
 }

+ 0 - 0
src/odoo-engine/metadata/model-metadata.ts → src/odoo/metadata/model-metadata.ts


+ 0 - 0
src/models/credential.ts → src/odoo/models/credential.ts


+ 10 - 0
src/odoo/models/customer.ts

@@ -0,0 +1,10 @@
+import { OdooModel } from "../decorators/model";
+import { OdooField } from "../decorators/field";
+import { FieldTypes } from "../types/field";
+
+@OdooModel("res.partner")
+export class Customer {
+
+    @OdooField(FieldTypes.CHAR)
+    name: string;
+}

+ 10 - 0
src/odoo/models/product.ts

@@ -0,0 +1,10 @@
+import { OdooModel } from "../decorators/model";
+import { OdooField } from "../decorators/field";
+import { FieldTypes } from "../types/field";
+
+@OdooModel('product.template')
+export class Product {
+
+    @OdooField(FieldTypes.CHAR)
+    name: string;
+}

+ 1 - 1
src/odoo-engine/types/field.ts → src/odoo/types/field.ts

@@ -42,6 +42,6 @@ export abstract class FieldTypes {
             }
         }
 
-        throw new Error(`El tipo ${type} no puede ser determinado`);
+        // throw new Error(`El tipo ${type} no puede ser determinado`);
     }
 }

+ 12 - 0
src/odoo/utils/import-models.ts

@@ -0,0 +1,12 @@
+import { Customer } from "../models/customer";
+import { Product } from "../models/product";
+
+/**
+ *
+ */
+export function importModels(): void {
+    const models: Function[] = [];
+
+    // Add classes to register to metadata storage
+    models.push(Customer, Product);
+}

+ 0 - 0
src/odoo-engine/utils/metadata-storage.ts → src/odoo/utils/metadata-storage.ts


+ 7 - 1
src/pages/home/home.ts

@@ -1,5 +1,6 @@
 import { Component } from '@angular/core';
 import { NavController, NavParams, MenuController } from 'ionic-angular';
+import { getMetadataStorage } from "../../odoo/utils/metadata-storage";
 
 @Component({
 	selector: 'page-home',
@@ -7,6 +8,8 @@ import { NavController, NavParams, MenuController } from 'ionic-angular';
 })
 export class HomePage {
   	
+	
+
 	constructor(
 		public navCtrl: NavController,
 		public navParams: NavParams,
@@ -16,5 +19,8 @@ export class HomePage {
   	ionViewDidLoad() {
 		console.log('ionViewDidLoad HomePage');
 		this.menuCtrl.enable(true);
+
+		console.log(getMetadataStorage());
+			
   	}
-}
+}