def complete(request): """ Receive user from Open Humans. Store data, start data upload task. """ logger.debug("Received user returning from Open Humans.") form = None if request.method == 'GET': # Exchange code for token. # This creates an OpenHumansMember and associated User account. code = request.GET.get('code', '') oh_member = oh_code_to_member(code=code) if oh_member: # Log in the user. user = oh_member.user login(request, user, backend='django.contrib.auth.backends.ModelBackend') elif not request.user.is_authenticated: logger.debug('Invalid code exchange. User returned to start page.') return redirect('/') else: oh_member = request.user.openhumansmember if get_file_url(oh_member.oh_id) is not None: return redirect('dashboard') form = UploadFileForm() context = { 'oh_id': oh_member.oh_id, 'oh_member': oh_member, 'oh_proj_page': settings.OH_ACTIVITY_PAGE, 'form': form } return render(request, 'users/complete.html', context=context) elif request.method == 'POST': form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): metadata = { 'tags': ['twitter', 'twitter-archive'], 'description': 'Twitter achive file.' } upload_file_to_oh(request.user.openhumansmember, request.FILES['file'], metadata) else: logger.debug('INVALID FORM') import_data.delay(request.user.openhumansmember.oh_id) return redirect('dashboard')
def regenerate_graphs(request): if request.method == 'POST' and request.user.is_authenticated: import_data.delay(request.user.openhumansmember.oh_id) return redirect('dashboard')