我有一个任务一直让人头疼,非常感谢一些帮助。
任务:
- 模型 A 到模型 B 具有 many2many 关系。
- 在具有 many2many 关系的模型 B 中,我有一个 Integer 字段。
- 如果字段整数为 3 或更大,对于使用 many2many 项目添加的行项目的每一行,动态生成每周计划意味着如果整数值为 3,则如果字段为 4,则为 many2many 中的所有行项目动态生成三周为每个订单项生成 4 周的时间安排。
我尝试使用向导无济于事。我认为解决的方法可能会有所帮助,但我无法成功地使其工作是使用 fields_view_init() , fields_view_get() ,使用上下文,我在模型 B 中选择多对多关系的整数字段的值和使用@api.onchange 和@api.depends - 拉取整数字段的值,并可能使用fields_view_get() 根据整数值动态创建两周计划或3 周计划。
我该如何实现,请高度赞赏一些代码示例。下面的代码将有助于理解我上面的意思
class ratecard_sin_radio(models.Model):
code = fields.Char(string='SINGULAR RATECARD CODE',readonly=True)
name = fields.Char(string='NAME')
outlet_id = fields.Many2one(comodel_name='outlet', string='Outlet')
timeband_id = fields.Many2one(comodel_name='timeband', string='TimeBand')
class ratecard_multiple(models.Model):
#pudb.set_trace()
_name = 'ratecard.multiple'
scheduled_for = fields.Integer(string='SCHEDULED FOR',default=1 ,track_visibility='always',store=True , readonly=True)
multiple_ratecard_id = fields.Many2many(comodel_name='ratecard.sin.radio', relation='ratecard_multiple_singular_rel',
column1='ratecard_multiple_id',
column2='ratecard_sin_radio_id',
string='RATECARDS')
我拥有的视图的示例部分:
<group colspan="4" col="4" >
<tree editable="bottom">
<group colspan="2" col="2" >
<field name='name'/>
<field name="scheduled_for"/>
</group>
<field name='multiple_ratecard_id' nolabel="1" options="{'reload_on_button': true}"> <!-- widget="many2many"-->
<tree string="ALLOCATE SPOTS" editable="bottom">
<!--<field name="week_id" widget="one2many_list"/>-->
<button name="scheduler" string="SCHEDULE" type="object" class="oe_highlight"/>
<field name="code"/>
<field name="name"/>
<field name="outlet_id" on_change="onchange_outlet(outlet_id)" placeholder="OUTLET"/>
<field name="outlet_type_id" domain="[('outlet_id', '=' ,outlet_id)]" placeholder="OUTLET TYPE" />
<field name='monday'/>
<field name='tuesday'/>
<field name='wednesday'/>
<field name='thursday'/>
<field name='friday'/>
<field name='saturday'/>
<field name='sunday'/>
<field name="spot_total"/>
<field name="noofweeks"/>
<field name='allocate_subtotal'/>
<field name="rates_total"/>
<field name="total_cost"/>
</tree>
</field>
按钮调度程序是一个现在依赖于 schedule_for 来动态生成每周视图的函数,如果 schedule_for 为 3
,那么我会动态生成 mon-sun mon-sun mon-sun。如果
4 那么我生成 mon -sun mon-sun mon-sun mon-sun
在
<button name="scheduler" string="SCHEDULE" type="object" class="oe_highlight"/>
调用这个创建一周的函数。问题我需要根据
scheduled_for
值控制本周生成,如果 scheduled_for
是 3 我返回一个周历模型,它有 3 周是 mon-sun , mon-sun , mon -sun 如果它scheduled_for
是 4 然后我返回周一至日,周一至周日,周一至周日
@api.multi
def scheduler(self):
view_id = self.env.ref('ragtimeorder.view_week_form').id
# context = self._context.copy()
return {
'name':_('SCHEDULE RATECARD'),
'view_type': 'form',
'view_mode': 'form',
'views': [(view_id, 'form'), ],
'res_model': 'week',
# 'context': self._context,
'type': 'ir.actions.act_window',
'target': 'new',
'flags': {'action_buttons': True},
}
此调度程序功能的问题是静态的,它需要是动态的