~willowit-openerp-team/willowit-openerp-addons/development

« back to all changes in this revision

Viewing changes to event_project/event.py

  • Committer: Deepak Seshadri
  • Date: 2011-04-04 07:04:07 UTC
  • Revision ID: deepak@willowit.com.au-20110404070407-8j9mnxzzgh53o24t
Remove irrelevant modules from this branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# -*- coding: utf-8 -*-
2
 
##############################################################################
3
 
#
4
 
#    OpenERP, Open Source Management Solution
5
 
#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
6
 
#
7
 
#    This program is free software: you can redistribute it and/or modify
8
 
#    it under the terms of the GNU Affero General Public License as
9
 
#    published by the Free Software Foundation, either version 3 of the
10
 
#    License, or (at your option) any later version.
11
 
#
12
 
#    This program is distributed in the hope that it will be useful,
13
 
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 
#    GNU Affero General Public License for more details.
16
 
#
17
 
#    You should have received a copy of the GNU Affero General Public License
18
 
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 
#
20
 
##############################################################################
21
 
 
22
 
from osv import fields, osv
23
 
import time
24
 
import netsvc
25
 
import pooler
26
 
import tools
27
 
 
28
 
 
29
 
class one2many_mod_task(fields.one2many):
30
 
    def get(self, cr, obj, ids, name, user=None, offset=0, context=None, values=None):
31
 
        if not context:
32
 
            context = {}
33
 
        if not values:
34
 
                values = {}
35
 
        res = {}
36
 
        for id in ids:
37
 
            res[id] = []
38
 
        for id in ids:
39
 
            query = "select project_id from event_event where id = %s"
40
 
            cr.execute(query,(id,))
41
 
            project_ids = [ x[0] for x in cr.fetchall()]
42
 
            ids2 = obj.pool.get(self._obj).search(cr, user, [(self._fields_id,'in',project_ids),('state','<>','done')], limit=self._limit)
43
 
            for r in obj.pool.get(self._obj)._read_flat(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'):
44
 
                res[id].append( r['id'] )
45
 
        return res
46
 
 
47
 
class event(osv.osv):
48
 
    _inherit = 'event.event'
49
 
 
50
 
    def write(self, cr, uid, ids,vals, *args, **kwargs):
51
 
        if 'date_begin' in vals and vals['date_begin']:
52
 
            for eve in self.browse(cr, uid, ids):
53
 
                if eve.project_id:
54
 
                    self.pool.get('project.project').write(cr, uid, [eve.project_id.id], {'date_end':eve.date_begin[:10]})
55
 
 
56
 
        return super(event,self).write(cr, uid, ids,vals, *args, **kwargs)
57
 
 
58
 
    _columns = {
59
 
        'project_id': fields.many2one('project.project', 'Project', readonly=True),
60
 
        'task_ids': one2many_mod_task('project.task', 'project_id', "Project tasks", readonly=True, domain="[('state','&lt;&gt;', 'done')]"),
61
 
    }
62
 
event()
63
 
 
64
 
 
65
 
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
66