~technofluid-team/openobject-addons/technofluid_multiple_installations

« back to all changes in this revision

Viewing changes to letter/wizard/wizard_paragraph_load.py

  • Committer: pinky
  • Date: 2006-12-07 13:41:40 UTC
  • Revision ID: pinky-dedd7f8a42bd4557112a0513082691b8590ad6cc
New trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
##############################################################################
 
2
#
 
3
# Copyright (c) 2005-2006 TINY SPRL. (http://tiny.be) All Rights Reserved.
 
4
#
 
5
# WARNING: This program as such is intended to be used by professional
 
6
# programmers who take the whole responsability of assessing all potential
 
7
# consequences resulting from its eventual inadequacies and bugs
 
8
# End users who are looking for a ready-to-use solution with commercial
 
9
# garantees and support are strongly adviced to contract a Free Software
 
10
# Service Company
 
11
#
 
12
# This program is Free Software; you can redistribute it and/or
 
13
# modify it under the terms of the GNU General Public License
 
14
# as published by the Free Software Foundation; either version 2
 
15
# of the License, or (at your option) any later version.
 
16
#
 
17
# This program is distributed in the hope that it will be useful,
 
18
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
19
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
20
# GNU General Public License for more details.
 
21
#
 
22
# You should have received a copy of the GNU General Public License
 
23
# along with this program; if not, write to the Free Software
 
24
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
25
#
 
26
##############################################################################
 
27
 
 
28
import wizard
 
29
import netsvc
 
30
 
 
31
_line_form = '''<?xml version="1.0"?>
 
32
<form string="Letter Paragraphs">
 
33
        <separator string="Choose Paragraphs to add" colspan="4"/>
 
34
        <field name="paragraph_lines" colspan="4" nolabel="1"/>
 
35
</form>'''
 
36
 
 
37
_line_fields = {
 
38
        'paragraph_lines': {'string':'Paragraphs', 'type':'many2many', 'relation':'letter.paragraph'},
 
39
}
 
40
 
 
41
def _paragraph_find(self, cr, uid, data, context):
 
42
        service = netsvc.LocalService("object_proxy")
 
43
        type_id = service.execute(cr.dbname, uid, 'letter.letter', 'read', [data['id']], ['type_id'])[0]['type_id'][0]
 
44
        para_ids = service.execute(cr.dbname, uid, 'letter.letter.type', 'read', [type_id], ['paragraph_ids'])[0]['paragraph_ids']
 
45
        return {'paragraph_lines': para_ids}
 
46
 
 
47
def _paragraph_add(self, cr, uid, data, context):
 
48
        service = netsvc.LocalService("object_proxy")
 
49
        lines = service.execute(cr.dbname, uid, 'letter.paragraph', 'read', data['form']['paragraph_lines'][0][2], ['name','sequence','content','type_id'])
 
50
        adding = []
 
51
        for line in lines:
 
52
                line['letter_id'] = data['id']
 
53
                line['type_id'] = line['type_id'][0]
 
54
                del line['id']
 
55
                adding.append((0,0,line))
 
56
        service.execute(cr.dbname, uid, 'letter.letter', 'write', [data['id']], {'paragraph_ids': adding})
 
57
        return {}
 
58
 
 
59
class paragraph_load(wizard.interface):
 
60
        states = {
 
61
                'init': {
 
62
                        'actions': [_paragraph_find],
 
63
                        'result': {'type':'form', 'arch':_line_form, 'fields':_line_fields, 'state':[('end','Cancel'),('add','Add Paragraphs')]}
 
64
                },
 
65
                'add': {
 
66
                        'actions': [_paragraph_add],
 
67
                        'result': {'type':'state', 'state':'end'}
 
68
                }
 
69
        }
 
70
paragraph_load('letter.paragraph.load')
 
71