[REVIEW]: code review
[odoo/odoo.git] / addons / survey / wizard / survey_print_answer.py
1 # -*- encoding: utf-8 -*-
2 ##############################################################################
3 #
4 #    OpenERP, Open Source Management Solution
5 #    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
6 #    $Id$
7 #
8 #    This program is free software: you can redistribute it and/or modify
9 #    it under the terms of the GNU General Public License as published by
10 #    the Free Software Foundation, either version 3 of the License, or
11 #    (at your option) any later version.
12 #
13 #    This program is distributed in the hope that it will be useful,
14 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
15 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 #    GNU General Public License for more details.
17 #
18 #    You should have received a copy of the GNU General Public License
19 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 #
21 ##############################################################################
22
23 from osv import fields, osv
24 from tools.translate import _
25
26 class survey_print_answer(osv.osv_memory):
27     _name = 'survey.print.answer'
28     _columns = {
29         'response_ids' : fields.many2many('survey.response','survey_print_response','response_id','print_id', "Response", required="1"),
30         'orientation' : fields.selection([('vertical','Portrait(Vertical)'),('horizontal','Landscape(Horizontal)')], 'Orientation'),
31         'paper_size' : fields.selection([('letter','Letter (8.5" x 11")'),('legal','Legal (8.5" x 14")'),('a4','A4 (210mm x 297mm)')], 'Paper Size'),
32         'page_number' : fields.boolean('Include Page Numvers'),
33         'without_pagebreak' : fields.boolean('Print Without Page Breaks')
34     }
35
36     _defaults = {
37             'orientation': lambda *a:'vertical',
38             'paper_size': lambda *a:'letter',
39             'page_number':lambda *a: 0,
40             'without_pagebreak':lambda *a: 0
41     }
42
43     def action_next(self, cr, uid, ids, context=None):
44         """
45         Print Survey Answer in pdf format.
46        
47         @param self: The object pointer
48         @param cr: the current row, from the database cursor,
49         @param uid: the current user’s ID for security checks,
50         @param ids: List of print answer IDs
51         @param context: A standard dictionary for contextual values
52         @return : Dictionary value for created survey answer report
53         """
54         datas = {'ids' : context.get('active_ids', [])}
55         res = self.read(cr, uid, ids, ['response_ids', 'orientation', 'paper_size', 'page_number', 'without_pagebreak'], context)
56         res = res and res[0] or {}  
57         datas['form'] = res
58         datas['model'] = 'survey.print.answer'
59         return { 
60             'type':'ir.actions.report.xml',
61             'report_name':'survey.browse.response',
62             'datas':datas,               
63         }
64 survey_print_answer()
65
66 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: