ooor 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +8 -0
- data/lib/app/models/open_object_resource.rb +9 -2
- metadata +1 -1
data/README.md
CHANGED
@@ -141,6 +141,9 @@ Basic finders:
|
|
141
141
|
OpenERP domain support:
|
142
142
|
|
143
143
|
$ ResPartner.find(:all, :domain=>[['supplier', '=', 1],['active','=',1]])
|
144
|
+
More subbtle now, remember OpenERP use a kind of inverse polish notation for complex domains,
|
145
|
+
here we look for a product in category 1 AND which name is either 'PC1' OR 'PC2':
|
146
|
+
$ ProductProduct.find(:all, :domain=>[['categ_id','=',1],'|',['name', '=', 'PC1'],['name','=','PC2']])
|
144
147
|
|
145
148
|
|
146
149
|
OpenERP context support:
|
@@ -192,6 +195,11 @@ Update:
|
|
192
195
|
$ pc.save
|
193
196
|
|
194
197
|
|
198
|
+
Copy:
|
199
|
+
|
200
|
+
$ copied_object = pc.copy({:categ_id => 2}) #first optionnal arg is new default values, second is context
|
201
|
+
|
202
|
+
|
195
203
|
Delete:
|
196
204
|
|
197
205
|
$ pc.destroy
|
@@ -44,7 +44,7 @@ class OpenObjectResource < ActiveResource::Base
|
|
44
44
|
@fields[field.attributes['name']] = field
|
45
45
|
end
|
46
46
|
end
|
47
|
-
logger.info "#{fields.size} fields"
|
47
|
+
logger.info "#{fields.size} fields loaded"
|
48
48
|
end
|
49
49
|
@field_defined = true
|
50
50
|
end
|
@@ -209,12 +209,14 @@ class OpenObjectResource < ActiveResource::Base
|
|
209
209
|
def create(context={})
|
210
210
|
self.pre_cast_attributes
|
211
211
|
self.id = self.class.rpc_execute('create', @attributes, context)
|
212
|
+
load(self.class.find(self.id, :context => context).attributes)
|
212
213
|
end
|
213
214
|
|
214
215
|
#compatible with the Rails way but also supports OpenERP context
|
215
216
|
def update(context={})
|
216
217
|
self.pre_cast_attributes
|
217
218
|
self.class.rpc_execute('write', self.id, @attributes.reject{|k, v| k == 'id'}, context)
|
219
|
+
load(self.class.find(self.id, :context => context).attributes)
|
218
220
|
end
|
219
221
|
|
220
222
|
#compatible with the Rails way but also supports OpenERP context
|
@@ -222,11 +224,16 @@ class OpenObjectResource < ActiveResource::Base
|
|
222
224
|
self.class.rpc_execute('unlink', self.id, context)
|
223
225
|
end
|
224
226
|
|
227
|
+
#OpenERP copy method, load persisted copied Object
|
228
|
+
def copy(defaults=[], context={})
|
229
|
+
self.class.find(self.class.rpc_execute('copy', self.id, defaults, context), :context => context)
|
230
|
+
end
|
231
|
+
|
225
232
|
|
226
233
|
# ******************** fake associations like much like ActiveRecord according to the cached OpenERP data model ********************
|
227
234
|
|
228
235
|
def relations
|
229
|
-
|
236
|
+
@relations ||= {} and @relations
|
230
237
|
end
|
231
238
|
|
232
239
|
def relationnal_result(method_id, *arguments)
|