我想在人力资源模块中添加新的菜单项。
我创建的新模块取决于“hr”模块。
我创建了一个 xml 文件来添加新的菜单和字段。
这是我的代码:
<menuitem id="menu_new" parent="menu_hr_root" name="new" sequence="30"/>
Run Code Online (Sandbox Code Playgroud)
我更新模块列表并重新加载页面,但我没有找到新菜单。
谢谢你的帮助。
是否可以从模型的Python方法启动ir.actions.act_window?例如,我已经实现了代表课程会话的Session模型(我也有Course模型)。另外,我还有一个openacademy.xml,其中定义了窗体视图以打开会话窗体视图。
<record model="ir.ui.view" id="session_form_view">
<field name="name">session.form</field>
<field name="model">openacademy.session</field>
<field name="arch" type="xml">
<form>
<header>
<button name="draft" type="workflow"
string="Reset to draft"
states="confirmed,done"/>
<button name="confirm" type="workflow"
string="Confirm" states="draft"
class="oe_highlight"/>
<button name="done" type="workflow"
string="Mark as done" states="confirmed"
class="oe_highlight"/>
<button type="object"
name="my_method"
string="New course"/>
<field name="state" widget="statusbar"/>
</header>
<sheet>
<group string="General">
<field name="name" string="Session name"/>
<field name="course_id" string="Course"/>
<field name="instructor_id" string="Instructor"/>
</group>
<group string="Management">
<field name="start_date" string="Start date"/>
<field name="active" string="Active"/>
<field name="duration" string="Duration (in days)"/>
<field name="seats"/>
<field name="percent_taken_seats" widget="progressbar"/>
</group>
<label for="attendees"/>
<field …Run Code Online (Sandbox Code Playgroud) 美好的一天!我只想在Odoo的树视图中有多种颜色,这将显示记录状态==批准的颜色是蓝色状态==帖子颜色是红色
现在我只有一种处于批准状态的颜色.非常感谢您的帮助!!
我在 Odoo 中定义了当前自定义 javascript 视图的扩展:
openerp.account_move_journal_test = function(instance){
var _t = instance.web._t,
_lt = instance.web._lt;
var QWeb = instance.web.qweb;
instance.web.account.QuickAddListView.include({
init: function(){
this._super.apply(this, arguments);
console.log("QuickAddListView modified init")
},
});
};
Run Code Online (Sandbox Code Playgroud)
现在,为了更好地表示,我添加了控制台登录QuickAddListView和 in ListView,它们是称为 using 的父级_super。
因此,如果我像这样运行它,我会得到这些打印结果:
'ListView init' // This is parent of QuickAddListView
'QuickAddListView Init'
'QuickAddListView modified init'
Run Code Online (Sandbox Code Playgroud)
构造函数的顺序是这样的View-> ListView->QuickAddListView
因此,所有这些都按应有的方式打印,但我想要的是以init直接调用ListView并跳过QuickAddListView原始init.
所以之后它应该只打印这个(意味着原始的 QuickAddListView init 没有被调用):
'ListView init' // This is parent of …Run Code Online (Sandbox Code Playgroud) 如何在模块安装上调用函数或执行代码(不更新)?那有特定的功能吗?
我想在模块安装上执行此代码:
all_countries = self.env['res.country'].search([])
for country in all_countries:
_logger.error(country.name)
Run Code Online (Sandbox Code Playgroud) 我创建了一个计费系统,我有一个领域meter_no,prev_reading,current_reading和consumed.在我的onchange方法中,当我选择一个仪表编号时,我prev_reading将自动填充最后current_reading由a的id 保存的值meter_no.这是我的onchange方法:
@api.multi
@api.onchange('meter_no')
def onchange_meter_no(self):
ids = self.search([('meter_no','=',self.meter_no.id)])
last_id = ids and max(ids)
if self.meter_no:
self.prev_reading = last_id.current_reading or None
Run Code Online (Sandbox Code Playgroud)
但这总是返回第二个值,而不是最后一个数据.例如,BILL-01 prev_reading = 0.0,current_reading = 10.0和consumed = 10.0.在BILL-02,符合市场预期,其中,该数据是正确的prev_reading = 10.0,然后我进入current_reading = 20,然后consumed = 10.在第三次计费中,BILL-03 prev_reading始终是10,直到第四次才一直相同,依此类推.这有什么问题?我已经用它max()来获取最后一个id.
在“project.project”模型中,我编写了一个函数来验证“开始日期”和“结束日期”,为此我使用了 onchange 函数。该函数正在运行并发出警告,但正在创建记录。实际上,如果有任何错误,则表示无法保存记录,因为我使用的是 @api.constrains 下面是我的代码。
py.代码:
@api.onchange('date','date_start')
@api.constrains('date','date_start')
def cheking_field_date(self):
self.t1 = self.date_start
self.t2 = self.date
if self.t2 == False:
pass
else:
if str(self.t1) > str(self.t2):
raise Warning('The Deadline Date is Invalid')
else:
pass
Run Code Online (Sandbox Code Playgroud)
但是当我编辑记录时,如果日期字段中的任何更改意味着一切都很好(即“开始日期”和“结束日期”中的验证问题)。当时记录没有保存。为什么会出现这种类型的问题任何人请帮助我。
我尝试了两种方法在列表视图中显示many2many字段,但它们都没有工作:
1)<field name="test_ids"/>- >它只显示记录数量.(即(3条记录))
2)<field name="test_ids" widget="many2many_tags"/>- >它显示记录的ID.(即2,3,4)
如何实现这一目标?
我有 3 个odoos在使用 ubuntu16 和postgresql 9.5 的aws 中正常运行到 ec2 ,但几天前有 1 个 odoo 实例死亡,在我的日志 odoo 中我看到:
2018-01-11 06:15:56,343 28311 ERROR ? openerp.addons.bus.bus: Bus.loop error, sleep and retry
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/openerp/addons/bus/bus.py", line 136, in run
self.loop()
File "/usr/lib/python2.7/dist-packages/openerp/addons/bus/bus.py", line 122, in loop
conn.poll()
OperationalError: SSL connection has been closed unexpectedly
2018-01-11 06:15:58,283 28311 INFO ? openerp.service.server: Initiating shutdown
Run Code Online (Sandbox Code Playgroud)
在我的 postgresql 日志中,我得到:
2018-01-11 01:07:52 -05 LOG: could not receive data from client: Connection reset …Run Code Online (Sandbox Code Playgroud) 我正在使用Odoo 8,我正在尝试通过XML文件在数据库中引入数据.
这个文件的内容是下一个:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="event_invitation_email_template" model="email.template">
<field name="name">Event Invitation</field>
<field name="subject">Invitation to an event</field>
<field name="email_from">${(object.event_id.user_id.email or 'noreply@localhost')|safe}</field>
<field name="email_to">${object.email|safe}</field>
</record>
</data>
</openerp>
Run Code Online (Sandbox Code Playgroud)
这非常有效.但我想添加另一个字段model_id,这是一个Many2one(指向ir.model).如果我想要设置的值具有XML ID,我会知道如何执行此操作,但实际情况并非如此.
我想将模型my.new.model设置为model_id,但如果我不进行搜索,我不知道它在数据库中的ID.
所以我不知道如何管理我的目的.有人可以帮帮我吗?
odoo-8 ×10
odoo ×4
openerp ×4
javascript ×1
listview ×1
many-to-many ×1
many-to-one ×1
menuitem ×1
module ×1
odoo-9 ×1
openerp-8 ×1
postgresql ×1
python ×1
super ×1
treeview ×1
xml ×1