Example #1
0
def index(request):
    if request.method == 'POST':
        form = CollectionForm(request.POST, user=request.user)

        if form.is_valid():
            cookie = []
            for collection in form.cleaned_data['collections']:
                scope = ["/collection/%s" % collection.gid.replace(':', '')]
                servers = set()
                for server in collection.servers.all():
                    servers.add(server.host)
                cookie.extend(
                    generate_cookie_django(scope,
                                           servers,
                                           blaster=getattr(
                                               settings, 'GATEKEEPER_BLASTER',
                                               None)))

            return HttpResponse(cookie, mimetype='application/x-diamond-scope')
    else:
        form = CollectionForm(user=request.user)

    return render_response(request, 'scopeserver/gatekeeper.html', {
        'form': form,
    })
Example #2
0
def create_collection():
    form = CollectionForm(request.form)
    if request.method == 'POST' and form.validate():
        try:
            # add collection to database
            collection = insert_collection(form)
            return redirect(url_for('collection', id=collection.id))
        except Exception as error:
            flash("Error creating collection.", category="danger")
            app.logger.error("Error creating collection {}\n{}".format(
                error, traceback.format_exc()))
    return render_template('forms/model.jinja',
                           form=form,
                           type='create',
                           section='collection')
Example #3
0
def collection(request):
    if request.method == 'POST':
        form = CollectionForm(request.POST)
        if form.is_valid():
            collection = form.save(commit=False)
            collection.user = request.user
            collection.uuid = uuid.uuid4().urn
            collection.save()
            collection.followers.add(request.user)
            collection.save()
            form.save_m2m()
            for n in request.POST.getlist('nodes'):
                node = PubSubNode.objects.get(node=int(n))
                collection.nodes.add(node)
                xmpp.publish(node=node.node, payload=collection.activity_fordrop_collection())
                if collection.tags.all():
                    xmpp.publish(node=node.node, payload=collection.activity_tags())
    return HttpResponseRedirect('/collection/%s' % collection.id)
Example #4
0
def index(request):
    if request.method == 'POST':
	form = CollectionForm(request.POST, user=request.user)

	if form.is_valid():
          cookie = []
          for collection in form.cleaned_data['collections']:
              scope = [ "/collection/%s" % collection.gid.replace(':','') ]
              servers = set()
              for server in collection.servers.all():
                  servers.add(server.host)
              cookie.extend(generate_cookie_django(scope, servers))

          return HttpResponse(cookie, mimetype='application/x-diamond-scope')
    else:
	form = CollectionForm(user=request.user)

    return render_response(request, 'scopeserver/gatekeeper.html', {
	'form': form,
    })
Example #5
0
def create_collection():
    """Displays form to create collection (GET), and submits it (POST)"""
    form = CollectionForm()

    if form.validate_on_submit():
        name = form.name.data
        info = form.info.data
        image = form.collection_image.data

        new_collection = Collection(name=name,
                                    info=info,
                                    user_id=current_user.id,
                                    image=image)
        db.session.add(new_collection)
        db.session.commit()

        flash(f"{name} collection created!", "success")
        return redirect(f"/user/{current_user.id}")

    else:
        return render_template("newcollection.html", form=form)
Example #6
0
def edit_collection(id):
    collection = Collection.query.get(id)
    form = collection_edit_form(collection)
    if request.method == 'POST':
        try:
            form = CollectionForm(request.form, obj=conf)
            if form.validate():
                form.populate_obj(collection)
                db.session.commit()
                collection = Collection.query.get(id)
                flash("Söfnun hefur verið breytt", category='success')
                return redirect(url_for('collection', id=id))
        except Exception as error:
            app.logger.error('Error updating a collection : {}\n{}'.format(
                error, traceback.format_exc()))

    return render_template('forms/model.jinja',
                           collection=collection,
                           form=form,
                           type='edit',
                           action=url_for('edit_collection', id=id),
                           section='collection')
Example #7
0
def edit_specimen(collection_id):
    """Displays form to edit collection info (GET) and submits it (POST)"""

    collection = Collection.query.filter_by(id=collection_id).first()
    form = CollectionForm(obj=collection)

    if current_user.id == collection.user_id:
        if form.validate_on_submit():
            collection.name = form.name.data
            collection.info = form.info.data

            db.session.commit()

            flash(f"{collection.name} edited!", "success")
            return redirect(f"/collection/{collection.id}")

        else:
            return render_template("editcollection.html",
                                   form=form,
                                   collection=collection)
    else:
        return ("", 403)
Example #8
0
def add(request):
    context = navigationlinks(request)
    user_object = request.user
    #Form processing
    if request.method == "POST":
        form = CollectionForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.date_created = timezone.now()
            post.is_active = True
            post.is_public = False
            post.created_by = user_object
            post.save()
            redirecturl = '/collection/' + str(post.id) + '/'
            collection_object = Collection.objects.get(pk=post.id)
            post_uc = User_Collection(collection=collection_object,
                                      user=user_object)
            post_uc.save()
            return redirect(redirecturl)
    else:
        form_class = CollectionForm
        context['form'] = form_class
        return render(request, 'collection/add.html', context)
    return render(request, 'collection/add.html', context)
Example #9
0
def dashboard(request):
    """Dashboard of the user"""

    if request.method == 'POST' and 'collections' not in request.GET and 'updateCollection' not in request.GET:
        aux = User.objects.get(username=request.user.username)
        if request.POST['password'] != '':
            aux.password = make_password(request.POST['password'])
        aux.email = request.POST['email']
        aux.first_name = request.POST['first_name']
        aux.last_name = request.POST['last_name']
        aux.save()

        return render(request, 'maxfilm/dashboard.html', {'profile': True,
                                                          'auxUser': aux,
                                                          'alert': True})

    if 'profile' in request.GET:
        aux = User.objects.get(username=request.user.username)

        return render(request, 'maxfilm/dashboard.html', {'profile': True,
                                                          'auxUser': aux})

    if 'movies' in request.GET:
        bookmarks = AccionPelicula.objects.filter(id_usuario=request.user).filter(favorita=True)
        pending = AccionPelicula.objects.filter(id_usuario=request.user).filter(pendiente=True)
        viewed = AccionPelicula.objects.filter(id_usuario=request.user).filter(vista=True)

        return render(request, 'maxfilm/dashboard.html', {'bookmarks': bookmarks,
                                                          'pending': pending,
                                                          'viewed': viewed,
                                                          'movies': True})

    if 'tv' in request.GET:
        bookmarks = AccionSerie.objects.filter(id_usuario=request.user).filter(favorita=True)
        pending = AccionSerie.objects.filter(id_usuario=request.user).filter(pendiente=True)
        viewed = AccionSerie.objects.filter(id_usuario=request.user).filter(vista=True)

        return render(request, 'maxfilm/dashboard.html', {'bookmarks': bookmarks,
                                                          'pending': pending,
                                                          'viewed': viewed,
                                                          'tv': True})

    if 'people' in request.GET:
        bookmarks = AccionPersona.objects.filter(id_usuario=request.user).filter(favorita=True)

        return render(request, 'maxfilm/dashboard.html', {'bookmarks': bookmarks,
                                                          'people': True})

    if 'deleteCollection' in request.GET:
        Coleccion.objects.get(id=request.GET['id']).delete()

        return redirect('/dashboard?collections')

    if 'updateCollection' in request.GET:
        aux = Coleccion.objects.get(id=request.GET['id'])

        if request.method == 'POST':
            aux.nombre = request.POST['nombre']
            aux.descripcion = request.POST['descripcion']
            aux.save()

            return HttpResponseRedirect('/dashboard/?collections')

        return render(request, 'maxfilm/dashboard.html', {'collection': aux,
                                                          'editCollection': True})

    if 'delete' in request.GET:
        ContenidoMultimedia.objects.filter(id=request.GET['id']).delete()

        return redirect('/dashboard?collections')

    if 'viewC' in request.GET:
        aux = Coleccion.objects.get(id=request.GET['id'])
        collection = ContenidoMultimedia.objects.filter(id_coleccion=aux)

        return render(request, 'maxfilm/dashboard.html', {'collection': collection,
                                                          'viewCollection': True,
                                                          'media': aux.media,
                                                          'nombre': aux.nombre})

    if 'collections' in request.GET:
        collectionsMovies = Coleccion.objects.filter(id_usuario=request.user).filter(media='Películas')
        collectionsTv = Coleccion.objects.filter(id_usuario=request.user).filter(media='Series')

        if request.method == 'POST':
            form = CollectionForm(request.POST)
            if form.is_valid():
                aux = Coleccion()
                aux.nombre = form.cleaned_data["nombre"]
                aux.descripcion = form.cleaned_data["descripcion"]
                aux.media = form.cleaned_data["media"]
                aux.id_usuario = request.user
                aux.save()

                return HttpResponseRedirect('/dashboard/?collections')
        else:
            form = CollectionForm()

        return render(request, 'maxfilm/dashboard.html', {'collections': True,
                                                          'form': form,
                                                          'collectionsTv': collectionsTv,
                                                          'collectionsMovies': collectionsMovies})

    con = Request('http://api.themoviedb.org/3/discover/movie?api_key=c1b10ae4b99ead975d0cbaf0d1045bf0&language=es',
                  headers=headers)
    numMovies = json.loads(urlopen(con).read())['total_results']

    con = Request('http://api.themoviedb.org/3/discover/tv?api_key=c1b10ae4b99ead975d0cbaf0d1045bf0&language=es',
                  headers=headers)
    numTv = json.loads(urlopen(con).read())['total_results']

    con = Request('http://api.themoviedb.org/3/person/popular?&api_key=c1b10ae4b99ead975d0cbaf0d1045bf0&language=es',
                  headers=headers)
    numPeople = json.loads(urlopen(con).read())['total_results']

    total = int(numMovies) + int(numTv) + int(numPeople)

    return render(request, 'maxfilm/dashboard.html', {'default': True,
                                                      'numMovies': numMovies,
                                                      'numTv': numTv,
                                                      'numPeople': numPeople,
                                                      'total': total})
Example #10
0
def manage():
    if request.method == 'POST':
        if "catas_save" in request.form:
            print("saving configuration file.")
            result = save_config(request.form['config_file'])
            if result:
                print('Error during saving configuration file.')
                return jsonify({
                    'result': 'err',
                    'msg': 'Error during saving configuration file.'
                })
            else:
                print('Configuration saved into the file')
                return jsonify({
                    'result': 'suc',
                    'msg': 'Successfully saved configuration!'
                })
        elif "catas_load" in request.form:
            print("loading configuration file.")
            result = load_config(request.form['config_file'])
            if result:
                print('Error during loading configuration file.')
                return jsonify({
                    'result':
                    'err',
                    'msg':
                    'Error during loading configuration file.'
                })
            else:
                print('Configuration successfully loaded')
                # now redirect to the proper page from loaded configurations
                if not config['user_action'] or config['user_action'] == 'home':
                    #return render_template('home.html', posts=posts)
                    return jsonify({
                        'result': 'suc',
                        'msg': '/' + config['user_action']
                    })
                else:
                    # form = CollectionForm(assessname=config['assess_name'], filename=config['input_csv_file'],
                    #                         validationType=config['validation_type'])
                    # return render_template('collect.html', title='Collect', form=form, posts=posts, sidebar=False)
                    # return redirect(url_for('collect'))
                    return jsonify({
                        'result': 'suc',
                        'msg': '/' + config['user_action']
                    })

        else:
            print("neither catas_save nor catas_load exists.")
    else:  # for non-POST
        if config['user_action'] == 'assess':
            form = AssessmentForm(assessname=config['assess_name'],
                                  filename=config['input_csv_file'],
                                  outputFolder=config['output_folder'],
                                  reportName=config['output_report_name'],
                                  reportFormat=config['output_report_name'],
                                  assessType=config['assess_type'],
                                  target=config['target_platform'])
            return render_template(
                'assess.html',
                title='Assess',
                form=form,
                sidebar=True,
                sidebar_title='Manage',
                sidebar_statement='Save or load configurations.',
                configFileFullName=config['config_file_full_name'])
        elif config['user_action'] == 'collect':
            #return redirect(url_for('validate'))
            form = CollectionForm(assessname=config['assess_name'],
                                  filename=config['input_csv_file'],
                                  outputFolder=config['output_folder'],
                                  reportFormat=config['output_report_name'],
                                  assessType=config['assess_type'],
                                  dblist=config['db_list'],
                                  collectTime=config['collect_time'],
                                  tenantid=config['tenant_id'],
                                  subid=config['sub_id'],
                                  clientid=config['client_id'])
            return render_template(
                'collect.html',
                title='Collect',
                form=form,
                posts=posts,
                sidebar=True,
                sidebar_title='Manage',
                sidebar_statement='Save or load configurations.',
                configFileFullName=config['config_file_full_name'])
        elif config['user_action'] == 'home':
            return render_template(
                'home.html',
                posts=posts,
                sidebar=True,
                sidebar_title='Manage',
                sidebar_statement='Load existing configuration.',
                configFileFullName=config['config_file_full_name'])
        elif config['user_action'] == 'validate':
            #return redirect(url_for('validate'))
            form = ValidationForm(assessname=config['assess_name'],
                                  filename=config['input_csv_file'],
                                  validationType=config['validation_type'])
            return render_template(
                'validate.html',
                title='Validate',
                form=form,
                posts=posts,
                sidebar=True,
                sidebar_title='Manage',
                sidebar_statement='Save or load configurations.',
                configFileFullName=config['config_file_full_name'])
        else:
            print("unknow user action")
    return redirect(url_for('home'))
Example #11
0
def collect():
    config['user_action'] = "collect"
    print_config("start collect stage")
    form = CollectionForm(assessname=config['assess_name'],
                          filename=config['input_csv_file'],
                          outputFolder=config['output_folder'],
                          reportFormat=config['output_report_name'],
                          assessType=config['assess_type'],
                          dblist=config['db_list'],
                          collectTime=config['collect_time'],
                          tenantid=config['tenant_id'],
                          subid=config['sub_id'],
                          clientid=config['client_id'])
    if request.method == 'POST' and "azure_cost" in request.form:
        print("azure_cost sqldb: ", request.form['sqldb'])
        print("azure_cost sqlmi: ", request.form['sqlmi'])
        show_cost(request.form['sqldb'], request.form['sqlmi'])
    else:
        print("azure_cost is empty")
        if (config['db_list']):
            templist = config['db_list'].split(",")
            dblist = "'"
            for db in templist:
                dblist += ' "' + db.strip() + '"'
            dblist += "'"
        else:
            dblist = ""
        print("dblist: ", dblist)

        if form.validate_on_submit():
            print("collect forms validated!!")
            if (config['assess_type'] == 'workload'):
                params = f"-AssessName {config['assess_name']} -InputFile {config['input_csv_file']} \
                          -OutputFolder {config['output_folder']} \
                          -AssessType {config['assess_type']} -WorkloadTime {config['collect_time']}"

            elif (config['assess_type'] == 'sku'):
                config['count_csv_file'] = config['input_csv_file']
                #config['output_report_name'] = f"prices-{config['assess_name']}.html"
                if (dblist):
                    params = f"-AssessName {config['assess_name']} -CountFile {config['count_csv_file']} \
                        -OutputFolder {config['output_folder']} -AssessType {config['assess_type']} \
                        -TenantId {config['tenant_id']} -SubscriptionId {config['sub_id']} -ClientId {config['client_id']} \
                        -DatabaseNames {dblist}"

                else:
                    params = f"-AssessName {config['assess_name']} -CountFile {config['count_csv_file']} \
                        -OutputFolder {config['output_folder']} -AssessType {config['assess_type']} \
                        -TenantId {config['tenant_id']} -SubscriptionId {config['sub_id']} -ClientId {config['client_id']}"

            else:  # workloadsku
                params = f"-AssessName {config['assess_name']} -InputFile {config['input_csv_file']} \
                    -OutputFolder {config['output_folder']} -AssessType {config['assess_type']} -WorkloadTime {config['collect_time']} \
                    -TenantId {config['tenant_id']} -SubscriptionId {config['sub_id']} -ClientId {config['client_id']}"

            error = ''
            result = str(execute_script("catas.ps1", params))
            if result[0:5] == "Error":
                errorMessage = result if len(result) <= 200 else result[0:200]
                flash(errorMessage, 'danger')
                #raise CollectError('SQL server host connection Assess failed, please check host name and credentials.')
            if config['assess_type'] != 'workload':
                #flash(f"PowerShell script good {result}", 'success')
                #result = "prices-localhost.html    prices-52.228.17.215.html  prices-RHDBDV16.html prices-40.85.219.90.html"
                print("inside collect() result: ", result)
                error, linklist = get_html(config['assess_type'])
                if error:
                    flash(error, 'danger')
                else:
                    flash(f'Collection successful!', 'success')
                    config['link_list'] = linklist
            form = CollectionForm(assessname=config['assess_name'],
                                  filename=config['input_csv_file'],
                                  outputFolder=config['output_folder'],
                                  reportFormat=config['output_report_name'],
                                  assessType=config['assess_type'],
                                  dblist=config['db_list'],
                                  collectTime=config['collect_time'],
                                  tenantid=config['tenant_id'],
                                  subid=config['sub_id'],
                                  clientid=config['client_id'])
            if error:
                return render_template('collect.html',
                                       title='Collect',
                                       form=form)
            else:
                return render_template(
                    'collect.html',
                    title='Collect',
                    form=form,
                    sidebar=True,
                    sidebar_title='Azure Recommendation',
                    #sidebar_title='Manage',
                    sidebar_statement=
                    'Click following recommendations and submit for details.')
                #return render_template('collect.html', title='Collect', form=form)

    print("collect no validation")
    return render_template('collect.html', title='Collect', form=form)