1
# -*- coding: utf-8 -*-
2
##############################################################################
4
# OpenERP, Open Source Management Solution
5
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
6
# Copyright (C) 2011 Serpent Consulting Services (<http://serpentcs.com>).
8
# This program is free software: you can redistribute it and/or modify
9
# it under the terms of the GNU Affero General Public License as
10
# published by the Free Software Foundation, either version 3 of the
11
# License, or (at your option) any later version.
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 Affero General Public License for more details.
18
# You should have received a copy of the GNU Affero General Public License
19
# along with this program. If not, see <http://www.gnu.org/licenses/>.
21
##############################################################################
23
from osv import fields, osv
24
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
26
from evernote.api.client import EvernoteClient
27
import evernote.edam.type.ttypes as Types
28
from evernote.edam.notestore import NoteStore
29
import xml.etree.ElementTree as etree
32
from datetime import datetime
33
from create_evernote_atta import EvernoteUpload
36
class openerp_evernote(osv.osv):
38
_name = 'openerp.evernote'
41
'name' : fields.char("Evernote", size = 100),
42
'evernote_id' : fields.many2one("product.product"),
43
'url' : fields.char("URL", size=100),
44
'description' : fields.text('Description'),
45
'date' : fields.date("Date")
48
def onchange_url(self, cr, uid, ids, url, evernote_id,context=None):
53
raise osv.except_osv(('Warning!'), ('Please enter url !'))
54
if url[0:16] != 'evernote:///view':
55
raise osv.except_osv(('Warning!'), ('Please check url !'))
57
guid = re.findall('[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',url)
60
raise osv.except_osv(('Warning!'), ('Please check url !'))
62
auth_token = "S=s1:U=72d01:E=1479a33c4dd:C=140428298df:P=1cd:A=en-devtoken:V=2:H=f85f82d8927640558388d21d02819d7f"
64
client = EvernoteClient(token=auth_token, sandbox=False)
66
raise osv.except_osv(('Warning!'), ('Please check token information!'))
69
note = client.get_note_store().getNote(guid[0],True,True,True,True)
70
noteStore = client.get_note_store()
71
getnote = noteStore.getNote(guid[0],True,True, True, True)
72
note_created = getnote.created
73
note_date = time.strftime('%Y-%m-%d', time.gmtime(note_created/1000))
74
xml = etree.fromstring(getnote.content)
78
return {'value' : {'name' : title,'description': content ,'date' : note_date}}
83
class product_product(osv.osv):
85
_inherit = 'product.product'
88
'evernote_ids' : fields.one2many("openerp.evernote", "evernote_id","Evernote"),
93
class purchase_order(osv.osv):
95
_inherit = 'purchase.order'
98
'evernote_ids' : fields.one2many("openerp.evernote", "evernote_id","Evernote"),
103
class res_partner(osv.osv):
105
_inherit = 'res.partner'
108
'evernote_ids' : fields.one2many("openerp.evernote", "evernote_id","Evernote"),
114
class bank_statement(osv.osv):
116
_inherit = 'account.bank.statement'
119
'evernote_ids' : fields.one2many("openerp.evernote", "evernote_id","Evernote"),
125
class hr_timesheet_sheet(osv.osv):
127
_inherit = 'hr_timesheet_sheet.sheet'
130
'evernote_ids' : fields.one2many("openerp.evernote", "evernote_id","Evernote"),
136
class hr_expenses_expenses(osv.osv):
138
_inherit = 'hr.expense.expense'
141
'evernote_ids' : fields.one2many("openerp.evernote", "evernote_id","Evernote"),
144
hr_expenses_expenses()
146
class stock_picking_in(osv.osv):
148
_inherit = 'stock.picking.in'
150
'evernote_ids' : fields.one2many("openerp.evernote", "evernote_id","Evernote"),
157
class project_project(osv.osv):
159
_inherit = 'project.project'
162
'evernote_ids' : fields.one2many("openerp.evernote", "evernote_id","Evernote"),
166
class account_bank_statement_line(osv.osv):
168
_inherit = 'account.bank.statement.line'
171
'evernote_ids' : fields.one2many("openerp.evernote", "evernote_id","Evernote"),
174
account_bank_statement_line()
176
class project_task(osv.osv):
178
_inherit = 'project.task'
181
'note_created' : fields.boolean("Created Note" ,readonly=1),
184
def create_note(self, cr, uid, ids, context = None):
186
auth_token = "S=s1:U=72d01:E=1479a33c4dd:C=140428298df:P=1cd:A=en-devtoken:V=2:H=f85f82d8927640558388d21d02819d7f"
188
client = EvernoteClient(token=auth_token, sandbox=False)
190
raise osv.except_osv(('Warning!'), ('Please check token information!'))
192
c1 = EvernoteUpload(auth_token)
193
c1.upload_to_notebook('report1.pdf', 'boom')
194
note_data = self.browse(cr, uid, ids[0], context=context)
195
if not note_data.note_created:
197
note_store = client.get_note_store()
198
notebooks = note_store.listNotebooks()
200
note.title = str(note_data.name)
201
note_cont = str(note_data.description)
202
note.content = '<?xml version="1.0" encoding="UTF-8"?>'
203
note.content += '<!DOCTYPE en-note SYSTEM ' \
204
'"http://xml.evernote.com/pub/enml2.dtd">'
205
note.content += '<en-note>'
206
note.content += str(note_cont)
207
note.content += '</en-note>'
209
created_note = note_store.createNote(note)
210
self.write(cr, uid, ids[0], {'note_created':1}, context=context)
212
raise osv.except_osv(('Warning !'), ('Please check internet connection.!'))
214
raise osv.except_osv(('Error!'), ('Already Created.!'))
218
def wizard_call(self,cr,uid,ids,context=None):
219
self_data = self.browse(cr, uid, ids, context=context)
220
if not self_data[0].note_created:
224
'res_model':'create.note.wizard',
226
'type':'ir.actions.act_window',
230
raise osv.except_osv(('Warning!'), ('Already Created.!'))
234
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: