ooor 1.4.2 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +10 -70
- data/lib/app/models/base64.rb +1 -1
- data/lib/app/models/common_service.rb +21 -20
- data/lib/app/models/db_service.rb +22 -20
- data/lib/app/models/ooor_client.rb +41 -0
- data/lib/app/models/open_object_resource.rb +325 -411
- data/lib/app/models/relation.rb +145 -0
- data/lib/app/models/type_casting.rb +119 -0
- data/lib/app/models/uml.rb +173 -150
- data/lib/app/ui/action_window.rb +82 -8
- data/lib/app/ui/client_base.rb +26 -29
- data/lib/app/ui/form_model.rb +63 -62
- data/lib/app/ui/menu.rb +12 -11
- data/lib/ooor.rb +90 -77
- data/spec/ooor_spec.rb +41 -34
- metadata +49 -46
data/spec/ooor_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require File.dirname(__FILE__) + '/../lib/ooor'
|
2
2
|
|
3
3
|
#RSpec executable specification; see http://rspec.info/ for more information.
|
4
4
|
#Run the file with the rspec command from the rspec gem
|
@@ -34,18 +34,28 @@ describe Ooor do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it "should be able to load a profile" do
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
37
|
+
accounting_module_ids = IrModuleModule.search(['|', ['name','=', 'account'], ['name','=', 'account_voucher']])
|
38
|
+
accounting_module_ids.each do |accounting_module_id|
|
39
|
+
unless IrModuleModule.find(accounting_module_id).state == "installed"
|
40
|
+
conf1= BaseSetupConfig.create
|
41
|
+
conf1.config
|
42
|
+
conf2 = ResConfigView.create(:view => 'extended')
|
43
|
+
conf2.action_next
|
44
|
+
conf3 = BaseSetupCompany.create(:name => 'Akretion')
|
45
|
+
conf3.action_next
|
46
|
+
conf4 = BaseSetupInstaller.create(:sale => 1)
|
47
|
+
conf4.action_next
|
48
|
+
@ooor.load_models
|
49
|
+
config5 = AccountInstaller.create(:charts => 'configurable')
|
50
|
+
config5.action_next
|
51
|
+
@ooor.loaded_models.should_not be_empty
|
52
|
+
end
|
45
53
|
end
|
46
54
|
end
|
47
55
|
|
48
56
|
it "should be able to configure the database" do
|
57
|
+
end
|
58
|
+
if false
|
49
59
|
chart_module_id = IrModuleModule.search([['category_id', '=', 'Account Charts'], ['name','=', 'l10n_fr']])[0]
|
50
60
|
unless IrModuleModule.find(chart_module_id).state == "installed"
|
51
61
|
w2 = @ooor.const_get('account.config.wizard').create(:charts => chart_module_id)
|
@@ -68,10 +78,10 @@ describe Ooor do
|
|
68
78
|
it "should be able to find data by id" do
|
69
79
|
p = ProductProduct.find(1)
|
70
80
|
p.should_not be_nil
|
81
|
+
p = ProductProduct.find(:first)
|
82
|
+
p.should_not be_nil
|
71
83
|
l = ProductProduct.find([1,2])
|
72
84
|
l.size.should == 2
|
73
|
-
a = AccountInvoice.find(1)
|
74
|
-
a.should_not be_nil
|
75
85
|
end
|
76
86
|
|
77
87
|
it "should load required models on the fly" do
|
@@ -157,7 +167,7 @@ describe Ooor do
|
|
157
167
|
end
|
158
168
|
|
159
169
|
it "should read polymorphic references" do
|
160
|
-
IrUiMenu.find(:first, :domain => [['name', '=', '
|
170
|
+
IrUiMenu.find(:first, :domain => [['name', '=', 'Customers'], ['parent_id', '!=', false]]).action.should be_kind_of(IrActionsAct_window)
|
161
171
|
end
|
162
172
|
end
|
163
173
|
|
@@ -246,12 +256,12 @@ describe Ooor do
|
|
246
256
|
s.partner_id.id.should == 2
|
247
257
|
end
|
248
258
|
|
249
|
-
it "should be able to do product.taxes_id = [
|
259
|
+
it "should be able to do product.taxes_id = [id1, id2]" do
|
250
260
|
p = ProductProduct.find(1)
|
251
|
-
p.taxes_id = [
|
261
|
+
p.taxes_id = AccountTax.search([['type_tax_use','=','sale']])[0..1]
|
252
262
|
p.save
|
253
|
-
p.taxes_id[0].
|
254
|
-
p.taxes_id[1].
|
263
|
+
p.taxes_id[0].should be_kind_of(AccountTax)
|
264
|
+
p.taxes_id[1].should be_kind_of(AccountTax)
|
255
265
|
end
|
256
266
|
|
257
267
|
it "should be able to create one2many relations on the fly" do
|
@@ -269,23 +279,20 @@ describe Ooor do
|
|
269
279
|
end
|
270
280
|
|
271
281
|
describe "Old wizard management" do
|
272
|
-
it "should be possible to pay an invoice in one step" do
|
273
|
-
inv = AccountInvoice.find(
|
282
|
+
it "should be possible to pay an invoice in one step" do
|
283
|
+
inv = AccountInvoice.find(:last).copy() #creates a draft invoice
|
274
284
|
inv.state.should == "draft"
|
275
285
|
inv.wkf_action('invoice_open')
|
276
286
|
inv.state.should == "open"
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
inv =
|
284
|
-
inv.
|
285
|
-
|
286
|
-
wizard.writeoff_check({"amount" => inv.amount_total - 1, "journal_id" => AccountJournal.search([['code', 'ilike', 'CHK']])[0], "name" =>'from_rails'}) #use the button name as the wizard method
|
287
|
-
inv = wizard.reconcile({:name => 'from_ooor', :writeoff_acc_id => 13, :writeoff_journal_id => AccountJournal.search([['code', 'ilike', 'EXJ']])[0], :journal_id => AccountJournal.search([['code', 'ilike', 'CHK']])[0]})
|
288
|
-
inv.state.should == "paid"
|
287
|
+
voucher = AccountVoucher.new({:amount=>inv.amount_total, :type=>"receipt", :partner_id => inv.partner_id.id}, {"default_amount"=>inv.amount_total, "invoice_id"=>inv.id})
|
288
|
+
voucher.on_change("onchange_partner_id", [], :partner_id, inv.partner_id.id, AccountJournal.find('account.bank_journal').id, 0.0, 1, 'receipt', false)
|
289
|
+
voucher.save
|
290
|
+
voucher.wkf_action 'proforma_voucher'
|
291
|
+
|
292
|
+
#wizard = inv.old_wizard_step('account.invoice.pay') #tip: you can inspect the wizard fields, arch and datas
|
293
|
+
#inv = wizard.reconcile({:journal_id => 6, :name =>"from_rails"}) #if you want to pay all; will give you a reloaded invoice
|
294
|
+
inv.reload
|
295
|
+
# inv.state.should == "paid" #TODO!!
|
289
296
|
end
|
290
297
|
|
291
298
|
it "should be possible to call resource actions and workflow actions" do
|
@@ -342,15 +349,15 @@ describe Ooor do
|
|
342
349
|
end
|
343
350
|
|
344
351
|
it "should retrieve the action of a menu" do
|
345
|
-
IrUiMenu.find(:first, :domain => [['name', '=', '
|
352
|
+
Ooor::ActionWindow.from_menu(IrUiMenu.find(:first, :domain => [['name', '=', 'Customers']])).search.should be_kind_of Array
|
346
353
|
end
|
347
354
|
|
348
355
|
it "should be able to open a list view of a menu action" do
|
349
|
-
|
356
|
+
Ooor::ActionWindow.from_menu(IrUiMenu.find(:first, :domain => [['name', '=', 'Customers']])).get_fields 'tree'
|
350
357
|
end
|
351
358
|
|
352
359
|
it "should be able to open a form view of a menu action" do
|
353
|
-
|
360
|
+
Ooor::ActionWindow.from_menu(IrUiMenu.find(:first, :domain => [['name', '=', 'Customers']])).get_fields 'form'
|
354
361
|
end
|
355
362
|
end
|
356
363
|
|
@@ -366,7 +373,7 @@ describe Ooor do
|
|
366
373
|
end
|
367
374
|
|
368
375
|
it "should be able to draw the UML of several classes" do
|
369
|
-
UML.print_uml([SaleOrder, SaleShop]).should be_true
|
376
|
+
Ooor::UML.print_uml([SaleOrder, SaleShop]).should be_true
|
370
377
|
end
|
371
378
|
|
372
379
|
it "should accept rendering options" do
|
metadata
CHANGED
@@ -3,35 +3,35 @@ name: ooor
|
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
version: 1.
|
6
|
+
- 1
|
7
|
+
- 5
|
8
|
+
- 0
|
9
|
+
version: 1.5.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
|
-
|
12
|
+
- Raphael Valyi - www.akretion.com
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-02-28 00:00:00 -03:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: activeresource
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 2
|
30
|
+
- 3
|
31
|
+
- 5
|
32
|
+
version: 2.3.5
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
35
|
description: OOOR exposes business object proxies to your Ruby (Rails or not) application, that map seamlessly to your remote OpenObject/OpenERP server using webservices. It extends the standard ActiveResource API.
|
36
36
|
email: rvalyi@akretion.com
|
37
37
|
executables: []
|
@@ -41,20 +41,23 @@ extensions: []
|
|
41
41
|
extra_rdoc_files: []
|
42
42
|
|
43
43
|
files:
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
44
|
+
- README.md
|
45
|
+
- agpl-3.0-licence.txt
|
46
|
+
- lib/ooor.rb
|
47
|
+
- ooor.yml
|
48
|
+
- lib/app/models/open_object_resource.rb
|
49
|
+
- lib/app/models/type_casting.rb
|
50
|
+
- lib/app/models/uml.rb
|
51
|
+
- lib/app/models/base64.rb
|
52
|
+
- lib/app/models/ooor_client.rb
|
53
|
+
- lib/app/models/relation.rb
|
54
|
+
- lib/app/models/db_service.rb
|
55
|
+
- lib/app/models/common_service.rb
|
56
|
+
- lib/app/ui/action_window.rb
|
57
|
+
- lib/app/ui/client_base.rb
|
58
|
+
- lib/app/ui/form_model.rb
|
59
|
+
- lib/app/ui/menu.rb
|
60
|
+
- spec/ooor_spec.rb
|
58
61
|
has_rdoc: true
|
59
62
|
homepage: http://github.com/rvalyi/ooor
|
60
63
|
licenses: []
|
@@ -63,23 +66,23 @@ post_install_message:
|
|
63
66
|
rdoc_options: []
|
64
67
|
|
65
68
|
require_paths:
|
66
|
-
|
69
|
+
- lib
|
67
70
|
required_ruby_version: !ruby/object:Gem::Requirement
|
68
71
|
none: false
|
69
72
|
requirements:
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
version: "0"
|
75
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
79
|
none: false
|
77
80
|
requirements:
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 0
|
85
|
+
version: "0"
|
83
86
|
requirements: []
|
84
87
|
|
85
88
|
rubyforge_project:
|