def docs_generate(request, object_id, object_type): """Start task to regenerate documentation""" exp_or_package = get_package_or_experiment(request, object_type, object_id) send_message(exp_or_package.owner.user.username, MessageStatus.INFO, 'Task to regenerate documentation started.') task_generate_docs.delay(object_type, object_id) return JsonResponse({})
def task_write_requirements_file(object_id, object_type): """Task to write requirements file to repository""" exp_or_package = get_package_or_experiment_without_request(object_type, object_id) language_helper = exp_or_package.language_helper() language_helper.write_requirements_file() username = exp_or_package.owner.user.username send_message(username, MessageStatus.SUCCESS, 'Dependencies updated in GitHub')
def dataschema_write(request, experiment_id): """Starts task to update the data schema in the GitHub repository, if a user clicked Save changes""" experiment = verify_and_get_experiment(request, experiment_id) task_write_data_schema.delay(experiment_id) send_message(request.user.username, MessageStatus.INFO, 'Task started to update data schema...') logger.info('started updating schema for: %s', experiment) return JsonResponse({'success': True})
def write_requirements_file(request, object_id, object_type): """View that starts task to write the requirements file for package or experiment""" get_package_or_experiment(request, object_type, object_id) task_write_requirements_file.delay(object_id, object_type) logger.info("manually updating dependencies for experiment %s of %s", request.user, object_id) send_message(request.user.username, MessageStatus.INFO, 'Task started to update dependencies...') return JsonResponse({'success': True})
def task_generate_docs(object_type, object_id): """Generates documentation for experiment or package""" exp_or_package = get_package_or_experiment_without_request( object_type, object_id) username = exp_or_package.owner.user.username if exp_or_package.docs.enabled: logger.info('start docs generation for %s (%s)', exp_or_package, username) language_helper = exp_or_package.language_helper() language_helper.generate_documentation() send_message(username, MessageStatus.SUCCESS, 'Documentation regenerated.') else: send_message( username, MessageStatus.WARNING, 'Before you can generate docs, first enable docs for your experiment.' )
def task_write_data_schema(experiment_id): """Task to write data schema to GitHub in schema/schema.json file By converting the schema to dictionary and then to Json""" experiment = Experiment.objects.get(pk=experiment_id) data_schema = experiment.schema data_schema_str = str(json.dumps(data_schema.to_dict())) logger.info('writing data schema for %s with schema: %s', experiment, data_schema_str) github_helper = GitHubHelper(experiment.owner.user, experiment.git_repo.name) github_helper.update_file('schema/schema.json', 'Updated data schema by MOOC workbench', data_schema_str) username = experiment.owner.user.username send_message(username, MessageStatus.SUCCESS, 'Data schema successfully updated in GitHub') logger.info('writing data schema success for: %s', experiment, data_schema_str)
def task_remove_package(internalpackage_id): """Task to remove a published internal package""" package = InternalPackage.objects.get(pk=internalpackage_id) language_helper = package.language_helper() language_helper.remove_package() send_message(package.owner.user.username, 'success', 'Package removed successfully')