- 博客(96)
- 收藏
- 关注
原创 自制Openerp图表
注意:1. 本文介绍一种简单的,非通用的改进openerp的思路。并非一定要取代原有方式。2. 本文会修改web_graph模块,如果在你的项目里使用了这个模块,请避免修改,以防止异常。3. 本文基于openerp 6.1通过本文,你可以知道:1. web_graph的运行机制。2. 如何动手修改这个模块。看看这个模块的结构:客户端采用的是highcha
2012-09-01 11:11:44
5179
2
原创 修改Many2One字段的链接打开方式
OE 6中, Many2One字段的只读显示方式如下:点击时, 是在本窗口打开这个对象的. 有时候非常的恼人. 很多用户不知道浏览器的前进后退, 所以还要从头找回去.想想, 不如改为浮动窗口的好点.打开浏览器的开发工具:链接都是"oe_form_uri" class. 在web模块的xml模版里, 发现这个class是 FieldURI.readonly
2012-09-01 11:08:17
2429
1
原创 更改Editable Form里的快捷键
经常听到用户在抱怨OE的回车不好用。原来国产的很多软件里,总是把回车当成TAB用。唉。迎合用户,改。打开:\addons\web\static\src\js\view_list_editable.js找到(大约line169):on_row_keyup: function (e) { var self = this;......动手。首
2012-09-01 11:07:07
2639
原创 用wizard导入excel数据
作为一个quick note吧。OE里的csv导入数据功能形同摆设,通俗地说就是弱爆了。今天尝试一下用excel文件来导入数据。在python里读取excel格式的lib很多,这里我选用的是xlrd。上代码先:# -*- coding: utf-8 -*-from osv import osv, fieldsimport time, xlrd, base64
2012-09-01 11:05:37
3504
原创 实现Web Client上的html报表直接打印
读了一下openerp新版本的代码,的确有不少的改进。尤其是web client,基本上是推倒重写的。看官方的论坛上很多人在问如何在web client上实现报表的直接打印,想想现在的打印的确是不方便,总是把文件下载下来,然后打开文件打印。html的报表容易想到,因为可以直接在web client打开一个新窗口,用js进行打印。于是就改改openerp代码,实现一个简单的html报表的。供
2012-03-30 13:18:14
4236
原创 Tryton客户端(1.8+)的编译
trytond很容易就搞定. 但是想编译tryton(客户端),就没那么容易了.鉴于很少有人用mac版本的(主要是中文乱码...), 这里只提起windows.tryton的wiki上写了一些build的步骤,但是呢, 很容易出错....而且还编译不出来
2011-05-06 10:47:00
3093
原创 爬取双色球的开奖记录
<br />需要twisted, pymongo,BeautifulSoup.<br /> <br />#!/usr/bin/env python# encoding: utf-8"""lott.pyCreated by Daniel Yang on 2011-01-23.Copyright (c) 2011 Yang. All rights reserved."""import sysimport osfrom twisted.internet import react
2011-01-26 16:17:00
2905
原创 Trouble with flex file-uploading and twisted.web2 FileSaver(烙铁)
<br />用Flex的FileReference来把文件post到twisted.web2写得服务端,这个看似很简单,却问题多多。<br />Flex总是报错“IO错误, #2038”<br />(代码很普通,文档中的实例)<br />服务段代码:<br /> <br />from twisted.web2 import http_headers, resource, / static, server, channel, http, responsecodefrom twisted.python
2010-12-16 18:08:00
2247
原创 Twist+pyMongo+MongoDB测试结果
两台测试机,机器的配置就不写了。代码也不贴了。 主要是测试pymongo在twisted下的稳定度,和可能出现的同步问题(或许没有) Inser: mail:/home/jintong# ab -kc 10 -t 30 http://192.168.2.7:8080/tThis is ApacheBench, Version 2.3 Copyrigh
2010-01-08 16:35:00
2969
转载 Render_if: Conditional Parts in Nevow Templates
http://eagain.net/blog/2005/12/17/nevow_render_if.html def render_if(self, ctx, data): r=ctx.tag.allPatterns(str(bool(data))) return ctx.tag.clear()[r] <ul nevow:pattern="True"
2009-06-22 10:25:00
1782
原创 Hello World from Objective-J
在看了almost.at网站之后,我找到了Cappuccino。 Cappuccino是一个很好的框架。有让我心动的UI层。很苹果。又能免去写我决定看看这个用Objective-J的框架。 顺手译了一篇起步(意译):原文:http://objective-j.org/learn/tutorials/objective-j-tutorial.php Objec
2009-06-10 15:07:00
2757
原创 Athena LivePage的页面刷新异常和解决方法
Athena的LivePage对象很好用,但是在刷新的时候,会有一个异常:exceptions.AssertionError: Cannot render a LivePage more than once 官方说法是: LivePage instances maintain server-side state that corresponds to the connection
2009-05-07 14:05:00
2173
原创 Twisted adbapi的使用
Twisted adbapi没有太多文档。这段时间我一直在用Twisted + sqlite(3), 效果还是不错的。主要的代码: from twisted.enterprise import adbapi _conn = adbapi.ConnectionPool(sqlite3, ./NewsDB.db) def countCB
2009-05-06 14:10:00
10315
原创 Twisted TimerService的使用(以及由此带来的诡异事件)
TimerService是twisted里提供的一个对loopingcall的service封装。是在服务运行的期间反复执行某个方法的手段。 文档里没有,其实也很简单。 #! /usr/bin/python# -*- coding: utf-8 -*-Created on May 5, 2009@author: Danielfro
2009-05-05 15:28:00
3302
原创 Flex模块化的一种思路
翻出两年前的代码,无意中看到写的一个模块化应用的范例。和大家共享。 假如你碰到:1. 比较大的应用。2. 分若干个Module的应用。3. Module之间有比较复杂的交互。4. 你希望更动态的使用这些模块,开发新的模块。...或许你需要看看这篇文章。 提纲挈领,我们先看主程序中是如何加载一个module blog的。......_modu
2009-05-04 11:39:00
2838
原创 Twistd一个诡异的地方
有个不好的习惯,老喜欢用root帐号。运行twistd程序的时候,代码老是报错,找不到包之类的。无意中看到:http://linux.die.net/man/1/twistdNote that if twistd is run as root, the working directory is not searched for Python modules.是否是这
2009-05-02 10:27:00
2496
1
原创 Twisted Cron的用法
可以像使用linux下cron那样使用twisted的scheduling.http://code.google.com/p/twistedcronservice/ 不过我更喜欢用twisted自己的Scheduling utility http://twistedmatrix.com/trac/browser/trunk/twisted/internet/task.py加上C
2009-04-30 16:47:00
2755
原创 svn hook的post-commit不执行咋办?
在post-commit文件上加: export LANG=zh_CN.UTF-8 update: post-commit.tmpl只是post-commit.bat的一个模板, 执行的是post-commit.bat(win), 在linux下是post-commit. 如果你用win, 修改bat就可以了.
2009-04-30 14:58:00
9058
2
原创 Trivial About Apache+mod_wsgi+TG2
1. Apache2启动时找不到mod_wsgi:mod_wsgi没ln到正确的文件上ln -s /usr/lib/apache2/modules/mod_wsgi.so /usr/lib/apache2/modules/mod_wsgi.so-2.5 2. cPickle.so:: PyUnicodeUCS2_DecodeUTF8错误Python编译的参数,和Python m
2009-04-30 13:56:00
1235
原创 笔记:timeit使用
需要做benchmark,非web程序。用python自带的timeit模块。 代码: #! /usr/bin/python# -*- coding: utf-8 -*- import xmlrpclib, timeit t = timeit.Timer("s.interprete(三里庵的贵人香)", "import xmlrpclib/ns
2009-04-28 17:53:00
1398
原创 Twisted.web的性能测试
想了解一下twisted单独作为web服务器的性能。 所以用webpy写一个简单的页面,挂上twisted的wsgi跑一下。测试代码:import webfrom twisted.web2 import wsgi,server, channel, staticfrom twisted.application import service, strportsurls =
2009-04-26 13:36:00
3891
1
原创 笔记:安装Stackless
aptitude install libreadline-dev./configure --prefix=/opt/stackless --with-readline --with-zlib=/usr/includemakemake install
2009-04-24 21:48:00
1616
原创 Concurrence系列-远程调用
Concurrence的文档里没有提到这个系列的方法。我还是从unittest里找到的。 经过一番折腾,加上和作者的交流。现在大概能run的起来了。 远程调用,要使用concurrence.remote包下的RemoteServer, RemoteTasklet, RemoteClient三个对象。 过程是这样,服务端要用RemoteServer来启动一个服务,绑
2009-04-24 15:23:00
931
原创 Concurrence系列-HTTP
服务端 from concurrence import dispatchfrom concurrence.http import WSGIServerdef hello_world(environ, start_response): start_response("200 OK", []) return ["Hello, world!"]def main()
2009-04-23 16:16:00
638
原创 Concurrence系列-Message使用
Concurrence里最基本的执行单位是Tasklet,最基本的通信(单位)就是Message了。很清晰。 Message是这样定义的:class MSG_XXX(Message): pass 从命名规则上讲,习惯把Message声明为 MSG_开头的。 每个Tasklet都会有一个mailbox, 用来接收其他task发来的Message。 Taskle
2009-04-23 15:22:00
764
原创 Concurrence系列-Tasklet使用
Concurrence框架中,最小的执行单位就是tasklet了。 创建一个Tasklet from concurrence import dispatch, Taskletdef greeting(msg): print msgdef start(): Tasklet.new(greeting)("Hello") Taskl
2009-04-23 14:48:00
793
原创 Concurrence系列-安装
Concurrence的安装还是比较正常的(比那些编译时报出100个error的东西好多了)。 我试了两个平台,有奔头(8.x,企业版),和Mac(leopard), 有奔头下, 可能需要apt-get install python-devapt-get install libevent-dev easy_install pyrex
2009-04-23 14:39:00
854
原创 Concurrence-concurrent网络应用必备
在寻找一个异步框架的时候,找到这个框架,Concurrence(http://opensource.hyves.org/concurrence/index.html) Hello world:from concurrence import dispatchdef hello(): print "Hello World!" if __name__ ==
2009-04-23 14:24:00
862
原创 解决mmseg.3.0b3的编译问题
在debian 5下编译mmseg.3.0b3, 碰到了:g++ -DHAVE_CONFIG_H -I. -I. -I.. -fPIC -I.. -I.. -I../src/css -I../src/utils -D_REENTRANT -D_LARGEFILE64_SOURCE -g -O2 -MT UnigramCorpusReader.lo -MD -MP -MF .deps
2009-03-05 15:14:00
1267
原创 新书预告一下
我是一个不能写很长文章的人, 所以我的blog总是只言片语的, 是个烂摊子.做flex这么多年, 也需要给自己一个交代. 也希望能把仔细这几年做RIA, 做Interaction Design等经验和大家分享. 本来这本书是应该08年夏天开始写的, 当时的环境不是太好, 大家一股脑都去看Silver Light去了.现在, 大家似乎又一股脑回来了. 我把书分为两类
2009-01-15 12:19:00
666
1
原创 在AS中获得浏览器的url
var fullURL:String = Application.application.url;if(URLUtil.isHttpURL(fullURL)){this._baseURL = URLUtil.getProtocol(fullURL) +"://"+ URLUtil.getServerNameWithPort(fullURL)+ "/";} BrowserM
2009-01-14 21:57:00
854
原创 Flex Bind中的复杂表达式
在flex中, 你是不能这样的:"浏览" visible="{data.data.perms.can_edit && ediotrmode!=0}" />编译器会报错.你有两个选择:1: 用"|"代替 "&".2: 干脆用"&".代码就变成了:"浏览" visible="{data.data.perms.can_edit && ediotrmode!=0}" />
2009-01-13 13:02:00
808
翻译 求两直线的交点
/** * 求直线AB, CD的交点 * 如果平行, 返回null. * * @param a : Point * @param b : Point * @param c : Point * @param d : Point * @return Point - 交点 * @usage * import com.seyself.
2009-01-05 10:46:00
2288
原创 求TextArea的高度
for(var i:int=0; i o_height += dialog.mx_internal::getTextField().getLineMetrics(i).height; }
2008-12-31 16:09:00
830
原创 Cocomo的架构
上周看到一个帖子, 关于Cocomo(http://labs.adobe.com/technologies/cocomo/).最让我感兴趣的是这个架构:我和阿淫都觉得这个很有意思.
2008-12-06 13:07:00
626
原创 Flex 3 Module的一个诡异bug
表现:使用ModuleManager去加载一个Module的时候, 所有的事件都激发不了.代码: var testModule:IModuleInfo = ModuleManager.getModule(modules/pub/User.swf); testModule.addEventListener(ModuleEvent.REA
2008-11-27 16:16:00
1235
原创 一句话:关于ModuleEvent事件种类
ConstantDefined By ERROR : String = "error"[static] 在下载模块的时候发生错误.ModuleEvent PROGRESS : String = "progress"[static] 正在下载过程中.ModuleEvent READY : String = "ready"[static] 模块下载完毕.ModuleEvent SETUP :
2008-11-27 15:04:00
1099
原创 ModuleManagerGlobals和ModuleManager
在Flex SDK 3.1中, 出现一个新的类.文档中没有介绍. 该类的代码在这里: http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleManager.asModuleManager的主要方法有:getModule(返回IMod
2008-11-27 14:51:00
978
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人