Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

0

Odoo how to dynamically create a weekly schedule mod-fri and mon-fri depending on a field inter value

By
danielmwai
on 12/4/15, 4:26 AM 457 views

 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

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 12/4/15, 4:26 AM
Seen: 457 times
Last updated: 12/4/15, 4:42 AM