ooor 1.9.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +23 -71
- data/Rakefile +5 -0
- data/bin/ooor +1 -0
- data/lib/ooor.rb +87 -129
- data/lib/ooor/associations.rb +64 -0
- data/lib/ooor/base.rb +218 -0
- data/lib/{app/models → ooor}/base64.rb +0 -0
- data/lib/ooor/connection.rb +37 -0
- data/lib/ooor/errors.rb +120 -0
- data/lib/ooor/field_methods.rb +153 -0
- data/lib/{app → ooor}/helpers/core_helpers.rb +2 -2
- data/lib/ooor/locale.rb +13 -0
- data/lib/ooor/mini_active_resource.rb +94 -0
- data/lib/ooor/model_registry.rb +19 -0
- data/lib/ooor/naming.rb +73 -0
- data/lib/ooor/rack.rb +114 -0
- data/lib/ooor/railtie.rb +41 -0
- data/lib/ooor/reflection.rb +537 -0
- data/lib/ooor/reflection_ooor.rb +92 -0
- data/lib/{app/models → ooor}/relation.rb +61 -22
- data/lib/ooor/relation/finder_methods.rb +113 -0
- data/lib/ooor/report.rb +53 -0
- data/lib/{app/models → ooor}/serialization.rb +18 -6
- data/lib/ooor/services.rb +133 -0
- data/lib/ooor/session.rb +120 -0
- data/lib/ooor/session_handler.rb +63 -0
- data/lib/ooor/transport.rb +34 -0
- data/lib/ooor/transport/json_client.rb +53 -0
- data/lib/ooor/transport/xml_rpc_client.rb +15 -0
- data/lib/ooor/type_casting.rb +193 -0
- data/lib/ooor/version.rb +8 -0
- data/spec/helpers/test_helper.rb +11 -0
- data/spec/install_nightly.sh +17 -0
- data/spec/ooor_spec.rb +197 -79
- data/spec/requirements.txt +19 -0
- metadata +58 -20
- data/lib/app/models/client_xmlrpc.rb +0 -34
- data/lib/app/models/open_object_resource.rb +0 -486
- data/lib/app/models/services.rb +0 -47
- data/lib/app/models/type_casting.rb +0 -134
- data/lib/app/models/uml.rb +0 -210
- data/lib/app/ui/action_window.rb +0 -96
- data/lib/app/ui/client_base.rb +0 -36
- data/lib/app/ui/form_model.rb +0 -88
- data/ooor.yml +0 -27
data/lib/app/ui/client_base.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# OOOR: OpenObject On Ruby
|
2
|
-
# Copyright (C) 2009-2012 Akretion LTDA (<http://www.akretion.com>).
|
3
|
-
# Author: Raphaël Valyi
|
4
|
-
# Licensed under the MIT license, see MIT-LICENSE file
|
5
|
-
|
6
|
-
require 'app/ui/form_model'
|
7
|
-
require 'app/ui/action_window'
|
8
|
-
|
9
|
-
module Ooor
|
10
|
-
module ClientBase
|
11
|
-
|
12
|
-
def get_init_menu(user_id=@config[:user_id])
|
13
|
-
const_get('res.users').read([user_id], ['menu_id', 'name'], @global_context)
|
14
|
-
end
|
15
|
-
|
16
|
-
#Ooor can have wizards that are not object related, for instance to configure the initial database:
|
17
|
-
def old_wizard_step(wizard_name, step='init', wizard_id=nil, form={}, context={})
|
18
|
-
result = @ir_model_class.old_wizard_step(wizard_name, nil, step, wizard_id, form, {})
|
19
|
-
FormModel.new(wizard_name, result[0], nil, nil, result[1], [self], @global_context)#TODO set arch and fields
|
20
|
-
end
|
21
|
-
|
22
|
-
def build_object_view(model_class, view_id, view_mode='form', domain=[], ids=nil, context={}, toolbar=false)
|
23
|
-
#TODO put in cache eventually:
|
24
|
-
view = model_class.fields_view_get(view_id, view_mode, @global_context, toolbar)
|
25
|
-
context = @global_context.merge(context)
|
26
|
-
ids = const_get(view['model']).search(domain) unless ids #TODO replace by search_read once OpenERP has that
|
27
|
-
values = const_get(view['model']).read(ids, view['fields'], context)
|
28
|
-
models = []
|
29
|
-
ids.each_with_index do |id, k|
|
30
|
-
models << const_get(view['model']).new(values[k], [], context)
|
31
|
-
end
|
32
|
-
|
33
|
-
FormModel.new(view['name'], view['view_id'], view['arch'], view['fields'], nil, models, context, view['view_id'])
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
data/lib/app/ui/form_model.rb
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
# OOOR: OpenObject On Ruby
|
2
|
-
# Copyright (C) 2009-2012 Akretion LTDA (<http://www.akretion.com>).
|
3
|
-
# Author: Raphaël Valyi
|
4
|
-
# Licensed under the MIT license, see MIT-LICENSE file
|
5
|
-
|
6
|
-
module Ooor
|
7
|
-
class FormModel
|
8
|
-
attr_accessor :name, :wizard_id, :datas, :arch, :fields, :type, :state, :view_id, :open_object_resources, :view_context
|
9
|
-
|
10
|
-
def initialize(name, wizard_id, arch, fields, data, open_object_resources, view_context, view_id=nil)
|
11
|
-
@arch = arch
|
12
|
-
@fields = fields
|
13
|
-
@name = name
|
14
|
-
@wizard_id = wizard_id
|
15
|
-
@open_object_resources = open_object_resources
|
16
|
-
@view_context = view_context
|
17
|
-
if data #it's a wizard
|
18
|
-
@datas = data['datas'].symbolize_keys!
|
19
|
-
@type = data['type']
|
20
|
-
update_wizard_state(data['state'])
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def to_html
|
25
|
-
"<div>not implemented in OOOR core gem!</div>"
|
26
|
-
end
|
27
|
-
|
28
|
-
def to_s
|
29
|
-
content = ""
|
30
|
-
content << @name
|
31
|
-
@open_object_resources.each do |resource|
|
32
|
-
content << "\n---------"
|
33
|
-
@fields.each do |k, v| #TODO no need for new call if many2one
|
34
|
-
if v['type'] == 'many2one'
|
35
|
-
content << "\n#{k}: #{resource.relations[k]}"
|
36
|
-
else
|
37
|
-
content << "\n#{k}: #{resource.send(k)}"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
def old_wizard_step(method_symbol, *arguments)
|
44
|
-
values = @datas.merge!((arguments[0] || {}).symbolize_keys!)
|
45
|
-
context = @view_context.merge(arguments[1] || {})
|
46
|
-
if @open_object_resources.size == 1
|
47
|
-
open_object_resource = @open_object_resources[0]
|
48
|
-
if open_object_resource.is_a? Ooor
|
49
|
-
data = open_object_resource.ir_model_class.old_wizard_step(@name, nil, method_symbol, @wizard_id, values, context)
|
50
|
-
else
|
51
|
-
data = open_object_resource.class.old_wizard_step(@name, [open_object_resource.id], method_symbol, @wizard_id, values, context)
|
52
|
-
end
|
53
|
-
if data[1]['state'] == 'end'
|
54
|
-
if open_object_resource.is_a? Ooor
|
55
|
-
return 'end'
|
56
|
-
else
|
57
|
-
return open_object_resource.reload_from_record!(open_object_resource.class.find(open_object_resource.id, :context => context))
|
58
|
-
end
|
59
|
-
end
|
60
|
-
@arch = data[1]['arch']
|
61
|
-
@fields = data[1]['fields']
|
62
|
-
@datas.merge!(data[1]['datas'].symbolize_keys!) unless data[1]['datas'].empty?
|
63
|
-
@type = data[1]['type']
|
64
|
-
update_wizard_state(data[1]['state']) #FIXME ideally we should remove old methods
|
65
|
-
return self
|
66
|
-
else
|
67
|
-
ids = @open_object_resources.collect{ |open_object_resources| open_object_resources.id }
|
68
|
-
return open_object_resource.class.old_wizard_step(@name, ids, method_symbol, @wizard_id, values, context)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
private
|
73
|
-
|
74
|
-
def update_wizard_state(state)
|
75
|
-
if state.is_a? Array
|
76
|
-
@state = state
|
77
|
-
@state.each do |state_item| #generates autocompletion handles
|
78
|
-
self.class_eval do
|
79
|
-
define_method state_item[0] do |*args|
|
80
|
-
self.send :old_wizard_step, *[state_item[0], *args]
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|
88
|
-
end
|
data/ooor.yml
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
#In order Rails knows how to t=connect to your OpenERP server, you should create a file APPLICATION_ROOT/config/ooor.yml
|
2
|
-
#with the following pattern customized with your OpenERP server URL, your target OpenERP database, your login and password.
|
3
|
-
|
4
|
-
development:
|
5
|
-
url: http://localhost:8069/xmlrpc #the OpenERP XML/RPC server
|
6
|
-
database: database_name #the OpenERP database you want to connect to
|
7
|
-
username: admin
|
8
|
-
password: admin
|
9
|
-
#models: [res.partner, product.template, product.product, product.category, sale.order, sale.order.line, account.invoice] #you can allow only some models if you like
|
10
|
-
bootstrap: true #true if you want to load OpenObject models (will hit OpenERP server) at startup; else use Ooor.reload!(lambda {}) to reload the Ooor models at any time
|
11
|
-
#log_level: 0
|
12
|
-
#global_context:
|
13
|
-
#'lang': en_US
|
14
|
-
|
15
|
-
test:
|
16
|
-
url: http://localhost:8069/xmlrpc
|
17
|
-
database: database_name
|
18
|
-
username: admin
|
19
|
-
password: admin
|
20
|
-
bootstrap: true
|
21
|
-
|
22
|
-
production:
|
23
|
-
url: http://localhost:8069/xmlrpc
|
24
|
-
database: database_name
|
25
|
-
username: admin
|
26
|
-
password: admin
|
27
|
-
bootstrap: true
|