96511598 search Martinamor 96511598 Money
6 Martinamor E%E7%8F%8D%E6%84%9B%E6%89%BE%E9%BA%BB%E7%85%A9%E7%89%87%E9%A0%AD%E6%9B%B2% 96511598 5
B Martinamor %E Datingdelightfulgirls % Martinamor 3search8 Meta %Esearch%searchE Photos 8 Money % Photos 4 Martinamor Bsearch% 96511598 AsearchEsearch% Martinamor D%%E6%B5%B7%E8%B3%8A%E7%8E%8B%E4%BA%BA%E9%AD%9A%E5%85%AC%E4%B8%BBhA%%E7%8F%8D%E6%84%9B%E6%89%BE%E9%BA%BB%E7%85%A9%E7%89%87%E9%A0%AD%E6%9B%B25search8%E7%8F%8D%E6%84%9B%E6%89%BE%E9%BA%BB%E7%85%A9%E7%89%87%E9%A0%AD%E6%9B%B2%searchC% Meta 4 Photos B% Datingdelightfulgirls B Money 1search5
8 96511598 %E6%B5%B7%E8%B3%8A%E7%8E%8B%E4%BA%BA%E9%AD%9A%E5%85%AC%E4%B8%BBhsearch openerp
一条评论
OpenERP里面的 Scheduled Action其实就是一个计划任务
通过Administration–>Scheduler–>Configuration–>Scheduled Action 进去Schedule Action
Interval Number 每x次执行一次,配合Interval Unit用例如这里的意思就是每一天执行一次。
Next Excution Date 是下次执行时间。
Number of calls 循环次数,就是这个计划任务循环的次数,例如:我想连续执行30天,这里就填30,如果天-1就是无限循环。
这里的就是设置要执行的任务的方法
哪个Object(对象)里面的哪个Function(方法),此Function包括了哪些Arguments(参数)关于这个方法和参数其实就是一个定义在对象里的普通方法。
例如我这样设置
class object1_test1(osv.osv): _name =’object1.test1’ def fucnction1(self, cr, uid, args_1=False, args_2=False, context = None): .............. return True object1_test1()
那么在Arguments里就应该填(args_1, args_2,)这样就可以通过界面灵活配置计划执行的方法的参数
使用Scheduled Action地方有很多,例如发邮件,记录日志之类的,而且在开启了Scheduled Action的时候还有一个好处,就是某些操作耗时很长的,但是不需要经常调用的,可以通过他来调用。
最近的一个项目要求在Product_Template中增加类似与HTML中<img src=”" />的形式的图片,效果如图:
product_img_extra.py
from osv import osv, fields
import urllib2
import base64
class product_template_img(osv.osv):
_name = 'product.template'
_inherit = 'product.template'
_description = 'Product Extra Image'
def _get_image(self, cursor, user, ids, name, arg, context=None):
image = {}
opener = urllib2.build_opener()
res = self.read(cursor, user, ids, ['image_link'])
image_link = res[0]['image_link']
if image_link:
pic = base64.encodestring(opener.open(image_link).read())
for id in ids:
image[id] = pic
return image
_columns = {}
product_template_img()
product_img_extra_view.xml
<?xml version="1.0" encoding="utf-8"?> <openerp> <data> <record id="product_img_view" model="ir.ui.view"> <field name="name">product.template.product.form</field> <field name="model">product.template</field> <field name="type">form</field> <field name="inherit_id" ref="product.product_template_form_view" /> <field name="arch" type="xml"> <field name="name" position="before"> <field name="image" widget="image" nolabel="1" img_width="168" img_height="168" colspan="4"> <field name="image_link" colspan="4"> </field> </field> </record> </data> </openerp>
由于OpenERP的基本开发概念的其中一点是读取数据库动态生成界面.这时我就想到了使用fields.function来在界面生成时做一些特别的处理.
product_img_extra.py中的_columns将对productTemplate增加image_link和image两个column.其中image_link用于保存图片链接的column,当界面生成时通过链接读取图片.image为显示图片的column,但由于store已设置为False所以不会直接保存到数据库中,而只会在界面生成时运行.
因为需要读取外部链接,所以需要用到Python自带的urllib2模块,值得注意的是opener.open(image_link).read()获取回来的虽然已经是二进制数据,但仍需要使用base64.encodestring对其进行转码才可以被所识别.
之前搞了一个OpenERP动态view的实现,有些想法:
1.首先那一个tree view 来举例(如下图)。
它的显示要经过几个方法:fields_view_get –> fields_get –> read我们需要写一个object继承原来存这些数据的object,然后这个object重写fields_view_get–>fields_get–>read等方法,自己本身不需要view xml不需要columns,因为view我们是动态生成,columns则是从别的object里读出来。通过重写fields_view_get-可以达到自定义输出的viewfield_view_get 最后返回的是这样的信息
{},
'field_parent': False,
'fields': {},
'column_D': {},
'column_B': {},
'column_A': {},
'line_num': {} }
}
也就是说我们只要构建出一个这样格式的xml就可以返回view,其实经过分析下,这个xmk就是我们平时的模块的view的xml还有一个就是fields的说明。然后如果我们想根据这个view显示出来一个tree那么就要重写read方法这个是我们需要read返回的数组
[{},
{},
{}]
只要你重写的fields_view_get 和read 能返回这个就可以好像我上面图,返回一个自己构建的view。至于如何让保存修改,大家可以重写 create,unlink,write等方法。
大家有啥看发欢迎在下面提出来
近日开始真正地接触Open ERP(下简称OE)的模块开发. 一开始在朋友的推荐下装了一个AllInOne版的OE. AllInOne版的OE适合直接使用者,但对于开发者来说需要Debug时就十分麻烦,也不方法对OE源码的理解.
所以这两天还是下了一个源码版的来安装,由于发现网络上对于windows下的源码运行资料并不是很完整,也比较旧,所以自己写了这篇文章来总结一下.
首先需要对些概念明确一下:
vMoney Datingdelightfulgirls De Photos Martinamor 96511598 Meta Dating Delightful Girls SaJoLabf x Affair kMoney Datingdelightfulgirls De Photos Martinamor 96511598 Meta Dating Delightful Girls SaJoLabr h h Passion Dating Delightful Girls Lingerie