def estimate_cost(): """ Estimate Cost of pasted stuff result given by POST[raw_paste]. Renders HTML """ raw_paste = request.form.get('raw_paste', '') solar_system = request.form.get('market', '30000142') mods = Modifiers.by_typeid( Modifiers.query.all() ) if solar_system not in app.config['VALID_SOLAR_SYSTEMS'].keys(): abort(400) eve_types, bad_lines = parse_paste_items(raw_paste) # Populate types with pricing data populate_market_values(eve_types, modifiers=mods, options={'solarsystem_id': solar_system}) # calculate the totals totals = {'sell': 0, 'buy': 0, 'all': 0, 'volume': 0} for t in eve_types: for total_key in ['sell', 'buy', 'all', 'volume']: totals[total_key] += t.pricing_info['totals'][total_key] sorted_eve_types = sorted( eve_types, key=lambda k: -k.representative_value()) displayable_line_items = [] for eve_type in sorted_eve_types: displayable_line_items.append(eve_type.to_dict()) results = { 'from_igb': is_from_igb(), 'totals': totals, 'bad_line_items': bad_lines, 'line_items': displayable_line_items, 'created': time.time(), 'raw_paste': raw_paste, 'solar_system': solar_system, 'solar_system_name': app.config['VALID_SOLAR_SYSTEMS'].get( solar_system, 'UNKNOWN'), } if len(sorted_eve_types) > 0: if session['options'].get('share'): result_id = save_result(results, public=True) results['result_id'] = result_id else: result_id = save_result(results, public=False) return render_template( 'results.html', results=results, from_igb=is_from_igb(), full_page=request.form.get('load_full'))
def add_modifier(character_name, data_list): character = Character.objects.get(character_name=character_name) modifier = Modifiers(character=character, stat=data_list['mod_attr'], amount=data_list['mod_value']) modifier.save()