Odoo如何根据字段间值动态创建每周调度mod-fri和mon-fri

时间:2015-12-02 13:43:45

标签: openerp odoo-8 openerp-8 odoo-view

我的任务一直让人头疼,非常感谢一些帮助 任务

  • 模型A到模型B有很多关系。
  • 在具有many2many关系的模型B中,我有一个Integer字段。
  • 如果字段整数为3或更多,则对于使用many2many项添加的订单项的每一行,生成动态每周计划,这意味着如果整数值为3,则会为many2many中的所有订单项动态生成三周字段为4,每个订单项生成4周,以便安排。

我尝试使用向导无济于事。 我认为解决的方法可能会有所帮助,但我还没能成功地使用它是使用fields_view_init(),fields_view_get(),使用上下文我选择多对多关系的模型B中的整数字段的值,使用@ api.onchange和@api.depends - 拉取整数字段的值,可以使用fields_view_get()动态创建两周计划或三周三周,具体取决于整数值。

我如何实现,请一些代码示例非常感谢。 以下代码将有助于理解我的意思

unsigned long long

我拥有的视图的示例部分:

operator>>

按钮调度程序是一个现在依赖scheduled_for来动态生成每周视图的函数,如果scheduled_for为3 然后我动态地生成mon-sun mon - sun mon-sun。如果
4然后我生成mon -sun mon-sun mon-sun mon-sun

关于  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> 值,如果<button name="scheduler" string="SCHEDULE" type="object" class="oe_highlight"/>为3,则返回一周的日历模型,其中有3周是mon-sun,mon-sun,mon -sun,如果scheduled_for是4则我返回mon-sun,mon-sun,mon -sun,mon-sun

scheduled_for

此调度程序函数的问题是静态的,它需要是动态的

1 个答案:

答案 0 :(得分:0)

@danielmwai

他们可以在这里找到多种可能的解决方案,您可以雇佣:

1)每次你安排你为所有可能的事件创建一个数据库记录(销售和持久的解决方案,但很多人头脑)

2)您可以使用read/search_read方法虚拟创建记录,每当有人要求记录您读取该记录并在视图中创建虚拟记录传递视图重新转储它将呈现值并根据和何时返回你获取写入然后乘坐write方法的数据并删除虚拟记录并在代码上处理它们。 (快但有时会行为不端)

3)你可以编写web模块,让JS做神奇的事情,并通过网站界面模块进行所有事件渲染。

贝斯茨