def loop_time_tracking(): asana_api = asana.AsanaAPI('2vzk6F5m.kow34uB7cmjXnebCK0NBbYI', debug=False) myspaces = asana_api.list_workspaces() coneptum_space = [s for s in myspaces if s['name']=='Coneptum'][0] #print coneptum_space tags= asana_api.get_tags(coneptum_space['id']) running_tag=[t for t in tags if t['name']=='running'][0] #print running_tag running_tasks=asana_api.get_tag_tasks(running_tag['id']) db=asana_db.AsanaDB() for t in running_tasks: tsk=asana_api.get_task(t['id']) print t['id'],t['name'],tsk['completed'],(tsk['assignee']['name'] if tsk['assignee'] else '<NO ASSIGNAT>') if tsk['assignee']: e=db.create_or_get_employee(tsk['assignee']) t2=db.create_or_get_task(tsk) t2.time_track(e) if tsk['completed'] or '[Duplicate]' in tsk['name']: print "Removing tag running from:",tsk['name'] asana_api.rm_tag_task(t['id'],running_tag['id']) db.commit() print '----------------------TIME TRACKING:-------------------' for tr in db.get_tracks(): print tr db.close()
class TestAsana(unittest.TestCase): dummy_key = "dummy_key" asana_api = asana.AsanaAPI(dummy_key, debug=True) def test_asana_api_init(self): assert self.asana_api.apikey is not None def test_get_basic_auth_returns_base64_encode(self): encoded_key = self.asana_api.get_basic_auth() decoded_key = base64.b64decode(encoded_key) assert decoded_key == six.b(self.dummy_key + ":")
def __init__(self, command, args, callback): asana_api_key = sublime.active_window().active_view().settings().get( 'asana_api_key') if not asana_api_key: sublime.error_message( 'You have to set asana_api_key in the Preferences.sublime-settings. folllowing { "asana_api_key" : "YOUR_API KEY" }' ) self.AsanaApi = None else: self.AsanaApi = asana.AsanaAPI(asana_api_key, debug=True) self.command = command self.args = args self.callback = callback threading.Thread.__init__(self)
def mark_as_invoiced(): asana_api = asana.AsanaAPI('2vzk6F5m.kow34uB7cmjXnebCK0NBbYI', debug=False) myspaces = asana_api.list_workspaces() coneptum_space = [s for s in myspaces if s['name'] == 'Coneptum'][0] #print coneptum_space tags = asana_api.get_tags(coneptum_space['id']) to_invoice_tag = [t for t in tags if t['name'] == 'to_invoice'][0] invoiced_tag = [t for t in tags if t['name'] == 'invoiced'][0] #print to_invoice_tag to_invoice_tasks = asana_api.get_tag_tasks(to_invoice_tag['id']) for t in to_invoice_tasks: if t['name'] != 'Fluxe Movil': print t #asana_api.add_tag_task(t['id'],invoiced_tag['id']) asana_api.rm_tag_task(t['id'], to_invoice_tag['id'])
def get(self): root_task_tree = [] asana_api = asana.AsanaAPI(asana_appkey, debug=True) myspaces = asana_api.list_workspaces() workspaces = dict((work["name"], work["id"]) for work in myspaces) workspace_id = workspaces["Personal"] users = asana_api.list_users() users = dict((u["name"], u["id"]) for u in users) user_name = "Stupid ET" user_id = users[user_name] # 列出项目 projects = asana_api.list_projects(workspace_id) for proj in projects: proj_dict = {"name": proj["name"], "children": []} root_task_tree.append(proj_dict) # 列出项目的task tasks = asana_api.get_project_tasks(proj["id"], True) # 列出task的子task for task in tasks: task_dict = {"name": task["name"], "children": []} proj_dict["children"].append(task_dict) self.fill_subtasks(asana_api, task["id"], task_dict) redis_db["asana_tree"] = redis_encode({ "name": "ET", "children": root_task_tree }) self.write({"name": "ET", "children": root_task_tree})
from asana import asana import choice from pprint import pprint import requests import json asana_api = asana.AsanaAPI('', debug=True) # tasks = # for task in asana_api.get_project_tasks(17412748309135): # resp = requests.post("http://localhost:5000/tasks", # data=json.dumps({'title': task['name'], # 'project': "54c4e110d54df36a33fb1f72", # 'external_id': {'asana_id': task['id']}}), # headers={'content-type': 'application/json'} # ) # if resp.ok: # print task['name'], resp.status_code # else: # import pdb; pdb.set_trace() # import pdb; pdb.set_trace() choices = [(item['id'], item['name']) for item in asana_api.list_workspaces()] workspace = choice.Menu(choices).ask() for project in asana_api.list_projects(workspace, include_archived=False): # {u'id': 20786005245857, u'name': u'API 0.4'} # import pdb; pdb.set_trace() extended_project = asana_api.get_project(project['id'])
def get_all_users(): asana_api = asana.AsanaAPI('2vzk6F5m.kow34uB7cmjXnebCK0NBbYI', debug=False) myspaces = asana_api.list_workspaces() coneptum_space = [s for s in myspaces if s['name'] == 'Coneptum'][0] print asana_api.list_users(coneptum_space['id'])
def __init__(self): """ """ self.__asana_api = asana.AsanaAPI('6muBM1Ce.T7a9CNPAjqLScdNgknQOdL6', debug=True)
from pylabs.InitBase import * import sys q.application.appname = "asana" q.application.start() q.jshellconfig.interactive = True from asana import asana asana_api = asana.AsanaAPI('16292ivi.YZCO5tfu0S16OimpyunknzJ', debug=True) myspaces = asana_api.list_workspaces() incubaidid = 3864381820193L awinguid = 5244288044012L incubaid_despiegk = 3864381820188L users_incubaid = asana_api.list_users(incubaidid) users_awingu = asana_api.list_users(awinguid) out = "tasks" outtxt = "" for task in asana_api.list_tasks(incubaidid, incubaid_despiegk): task_id = task["id"] task = asana_api.get_task(task_id) print task if task["completed"] == False: status = task["assignee_status"].encode("ascii") notes = task["notes"]
def main(): options = parse() asana_api = asana.AsanaAPI(options.asana_api_key, debug=options.verbose) github_api = Github(options.username, options.password) git_repo = github_api.get_repo(options.repo) migrate_asana_to_github(asana_api, options.projectid, git_repo, options)
def test_list_generator(): asana_api = asana.AsanaAPI('2vzk6F5m.kow34uB7cmjXnebCK0NBbYI', debug=False) coneptum_asana=ConeptumAsanaAPI('',debug=True) #ListProcessor(asana_api,'list_workspaces').out(Printer().process() #import pdb #pdb.set_trace() EvId=Ev("elem['id']") ListProcessor(asana_api,'list_workspaces').out( ElementProcessor(coneptum_asana,'_asana_put',(Ev("'workspaces/'+str(elem['id'])"),Ev("elem"))) ).process() ListProcessor(asana_api,'list_workspaces').out( Printer('-Workspace:'), ElementFilter(Ev("elem['name']=='Coneptum'")).out( ListProcessor(asana_api,'list_users',[],{'workspace':EvId}).out( Printer("--User"), ElementProcessor(asana_api,'user_info',[EvId],{}).out( Printer(), TxIdWorkspaces().out( Printer("---User transformed"), ElementProcessor(coneptum_asana,'_asana_put',(Ev("'users/'+str(elem['id'])"),Ev("elem"))), ) ) ) ) ).process() ListProcessor(asana_api,'list_workspaces').out( Printer('-Workspace:'), ElementFilter(Ev("elem['name']=='Coneptum'")).out( ListProcessor(asana_api,'get_tags',[],{'workspace':EvId}).out( Printer("--Tags"), ElementProcessor(asana_api,'get_tag',[EvId],{}).out( Printer('----Tag detail'), TxIdWorkspace().out( Printer("Tag transformed"), ElementProcessor(coneptum_asana,'_asana_put',(Ev("'tags/'+str(elem['id'])"),Ev("elem"))), ) ) ) ) ).process() ListProcessor(asana_api,'list_workspaces').out( Printer('-Workspace:'), ElementFilter(Ev("elem['name']=='Coneptum'")).out( ListProcessor(asana_api,'list_projects',[],{'workspace':EvId,'include_archived':False}).out( Printer("--Projects"), ElementProcessor(asana_api,'get_project',[EvId],{}).out( Printer('----Project detail'), TxProject().out( Printer('-----Project transformed'), ElementProcessor(coneptum_asana,'_asana_put',(Ev("'projects/'+str(elem['id'])"),Ev("elem"))), ) ) ) ) ).process() ListProcessor(asana_api,'list_workspaces').out( Printer('-Workspace:'), ElementFilter(Ev("elem['name']=='Coneptum'")).out( ListProcessor(asana_api,'list_projects',[],{'workspace':EvId,'include_archived':False}).out( Printer("--Projects"), ListProcessor(asana_api,'get_project_tasks',[EvId],{}).out( Printer("----Tasks"), ElementProcessor(asana_api,'get_task',[EvId],{}).out( Printer("----Task detail"), TxTask().out( Printer('-----Task transformed'), ElementProcessor(coneptum_asana,'_asana_put',(Ev("'tasks/'+str(elem['id'])"),Ev("elem"))) ), ), ) ) ) ).process()