ooor 1.9.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|