Skip to content

Instantly share code, notes, and snippets.

@Danisan

Danisan/toggl Secret

Created July 29, 2015 16:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Danisan/2082aaa677db24a6132a to your computer and use it in GitHub Desktop.
Save Danisan/2082aaa677db24a6132a to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
from openerp import models, fields, api
from openerp.osv import osv
from openerp.osv.orm import browse_null
import time
from datetime import datetime, timedelta
import logging
from openerp.tools.translate import _
import os,sys,urllib3,json
urllib3.disable_warnings()
http = urllib3.PoolManager()
_logger = logging.getLogger(__name__)
class timesheet_toggl(models.Model):
_name = 'account.analytic.line'
_inherit = 'account.analytic.line'
# este es el ultimo cambio que hice anoche
@api.multi
def account_analytic_line_update(self):
from validator import validator
validator = validator()
weekly = '/weekly'
detail = '/details'
toggl_srv_data = self.env['toggl.server'].search([('active', '=', True)], limit=1)
base_url = toggl_srv_data.url
settings = '?user_agent=Odoo&workspace_id=%s' % (toggl_srv_data.workspace)
print '000000000000000000000'
print ('%s:api_token') % (toggl_srv_data.token)
recordmap = [
['start','date','fechasola'],
['project','partner_id','client_map'],
['project','general_account_id','fixed'],
['project','to_invoice','fixed'],
['project','product_uom_id','fixed'],
['project','account_id','project_map'],
['dur','unit_amount','seconds_to_hours'],
['description','name','directo'],
['id','toggl_activity_id','directo'],
['uid','user_id','user_map']
]
fieldsfilter = [
{'fecha': '2015-07-09'},
{'tuid': 1717087},
{'use_stop':True}
]
headers = urllib3.util.make_headers(basic_auth=('%s:api_token') % (toggl_srv_data.token) )
r = http.request('GET', base_url+detail+settings, headers=headers)
if r.status != 200:
print "Didn't work"
return
result = json.loads(r.data)
newdata = {}
for data in result['data']:
if data['use_stop']:
if not self.env['account.analytic.line'].search([('toggl_activity_id', '=', data['id'])]):
#if True:
newdata = {}
for record in recordmap:
newdata[record[1]] = getattr(validator,record[2])(self,data[record[0]],record[1])
print newdata
self.create(newdata)
return True
toggl_activity_id = fields.Char('Toggl ID: ', readonly=True, size=12)
toggl_image = fields.Char('Src',compute='_compute_image')
@api.depends('toggl_activity_id')
def _compute_image(self):
for x in self:
if x.toggl_activity_id:
x.toggl_image = 'timesheet_toggl/static/src/img/toggl_icon.png'
else:
x.toggl_image = 'timesheet_toggl/static/src/img/odoo_icon.png'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment