Example #1
0
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)
Example #2
0
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'])
Example #3
0
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)
Example #4
0
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)
Example #5
0
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'])
Example #6
0
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)
Example #7
0
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)
Example #8
0
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)