ooor 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -156,6 +156,12 @@ Request params or ActiveResource equivalence of OpenERP domain (but degraded as
156
156
  $ Partners.find(:all, :params => {:supplier => true})
157
157
 
158
158
 
159
+ OpenERP search method:
160
+
161
+ $ ResPartner.search([['name', 'ilike', 'a']], 0, 2)
162
+ Arguments are: domain, offset=0, limit=false, order=false, context={}, count=false
163
+
164
+
159
165
  Relations (many2one, one2many, many2many) support:
160
166
 
161
167
  $ SaleOrder.find(1).order_line
@@ -170,6 +176,12 @@ Inherited relations support:
170
176
 
171
177
  $ ProductProduct.find(1).categ_id #where categ_id is inherited from the ProductTemplate
172
178
 
179
+ Please notice that loaded relations are cached (to avoid hitting OpenERP over and over)
180
+ until the root object is reloaded (after save/update for instance)
181
+ Currently, save/update doesn't save the whole object graph but only the current object.
182
+ We might change this in the future to match the way OpenERP clients are working which
183
+ is supported by the OpenERP ORM, see issue: http://github.com/rvalyi/ooor/issues/#issue/3
184
+
173
185
 
174
186
  Load only specific fields support (faster than loading all fields):
175
187
 
@@ -205,10 +217,46 @@ Delete:
205
217
  $ pc.destroy
206
218
 
207
219
 
208
- Call workflow: see code; TODO document
220
+ Call workflow:
221
+
222
+ $ s = SaleOrder.find(2)
223
+ $ s.wkf_action('cancel')
224
+ $ s.state
225
+ $ => 'cancel'
226
+
227
+
228
+ On Change methods:
229
+
230
+ $ l=SaleOrderLine.new
231
+ $ l.on_change('product_id_change', 1, 1, false, false, false, false, false, false, 1)
232
+ $ => #<Ooor::SaleOrderLine:0x10c2cfe1 @prefix_options={}, @attributes={"product_packaging"=>false, "product_uos_qty"=>false, "th_weight"=>0}>
233
+ Notice that it reloads the Objects attrs and print warning message accordingly
234
+
235
+
236
+ Call aribtrary method:
237
+
238
+ $ use static ObjectClass.rpc_execute_with_all method
239
+ $ or object.call(method_name, args*) #were args is an aribtrary list of arguments
240
+
241
+
242
+ Change logged user:
243
+
244
+ $ Ooor.global_login('demo', 'demo')
245
+ $ s = SaleOrder.find(2)
246
+ $ => 'Access denied error'
247
+ Notice that this changes the globally logged user and doesn't address the issue of
248
+ different users using Ooor concurrently with different credentials as you might want
249
+ for instance in a Rails web application. That second issue will be addressed at
250
+ the API level but it's not easy as ActiveResource has not been designed for it.
251
+
252
+
253
+ Change log level:
209
254
 
255
+ By default the log level is very verbose (debug level) to help newcomers to jumpstart
256
+ However you might want to change that. 2 solutions:
257
+ $ Ooor.logger.level = 1 #available levels are those of the standard Ruby Logger class: 0 debug, 1 info, 2 error
258
+ $ In the config yaml file or hash, set the :log_level parameter
210
259
 
211
- Call aribtrary method: see code; TODO document
212
260
 
213
261
 
214
262
  REST HTTP API:
@@ -94,6 +94,7 @@ class OpenObjectResource < ActiveResource::Base
94
94
 
95
95
  #corresponding method for OpenERP osv.execute(self, db, uid, obj, method, *args, **kw) method
96
96
  def rpc_execute_with_all(db, uid, pass, obj, method, *args)
97
+ logger.debug "rpc_execute_with_all: rpc_methods: 'execute', db: #{db.inspect}, uid: #{uid.inspect}, pass: #{pass.inspect}, obj: #{obj.inspect}, method: #{method}, *args: #{args.inspect}"
97
98
  try_with_pretty_error_log { client(@database && @site || Ooor.object_url).call("execute", db, uid, pass, obj, method, *args) }
98
99
  end
99
100
 
@@ -107,6 +108,7 @@ class OpenObjectResource < ActiveResource::Base
107
108
  end
108
109
 
109
110
  def rpc_exec_workflow_with_all(db, uid, pass, obj, action, *args)
111
+ logger.debug "rpc_execute_with_all: rpc_methods: 'exec_workflow', db: #{db.inspect}, uid: #{uid.inspect}, pass: #{pass.inspect}, obj: #{obj.inspect}, action #{action}, *args: #{args.inspect}"
110
112
  try_with_pretty_error_log { client(@database && @site || Ooor.object_url).call("exec_workflow", db, uid, pass, obj, action, *args) }
111
113
  end
112
114
 
@@ -248,7 +250,6 @@ class OpenObjectResource < ActiveResource::Base
248
250
  #Generic OpenERP on_change method
249
251
  def on_change(on_change_method, *args)
250
252
  result = self.class.rpc_execute(on_change_method, *args)
251
- session
252
253
  self.classlogger.info result["warning"]["title"] if result["warning"]
253
254
  self.class.logger.info result["warning"]["message"] if result["warning"]
254
255
  load(result["value"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ooor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raphael Valyi - www.akretion.com