[IMP] doc/howtos/backend: fix calendar example
[odoo/odoo.git] / doc / howtos / backend / exercise-calendar
1 # HG changeset patch
2 # Parent 85a8d7317b9e13480f39ad739955442d15144451
3
4 Index: doc-backend/openacademy/models.py
5 ===================================================================
6 --- doc-backend.orig/openacademy/models.py      2014-08-25 16:18:57.920058347 +0200
7 +++ doc-backend/openacademy/models.py   2014-08-25 16:19:22.872057976 +0200
8 @@ -1,5 +1,6 @@
9  # -*- coding: utf-8 -*-
10  
11 +from datetime import timedelta
12  from openerp import models, fields, api, exceptions
13  
14  class Course(models.Model):
15 @@ -55,6 +56,8 @@
16      attendee_ids = fields.Many2many('res.partner', string="Attendees")
17  
18      taken_seats = fields.Float(string="Taken seats", compute='_taken_seats')
19 +    end_date = fields.Date(string="End Date", store=True,
20 +        compute='_get_end_date', inverse='_set_end_date')
21  
22      @api.one
23      @api.depends('seats', 'attendee_ids')
24 @@ -82,6 +85,26 @@
25              }
26  
27      @api.one
28 +    @api.depends('start_date', 'duration')
29 +    def _get_end_date(self):
30 +        if not (self.start_date and self.duration):
31 +            self.end_date = self.start_date
32 +            return
33 +
34 +        start = fields.Datetime.from_string(self.start_date)
35 +        duration = timedelta(days=self.duration)
36 +        self.end_date = start + duration
37 +
38 +    @api.one
39 +    def _set_end_date(self):
40 +        if not (self.start_date and self.end_date):
41 +            return
42 +
43 +        start_date = fields.Datetime.from_string(self.start_date)
44 +        end_date = fields.Datetime.from_string(self.end_date)
45 +        self.duration = (end_date - start_date).days
46 +
47 +    @api.one
48      @api.constrains('instructor_id', 'attendee_ids')
49      def _check_instructor_not_in_attendees(self):
50          if self.instructor_id and self.instructor_id in self.attendee_ids:
51 Index: doc-backend/openacademy/views/openacademy.xml
52 ===================================================================
53 --- doc-backend.orig/openacademy/views/openacademy.xml  2014-08-25 16:18:57.920058347 +0200
54 +++ doc-backend/openacademy/views/openacademy.xml       2014-08-25 16:18:57.912058347 +0200
55 @@ -120,11 +120,24 @@
56              </field>
57          </record>
58  
59 +        <!-- calendar view -->
60 +        <record model="ir.ui.view" id="session_calendar_view">
61 +            <field name="name">session.calendar</field>
62 +            <field name="model">openacademy.session</field>
63 +            <field name="arch" type="xml">
64 +                <calendar string="Session Calendar" date_start="start_date"
65 +                          date_stop="end_date"
66 +                          color="instructor_id">
67 +                    <field name="name"/>
68 +                </calendar>
69 +            </field>
70 +        </record>
71 +
72          <record model="ir.actions.act_window" id="session_list_action">
73              <field name="name">Sessions</field>
74              <field name="res_model">openacademy.session</field>
75              <field name="view_type">form</field>
76 -            <field name="view_mode">tree,form</field>
77 +            <field name="view_mode">tree,form,calendar</field>
78          </record>
79  
80          <menuitem id="session_menu" name="Sessions"