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, })
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')
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)
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, })
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)
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')
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)
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)
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})
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'))
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)