def generate_android_app(app_id): ltwapp = App.query.filter_by(id=app_id).first() app_details_form = AndroidAppForm(prefix='details') app_path_form = MyHiddenForm(prefix='path') if request.method == 'POST' and len(request.form.keys()) > 0: if request.form.keys()[0].startswith('details-') and app_details_form.validate_on_submit(): ltwapp.app_name = app_details_form.app_name.data ltwapp.app_package = app_details_form.package.data db.session.commit() t = generate_new_android_app.delay(app_details_form.app_name.data, app_details_form.package.data, ltwapp.config_file, ltwapp.graph_id) return render_template('app_generation_1.html', form=app_path_form, app_id=app_id, task_id=t.task_id) elif request.form.keys()[0].startswith('path-') and app_path_form.validate_on_submit(): app_path = json.loads(get_task_status(task_id=app_path_form.hidden_field.data, return_result=True))['result'] ltwapp.app_path = app_path db.session.commit() shutil.copyfile(app_path + 'bin/' + ltwapp.app_name + '-release.apk', app_path + '/' + ltwapp.app_name + '-release.apk') call(['ant', '-f', app_path + 'build.xml', 'clean']) zf = zipfile.ZipFile(app_path + 'androidapp-' + str(app_id) + '.zip', 'w') zip_dir(app_path, zf, ['ant.properties', 'local.properties', 'project.properties', 'androidapp-' + str(app_id) + '.zip']) zf.close() flash('There you have your Android app. In the root of the ZIP file there is an APK ready to use. Enjoy!', 'success') return send_from_directory(app_path, 'androidapp-' + str(app_id) + '.zip') else: app_details_form.app_name.data = ltwapp.name app_details_form.package.data = 'eu.deustotech.internet.ltw.%s' % ltwapp.name.replace(' ', '_').lower() return render_template('app_generation.html', form=app_details_form, app_id=app_id)
def rdfsource_step2(): config_form = MyHiddenForm(prefix='config') config_edit_form = ConfigEditForm(prefix='editconfig') ltwapp = App.query.filter_by(id=session['app']).first() if request.method == 'POST' and len(request.form.keys()) > 0: if request.form.keys()[0].startswith('config-') and config_form.validate_on_submit(): config_file = json.loads(get_task_status(task_id=config_form.hidden_field.data, return_result=True))['result'] config_edit_form.config_file.data = config_file ltwapp.config_file = config_file db.session.commit() return render_template('rdf_steps/rdf_step2.html', form=config_edit_form, app_id=session['app']) elif request.form.keys()[0].startswith('editconfig-'): if config_edit_form.validate_on_submit(): config_file = config_edit_form.config_file.data ltwapp.config_file = config_file db.session.commit() if config_edit_form.download_next.data == 'download': return download_config_file(config_file=config_file) elif config_edit_form.download_next.data == 'android': return redirect(url_for('generate_android_app', app_id=session['app'])) else: return redirect(url_for('rdfsource_step3', app_id=session['app'])) return render_template('rdf_steps/rdf_step2.html', form=config_edit_form, app_id=session['app'])
def generate_android_app(app_id): ltwapp = App.query.filter_by(id=app_id).first() app_details_form = AndroidAppForm(prefix='details') app_path_form = MyHiddenForm(prefix='path') if request.method == 'POST' and len(request.form.keys()) > 0: if request.form.keys()[0].startswith( 'details-') and app_details_form.validate_on_submit(): ltwapp.app_name = app_details_form.app_name.data ltwapp.app_package = app_details_form.package.data db.session.commit() t = generate_new_android_app.delay(app_details_form.app_name.data, app_details_form.package.data, ltwapp.config_file, ltwapp.graph_id) return render_template('app_generation_1.html', form=app_path_form, app_id=app_id, task_id=t.task_id) elif request.form.keys()[0].startswith( 'path-') and app_path_form.validate_on_submit(): app_path = json.loads( get_task_status(task_id=app_path_form.hidden_field.data, return_result=True))['result'] ltwapp.app_path = app_path db.session.commit() shutil.copyfile( app_path + 'bin/' + ltwapp.app_name + '-release.apk', app_path + '/' + ltwapp.app_name + '-release.apk') call(['ant', '-f', app_path + 'build.xml', 'clean']) zf = zipfile.ZipFile( app_path + 'androidapp-' + str(app_id) + '.zip', 'w') zip_dir(app_path, zf, [ 'ant.properties', 'local.properties', 'project.properties', 'androidapp-' + str(app_id) + '.zip' ]) zf.close() flash( 'There you have your Android app. In the root of the ZIP file there is an APK ready to use. Enjoy!', 'success') return send_from_directory(app_path, 'androidapp-' + str(app_id) + '.zip') else: app_details_form.app_name.data = ltwapp.name app_details_form.package.data = 'eu.deustotech.internet.ltw.%s' % ltwapp.name.replace( ' ', '_').lower() return render_template('app_generation.html', form=app_details_form, app_id=app_id)
def rdfsource_step3(app_id): data_form = MyHiddenForm() ltwapp = App.query.filter_by(id=app_id).first() if data_form.validate_on_submit(): # Data fetching task completed graph_id = json.loads(get_task_status(task_id=data_form.hidden_field.data, return_result=True))['result'] ltwapp.graph_id = graph_id db.session.commit() paginators = get_data_paginators(graph_id) return render_template('data_visualization.html', paginators=paginators, app_id=app_id) else: # Start data fetching task t = call_to_get_all_data(ltwapp, get_all_data) data_form = MyHiddenForm() return render_template('data_fetching.html', task_id=t.task_id, form=data_form, app_id=app_id)
def rdfsource_step2(): config_form = MyHiddenForm(prefix='config') config_edit_form = ConfigEditForm(prefix='editconfig') ltwapp = App.query.filter_by(id=session['app']).first() if request.method == 'POST' and len(request.form.keys()) > 0: if request.form.keys()[0].startswith( 'config-') and config_form.validate_on_submit(): config_file = json.loads( get_task_status(task_id=config_form.hidden_field.data, return_result=True))['result'] config_edit_form.config_file.data = config_file ltwapp.config_file = config_file db.session.commit() return render_template('rdf_steps/rdf_step2.html', form=config_edit_form, app_id=session['app']) elif request.form.keys()[0].startswith('editconfig-'): if config_edit_form.validate_on_submit(): config_file = config_edit_form.config_file.data ltwapp.config_file = config_file db.session.commit() if config_edit_form.download_next.data == 'download': return download_config_file(config_file=config_file) elif config_edit_form.download_next.data == 'android': return redirect( url_for('generate_android_app', app_id=session['app'])) else: return redirect( url_for('rdfsource_step3', app_id=session['app'])) return render_template('rdf_steps/rdf_step2.html', form=config_edit_form, app_id=session['app'])
def reload_config_file(app_id): ltwapp = App.query.filter_by(id=app_id).first() if ltwapp.user != current_user: return render_template('401_error.html'), 401 session['app'] = app_id t = call_to_generate_config_file(ltwapp, generate_config_file) config_form = MyHiddenForm(prefix='config') return render_template('rdf_steps/rdf_step1_a.html', data_source='rdf' if ltwapp.rdf_file else 'sparql', task_id=t.task_id, form=config_form)
def rdfsource_step3(app_id): data_form = MyHiddenForm() ltwapp = App.query.filter_by(id=app_id).first() if data_form.validate_on_submit(): # Data fetching task completed graph_id = json.loads( get_task_status(task_id=data_form.hidden_field.data, return_result=True))['result'] ltwapp.graph_id = graph_id db.session.commit() paginators = get_data_paginators(graph_id) return render_template('data_visualization.html', paginators=paginators, app_id=app_id) else: # Start data fetching task t = call_to_get_all_data(ltwapp, get_all_data) data_form = MyHiddenForm() return render_template('data_fetching.html', task_id=t.task_id, form=data_form, app_id=app_id)
def rdfsource(): rdf_form = RDFDataForm(prefix='rdf') sparql_form = SparqlForm(prefix='sparql') if request.method == 'POST' and len(request.form.keys()) > 0: ltwapp = App.query.filter_by(id=session['app']).first() config_form = MyHiddenForm(prefix='config') if request.form.keys()[0].startswith( 'rdf-') and rdf_form.validate_on_submit(): rdf_file = request.files[rdf_form.rdf_file.name] rdf_data = rdf_file.read() # Save file in upload folder file_path = os.path.join( os.path.abspath(app.config['UPLOAD_FOLDER']), str(uuid.uuid4())) f = open(file_path, 'w') f.write(rdf_data) f.close() ltwapp.rdf_file = file_path ltwapp.rdf_file_format = rdf_form.format.data ltwapp.endpoint = None db.session.commit() elif request.form.keys()[0].startswith( 'sparql-') and sparql_form.validate_on_submit(): ltwapp.rdf_file = None ltwapp.rdf_file_format = None endpoint = Endpoint(sparql_form.url.data, sparql_form.graph.data) db.session.add(endpoint) ltwapp.endpoint = endpoint db.session.commit() t = call_to_generate_config_file(ltwapp, generate_config_file) return render_template( 'rdf_steps/rdf_step1_a.html', data_source='rdf' if ltwapp.rdf_file else 'sparql', task_id=t.task_id, form=config_form) return render_template('rdf_steps/rdf_step1.html', rdf_form=rdf_form, sparql_form=sparql_form)