在javascript中填充字符串的最简单方法是什么?
我正在寻找一个内联表达式,相当于mystr.lpad("0", 4):for mystr='45'返回0045.
OpenERP python代码开发周期是编辑代码,重启服务器并测试它.重新启动服务器是必要的,因为它是使源代码重新加载到内存中的原因,但它会增加工作节奏的烦人延迟.
由于python是一种动态语言,我想知道是否有办法强制运行python解释器(应用服务器)动态重新加载代码模块,以便可以在不重新启动应用服务器的情况下测试它?
更新:
按照reload@ecatmur建议的路径,我得到了下面的代码,但它仍然无法正常工作:
class module(osv.osv):
_inherit = "ir.module.module"
def action_reload(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context):
modulename = 'openerp.addons.' + obj.name
tmp = __import__(modulename)
pycfile = tmp.__file__
modulepath = string.replace(pycfile, ".pyc", ".py")
code=open(modulepath, 'rU').read()
compile(code, modulename, "exec")
execfile(modulepath)
reload( sys.modules[modulename] )
openerp.modules.registry.RegistryManager.delete(cr.dbname)
openerp.modules.registry.RegistryManager.new(cr.dbname)
Run Code Online (Sandbox Code Playgroud) 我正在使用python的ldap模块验证用户登录.登录失败时,我会收到ldap.INVALID_CREDENTIALS登录信息,但这可能是因为密码错误或帐户被锁定.在第3次尝试后帐户被锁定.
我想检测到该帐户已被锁定并向受挫的用户报告,而不是相同的"无效登录"消息.
寻找解决方案我发现:
我应该用来查找锁定用户的LDAP查询是:
(&(objectClass=user)(lockoutTime>=1))
Run Code Online (Sandbox Code Playgroud)
或者对于特定用户:
(&(objectClass=user)(sAMAccountName=jabberwocky)(lockoutTime>=1))
Run Code Online (Sandbox Code Playgroud)
但这不起作用,查询每次都不返回任何结果.
我刚刚建立了一个定制的OpenERP模块/addons/the_meaning_of_life.现在我想把它翻译成另一种语言.我现在应该有一个包含.pot和.po文件的i18n文件夹.我该如何生成这些?有一个循序渐进的指南会很高兴.
在osv.osv提供了一个get_xml_id寻找所提供的数据库ID的XML标识方法.做相反的最佳方法是什么?
知道XML Id(它是在数据加载文件中定义的),我如何获得相应的Database Id,以便我可以在tour Python代码中引用它?
我有一个函数可以将日期时间四舍五入到最接近的一刻钟。但有没有一种方法可以向下舍入到最近的季度呢?
例子。
08:14:00 becomes 08:00:00
08:03:00 becomes 08:00:00
08:29:00 becomes 08:15:00
08:55:00 becomes 08:45:00
Run Code Online (Sandbox Code Playgroud)
这就是我现在要四舍五入到最近的四分之一的数字。
(
@dt datetime
)
returns datetime
as
begin
declare @result datetime
declare @mm int
set @mm=datepart(minute,@dt)
set @result = dateadd(minute,-@mm + (round(@mm/cast(15 as float),0)*15) , @dt )
return @result
Run Code Online (Sandbox Code Playgroud) 在Openerp中,我们有object_A,其中一个one2many字段属于object_B.Object_B有一个浮点字段.在object_A中,我们有一个用于相应object_B的one2many_list小部件,所以我们自然会为每个新记录分配多行.
我知道这很简单,但是我很难在object_A中编写一个函数来总结Object_B浮点列的总值.到目前为止我所拥有的是这样的:
def get_result(self, cr, uid, ids):
total = {}
for obj in self.browse(cr, uid, ids):
result=0.0
total[result]+= obj.o2m_field.float_field
return total
Run Code Online (Sandbox Code Playgroud) 在具有工作流的模型中,当您创建新记录时,它会启动一个新记录workflow instance.然后它将在"活动"之间转换,直到达到flow stop一个cancel或多个done状态.
我在OpenERP 6.1中遇到的是,一旦workflow instance到达它flow stop,它已经死了,你不能在它上面执行更多的转换.
但我想Reset to draft在表单上有一个按钮,允许重新启动已终止的工作流.有没有办法实现这一点,比如说,通过Python调用Openerp工作流服务的方法?
在v6.1中,您可以直接在该Settings区域的UI上进行高级配置.
在v7中,我可以在哪里自定义用户组,电子邮件模板,自动操作,预定操作,......?
openerp ×7
python ×3
function ×1
javascript ×1
odoo ×1
python-ldap ×1
string ×1
translation ×1
workflow ×1