def stocks_save_filter(filter_id): if request.method == 'POST': current_filter = db.filter_by_id(filter_id) name = request.form.get('filter_name', '') current_filter['name'] = name db.save_filter(current_filter) return redirect(url_for('stocks', filter_id=filter_id))
def stocks_remove_filter_option(filter_id, filter_option_id): current_filter = db.filter_by_id(filter_id) remain = [o for o in current_filter.get('options', []) if o['_id'] != ObjectId(filter_option_id)] current_filter['options'] = remain db.save_filter(current_filter) return redirect(url_for('stocks', filter_id=current_filter['_id']))
def stocks_add_filter_option(filter_id): if request.method == 'POST': name = request.form.get('filter_name') key = request.form.get('filter_option_key') morethan = request.form.get('filter_option_morethan') morethan = True if morethan == 'morethan' else False try: value = float(request.form.get('filter_option_value', 0)) except: value = 0 selected = [ filter_option for filter_option in db.available_filter_options if filter_option.key == key ][0] new_filter_option = db.FilterOption(key, selected.title, morethan, value, selected.is_boolean) current_filter = db.filter_by_id(filter_id) options = current_filter.get('options', []) filter_option_dict = new_filter_option._asdict() filter_option_dict['_id'] = ObjectId() options.append(filter_option_dict) current_filter['options'] = options current_filter['name'] = name db.save_filter(current_filter) return redirect(url_for('stocks', filter_id=current_filter['_id']))
def stocks_remove_rank_option(filter_id): rank_option_key = request.args.get('key', None) if not rank_option_key: return redirect(url_for('stocks', filter_id=filter_id)) current_filter = db.filter_by_id(filter_id) options = current_filter.get('options', []) options = [o for o in options if o['key'] != rank_option_key] current_filter['options'] = options db.save_filter(current_filter) return redirect( url_for('stocks', filter_id=filter_id, status='rank', alt='alt1'))
def stocks_add_rank_option(filter_id): rank_option_key = request.args.get('key', None) if not rank_option_key: return redirect(url_for('stocks', filter_id=filter_id)) options = [ r for r in db.available_rank_options if r.key == rank_option_key ] if options: rank_option_to_add = options[0] current_filter = db.filter_by_id(filter_id) options = current_filter.get('options', []) options.append(rank_option_to_add._asdict()) db.save_filter(current_filter) return redirect( url_for('stocks', filter_id=filter_id, status='rank', alt='alt1'))
def stocks_new_filter(): filters = db.all_filters() name = '새필터' + str(len(filters) + 1) filter_id = db.save_filter({ 'name': name, 'options': [], }) return redirect(url_for('stocks', filter_id=filter_id))