How to use security_details method in Playwright Python

Best Python code snippet using playwright-python

security.py

Source:security.py Github

copy

Full Screen

...81 print e;82 print '----------------End-----------------'83 return render(request, 'security_add.html', data)84@csrf_exempt85def save_security_details(request):86 print '==============security save===================',request.POST87 #pdb.set_trace()88 try:89 print request.POST90 if request.method == "POST":91 ticker=check_security_bloomer_ticker_insave(request.POST['txtbloombergticker'])92 if ticker=='not_available':93 security_obj = Security_Details(94 asset_sub_class_id=Asset_Sub_Class_Details.objects.get(asset_sub_class_id=request.POST['selectAssetSubClass']),95 security_name=request.POST['txtSecurity'],96 security_isin=request.POST['txtIsin'],97 security_type=SecurityType.objects.get(securitytype_id=request.POST['selectType']),98 security_benchmark_index=BenchmarkIndex.objects.get(99 benchmarkindex_id=request.POST['selectBenchmarkIndex']),100 security_bloomer_ticker=request.POST['txtbloombergticker'],101 security_security_state=SecurityState.objects.get(state_id=request.POST['selectSecurityState']),102 security_local_currency=Currency.objects.get(currency_id=request.POST['selectCurrency']),103 country_id=SecurityCountry.objects.get(country_id=request.POST['selectCountry']),104 sector_id=SecuritySector.objects.get(sector_id=request.POST['selectSector']),105 security_beta=check_float_val(request.POST['txtBeta']),106 security_lot_size=check_int_val(request.POST['txtLotSize']),107 record_status='Active',108 security_created_by=request.session['login_user'],109 security_updated_by=request.session['login_user'],110 security_updated_date=datetime.datetime.now(),111 security_created_date=datetime.datetime.now()112 )113 security_obj.save()114 result={'success':'true'}115 elif ticker=='available':116 result={'success':'ticker_available'}117 else:118 raise "ticker error!"119 except Exception, e:120 print 'Exception: ' + e121 result={'success':'false'}122 #return redirect('/open-security-page/')123 return HttpResponse(json.dumps(result), content_type='application/json')124@csrf_exempt125def update_security_details(request):126 try:127 #pdb.set_trace()128 print request.POST129 if request.method == "POST":130 ticker=check_security_bloomer_ticker_inupdate(request.POST['txtbloombergticker'],request.POST['txtSecurity_id'])131 if ticker=='not_available':132 security_obj=Security_Details.objects.get(security_id=request.POST['txtSecurity_id'])133 security_obj.record_status='Inactive'134 security_obj.security_updated_by=request.session['login_user']135 security_obj.security_updated_date=datetime.datetime.now().date()136 security_obj.save()137 security_new_obj=Security_Details()138 security_new_obj.asset_sub_class_id=Asset_Sub_Class_Details.objects.get(asset_sub_class_id=request.POST['selectAssetSubClass'])139 security_new_obj.security_name=request.POST['txtSecurity']140 security_new_obj.security_isin=request.POST['txtIsin']141 security_new_obj.security_type=SecurityType.objects.get(securitytype_id=request.POST['selectType'])142 security_new_obj.security_bloomer_ticker=request.POST['txtbloombergticker']143 security_new_obj.security_benchmark_index=BenchmarkIndex.objects.get(benchmarkindex_id=request.POST['selectBenchmarkIndex'])144 security_new_obj.security_security_state=SecurityState.objects.get(state_id=request.POST['selectSecurityState'])145 security_new_obj.security_local_currency=Currency.objects.get(currency_id=request.POST['selectCurrency'])146 security_new_obj.country_id=SecurityCountry.objects.get(country_id=request.POST['selectCountry'])147 security_new_obj.sector_id=SecuritySector.objects.get(sector_id=request.POST['selectSector'])148 security_new_obj.security_beta=check_float_val(request.POST['txtBeta'])149 #print '==========>value check',check_float_val(request.POST['txtLotSize'])150 security_new_obj.security_lot_size=check_int_val(request.POST.get('txtLotSize'))151 security_new_obj.record_status='Active'152 security_new_obj.security_created_by=security_obj.security_created_by153 security_new_obj.security_created_date=security_obj.security_created_date154 security_new_obj.security_updated_by=request.session['login_user']155 security_new_obj.security_updated_date=datetime.datetime.now().date()156 security_new_obj.save()157 security_price_list=Security_Price_Details.objects.filter(security_id=security_obj,record_status='Active')158 if security_price_list:159 for price in security_price_list:160 price.security_id=security_new_obj161 price.save()162 trade_list=Trade_Details.objects.filter(security_id=security_obj,record_status='Active')163 if trade_list:164 for trade in trade_list:165 trade.security_id=security_new_obj166 trade.save()167 result={'success':'true'}168 elif ticker=='available':169 result={'success':'ticker_available'}170 else:171 raise "ticker error!"172 except Exception, e:173 print 'Security.py|update_security_details|Exception: ', e174 result={'success':'false'}175 return HttpResponse(json.dumps(result), content_type='application/json')176def view_security_details(request):177 #pdb.set_trace()178 print '===================view security==============='179 try:180 if request.method=='GET':181 print "security_id ",request.GET.get('security_id')182 flag = request.GET.get('flag', '')183 print "FLAG",flag184 security_obj=Security_Details.objects.get(security_id=request.GET['security_id'])185 print '====security Object==='186 print security_obj187 asset_class_list = add_to_dropdown(Asset_Class_Details)188 sub_asset_class_list = Asset_Sub_Class_Details.objects.filter(asset_class_id=security_obj.asset_sub_class_id.asset_class_id)189 benchmarkindex_list = add_to_dropdown(BenchmarkIndex)190 country_list = add_to_dropdown(SecurityCountry)...

Full Screen

Full Screen

trades.py

Source:trades.py Github

copy

Full Screen

1import pdb2import re3from django.shortcuts import render4from zamapp.models import *5from django.http import HttpResponse6import json7from django.shortcuts import render_to_response8# from django.core.context_processors import csrf9from django.views.decorators.csrf import csrf_exempt10from datetime import date, timedelta11from zamapp.captcha_form import CaptchaForm12from django.template import RequestContext13# Create your views here.14def open_trade(request):15 if request.user.is_authenticated():16 return render(request, 'trade_index.html')17 else:18 form = CaptchaForm()19 return render_to_response('login.html', dict(20 form=form21 ), context_instance=RequestContext(request))22def open_add_trade(request):23 security = []24 if request.user.is_authenticated():25 assets_class = Asset_Class_Details.objects.all()26 assets_sub_class = Asset_Sub_Class_Details.objects.all()27 security_obj = Security_Details.objects.filter(record_status = "Active").values_list('security_name').distinct()28 for sec in security_obj:29 security.append({'value' : sec[0] , 'data' : sec[0]})30 security = json.dumps(security)31 #print security32 data = {'securities': security}33 return render(request, 'trade_add.html', data)34 else:35 form = CaptchaForm()36 return render_to_response('login.html', dict(37 form=form38 ), context_instance=RequestContext(request))39@csrf_exempt40def view_security_list(request):41 try:42 # pdb.set_trace()43 data_list = []44 search_txt = request.POST['search_txt']45 # print search_txt46 security_obj = Security_Details.objects.filter(security_name=search_txt ,record_status = "Active")47 # print security_obj48 if security_obj:49 for security in security_obj:50 data_obj = {51 'security': security.security_name,52 'b_ticker': security.security_bloomer_ticker,53 'asset_cls': security.asset_sub_class_id.asset_class_id.asset_class_name,54 'asset_sub_cls': security.asset_sub_class_id.asset_sub_class_name,55 'country': security.security_local_currency.country_id.country_name,56 'add_btn': '<button id="' + security.security_name + '" name="' + str(57 security.security_id) + '" value="'+ str(security.security_lot_size) +'" onclick="add_trade_form(this.id,this.name,this.value)" class="btn btn-default btn-primary2 btn-xs btn-outline">Add</button>'58 }59 data_list.append(data_obj)60 data = {'success': 'true', 'data_list': data_list}61 #print data62 else:63 print "None"64 data = {'success': 'false'}65 # print data66 except Security_Details.DoesNotExist as e:67 print 'Exception', e68 data = {'success': 'false'}69 except Exception as e:70 print 'Exception', e71 data = {'success': 'false'}72 return HttpResponse(json.dumps(data), content_type='application/json')73@csrf_exempt74def check_price(request):75 try:76 trade_quantity = 077 security_id = request.POST['sec_id']78 trade_obj = Trade_Details.objects.filter(security_id = security_id, record_status="Active")79 for trade in trade_obj:80 if trade.buy_sell_indicator == "Buy":81 trade_quantity = trade_quantity + int(trade.trade_security_quantity)82 elif trade.buy_sell_indicator == "Sell":83 trade_quantity = trade_quantity - int(trade.trade_security_quantity)84 print "Trade Quantity: ",trade_quantity85 security_price = Security_Price_Details.objects.filter(security_id = security_id)86 if security_price:87 security_price = "Yes"88 else:89 security_price = "No"90 data = {"security_price" : security_price, "trade_quantity" : trade_quantity}91 except Exception as e:92 print 'Exception', e93 return HttpResponse(json.dumps(data), content_type='application/json')94@csrf_exempt95def view_security_lists(request):96 try:97 # pdb.set_trace()98 data_list = []99 search_txt = request.POST['search_txt']100 # print search_txt101 security_obj = Security_Details.objects.filter(security_name__istartswith=search_txt ,record_status = "Active")102 # print security_obj103 if security_obj:104 for security in security_obj:105 data_obj = {106 'security': security.security_name,107 'b_ticker': security.security_bloomer_ticker,108 'asset_cls': security.asset_sub_class_id.asset_class_id.asset_class_name,109 'asset_sub_cls': security.asset_sub_class_id.asset_sub_class_name,110 'country': security.security_local_currency.country_id.country_name,111 'add_btn': '<button id="' + security.security_name + '" name="' + str(112 security.security_id) + '" value="'+ str(security.security_lot_size) +'" onclick="add_trade_form(this.id,this.name,this.value)" class="btn btn-default btn-primary2 btn-xs btn-outline">Add</button>'113 }114 data_list.append(data_obj)115 data = {'success': 'true', 'data_list': data_list}116 print data117 else:118 print "None"119 data = {'success': 'false'}120 # print data121 except Security_Details.DoesNotExist as e:122 print 'Exception', e123 data = {'success': 'false'}124 except Exception as e:125 print 'Exception', e126 data = {'success': 'false'}127 return HttpResponse(json.dumps(data), content_type='application/json')128def open_view_trade(request):129 try:130 # pdb.set_trace()131 trade = request.GET.get('trade_id')132 type = request.GET.get('type')133 trade_quantity = 0134 trade_obj = Trade_Details.objects.get(trade_id=trade)135 security_id = trade_obj.security_id.security_id136 trades = Trade_Details.objects.filter(security_id = security_id, record_status="Active")137 for trade in trades:138 if trade.buy_sell_indicator == "Buy":139 trade_quantity = trade_quantity + int(trade.trade_security_quantity)140 elif trade.buy_sell_indicator == "Sell":141 trade_quantity = trade_quantity - int(trade.trade_security_quantity)142 #print "Trade id: ", trade143 #print "Type: ", type144 trade_data = {145 'trade_id': trade_obj.trade_id,146 'trade_date': str(trade_obj.trade_date.strftime('%d/%m/%Y')),147 'buy_sell_indicator': trade_obj.buy_sell_indicator,148 'trade_security_quantity': trade_obj.trade_security_quantity,149 'trade_amount': trade_obj.trade_amount,150 'trade_price': trade_obj.trade_price,151 'fx_price': trade_obj.fx_price,152 'broker': trade_obj.broker,153 'lot_size': trade_obj.lot_size,154 'security_id': trade_obj.security_id.security_id,155 'security_name': trade_obj.security_id.security_name,156 'present_quantity' : trade_quantity157 }158 data = {'trade_obj': trade_data, 'type' : type}159 #print data160 except Exception, e:161 print 'Exception', e162 data = {'success': 'false'}163 return render(request, 'trade_view.html', data)164def open_add_bulk_trade(request):165 if request.user.is_authenticated():166 return render(request, 'trade_bulk_add.html')167 else:168 form = CaptchaForm()169 return render_to_response('login.html', dict(170 form=form171 ), context_instance=RequestContext(request))172@csrf_exempt173def asset_subclass(request):174 try:175 asset_id = request.GET.get('asset_id')176 asset_sub_obj = Asset_Sub_Class_Details.objects.filter(asset_class_id=asset_id)177 options = []178 for asset_sub in asset_sub_obj:179 options_data = '<option value=' + str(180 asset_sub.asset_sub_class_id) + '>' + asset_sub.asset_sub_class_name + '</option>'181 options.append(options_data)182 print options183 data = {'options': options}184 except Exception, e:185 print e186 data = {'success': 'false'}187 return HttpResponse(json.dumps(data), content_type='application/json')188@csrf_exempt189def append_security(request):190 try:191 asset_sub_id = request.GET.get('asset_sub_id')192 print asset_sub_id193 security_obj = Security_Details.objects.filter(asset_sub_class_id=asset_sub_id)194 print security_obj195 options = []196 for security in security_obj:197 options_data = '<option value=' + str(security.security_id) + '>' + security.security_name + '</option>'198 options.append(options_data)199 print options200 data = {'options': options}201 except Exception, e:202 print e203 data = {'success': 'false'}204 return HttpResponse(json.dumps(data), content_type='application/json')205@csrf_exempt206def get_price(request):207 try:208 security = request.POST['security_id']209 # print security210 security_price_obj = Security_Price_Details.objects.filter(security_id=security).order_by(211 '-security_price_created_date')212 s_id = security_price_obj.first()213 # sp_obj = Security_Price_Details.objects.get(security_id=s_id)214 security_price = s_id.security_last_price215 # print security_price216 data = {'success': 'true', 'security_price': security_price}217 except Exception, e:218 print e219 data = {'success': 'false'}220 return HttpResponse(json.dumps(data), content_type='application/json')221@csrf_exempt222def add_trade(request):223 try:224 print "adding trade"225 print request.POST226 a = 0227 date = request.POST.getlist('date')228 sec_id = request.POST.getlist('security_id')229 tr_type = request.POST.getlist('trade_type')230 quantity = request.POST.getlist('quantity')231 trade_price = request.POST.getlist('trade_price')232 fx_price = request.POST.getlist('fx_price')233 amount = request.POST.getlist('amount')234 broker = request.POST.getlist('broker')235 lot_size = request.POST.getlist('lot_size')236 for i in range(len(sec_id)):237 print type(amount[i])238 if date[i] == '':239 continue240 else:241 a = 1242 print date[i]243 security_obj = Security_Details.objects.get(security_id=sec_id[i])244 trade_obj = Trade_Details(245 security_id=security_obj,246 trade_date=datetime.strptime(date[i], '%d/%m/%Y').date(),247 buy_sell_indicator=tr_type[i],248 trade_security_quantity=quantity[i],249 trade_amount=amount[i],250 trade_price=trade_price[i],251 fx_price=fx_price[i],252 broker=broker[i],253 lot_size = lot_size[i],254 record_status="Active",255 trade_created_by=request.session['login_user'],256 trade_updated_by=request.session['login_user'],257 trade_created_date=datetime.now(),258 trade_updated_date=datetime.now(),259 )260 trade_obj.save()261 data = {'success': 'true', 'sts':a}262 except Exception, e:263 print e264 data = {'success': 'false'}265 return HttpResponse(json.dumps(data), content_type='application/json')266@csrf_exempt267def view_trades(request):268 trade_obj = Trade_Details.objects.filter(record_status="Active")269 trade_list = []270 for trade in trade_obj:271 view_btn = '<a href="/open-view-trade/?trade_id=' + str(272 trade.trade_id) + '&type=view" class="infont"> ' + '<i class="fa fa-eye"></i></i> </a>'273 edit_btn = '<a href="/open-view-trade/?trade_id=' + str(274 trade.trade_id) + '&type=edit" class="infont"> ' + '<i class="fa fa-edit"></i></i> </a>'275 delete_btn = '<a id="'+str(trade.trade_id)+'" onclick=delete_trade(this.id) class="infont"> ' + '<i class="fa fa-trash-o"></i></i> </a>'276 trade_data = {277 'date': str(trade.trade_date.strftime('%d/%m/%Y')),278 'security': trade.security_id.security_name,279 'trade_type': trade.buy_sell_indicator,280 'quantity': trade.trade_security_quantity,281 'trade_price': trade.trade_price,282 'fx_price': trade.fx_price,283 'trade_amount': trade.trade_amount,284 'broker': trade.broker,285 'view_btn': view_btn,286 'edit_btn': edit_btn,287 'delete_btn': delete_btn,288 }289 trade_list.append(trade_data)290 data = {'data': trade_list}291 #print data292 return HttpResponse(json.dumps(data), content_type='application/json')293@csrf_exempt294def edit_trade(request):295 try:296 print "editng trade"297 security_price_obj = Security_Details.objects.get(security_id=request.POST['security_id'])298 trade_obj = Trade_Details.objects.get(trade_id=request.POST['trade_id'])299 trade_obj.record_status = "Inactive"300 trade_obj.trade_updated_by = request.session['login_user']301 trade_obj.trade_updated_date = datetime.now()302 trade_obj.save()303 trade_new_obj = Trade_Details()304 trade_new_obj.security_id = security_price_obj305 trade_new_obj.trade_date = datetime.strptime(request.POST['date'], '%d/%m/%Y').date()306 trade_new_obj.buy_sell_indicator = request.POST['trade_type']307 trade_new_obj.trade_security_quantity = request.POST['quantity']308 trade_new_obj.trade_amount = request.POST['total_amount']309 trade_new_obj.record_status = "Active"310 trade_new_obj.trade_price = request.POST['trd_price']311 trade_new_obj.fx_price = request.POST['fx_price']312 trade_new_obj.broker = request.POST['broker']313 trade_new_obj.lot_size = request.POST['lot_size']314 trade_new_obj.trade_created_by = request.session['login_user']315 trade_new_obj.trade_created_date = datetime.now()316 trade_new_obj.trade_updated_by = request.session['login_user']317 trade_new_obj.trade_updated_date = datetime.now()318 trade_new_obj.save()319 # print trade_obj320 data = {'success': 'true'}321 except Exception, e:322 print e323 data = {'success': 'false'}324 return HttpResponse(json.dumps(data), content_type='application/json')325@csrf_exempt326def delete_trade(request):327 try:328 print "deleting trade"329 trade_obj = Trade_Details.objects.get(trade_id=request.POST['trade_id'])330 trade_obj.record_status = "Inactive"331 trade_obj.save()332 # print trade_obj333 data = {'success': 'true'}334 except Exception, e:335 print e336 data = {'success': 'false'}337 return HttpResponse(json.dumps(data), content_type='application/json')338@csrf_exempt339def add_bulk_trade(request):340 # pdb.set_trace()341 try:342 bulk_data = request.POST.get('totalData')343 bulk_data_info = json.loads(bulk_data)344 data_list = []345 trade_data = []346 check_list = []347 for data in bulk_data_info:348 security = data.get('Security*')349 b_ticker = data.get('Bloomberg Ticker*')350 as_cls = data.get('Asset Class*')351 as_sub_cls = data.get('Asset Sub Class*')352 quantity = data.get('Quantity*')353 trade_price = data.get('Trade Price*')354 fx_price = data.get('FX Price*')355 Trade_Type = data.get('Trade Type*')356 lot_size = data.get('Lot Size')357 total_amount = data.get('Total Amount')358 broker = data.get('Broker')359 status = '<td class="text-center "><span class="label label-danger " style="cursor: pointer;">Mismatch</span></td>'360 asset_obj = check_asset_obj(as_cls);361 if asset_obj == "error":362 asset_obj = '<td class="text-center "><span class="label label-danger ">' + as_cls + '</span></td>'363 as_sub_obj = "error"364 else:365 as_sub_obj = check_as_sub_obj(as_sub_cls,asset_obj);366 asset_obj = as_cls367 if as_sub_obj == "error":368 security_obj = "error"369 as_sub_obj = '<td class="text-center "><span class="label label-danger ">' + as_sub_cls + '</span></td>'370 else:371 security_obj = check_sec_obj(security,as_sub_obj,b_ticker);372 as_sub_obj = as_sub_cls373 if security_obj == "error" or security_obj == "Add Price":374 if security_obj == "error":375 security_obj = '<td class="text-center "><span class="label label-danger ">' + security + '</span></td>'376 blm_ticker = '<td class="text-center "><span class="label label-danger ">' + b_ticker + '</span></td>'377 status = '<td class="text-center "><span class="label label-danger" style="cursor: pointer;" title="Security not Found">' \378 'Mismatch</span></td>'379 elif security_obj == "Add Price":380 security_obj = '<td class="text-center "><span class="label label-danger ">' + security + '</span></td>'381 blm_ticker = '<td class="text-center "><span class="label label-danger ">' + b_ticker + '</span></td>'382 status = '<td class="text-center "><span class="label label-warning " style="cursor: pointer;" title="Please add price \nfor this security \nto add trade">' \383 'Add Price</span></td>'384 else:385 security_obj = security386 if data.get('Trade Type*') != "Buy" and data.get('Trade Type*') != "Sell" and data.get('Trade Type*') != "Sell Short" and data.get('Trade Type*') != "Cover Short":387 if data.get('Trade Type*') == "":388 Trade_Type = '<td class="text-center "><span class="label label-danger ">null</span></td>'389 else:390 Trade_Type = '<td class="text-center "><span class="label label-danger ">' + data.get(391 'Trade Type*') + '</span></td>'392 if quantity == "":393 quantity = '<td class="text-center "><span class="label label-danger ">null</span></td>'394 if trade_price == "":395 trade_price = '<td class="text-center "><span class="label label-danger ">null</span></td>'396 if fx_price == "":397 fx_price = '<td class="text-center "><span class="label label-danger ">null</span></td>'398 data_obj = {'date': data.get('Date*'),399 'security': security_obj,400 'b_ticker': blm_ticker,401 'as_cls': asset_obj,402 'as_sub_cls': as_sub_obj,403 'trade_type': Trade_Type,404 'quantity': quantity,405 'trade_price': trade_price,406 'fx_price': fx_price,407 'lot_size': lot_size,408 'total_amount': total_amount,409 'broker': broker,410 'status': status411 }412 data_list.append(data_obj)413 else:414 415 if security_obj and data.get('Date*') != "" and data.get('Trade Type*') == "Buy" or data.get(416 'Trade Type*') == "Sell" or data.get('Trade Type*') == "Sell Short" or data.get('Trade Type*') == "Cover Short" and data.get('Quantity*') != "" and data.get('Trade Price*') != "":417 #print "security_obj: ",security_obj418 trade_obj = {419 'security_obj':int(security_obj.security_id),420 'trade_type':data.get('Trade Type*'),421 'quantity':quantity422 }423 trade_data.append(trade_obj)424 425 data_obj = {'date': data.get('Date*'),426 'security': int(security_obj.security_id),427 'security_id': int(security_obj.security_id),428 'b_ticker': data.get('Bloomberg Ticker*'),429 'as_cls': asset_obj,430 'as_sub_cls': as_sub_obj,431 'trade_type': data.get('Trade Type*'),432 'quantity': quantity,433 'trade_price': trade_price,434 'fx_price': fx_price,435 'lot_size': lot_size,436 'total_amount': total_amount,437 'broker': broker,438 'status': status439 }440 check_list.append(data_obj) 441 442 #print "trade_data: ",trade_data443 444 chck_quantity = check_quantity(trade_data)445 flag = 0446 for check_trd in check_list:447 val = chck_quantity[check_trd['security']]448 if val < 0 :449 flag = 1450 check_trd['status'] = '<td class="text-center "><span class="label label-warning " style="cursor: pointer;" title="Sell trade quantity is\ngreater then buy trade\nquantity">' \451 'Invalid Data</span></td>'452 check_trd['trade_type'] = '<td class="text-center "><span class="label label-danger ">'+ check_trd['trade_type'] +'</span></td>'453 check_trd['quantity'] = '<td class="text-center "><span class="label label-danger ">'+ check_trd['quantity'] +'</span></td>'454 #print "Security.........false",check_trd['security']455 security = Security_Details.objects.get(security_id=check_trd['security'])456 check_trd['security'] = security.security_name457 else: 458 check_trd['status'] = '<td class="text-center "><span class="label label-success " style="cursor: pointer;">' \459 'Valid Data</span></td>'460 #print "Security.........ture",check_trd['security']461 security = Security_Details.objects.get(security_id=check_trd['security'])462 check_trd['security'] = security.security_name463 464 if flag == 1 or data_list != []:465 data_list.extend(check_list)466 else:467 sv_trade = save_trades(check_list,request)468 if sv_trade == "saved":469 data_list = []470 if data_list == []:471 data = {'success': 'true', 'data_list': data_list}472 else:473 data = {'success': 'false', 'data_list': data_list}474 except Exception as e:475 print "Exception: ",e476 data = {'success': 'false', 'data_list':''}477 return HttpResponse(json.dumps(data), content_type='application/json')478def check_sec_obj(security,as_sub_obj,b_ticker):479 try:480 sec_obj = Security_Details.objects.get(security_name=security,asset_sub_class_id=as_sub_obj,481 security_bloomer_ticker=b_ticker,record_status="Active")482 if sec_obj:483 sec_price = Security_Price_Details.objects.filter(security_id = sec_obj, record_status="Active")484 if sec_price:485 sec_obj = sec_obj486 else:487 sec_obj = "Add Price"488 except Security_Details.DoesNotExist, e:489 sec_obj = "error"490 #print sec_obj491 return sec_obj492def check_asset_obj(as_cls):493 try:494 ast_obj = Asset_Class_Details.objects.get(asset_class_name=as_cls,row_status="Active")495 except Asset_Class_Details.DoesNotExist, e:496 ast_obj = "error"497 return ast_obj498def check_as_sub_obj(as_sub_cls,asset_obj):499 try:500 ast_sub_obj = Asset_Sub_Class_Details.objects.get(asset_sub_class_name=as_sub_cls,501 asset_class_id = asset_obj,row_status="Active")502 except Asset_Sub_Class_Details.DoesNotExist, e:503 ast_sub_obj = "error"504 return ast_sub_obj505def check_quantity(trade_data):506 total_quantity = 0507 sec_list = []508 list2 = [] 509 dis = [] 510 511 for trade in trade_data:512 if trade["trade_type"]=="Sell" or trade["trade_type"]=="Sell":513 sec_list.append(trade["security_obj"])514 515 unique_list=list(set(sec_list))516 #print "unique_list: ",unique_list517 trd_data = []518 for i in unique_list:519 trd_obj = Trade_Details.objects.filter(security_id=i,record_status="Active")520 for trd in trd_obj:521 trds_obj = {522 'security_obj':int(i),523 'trade_type':trd.buy_sell_indicator,524 'quantity':trd.trade_security_quantity525 }526 trd_data.append(trds_obj)527 #print "trd_data:", trd_data528 trade_data.extend(trd_data)529 test_desc={} 530 for security in trade_data:531 if test_desc.has_key(security['security_obj']):532 if security['trade_type']=='Buy':533 test_desc[security['security_obj']]=test_desc[security['security_obj']]+int(security['quantity'])534 else:535 test_desc[security['security_obj']]=test_desc[security['security_obj']]-int(security['quantity'])536 else:537 if security['trade_type']=='Buy':538 test_desc[security['security_obj']]=0+int(security['quantity'])539 else:540 test_desc[security['security_obj']]=0-int(security['quantity'])541 #print test_desc542 return test_desc543def save_trades(check_list,request):544 try:545 for check_trd in check_list:546 print "saving........"547 security_obj = Security_Details.objects.get(security_id=check_trd['security_id'])548 trade_obj = Trade_Details(549 security_id=security_obj,550 trade_date=datetime.strptime(check_trd['date'], '%d/%m/%Y').date(),551 buy_sell_indicator=check_trd['trade_type'],552 trade_security_quantity=check_trd['quantity'],553 trade_price=check_trd['trade_price'],554 fx_price=check_trd['fx_price'],555 trade_amount=check_trd['total_amount'],556 broker=check_trd['broker'],557 lot_size=check_trd['lot_size'],558 record_status="Active",559 trade_created_by=request.session['login_user'],560 trade_updated_by=request.session['login_user'],561 trade_created_date=datetime.now(),562 trade_updated_date=datetime.now(),563 )564 trade_obj.save()565 trade_status = "saved"566 except Exception as e:567 print "Exception: ",e568 trade_status = "error"...

Full Screen

Full Screen

routes.py

Source:routes.py Github

copy

Full Screen

1from flask import (render_template, url_for, flash, jsonify,2 redirect, request, abort, Blueprint, Response)3from flask_login import current_user, login_required4from capital_gains_loss import db5from capital_gains_loss.models import Transaction6from capital_gains_loss.transactions.forms import TransactionForm, TransactionFormUpdate7import datetime8import requests9import io10import csv11from capital_gains_loss.config import Config12from decimal import Decimal13transactions = Blueprint('transactions', __name__)14@transactions.route("/transaction/new", methods=['GET', 'POST'])15@login_required16def new_transaction():17 form = TransactionForm()18 if form.validate_on_submit():19 dt = datetime.datetime.strptime(form.transaction_date.data, '%m/%d/%Y %I:%M %p')20 transaction = Transaction(security_name=form.security_name.data.upper(),21 security_details=form.security_details.data,22 transaction_date=dt,23 transaction_type=form.transaction_type.data,24 quantity=form.quantity.data,25 price_per_share=form.price_per_share.data,26 fees=form.fees.data,27 forex_rate=form.forex_rate.data,28 amount_recieved=form.amount_recieved.data,29 amount_recieved_details=form.amount_recieved_details.data,30 author=current_user)31 db.session.add(transaction)32 db.session.commit()33 flash('New transaction has been created!', 'success')34 return redirect(url_for('main.home'))35 return render_template('create_transaction.html', title='New Transaction',36 form=form, legend='New Transaction')37@transactions.route("/transaction/<int:transaction_id>/update", methods=['GET', 'POST'])38@login_required39def update_transaction(transaction_id):40 transaction = Transaction.query.get_or_404(transaction_id)41 if transaction.author != current_user:42 abort(403)43 form = TransactionFormUpdate()44 if form.validate_on_submit():45 transaction.security_name = form.security_name.data.upper()46 transaction.transaction_type = form.transaction_type.data47 transaction.security_details = form.security_details.data48 transaction.quantity = form.quantity.data49 transaction.price_per_share = form.price_per_share.data50 transaction.fees = form.fees.data51 transaction.forex_rate = form.forex_rate.data52 transaction.transaction_date = datetime.datetime.strptime(form.transaction_date.data, '%m/%d/%Y %I:%M %p')53 transaction.amount_recieved = form.amount_recieved.data54 transaction.amount_recieved_details = form.amount_recieved_details.data55 db.session.commit()56 flash('Transaction has been updated!', 'success')57 return redirect(url_for('main.home'))58 elif request.method == 'GET':59 form.security_name.data = transaction.security_name60 form.transaction_type.data = transaction.transaction_type61 form.security_details.data = transaction.security_details62 form.quantity.data = transaction.quantity63 form.price_per_share.data = transaction.price_per_share64 form.fees.data = transaction.fees65 form.forex_rate.data = transaction.forex_rate66 form.transaction_date.data = datetime.datetime.strftime(transaction.transaction_date, '%m/%d/%Y %I:%M %p')67 form.amount_recieved_details.data = transaction.amount_recieved_details68 form.amount_recieved.data = transaction.amount_recieved69 return render_template('create_transaction.html', title='Update Transaction',70 form=form, legend='Update Transaction')71@transactions.route("/transaction/schedule3report", methods=['GET'])72@login_required73def schedule3_report():74 transactions = Transaction.query.filter(Transaction.gain_loss!=Decimal(0),Transaction.author==current_user).order_by(Transaction.transaction_date.desc()).all()75 return render_template('report.html', transactions=transactions)76@transactions.route("/transaction/<int:transaction_id>/delete", methods=['POST'])77@login_required78def delete_transaction(transaction_id):79 transaction = Transaction.query.get_or_404(transaction_id)80 if transaction.author != current_user:81 abort(403)82 db.session.delete(transaction)83 db.session.commit()84 flash('Your transaction has been deleted!', 'success')85 return redirect(url_for('main.home'))86@transactions.route("/transaction/<symbol_id>/delete", methods=['GET'])87@login_required88def delete_all_transaction(symbol_id):89 transaction = Transaction.query.filter_by(security_name=symbol_id,author=current_user).delete()90 db.session.commit()91 flash('All transactions has been deleted for symbol %s!' %(symbol_id), 'success')92 return redirect(url_for('main.home'))93@transactions.route('/forex', methods=['GET'])94@login_required95def find_forex_rate():96 try:97 trans_date = request.args.get('trans_date',0,type=str)98 trans_date = datetime.datetime.strptime(trans_date, '%m/%d/%Y %I:%M %p').date()99 qdate = datetime.datetime.strftime(trans_date, "%Y-%m-%d")100 r = requests.get("https://www.bankofcanada.ca/valet/observations/FXUSDCAD/json?start_date=%s&end_date=%s" %(qdate,qdate))101 res = r.json()102 forex = res['observations'][0]['FXUSDCAD']['v']103 return jsonify(result=forex)104 except Exception as e:105 print(e)106 return str(e)107@transactions.route('/commission', methods=['GET'])108@login_required109def find_commission():110 try:111 quantity = Decimal(request.args.get('quantity',0))112 forex_rate = Decimal(request.args.get('forex_rate',0))113 fees = Decimal(request.args.get('fees',0,type=str))114 amount_recieved = Decimal(request.args.get('amount_recieved',0))115 price_per_share = Decimal(request.args.get('price_per_share',0))116 if forex_rate != Decimal(0):117 amount = (quantity * price_per_share * forex_rate) - (fees * forex_rate)118 else:119 amount = (quantity * price_per_share) - fees120 difference = amount - amount_recieved121 if forex_rate != Decimal(0):122 fees = fees + difference/forex_rate123 else:124 fees = fees + difference125 print("DEBUG IN COMMISSION : Amount : %f , difference : %f, FEES: %f" %(amount,difference, fees))126 fees = round(fees,2)127 return jsonify(result=str(fees))128 except Exception as e:129 print(e)130 return str(e)131@transactions.route('/downloadcsv/')132@login_required133def download_csv():134 transactions = Transaction.query.filter_by(author=current_user).order_by(Transaction.transaction_date.desc())135 output = io.StringIO()136 writer = csv.writer(output)137 list_items = ['id', 'security_name', 'security_details', 'transaction_date', 'transaction_type',\138 'quantity', 'price_per_share', 'fees', 'forex_rate', 'acb', 'gain_loss', 'amount_recieved',\139 'amount_recieved_details', 'amount_in_cad', 'acb_change']140 line = ''141 for x in list_items:142 line = line + x + ','143 line = line.rstrip(',')144 writer.writerow([line])145 for transaction in transactions:146 line = ''147 for x in list_items:148 line = line + '"' + str(getattr(transaction,x)) + '"' + ','149 line = line.rstrip(',')150 writer.writerow([line])151 filedt = datetime.datetime.utcnow().strftime('%m_%d_%Y')152 output.seek(0)153 return Response(output, mimetype="text/csv", headers={"Content-Disposition":"attachment;filename=export_%s.csv" %(filedt)})154def allowed_file(filename):155 if not "." in filename:156 return False157 ext = filename.rsplit(".", 1)[1]158 if ext.upper() in ['CSV']:159 return True160 else:161 return False162@transactions.route('/uploadcsv', methods = ['GET', 'POST'])163@login_required164def upload_csv():165 if request.method == "POST":166 if request.files:167 csvfile1 = request.files["csvfile"]168 if csvfile1.filename == "":169 flash('No file provided!', 'danger')170 return redirect(request.url)171 if not allowed_file(csvfile1.filename):172 flash('Only csv files are allowed', 'danger')173 return redirect(request.url)174 stream = io.StringIO(csvfile1.stream.read().decode("UTF8"), newline=None)175 csv_input = csv.reader(stream)176 result = []177 headers = [header.strip() for header in next(csv_input)]178 headers = headers[0].split(",")179 for line in csv_input:180 values = [value.strip() for value in line]181 values = values[0].split(",")182 r = {}183 for idx, val in enumerate(headers):184 #print("IDX: %d, VAL: %s" %(idx,val))185 r[val] = values[idx].strip('"')186 result.append(r)187 for r in result:188 dt = datetime.datetime.strptime(r['transaction_date'], '%Y-%m-%d %H:%M:%S')189 transaction = Transaction(security_name=r['security_name'].upper(),190 security_details=r['security_details'],191 transaction_date=dt,192 transaction_type=r['transaction_type'],193 quantity=r['quantity'],194 price_per_share=r['price_per_share'],195 fees=r['fees'],196 forex_rate=r['forex_rate'],197 amount_recieved=r.get('amount_recieved'),198 amount_recieved_details=r.get('amount_recieved_details'),199 author=current_user)200 db.session.add(transaction)201 db.session.commit()202 flash('CSV file uploaded successfully!', 'success')203 return redirect(url_for('main.home'))...

Full Screen

Full Screen

browser_bot_response.py

Source:browser_bot_response.py Github

copy

Full Screen

1# -*- coding: utf-8 -*-23"""4 neutrino_api56 This file was automatically generated for NeutrinoAPI by APIMATIC v2.0 ( https://apimatic.io ).7"""8910class BrowserBotResponse(object):1112 """Implementation of the 'Browser Bot Response' model.1314 TODO: type model description here.1516 Attributes:17 url (string): The page URL18 content (string): The complete raw, decompressed and decoded page19 content. Usually will be either HTML, JSON or XML20 mime_type (string): The document MIME type21 title (string): The document title22 is_error (bool): True if an error has occurred loading the page. Check23 the 'error-message' field for details24 is_timeout (bool): True if a timeout occurred while loading the page.25 You can set the timeout with the request parameter 'timeout'26 error_message (string): Contains the error message if an error has27 occurred ('is-error' will be true)28 http_status_code (int): The HTTP status code the URL returned29 http_status_message (string): The HTTP status message the URL30 returned31 is_http_ok (bool): True if the HTTP status is OK (200)32 is_http_redirect (bool): True if the URL responded with an HTTP33 redirect34 http_redirect_url (string): The redirected URL if the URL responded35 with an HTTP redirect36 server_ip (string): The HTTP servers IP address37 load_time (int): The number of seconds taken to load the page (from38 initial request until DOM ready)39 response_headers (dict<object, string>): Map containing all the HTTP40 response headers the URL responded with41 is_secure (bool): True if the page is secured using TLS/SSL42 security_details (dict<object, string>): Map containing details of the43 TLS/SSL setup44 elements (list of string): Array containing all the elements matching45 the supplied selector. Each element object will contain the text46 content, HTML content and all current element attributes47 exec_results (list of string): If you executed any JavaScript this48 array holds the results as objects4950 """5152 # Create a mapping from Model property names to API property names53 _names = {54 "url":'url',55 "content":'content',56 "mime_type":'mimeType',57 "title":'title',58 "is_error":'isError',59 "is_timeout":'isTimeout',60 "error_message":'errorMessage',61 "http_status_code":'httpStatusCode',62 "http_status_message":'httpStatusMessage',63 "is_http_ok":'isHttpOk',64 "is_http_redirect":'isHttpRedirect',65 "http_redirect_url":'httpRedirectUrl',66 "server_ip":'serverIp',67 "load_time":'loadTime',68 "response_headers":'responseHeaders',69 "is_secure":'isSecure',70 "security_details":'securityDetails',71 "elements":'elements',72 "exec_results":'execResults'73 }7475 def __init__(self,76 url=None,77 content=None,78 mime_type=None,79 title=None,80 is_error=None,81 is_timeout=None,82 error_message=None,83 http_status_code=None,84 http_status_message=None,85 is_http_ok=None,86 is_http_redirect=None,87 http_redirect_url=None,88 server_ip=None,89 load_time=None,90 response_headers=None,91 is_secure=None,92 security_details=None,93 elements=None,94 exec_results=None):95 """Constructor for the BrowserBotResponse class"""9697 # Initialize members of the class98 self.url = url99 self.content = content100 self.mime_type = mime_type101 self.title = title102 self.is_error = is_error103 self.is_timeout = is_timeout104 self.error_message = error_message105 self.http_status_code = http_status_code106 self.http_status_message = http_status_message107 self.is_http_ok = is_http_ok108 self.is_http_redirect = is_http_redirect109 self.http_redirect_url = http_redirect_url110 self.server_ip = server_ip111 self.load_time = load_time112 self.response_headers = response_headers113 self.is_secure = is_secure114 self.security_details = security_details115 self.elements = elements116 self.exec_results = exec_results117118119 @classmethod120 def from_dictionary(cls,121 dictionary):122 """Creates an instance of this model from a dictionary123124 Args:125 dictionary (dictionary): A dictionary representation of the object as126 obtained from the deserialization of the server's response. The keys127 MUST match property names in the API description.128129 Returns:130 object: An instance of this structure class.131132 """133 if dictionary is None:134 return None135136 # Extract variables from the dictionary137 url = dictionary.get('url')138 content = dictionary.get('content')139 mime_type = dictionary.get('mimeType')140 title = dictionary.get('title')141 is_error = dictionary.get('isError')142 is_timeout = dictionary.get('isTimeout')143 error_message = dictionary.get('errorMessage')144 http_status_code = dictionary.get('httpStatusCode')145 http_status_message = dictionary.get('httpStatusMessage')146 is_http_ok = dictionary.get('isHttpOk')147 is_http_redirect = dictionary.get('isHttpRedirect')148 http_redirect_url = dictionary.get('httpRedirectUrl')149 server_ip = dictionary.get('serverIp')150 load_time = dictionary.get('loadTime')151 response_headers = dictionary.get('responseHeaders')152 is_secure = dictionary.get('isSecure')153 security_details = dictionary.get('securityDetails')154 elements = dictionary.get('elements')155 exec_results = dictionary.get('execResults')156157 # Return an object of this model158 return cls(url,159 content,160 mime_type,161 title,162 is_error,163 is_timeout,164 error_message,165 http_status_code,166 http_status_message,167 is_http_ok,168 is_http_redirect,169 http_redirect_url,170 server_ip,171 load_time,172 response_headers,173 is_secure,174 security_details,175 elements,176 exec_results)177 ...

Full Screen

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Python automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful