4b32f02420fea1648f234e79a5e44aaa502e96e4
[odoo/odoo.git] / addons / caldav / wizard / wizard_cal_export.py
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 import wizard
23 import base64
24 import pooler
25
26
27 class cal_event_export_wizard(wizard.interface):
28     form1 = '''<?xml version="1.0"?>
29     <form string="Export ICS">
30         <field name="name"/>
31         <field name="file_path" colspan="4" width="300"/>
32     </form>'''
33     
34     form1_fields = {
35             'file_path': {
36                 'string': 'Save ICS file', 
37                 'type': 'binary', 
38                 'required': True, 
39                 'filters': '*.ics'
40                 },
41             'name': {
42                     'string': 'File name', 
43                     'type': 'char', 
44                     'size': 34, 
45                     'required': True, 
46                     'help': 'Save in .ics format'}, 
47             }
48     
49     def _process_export_ics(self, cr, uid, data, context):
50         model = data.get('model')
51         model_obj = pooler.get_pool(cr.dbname).get(model)
52         calendar = model_obj.export_cal(cr, uid, data['ids'], context)
53         return {'file_path': base64.encodestring(calendar), \
54                                 'name': 'OpenERP Events.ics'}
55     
56     states = {
57         'init': {
58             'actions': [_process_export_ics], 
59             'result': {'type': 'form', 'arch':form1, 'fields':form1_fields, \
60                        'state': [('end', '_Cancel', 'gtk-cancel'), ('end', 'Ok', 'gtk-ok')]}}, 
61     }
62     
63 cal_event_export_wizard('caldav.event.export')
64
65 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: