I have this task which i describe below and i have gotten stuck , i would appreciate some help
I earlier posted it on Stack Overflow this is the link http://stackoverflow.com/questions/34044275/odoo-how-to-dynamically-create-a-weekly-schedule-mod-fri-and-mon-fri-depending-o
**TASK** :
- Model A to Model B have a many2many relation .
- In Model B which has a many2many relation,i have a Integer field.
- If the field integer is 3 or more , for each line of the line items added using the many2many items , generate dynamically weekly schedules meaning if the integer value is 3 generate three weeks dynamically for all the line items in the many2many if the field is 4 for each line items generate 4 week to schedule on .
I have tried using a wizard to no avail .
Ways of solving i think could be of help but i havent been able successfully make it work is using the fields_view_init() , fields_view_get() , using context where i pick the value of the integer fields in model B of the many to many relation and using @api.onchange and @api.depends -- pull the value of the integer field and may be using the fields_view_get() dynamically create the two weeks schedule or the 3 three weeks depending on the integer value .
How can i achieve , please some code examples are highly appreciated .
This code below will help understand what i mean above
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')
Sample part of the view i have :
<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>
The button scheduler is a function that now depends on scheduled_for to dynamically generate the weekly views that is if scheduled_for is 3
then dynamically i generate mon- sun mon - sun mon-sun . if
4 then i generate mon -sun mon-sun mon-sun mon-sun
On the
` <button name="scheduler" string="SCHEDULE" type="object" class="oe_highlight"/>`
calls this function which creates a week. Problem i need to control this week to be generated according to the
`scheduled_for` value such that if `scheduled_for` is 3 i return a week calendar model that have 3 weeks that is mon-sun , mon-sun , mon -sun if it the `scheduled_for` is 4 then i return mon-sun , mon-sun , mon -sun , mon-sun
@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},
}
Problem with this scheduler function is static which it is required to be dynamic