From 461b3938a638c431178f612401da819f91144bc8 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Tue, 15 May 2018 13:31:56 +0530 Subject: [PATCH 01/16] init changes for setting APIs --- loop/urls.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/loop/urls.py b/loop/urls.py index 79c13c283b..e0b3982825 100644 --- a/loop/urls.py +++ b/loop/urls.py @@ -12,6 +12,7 @@ from loop.views import * from loop.dashboard_views import * +from loop.mi_views import * from loop.utils.send_log.loop_data_log import send_updated_log from loop.utils.send_log.send_sms import send_sms, sms_receipt_from_txtlcl, deprecated_send_sms from loop.utils.send_log.loop_admin_log import send_updated_admin_log @@ -109,4 +110,6 @@ url(r'^get_partners_list/', get_partners_list), url(r'^admin/logout/?$', 'django.contrib.auth.views.logout', {'next_page': '/loop/admin/'}), url(r'^admin/', include(loop_admin.urls)), + url(r'^get_aggregator_mi_related_data', get_aggregator_mi_related_data), + url(r'^get_crop_prices', get_crop_prices) ) From e73afabc748d101507b93794cfd386d26b1c936b Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Tue, 15 May 2018 13:32:53 +0530 Subject: [PATCH 02/16] created view for MI --- loop/mi_views.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 loop/mi_views.py diff --git a/loop/mi_views.py b/loop/mi_views.py new file mode 100644 index 0000000000..0a63be76ab --- /dev/null +++ b/loop/mi_views.py @@ -0,0 +1,14 @@ +import requests +from django.http import HttpResponse +import json + +def get_aggregator_mi_related_data(request): + testing = 'Hi Testing' + print request.GET.get('aggId') + data = json.dumps({'data': testing}) + return HttpResponse(data) + +def get_crop_prices(request): + testing = 'Hi, want crop Prices?' + data = json.dumps({"data": testing}) + return HttpResponse(data) From acf67005d51e795d42ba5ec8f29c3aa7eb1e523e Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Thu, 17 May 2018 16:14:28 +0530 Subject: [PATCH 03/16] json creation done --- loop/mi_data_structure.py | 45 ++++++++++++++++++++++++++ loop/mi_views.py | 68 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 109 insertions(+), 4 deletions(-) create mode 100644 loop/mi_data_structure.py diff --git a/loop/mi_data_structure.py b/loop/mi_data_structure.py new file mode 100644 index 0000000000..5dd97f39ab --- /dev/null +++ b/loop/mi_data_structure.py @@ -0,0 +1,45 @@ +class AggregatorDetail: + + def __init__(self, **kwargs): + self.id = kwargs['aggregator_id'] + self.name = kwargs['aggregator_name'] + self.mandi_list = [] + + def getAggData(self): + pass + +class MandiDetail: + + def __init__(self, **kwargs): + self.id =kwargs['mandi_id'] + self.name = kwargs['mandi_name'] + self.category = kwargs['mandi_category'] + self.distance = kwargs['mandi_distance'] + self.transport_list = [] + self.gaddidar_list = [] + + def getMandiDetail(self): + pass + +class TransportDetail: + + def __init__(self, **kwargs): + self.id = kwargs['transport_id'] + self.name = kwargs['transport_name'] + self.cost = kwargs['transport_cost'] + self.capacity = kwargs['transport_capacity'] + + def getTransportDetail(self): + pass + + +class GaddidarDetail: + + def __init__(self, **kwargs): + self.id = kwargs['gaddidar_id'] + self.name = kwargs['gaddidar_name'] + + def getGaddidarDetail(self): + pass + + diff --git a/loop/mi_views.py b/loop/mi_views.py index 0a63be76ab..79af6d5933 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -1,14 +1,74 @@ +import json + import requests from django.http import HttpResponse -import json + +from mi_data_structure import * +from loop.models import * def get_aggregator_mi_related_data(request): - testing = 'Hi Testing' - print request.GET.get('aggId') - data = json.dumps({'data': testing}) + agg_list = [4846, 4844, 4992, 5025] + mandi_list = [134, 133, 152, 16, 150, 14, 5, 151, 188] + agg_data_obj = LoopUser.objects.filter(user__in=agg_list).values('user', 'name_en') + mandi_data_obj = Mandi.objects.filter(id__in=mandi_list).values('id', 'mandi_name_en') + gaddidar_data_obj = Gaddidar.objects.filter(mandi__id__in=mandi_list) + transport_data_obj = Vehicle.objects.values('id', 'name') + # Store Json Result + agg_res = [] + # Mandi Detail + mandi_res = [] + for mandiobj in mandi_data_obj: + mandiobjdetail = MandiDetail(mandi_id=mandiobj['id'], mandi_name=mandiobj['mandi_name_en'], mandi_category='Chhoti Mandi',\ + mandi_distance='590') + gaddidar_obj= gaddidar_data_obj.filter(mandi__id=mandiobj['id']).values('id', 'gaddidar_name_en') + for gaddidarobj in gaddidar_obj: + gaddidarobj = GaddidarDetail(gaddidar_id=gaddidarobj['id'], gaddidar_name=gaddidarobj['gaddidar_name_en']) + mandiobjdetail.gaddidar_list.append(gaddidarobj.__dict__) + + mandi_res.append(mandiobjdetail.__dict__) + # Aggregator Details + for aggobj in agg_data_obj: + aggobj = AggregatorDetail(aggregator_id=aggobj['user'], aggregator_name=aggobj['name_en']) + aggobj.mandi_list = mandi_res + agg_res.append(aggobj.__dict__) + + data = json.dumps(agg_res) return HttpResponse(data) def get_crop_prices(request): testing = 'Hi, want crop Prices?' data = json.dumps({"data": testing}) return HttpResponse(data) + +# def getJSONObj(**kwargs): + +# aggobj = AggregatorDetail(aggregator_id=1, aggregator_name='Hello') +# mandiobj = MandiDetail(mandi_id=1, mandi_name='Samastipur', mandi_category='Chhoti Mandi',\ +# mandi_distance='590') +# transportobj = TransportDetail(transport_id=1, transport_name='Jugaad', transport_cost=123,\ +# transport_capacity=1209) +# gaddidarobj = GaddidarDetail(gaddidar_id=1, gaddidar_name='Gajodhar') + +# aggobj.mandi_list = [mandiobj.__dict__, mandiobj.__dict__] + +# mandiobj.transport_list = [transportobj.__dict__, ] +# mandiobj.gaddidar_list = [gaddidarobj.__dict__, ] + +# return aggobj.__dict__ + + +# def get_init_kwargs(): +# kwargs = {} +# kwargs['aggregator_id'] = '' +# kwargs['aggregator_name'] = '' +# kwargs['mandi_id'] = '' +# kwargs['mandi_name'] = '' +# kwargs['mandi_category'] = '' +# kwargs['mandi_distance'] = '' +# kwargs['transport_id'] = '' +# kwargs['transport_name'] = '' +# kwargs['transport_cost'] = '' +# kwargs['transport_capacity'] = '' +# kwargs['gaddidar_id'] = '' +# kwargs['gaddidar_name'] = '' +# return kwargs \ No newline at end of file From 3bb87860042e626846a7bed9a8bb33f6fe14d545 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Wed, 23 May 2018 12:00:46 +0530 Subject: [PATCH 04/16] Json Created for Crop Prices --- loop/crop_price_structure.py | 15 +++ loop/mi_data_structure.py | 1 + loop/mi_views.py | 79 ++++++++++++- ...ransport Cost & Capacity Data - Sheet1.csv | 109 ++++++++++++++++++ loop_ivr/utils/marketinfo/get_query.py | 4 +- 5 files changed, 200 insertions(+), 8 deletions(-) create mode 100644 loop/crop_price_structure.py create mode 100644 loop/utils/Transport Cost & Capacity Data - Sheet1.csv diff --git a/loop/crop_price_structure.py b/loop/crop_price_structure.py new file mode 100644 index 0000000000..5bccf8dee5 --- /dev/null +++ b/loop/crop_price_structure.py @@ -0,0 +1,15 @@ +class CropMandiData: + def __init__(self, **kwargs): + self.crop_id = kwargs['crop_id'] + self.mandi_id = kwargs['mandi_id'] + self.price_details = [] + +class PriceDetails: + def __init__(self, **kwargs): + self.date = kwargs['date'] + self.min_price = kwargs['min_price'] + self.max_price = kwargs['max_price'] + self.avg_price = kwargs['avg_price'] + self.std = kwargs['std'] + self.delta = kwargs['delta'] + diff --git a/loop/mi_data_structure.py b/loop/mi_data_structure.py index 5dd97f39ab..430c53920d 100644 --- a/loop/mi_data_structure.py +++ b/loop/mi_data_structure.py @@ -38,6 +38,7 @@ class GaddidarDetail: def __init__(self, **kwargs): self.id = kwargs['gaddidar_id'] self.name = kwargs['gaddidar_name'] + self.phone_no = kwargs['gaddidar_phone_no'] def getGaddidarDetail(self): pass diff --git a/loop/mi_views.py b/loop/mi_views.py index 79af6d5933..deb37d2dca 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -1,31 +1,65 @@ +import os import json import requests from django.http import HttpResponse +from loop_ivr.outliers.removal import remove_crop_outliers +from loop_ivr.helper_function import run_query +from loop_ivr.utils.marketinfo import get_query + from mi_data_structure import * from loop.models import * +import pandas as pd +from tastypie.models import ApiKey +from crop_price_structure import * + +fileDir = os.path.dirname(os.path.realpath('__file__')) def get_aggregator_mi_related_data(request): + + apikey = request.GET['apikey'] + + # Get User Id + apikeyobj = ApiKey.objects.get(key=apikey) + aggregator_id = [apikeyobj.user_id] agg_list = [4846, 4844, 4992, 5025] mandi_list = [134, 133, 152, 16, 150, 14, 5, 151, 188] - agg_data_obj = LoopUser.objects.filter(user__in=agg_list).values('user', 'name_en') + agg_list_requested = list(set(aggregator_id) & set(agg_list)) + + # Create Objects + agg_data_obj = LoopUser.objects.filter(user__in=agg_list_requested).values('user', 'name_en') mandi_data_obj = Mandi.objects.filter(id__in=mandi_list).values('id', 'mandi_name_en') gaddidar_data_obj = Gaddidar.objects.filter(mandi__id__in=mandi_list) - transport_data_obj = Vehicle.objects.values('id', 'name') + + # Read CSV file and filter for requested Aggreagator + filepath = os.path.join(fileDir, "/home/trionfo/Documents/dg/loop/utils/Transport Cost & Capacity Data - Sheet1.csv") + print filepath + transport_dataframe = pd.read_csv(filepath) + transport_dataframe = transport_dataframe[transport_dataframe['Aggregator Id']==agg_list_requested[0]] + # Store Json Result agg_res = [] + # Mandi Detail - mandi_res = [] + mandi_res = [] for mandiobj in mandi_data_obj: mandiobjdetail = MandiDetail(mandi_id=mandiobj['id'], mandi_name=mandiobj['mandi_name_en'], mandi_category='Chhoti Mandi',\ mandi_distance='590') - gaddidar_obj= gaddidar_data_obj.filter(mandi__id=mandiobj['id']).values('id', 'gaddidar_name_en') + gaddidar_obj= gaddidar_data_obj.filter(mandi__id=mandiobj['id']).values('id', 'gaddidar_name_en', 'gaddidar_phone') for gaddidarobj in gaddidar_obj: - gaddidarobj = GaddidarDetail(gaddidar_id=gaddidarobj['id'], gaddidar_name=gaddidarobj['gaddidar_name_en']) + gaddidarobj = GaddidarDetail(gaddidar_id=gaddidarobj['id'], gaddidar_name=gaddidarobj['gaddidar_name_en'],\ + gaddidar_phone_no=gaddidarobj['gaddidar_phone']) mandiobjdetail.gaddidar_list.append(gaddidarobj.__dict__) + + transport_dataframe_obj = transport_dataframe[transport_dataframe['Mandi Id'] == mandiobj['id']] + for index, row in transport_dataframe_obj.iterrows(): + transportobj = TransportDetail(transport_id=row['Vehicle Id'], transport_name=row['Vehicle Name'], transport_cost=str(row['Cost']),\ + transport_capacity=row['Capacity']) + mandiobjdetail.transport_list.append(transportobj.__dict__) mandi_res.append(mandiobjdetail.__dict__) + # Aggregator Details for aggobj in agg_data_obj: aggobj = AggregatorDetail(aggregator_id=aggobj['user'], aggregator_name=aggobj['name_en']) @@ -38,8 +72,41 @@ def get_aggregator_mi_related_data(request): def get_crop_prices(request): testing = 'Hi, want crop Prices?' data = json.dumps({"data": testing}) + + # Prepare data + crop_list = (22, 6) + mandi_list = (4,) + + query = get_query.query_for_rates(crop_list , mandi_list, date_range=3) + + result = run_query(query) + dataframe = remove_crop_outliers(ct_data = result) + + pricedetailobj = [] + print 'crop mandi date Av_Rate STD PriceMax PriceMin delta' + for index, row in dataframe.iterrows(): + crop, mandi, date, Av_Rate, STD, PriceMax, PriceMin = row['Crop'], row['Market_Real'], row['Date'], row['Av_Ratemean'], row['STDmean'], row['Pricemax'], row['Pricemin'] + delta = PriceMax - PriceMin + print crop, mandi, date, Av_Rate, STD, PriceMax, PriceMin, delta + print type(date) + priceobj = PriceDetails(date=str(date), std=round(STD, 2), min_price=round(PriceMin, 2), max_price=round(PriceMax, 2),\ + delta=round(delta, 2), avg_price=round(Av_Rate, 2)) + pricedetailobj.append(priceobj.__dict__) + + res = [] + cropmandidata = CropMandiData(crop_id=6, mandi_id=4) + cropmandidata.price_details.append(pricedetailobj) + + res.append(cropmandidata.__dict__) + + data = json.dumps(res) return HttpResponse(data) + + + + + # def getJSONObj(**kwargs): # aggobj = AggregatorDetail(aggregator_id=1, aggregator_name='Hello') @@ -71,4 +138,4 @@ def get_crop_prices(request): # kwargs['transport_capacity'] = '' # kwargs['gaddidar_id'] = '' # kwargs['gaddidar_name'] = '' -# return kwargs \ No newline at end of file +# return kwargs diff --git a/loop/utils/Transport Cost & Capacity Data - Sheet1.csv b/loop/utils/Transport Cost & Capacity Data - Sheet1.csv new file mode 100644 index 0000000000..78b73b6854 --- /dev/null +++ b/loop/utils/Transport Cost & Capacity Data - Sheet1.csv @@ -0,0 +1,109 @@ +Mandi Id,Mandi Name,Mandi Category,Mandi Distance,Aggregator Id,Aggregator Name,Vehicle Id,Vehicle Name,Cost,Capacity +134,Darhara,Medium,7,4846,सतेन्दर कुमार,2,Tempo,300,600 +134,Darhara,Medium,7,4846,सतेन्दर कुमार,5,ace,300,1500 +134,Darhara,Medium,7,4846,सतेन्दर कुमार,4,pick up,500,2500 +134,Darhara,Medium,8,4844,बिशेशवर प्रसाद,2,Tempo,400,600 +134,Darhara,Medium,8,4844,बिशेशवर प्रसाद,5,ace,400,1500 +134,Darhara,Medium,8,4844,बिशेशवर प्रसाद,4,pick up,600,2500 +134,Darhara,Medium,20,4992,धनराज सिंह,2,Tempo,600,600 +134,Darhara,Medium,20,4992,धनराज सिंह,5,ace,600,1500 +134,Darhara,Medium,20,4992,धनराज सिंह,4,pick up,800,2500 +134,Darhara,Medium,10,5025,रवि रंजन,2,Tempo,400,600 +134,Darhara,Medium,10,5025,रवि रंजन,5,ace,400,1500 +134,Darhara,Medium,10,5025,रवि रंजन,4,pick up,600,2500 +133,Buxar,Medium,31,4846,सतेन्दर कुमार,2,Tempo,600,600 +133,Buxar,Medium,31,4846,सतेन्दर कुमार,5,ace,700,1500 +133,Buxar,Medium,31,4846,सतेन्दर कुमार,4,pick up,1200,2500 +133,Buxar,Medium,17,4844,बिशेशवर प्रसाद,2,Tempo,500,600 +133,Buxar,Medium,17,4844,बिशेशवर प्रसाद,5,ace,500,1500 +133,Buxar,Medium,17,4844,बिशेशवर प्रसाद,4,pick up,750,2500 +133,Buxar,Medium,5,4992,धनराज सिंह,2,Tempo,300,600 +133,Buxar,Medium,5,4992,धनराज सिंह,5,ace,300,1500 +133,Buxar,Medium,5,4992,धनराज सिंह,4,pick up,500,2500 +133,Buxar,Medium,17,5025,रवि रंजन,2,Tempo,500,600 +133,Buxar,Medium,17,5025,रवि रंजन,5,ace,500,1500 +133,Buxar,Medium,17,5025,रवि रंजन,4,pick up,800,2500 +152,Bramhpur,Medium,15,4846,सतेन्दर कुमार,2,Tempo,500,600 +152,Bramhpur,Medium,15,4846,सतेन्दर कुमार,5,ace,500,1500 +152,Bramhpur,Medium,15,4846,सतेन्दर कुमार,4,pick up,700,2500 +152,Bramhpur,Medium,17,4844,बिशेशवर प्रसाद,2,Tempo,500,600 +152,Bramhpur,Medium,17,4844,बिशेशवर प्रसाद,5,ace,500,1500 +152,Bramhpur,Medium,17,4844,बिशेशवर प्रसाद,4,pick up,750,2500 +152,Bramhpur,Medium,30,4992,धनराज सिंह,2,Tempo,600,600 +152,Bramhpur,Medium,30,4992,धनराज सिंह,5,ace,700,1500 +152,Bramhpur,Medium,30,4992,धनराज सिंह,4,pick up,1200,2500 +152,Bramhpur,Medium,20,5025,रवि रंजन,2,Tempo,600,600 +152,Bramhpur,Medium,20,5025,रवि रंजन,5,ace,600,1500 +152,Bramhpur,Medium,20,5025,रवि रंजन,4,pick up,1100,2500 +16,Arra,Big,65,4846,सतेन्दर कुमार,2,Tempo,900,600 +16,Arra,Big,65,4846,सतेन्दर कुमार,5,ace,900,1500 +16,Arra,Big,65,4846,सतेन्दर कुमार,4,pick up,1500,2500 +16,Arra,Big,65,4844,बिशेशवर प्रसाद,2,Tempo,800,600 +16,Arra,Big,65,4844,बिशेशवर प्रसाद,5,ace,900,1500 +16,Arra,Big,65,4844,बिशेशवर प्रसाद,4,pick up,1500,2500 +16,Arra,Big,80,4992,धनराज सिंह,2,Tempo,1500,600 +16,Arra,Big,80,4992,धनराज सिंह,5,ace,1500,1500 +16,Arra,Big,80,4992,धनराज सिंह,4,pick up,2500,2500 +16,Arra,Big,70,5025,रवि रंजन,2,Tempo,800,600 +16,Arra,Big,70,5025,रवि रंजन,5,ace,900,1500 +16,Arra,Big,70,5025,रवि रंजन,4,pick up,2000,2500 +150,Nayabhojpur,Medium,15,4846,सतेन्दर कुमार,2,Tempo,500,600 +150,Nayabhojpur,Medium,15,4846,सतेन्दर कुमार,5,ace,500,1500 +150,Nayabhojpur,Medium,15,4846,सतेन्दर कुमार,4,pick up,700,2500 +150,Nayabhojpur,Medium,4,4844,बिशेशवर प्रसाद,2,Tempo,350,600 +150,Nayabhojpur,Medium,4,4844,बिशेशवर प्रसाद,5,ace,350,1500 +150,Nayabhojpur,Medium,4,4844,बिशेशवर प्रसाद,4,pick up,500,2500 +150,Nayabhojpur,Medium,12,4992,धनराज सिंह,2,Tempo,500,600 +150,Nayabhojpur,Medium,12,4992,धनराज सिंह,5,ace,500,1500 +150,Nayabhojpur,Medium,12,4992,धनराज सिंह,4,pick up,700,2500 +150,Nayabhojpur,Medium,3,5025,रवि रंजन,2,Tempo,350,600 +150,Nayabhojpur,Medium,3,5025,रवि रंजन,5,ace,350,1500 +150,Nayabhojpur,Medium,3,5025,रवि रंजन,4,pick up,500,2500 +14,Patna,Big,116,4846,सतेन्दर कुमार,2,Tempo,NA,600 +14,Patna,Big,116,4846,सतेन्दर कुमार,5,ace,2000,1500 +14,Patna,Big,116,4846,सतेन्दर कुमार,4,pick up,3000,2500 +14,Patna,Big,130,4844,बिशेशवर प्रसाद,2,Tempo,NA,600 +14,Patna,Big,130,4844,बिशेशवर प्रसाद,5,ace,1500,1500 +14,Patna,Big,130,4844,बिशेशवर प्रसाद,4,pick up,3000,2500 +14,Patna,Big,150,4992,धनराज सिंह,2,Tempo,NA,600 +14,Patna,Big,150,4992,धनराज सिंह,5,ace,NA,1500 +14,Patna,Big,150,4992,धनराज सिंह,4,pick up,4000,2500 +14,Patna,Big,140,5025,रवि रंजन,2,Tempo,NA,600 +14,Patna,Big,140,5025,रवि रंजन,5,ace,1500,1500 +14,Patna,Big,140,5025,रवि रंजन,4,pick up,3500,2500 +5,Chapra,Big,65,4846,सतेन्दर कुमार,2,Tempo,1200,600 +5,Chapra,Big,65,4846,सतेन्दर कुमार,5,ace,1200,1500 +5,Chapra,Big,65,4846,सतेन्दर कुमार,4,pick up,1700,2500 +5,Chapra,Big,75,4844,बिशेशवर प्रसाद,2,Tempo,1200,600 +5,Chapra,Big,75,4844,बिशेशवर प्रसाद,5,ace,1200,1500 +5,Chapra,Big,75,4844,बिशेशवर प्रसाद,4,pick up,2000,2500 +5,Chapra,Big,90,4992,धनराज सिंह,2,Tempo,1300,600 +5,Chapra,Big,90,4992,धनराज सिंह,5,ace,1400,1500 +5,Chapra,Big,90,4992,धनराज सिंह,4,pick up,2500,2500 +5,Chapra,Big,80,5025,रवि रंजन,2,Tempo,1200,600 +5,Chapra,Big,80,5025,रवि रंजन,5,ace,1200,1500 +5,Chapra,Big,80,5025,रवि रंजन,4,pick up,2000,2500 +151,Dumaraon,Medium,65,4846,सतेन्दर कुमार,2,Tempo,500,600 +151,Dumaraon,Medium,65,4846,सतेन्दर कुमार,5,ace,500,1500 +151,Dumaraon,Medium,65,4846,सतेन्दर कुमार,4,pick up,700,2500 +151,Dumaraon,Medium,75,4844,बिशेशवर प्रसाद,2,Tempo,350,600 +151,Dumaraon,Medium,75,4844,बिशेशवर प्रसाद,5,ace,350,1500 +151,Dumaraon,Medium,75,4844,बिशेशवर प्रसाद,4,pick up,600,2500 +151,Dumaraon,Medium,90,4992,धनराज सिंह,2,Tempo,500,600 +151,Dumaraon,Medium,90,4992,धनराज सिंह,5,ace,500,1500 +151,Dumaraon,Medium,90,4992,धनराज सिंह,4,pick up,700,2500 +151,Dumaraon,Medium,80,5025,रवि रंजन,2,Tempo,400,600 +151,Dumaraon,Medium,80,5025,रवि रंजन,5,ace,400,1500 +151,Dumaraon,Medium,80,5025,रवि रंजन,4,pick up,700,2500 +188,Dumri,Small,21,4846,सतेन्दर कुमार,2,Tempo,700,600 +188,Dumri,Small,21,4846,सतेन्दर कुमार,5,ace,700,1500 +188,Dumri,Small,21,4846,सतेन्दर कुमार,4,pick up,1000,2500 +188,Dumri,Small,6,4844,बिशेशवर प्रसाद,2,Tempo,350,600 +188,Dumri,Small,6,4844,बिशेशवर प्रसाद,5,ace,400,1500 +188,Dumri,Small,6,4844,बिशेशवर प्रसाद,4,pick up,600,2500 +188,Dumri,Small,18,4992,धनराज सिंह,2,Tempo,500,600 +188,Dumri,Small,18,4992,धनराज सिंह,5,ace,500,1500 +188,Dumri,Small,18,4992,धनराज सिंह,4,pick up,700,2500 +188,Dumri,Small,10,5025,रवि रंजन,2,Tempo,400,600 +188,Dumri,Small,10,5025,रवि रंजन,5,ace,400,1500 +188,Dumri,Small,10,5025,रवि रंजन,4,pick up,700,2500 \ No newline at end of file diff --git a/loop_ivr/utils/marketinfo/get_query.py b/loop_ivr/utils/marketinfo/get_query.py index 5e7ba1db6f..e515075fcc 100644 --- a/loop_ivr/utils/marketinfo/get_query.py +++ b/loop_ivr/utils/marketinfo/get_query.py @@ -2,8 +2,8 @@ from datetime import datetime, timedelta def query_for_rates(crop_list, mandi_list, date_range=3): - # today_date = datetime(2018, 03, 21) - today_date = datetime.now() + today_date = datetime(2018, 05, 21) + # today_date = datetime.now() query = query_for_transactions.format('(%s)'%(crop_list[0],) if len(crop_list) == 1 else crop_list, '(%s)'%(mandi_list[0],) if len(mandi_list) == 1 else mandi_list, tuple((today_date-timedelta(days=day)).strftime('%Y-%m-%d') for day in range(0,date_range))) From 153c8180a43e20ae1c4412a5f64d5175d23815b9 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Wed, 23 May 2018 17:03:49 +0530 Subject: [PATCH 05/16] changes for crop detail --- loop/mi_views.py | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/loop/mi_views.py b/loop/mi_views.py index deb37d2dca..28965b2041 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -18,8 +18,8 @@ def get_aggregator_mi_related_data(request): - apikey = request.GET['apikey'] - + request_data = request.META.get('HTTP_AUTHORIZATION', '') + username, apikey = request_data.split(':', 1) # Get User Id apikeyobj = ApiKey.objects.get(key=apikey) aggregator_id = [apikeyobj.user_id] @@ -72,33 +72,32 @@ def get_aggregator_mi_related_data(request): def get_crop_prices(request): testing = 'Hi, want crop Prices?' data = json.dumps({"data": testing}) - + cropobj = Crop.objects.values_list('id', flat=True) + cropobj = map(int, cropobj) # Prepare data - crop_list = (22, 6) - mandi_list = (4,) + crop_list = tuple(cropobj) + mandi_list = (134, 133, 152, 16, 150, 14, 5, 151, 188) query = get_query.query_for_rates(crop_list , mandi_list, date_range=3) result = run_query(query) dataframe = remove_crop_outliers(ct_data = result) - pricedetailobj = [] print 'crop mandi date Av_Rate STD PriceMax PriceMin delta' - for index, row in dataframe.iterrows(): - crop, mandi, date, Av_Rate, STD, PriceMax, PriceMin = row['Crop'], row['Market_Real'], row['Date'], row['Av_Ratemean'], row['STDmean'], row['Pricemax'], row['Pricemin'] - delta = PriceMax - PriceMin - print crop, mandi, date, Av_Rate, STD, PriceMax, PriceMin, delta - print type(date) - priceobj = PriceDetails(date=str(date), std=round(STD, 2), min_price=round(PriceMin, 2), max_price=round(PriceMax, 2),\ - delta=round(delta, 2), avg_price=round(Av_Rate, 2)) - pricedetailobj.append(priceobj.__dict__) - - res = [] - cropmandidata = CropMandiData(crop_id=6, mandi_id=4) - cropmandidata.price_details.append(pricedetailobj) + df = dataframe.groupby(['Crop', 'Market_Real']) - res.append(cropmandidata.__dict__) - + res = [] + for obj in df: + cropmandidata = CropMandiData(crop_id=obj[0][0], mandi_id=obj[0][1]) + print obj[0][0] + for index, row in obj[1].iterrows(): + crop, mandi, date, Av_Rate, STD, PriceMax, PriceMin = row['Crop'], row['Market_Real'], row['Date'], row['Av_Ratemean'], row['STDmean'], row['Pricemax'], row['Pricemin'] + delta = PriceMax - PriceMin + priceobj = PriceDetails(date=str(date), std=round(STD, 2), min_price=round(PriceMin, 2), max_price=round(PriceMax, 2),\ + delta=round(delta, 2), avg_price=round(Av_Rate, 2)) + cropmandidata.price_details.append(priceobj.__dict__) + res.append(cropmandidata.__dict__) + data = json.dumps(res) return HttpResponse(data) From d0a28630b824717e395717ac29e3e3b2c9cf57de Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Fri, 25 May 2018 10:31:32 +0530 Subject: [PATCH 06/16] cleaning Crop Price method --- loop/mi_views.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/loop/mi_views.py b/loop/mi_views.py index 28965b2041..e0f72da4d7 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -87,10 +87,9 @@ def get_crop_prices(request): df = dataframe.groupby(['Crop', 'Market_Real']) res = [] - for obj in df: - cropmandidata = CropMandiData(crop_id=obj[0][0], mandi_id=obj[0][1]) - print obj[0][0] - for index, row in obj[1].iterrows(): + for i, r in df: + cropmandidata = CropMandiData(crop_id=i[0], mandi_id= i[1]) + for index, row in r.iterrows(): crop, mandi, date, Av_Rate, STD, PriceMax, PriceMin = row['Crop'], row['Market_Real'], row['Date'], row['Av_Ratemean'], row['STDmean'], row['Pricemax'], row['Pricemin'] delta = PriceMax - PriceMin priceobj = PriceDetails(date=str(date), std=round(STD, 2), min_price=round(PriceMin, 2), max_price=round(PriceMax, 2),\ From 943fb7baa833eb4209668c05e9f83dd2ce30acfc Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Tue, 5 Jun 2018 12:45:37 +0530 Subject: [PATCH 07/16] authentication handling, params handling, URI changes --- loop/mi_views.py | 200 +++++++++++++++---------- loop/urls.py | 2 +- loop/utils/mi_pilot_var.py | 2 + loop_ivr/utils/marketinfo/get_query.py | 2 +- 4 files changed, 125 insertions(+), 81 deletions(-) create mode 100644 loop/utils/mi_pilot_var.py diff --git a/loop/mi_views.py b/loop/mi_views.py index e0f72da4d7..defea9aab6 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -13,97 +13,139 @@ import pandas as pd from tastypie.models import ApiKey from crop_price_structure import * +from loop.utils.mi_pilot_var import mandi_list, agg_list fileDir = os.path.dirname(os.path.realpath('__file__')) def get_aggregator_mi_related_data(request): - request_data = request.META.get('HTTP_AUTHORIZATION', '') - username, apikey = request_data.split(':', 1) - # Get User Id - apikeyobj = ApiKey.objects.get(key=apikey) - aggregator_id = [apikeyobj.user_id] - agg_list = [4846, 4844, 4992, 5025] - mandi_list = [134, 133, 152, 16, 150, 14, 5, 151, 188] - agg_list_requested = list(set(aggregator_id) & set(agg_list)) - - # Create Objects - agg_data_obj = LoopUser.objects.filter(user__in=agg_list_requested).values('user', 'name_en') - mandi_data_obj = Mandi.objects.filter(id__in=mandi_list).values('id', 'mandi_name_en') - gaddidar_data_obj = Gaddidar.objects.filter(mandi__id__in=mandi_list) - - # Read CSV file and filter for requested Aggreagator - filepath = os.path.join(fileDir, "/home/trionfo/Documents/dg/loop/utils/Transport Cost & Capacity Data - Sheet1.csv") - print filepath - transport_dataframe = pd.read_csv(filepath) - transport_dataframe = transport_dataframe[transport_dataframe['Aggregator Id']==agg_list_requested[0]] - - # Store Json Result - agg_res = [] - - # Mandi Detail - mandi_res = [] - for mandiobj in mandi_data_obj: - mandiobjdetail = MandiDetail(mandi_id=mandiobj['id'], mandi_name=mandiobj['mandi_name_en'], mandi_category='Chhoti Mandi',\ - mandi_distance='590') - gaddidar_obj= gaddidar_data_obj.filter(mandi__id=mandiobj['id']).values('id', 'gaddidar_name_en', 'gaddidar_phone') - for gaddidarobj in gaddidar_obj: - gaddidarobj = GaddidarDetail(gaddidar_id=gaddidarobj['id'], gaddidar_name=gaddidarobj['gaddidar_name_en'],\ - gaddidar_phone_no=gaddidarobj['gaddidar_phone']) - mandiobjdetail.gaddidar_list.append(gaddidarobj.__dict__) + agg_list_requested = is_authenticated(request) + if agg_list_requested : - transport_dataframe_obj = transport_dataframe[transport_dataframe['Mandi Id'] == mandiobj['id']] - for index, row in transport_dataframe_obj.iterrows(): - transportobj = TransportDetail(transport_id=row['Vehicle Id'], transport_name=row['Vehicle Name'], transport_cost=str(row['Cost']),\ - transport_capacity=row['Capacity']) - mandiobjdetail.transport_list.append(transportobj.__dict__) - - mandi_res.append(mandiobjdetail.__dict__) - - # Aggregator Details - for aggobj in agg_data_obj: - aggobj = AggregatorDetail(aggregator_id=aggobj['user'], aggregator_name=aggobj['name_en']) - aggobj.mandi_list = mandi_res - agg_res.append(aggobj.__dict__) - - data = json.dumps(agg_res) - return HttpResponse(data) - -def get_crop_prices(request): - testing = 'Hi, want crop Prices?' - data = json.dumps({"data": testing}) - cropobj = Crop.objects.values_list('id', flat=True) - cropobj = map(int, cropobj) - # Prepare data - crop_list = tuple(cropobj) - mandi_list = (134, 133, 152, 16, 150, 14, 5, 151, 188) - - query = get_query.query_for_rates(crop_list , mandi_list, date_range=3) + # Create Objects + agg_data_obj = LoopUser.objects.filter(user__in=agg_list_requested).values('user', 'name_en', 'preferred_language_id') + + # get Dict from Single Obj + agg_obj = agg_data_obj[0] + preferred_lang_suffix = '_en' if agg_obj['preferred_language_id'] == 2 else '' + + # Mandi Name in preferred lang of aggregator + mandi_name_label = 'mandi_name' + preferred_lang_suffix + mandi_data_obj = Mandi.objects.filter(id__in=mandi_list).values('id', mandi_name_label) + + #Gaddidar Name in preferred lang of aggregator + gaddidar_name_label = 'gaddidar_name' + preferred_lang_suffix + gaddidar_data_obj = Gaddidar.objects.filter(mandi__id__in=mandi_list) + + # Read CSV file and filter for requested Aggreagator + filepath = os.path.join(fileDir, "/home/trionfo/Documents/dg/loop/utils/Transport Cost & Capacity Data - Sheet1.csv") + print filepath + transport_dataframe = pd.read_csv(filepath) + transport_dataframe = transport_dataframe[transport_dataframe['Aggregator Id']==agg_list_requested[0]] + + # Store Json Result + agg_res = [] + + # Mandi Detail + mandi_res = [] + for mandiobj in mandi_data_obj: + mandiobjdetail = MandiDetail(mandi_id=mandiobj['id'], mandi_name=mandiobj[mandi_name_label], mandi_category='Chhoti Mandi',\ + mandi_distance='590') + gaddidar_obj= gaddidar_data_obj.filter(mandi__id=mandiobj['id']).values('id', gaddidar_name_label, 'gaddidar_phone') + for gaddidarobj in gaddidar_obj: + gaddidarobj = GaddidarDetail(gaddidar_id=gaddidarobj['id'], gaddidar_name=gaddidarobj[gaddidar_name_label],\ + gaddidar_phone_no=gaddidarobj['gaddidar_phone']) + mandiobjdetail.gaddidar_list.append(gaddidarobj.__dict__) + + transport_dataframe_obj = transport_dataframe[transport_dataframe['Mandi Id'] == mandiobj['id']] + for index, row in transport_dataframe_obj.iterrows(): + transportobj = TransportDetail(transport_id=row['Vehicle Id'], transport_name=row['Vehicle Name'], transport_cost=str(row['Cost']),\ + transport_capacity=row['Capacity']) + mandiobjdetail.distance = row['Mandi Distance'] + mandiobjdetail.transport_list.append(transportobj.__dict__) + + mandi_res.append(mandiobjdetail.__dict__) + + # Aggregator Details + for aggobj in agg_data_obj: + aggobj = AggregatorDetail(aggregator_id=aggobj['user'], aggregator_name=aggobj['name_en']) + aggobj.mandi_list = mandi_res + agg_res.append(aggobj.__dict__) + + data = json.dumps(agg_res) + return HttpResponse(data) + else : + return HttpResponse(json.dumps({})) - result = run_query(query) - dataframe = remove_crop_outliers(ct_data = result) - - print 'crop mandi date Av_Rate STD PriceMax PriceMin delta' - df = dataframe.groupby(['Crop', 'Market_Real']) - - res = [] - for i, r in df: - cropmandidata = CropMandiData(crop_id=i[0], mandi_id= i[1]) - for index, row in r.iterrows(): - crop, mandi, date, Av_Rate, STD, PriceMax, PriceMin = row['Crop'], row['Market_Real'], row['Date'], row['Av_Ratemean'], row['STDmean'], row['Pricemax'], row['Pricemin'] - delta = PriceMax - PriceMin - priceobj = PriceDetails(date=str(date), std=round(STD, 2), min_price=round(PriceMin, 2), max_price=round(PriceMax, 2),\ - delta=round(delta, 2), avg_price=round(Av_Rate, 2)) - cropmandidata.price_details.append(priceobj.__dict__) - res.append(cropmandidata.__dict__) - - data = json.dumps(res) - return HttpResponse(data) +def get_crop_prices(request): + agg_list_requested = is_authenticated(request) + + if agg_list_requested : + # Handling Request Params + kwargs = read_params(request) + cropobj = Crop.objects.values_list('id', flat=True) + cropobj = map(int, cropobj) + # Prepare data + crop_list = tuple(cropobj) + query = get_query.query_for_rates(crop_list , mandi_list, date_range=kwargs['day_limit']) + + result = run_query(query) + dataframe = remove_crop_outliers(ct_data = result) + + # Grouping Raw Data to Crop & Mandi wise. + df = dataframe.groupby(['Crop', 'Market_Real']) + + # Creation of JSON + res = [] + for i, r in df: + cropmandidata = CropMandiData(crop_id=i[0], mandi_id= i[1]) + for index, row in r.iterrows(): + crop, mandi, date, Av_Rate, STD, PriceMax, PriceMin = row['Crop'], row['Market_Real'], row['Date'], row['Av_Ratemean'], row['STDmean'], row['Pricemax'], row['Pricemin'] + delta = PriceMax - PriceMin + priceobj = PriceDetails(date=str(date), std=round(STD, 2), min_price=round(PriceMin, 2), max_price=round(PriceMax, 2),\ + delta=round(delta, 2), avg_price=round(Av_Rate, 2)) + cropmandidata.price_details.append(priceobj.__dict__) + res.append(cropmandidata.__dict__) + + data = json.dumps(res) + return HttpResponse(data) + else: + return HttpResponse(status=401) +def read_params(request): + kwargs = {} + + kwargs['day_limit'] = int(request.GET.get('day_limit', 3)) + kwargs['start_date'] = request.GET.get('start_date', None) + kwargs['end_date'] = request.GET.getlist('end_date', None) + kwargs['crop_id'] = tuple(request.GET.getlist('crop_id', None)) + kwargs['mandi_id'] = tuple(request.GET.getlist('mandi_id', None)) + kwargs['range'] = request.GET.get('range', None) + kwargs['absolute'] = request.GET.get('absolute', None) + + return kwargs + + +def is_authenticated(request): + + try: + # Mobile App Authentication + request_data = request.META.get('HTTP_AUTHORIZATION', '') + username, apikey = request_data.split(':', 1) + # Get User Id + apikeyobj = ApiKey.objects.get(key=apikey) + aggregator_id = [apikeyobj.user_id] + agg_list_requested = list(set(aggregator_id) & set(agg_list)) + print agg_list_requested + except Exception: + agg_list_requested = [] + + return agg_list_requested + # def getJSONObj(**kwargs): diff --git a/loop/urls.py b/loop/urls.py index e0b3982825..80417858e7 100644 --- a/loop/urls.py +++ b/loop/urls.py @@ -110,6 +110,6 @@ url(r'^get_partners_list/', get_partners_list), url(r'^admin/logout/?$', 'django.contrib.auth.views.logout', {'next_page': '/loop/admin/'}), url(r'^admin/', include(loop_admin.urls)), - url(r'^get_aggregator_mi_related_data', get_aggregator_mi_related_data), + url(r'^get_agg_mi_data', get_aggregator_mi_related_data), url(r'^get_crop_prices', get_crop_prices) ) diff --git a/loop/utils/mi_pilot_var.py b/loop/utils/mi_pilot_var.py new file mode 100644 index 0000000000..81c9f38825 --- /dev/null +++ b/loop/utils/mi_pilot_var.py @@ -0,0 +1,2 @@ +mandi_list = (134, 133, 152, 16, 150, 14, 5, 151, 188) +agg_list = (4846, 4844, 4992, 5025) \ No newline at end of file diff --git a/loop_ivr/utils/marketinfo/get_query.py b/loop_ivr/utils/marketinfo/get_query.py index e515075fcc..d428c01360 100644 --- a/loop_ivr/utils/marketinfo/get_query.py +++ b/loop_ivr/utils/marketinfo/get_query.py @@ -2,7 +2,7 @@ from datetime import datetime, timedelta def query_for_rates(crop_list, mandi_list, date_range=3): - today_date = datetime(2018, 05, 21) + today_date = datetime(2018, 05, 23) # today_date = datetime.now() query = query_for_transactions.format('(%s)'%(crop_list[0],) if len(crop_list) == 1 else crop_list, '(%s)'%(mandi_list[0],) if len(mandi_list) == 1 else mandi_list, tuple((today_date-timedelta(days=day)).strftime('%Y-%m-%d') for day in range(0,date_range))) From d6c014843fda79213f5c64b44dad106e51a9a014 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Wed, 6 Jun 2018 17:51:52 +0530 Subject: [PATCH 08/16] Adding Last updated date --- loop/crop_price_structure.py | 1 + loop/mi_views.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/loop/crop_price_structure.py b/loop/crop_price_structure.py index 5bccf8dee5..8b51ec7a2a 100644 --- a/loop/crop_price_structure.py +++ b/loop/crop_price_structure.py @@ -3,6 +3,7 @@ def __init__(self, **kwargs): self.crop_id = kwargs['crop_id'] self.mandi_id = kwargs['mandi_id'] self.price_details = [] + self.latest_price_date = None class PriceDetails: def __init__(self, **kwargs): diff --git a/loop/mi_views.py b/loop/mi_views.py index defea9aab6..ac5b3f1b5c 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -102,13 +102,17 @@ def get_crop_prices(request): # Creation of JSON res = [] for i, r in df: + # Assigning min date + latest_price_date = pd.Timestamp('2015-01-01') cropmandidata = CropMandiData(crop_id=i[0], mandi_id= i[1]) for index, row in r.iterrows(): crop, mandi, date, Av_Rate, STD, PriceMax, PriceMin = row['Crop'], row['Market_Real'], row['Date'], row['Av_Ratemean'], row['STDmean'], row['Pricemax'], row['Pricemin'] delta = PriceMax - PriceMin + latest_price_date = max(latest_price_date, date) priceobj = PriceDetails(date=str(date), std=round(STD, 2), min_price=round(PriceMin, 2), max_price=round(PriceMax, 2),\ delta=round(delta, 2), avg_price=round(Av_Rate, 2)) cropmandidata.price_details.append(priceobj.__dict__) + cropmandidata.latest_price_date = str(latest_price_date) res.append(cropmandidata.__dict__) data = json.dumps(res) From 5c543945d604d87ab66f66abee72ca8386e286a2 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Thu, 7 Jun 2018 10:35:28 +0530 Subject: [PATCH 09/16] caategory changes from litral to numbers --- loop/mi_views.py | 8 +- ...ransport Cost & Capacity Data - Sheet1.csv | 216 +++++++++--------- loop_ivr/utils/marketinfo/get_query.py | 2 +- 3 files changed, 115 insertions(+), 111 deletions(-) diff --git a/loop/mi_views.py b/loop/mi_views.py index ac5b3f1b5c..234c46a2b3 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -20,6 +20,7 @@ def get_aggregator_mi_related_data(request): agg_list_requested = is_authenticated(request) + if agg_list_requested : # Create Objects @@ -61,7 +62,9 @@ def get_aggregator_mi_related_data(request): for index, row in transport_dataframe_obj.iterrows(): transportobj = TransportDetail(transport_id=row['Vehicle Id'], transport_name=row['Vehicle Name'], transport_cost=str(row['Cost']),\ transport_capacity=row['Capacity']) - mandiobjdetail.distance = row['Mandi Distance'] + + mandiobjdetail.distance = row['Mandi Distance'] + mandiobjdetail.category = row['Mandi Category'] mandiobjdetail.transport_list.append(transportobj.__dict__) mandi_res.append(mandiobjdetail.__dict__) @@ -75,7 +78,7 @@ def get_aggregator_mi_related_data(request): data = json.dumps(agg_res) return HttpResponse(data) else : - return HttpResponse(json.dumps({})) + return HttpResponse(status=401) def get_crop_prices(request): @@ -143,6 +146,7 @@ def is_authenticated(request): # Get User Id apikeyobj = ApiKey.objects.get(key=apikey) aggregator_id = [apikeyobj.user_id] + print aggregator_id agg_list_requested = list(set(aggregator_id) & set(agg_list)) print agg_list_requested except Exception: diff --git a/loop/utils/Transport Cost & Capacity Data - Sheet1.csv b/loop/utils/Transport Cost & Capacity Data - Sheet1.csv index 78b73b6854..a4c203ae70 100644 --- a/loop/utils/Transport Cost & Capacity Data - Sheet1.csv +++ b/loop/utils/Transport Cost & Capacity Data - Sheet1.csv @@ -1,109 +1,109 @@ Mandi Id,Mandi Name,Mandi Category,Mandi Distance,Aggregator Id,Aggregator Name,Vehicle Id,Vehicle Name,Cost,Capacity -134,Darhara,Medium,7,4846,सतेन्दर कुमार,2,Tempo,300,600 -134,Darhara,Medium,7,4846,सतेन्दर कुमार,5,ace,300,1500 -134,Darhara,Medium,7,4846,सतेन्दर कुमार,4,pick up,500,2500 -134,Darhara,Medium,8,4844,बिशेशवर प्रसाद,2,Tempo,400,600 -134,Darhara,Medium,8,4844,बिशेशवर प्रसाद,5,ace,400,1500 -134,Darhara,Medium,8,4844,बिशेशवर प्रसाद,4,pick up,600,2500 -134,Darhara,Medium,20,4992,धनराज सिंह,2,Tempo,600,600 -134,Darhara,Medium,20,4992,धनराज सिंह,5,ace,600,1500 -134,Darhara,Medium,20,4992,धनराज सिंह,4,pick up,800,2500 -134,Darhara,Medium,10,5025,रवि रंजन,2,Tempo,400,600 -134,Darhara,Medium,10,5025,रवि रंजन,5,ace,400,1500 -134,Darhara,Medium,10,5025,रवि रंजन,4,pick up,600,2500 -133,Buxar,Medium,31,4846,सतेन्दर कुमार,2,Tempo,600,600 -133,Buxar,Medium,31,4846,सतेन्दर कुमार,5,ace,700,1500 -133,Buxar,Medium,31,4846,सतेन्दर कुमार,4,pick up,1200,2500 -133,Buxar,Medium,17,4844,बिशेशवर प्रसाद,2,Tempo,500,600 -133,Buxar,Medium,17,4844,बिशेशवर प्रसाद,5,ace,500,1500 -133,Buxar,Medium,17,4844,बिशेशवर प्रसाद,4,pick up,750,2500 -133,Buxar,Medium,5,4992,धनराज सिंह,2,Tempo,300,600 -133,Buxar,Medium,5,4992,धनराज सिंह,5,ace,300,1500 -133,Buxar,Medium,5,4992,धनराज सिंह,4,pick up,500,2500 -133,Buxar,Medium,17,5025,रवि रंजन,2,Tempo,500,600 -133,Buxar,Medium,17,5025,रवि रंजन,5,ace,500,1500 -133,Buxar,Medium,17,5025,रवि रंजन,4,pick up,800,2500 -152,Bramhpur,Medium,15,4846,सतेन्दर कुमार,2,Tempo,500,600 -152,Bramhpur,Medium,15,4846,सतेन्दर कुमार,5,ace,500,1500 -152,Bramhpur,Medium,15,4846,सतेन्दर कुमार,4,pick up,700,2500 -152,Bramhpur,Medium,17,4844,बिशेशवर प्रसाद,2,Tempo,500,600 -152,Bramhpur,Medium,17,4844,बिशेशवर प्रसाद,5,ace,500,1500 -152,Bramhpur,Medium,17,4844,बिशेशवर प्रसाद,4,pick up,750,2500 -152,Bramhpur,Medium,30,4992,धनराज सिंह,2,Tempo,600,600 -152,Bramhpur,Medium,30,4992,धनराज सिंह,5,ace,700,1500 -152,Bramhpur,Medium,30,4992,धनराज सिंह,4,pick up,1200,2500 -152,Bramhpur,Medium,20,5025,रवि रंजन,2,Tempo,600,600 -152,Bramhpur,Medium,20,5025,रवि रंजन,5,ace,600,1500 -152,Bramhpur,Medium,20,5025,रवि रंजन,4,pick up,1100,2500 -16,Arra,Big,65,4846,सतेन्दर कुमार,2,Tempo,900,600 -16,Arra,Big,65,4846,सतेन्दर कुमार,5,ace,900,1500 -16,Arra,Big,65,4846,सतेन्दर कुमार,4,pick up,1500,2500 -16,Arra,Big,65,4844,बिशेशवर प्रसाद,2,Tempo,800,600 -16,Arra,Big,65,4844,बिशेशवर प्रसाद,5,ace,900,1500 -16,Arra,Big,65,4844,बिशेशवर प्रसाद,4,pick up,1500,2500 -16,Arra,Big,80,4992,धनराज सिंह,2,Tempo,1500,600 -16,Arra,Big,80,4992,धनराज सिंह,5,ace,1500,1500 -16,Arra,Big,80,4992,धनराज सिंह,4,pick up,2500,2500 -16,Arra,Big,70,5025,रवि रंजन,2,Tempo,800,600 -16,Arra,Big,70,5025,रवि रंजन,5,ace,900,1500 -16,Arra,Big,70,5025,रवि रंजन,4,pick up,2000,2500 -150,Nayabhojpur,Medium,15,4846,सतेन्दर कुमार,2,Tempo,500,600 -150,Nayabhojpur,Medium,15,4846,सतेन्दर कुमार,5,ace,500,1500 -150,Nayabhojpur,Medium,15,4846,सतेन्दर कुमार,4,pick up,700,2500 -150,Nayabhojpur,Medium,4,4844,बिशेशवर प्रसाद,2,Tempo,350,600 -150,Nayabhojpur,Medium,4,4844,बिशेशवर प्रसाद,5,ace,350,1500 -150,Nayabhojpur,Medium,4,4844,बिशेशवर प्रसाद,4,pick up,500,2500 -150,Nayabhojpur,Medium,12,4992,धनराज सिंह,2,Tempo,500,600 -150,Nayabhojpur,Medium,12,4992,धनराज सिंह,5,ace,500,1500 -150,Nayabhojpur,Medium,12,4992,धनराज सिंह,4,pick up,700,2500 -150,Nayabhojpur,Medium,3,5025,रवि रंजन,2,Tempo,350,600 -150,Nayabhojpur,Medium,3,5025,रवि रंजन,5,ace,350,1500 -150,Nayabhojpur,Medium,3,5025,रवि रंजन,4,pick up,500,2500 -14,Patna,Big,116,4846,सतेन्दर कुमार,2,Tempo,NA,600 -14,Patna,Big,116,4846,सतेन्दर कुमार,5,ace,2000,1500 -14,Patna,Big,116,4846,सतेन्दर कुमार,4,pick up,3000,2500 -14,Patna,Big,130,4844,बिशेशवर प्रसाद,2,Tempo,NA,600 -14,Patna,Big,130,4844,बिशेशवर प्रसाद,5,ace,1500,1500 -14,Patna,Big,130,4844,बिशेशवर प्रसाद,4,pick up,3000,2500 -14,Patna,Big,150,4992,धनराज सिंह,2,Tempo,NA,600 -14,Patna,Big,150,4992,धनराज सिंह,5,ace,NA,1500 -14,Patna,Big,150,4992,धनराज सिंह,4,pick up,4000,2500 -14,Patna,Big,140,5025,रवि रंजन,2,Tempo,NA,600 -14,Patna,Big,140,5025,रवि रंजन,5,ace,1500,1500 -14,Patna,Big,140,5025,रवि रंजन,4,pick up,3500,2500 -5,Chapra,Big,65,4846,सतेन्दर कुमार,2,Tempo,1200,600 -5,Chapra,Big,65,4846,सतेन्दर कुमार,5,ace,1200,1500 -5,Chapra,Big,65,4846,सतेन्दर कुमार,4,pick up,1700,2500 -5,Chapra,Big,75,4844,बिशेशवर प्रसाद,2,Tempo,1200,600 -5,Chapra,Big,75,4844,बिशेशवर प्रसाद,5,ace,1200,1500 -5,Chapra,Big,75,4844,बिशेशवर प्रसाद,4,pick up,2000,2500 -5,Chapra,Big,90,4992,धनराज सिंह,2,Tempo,1300,600 -5,Chapra,Big,90,4992,धनराज सिंह,5,ace,1400,1500 -5,Chapra,Big,90,4992,धनराज सिंह,4,pick up,2500,2500 -5,Chapra,Big,80,5025,रवि रंजन,2,Tempo,1200,600 -5,Chapra,Big,80,5025,रवि रंजन,5,ace,1200,1500 -5,Chapra,Big,80,5025,रवि रंजन,4,pick up,2000,2500 -151,Dumaraon,Medium,65,4846,सतेन्दर कुमार,2,Tempo,500,600 -151,Dumaraon,Medium,65,4846,सतेन्दर कुमार,5,ace,500,1500 -151,Dumaraon,Medium,65,4846,सतेन्दर कुमार,4,pick up,700,2500 -151,Dumaraon,Medium,75,4844,बिशेशवर प्रसाद,2,Tempo,350,600 -151,Dumaraon,Medium,75,4844,बिशेशवर प्रसाद,5,ace,350,1500 -151,Dumaraon,Medium,75,4844,बिशेशवर प्रसाद,4,pick up,600,2500 -151,Dumaraon,Medium,90,4992,धनराज सिंह,2,Tempo,500,600 -151,Dumaraon,Medium,90,4992,धनराज सिंह,5,ace,500,1500 -151,Dumaraon,Medium,90,4992,धनराज सिंह,4,pick up,700,2500 -151,Dumaraon,Medium,80,5025,रवि रंजन,2,Tempo,400,600 -151,Dumaraon,Medium,80,5025,रवि रंजन,5,ace,400,1500 -151,Dumaraon,Medium,80,5025,रवि रंजन,4,pick up,700,2500 -188,Dumri,Small,21,4846,सतेन्दर कुमार,2,Tempo,700,600 -188,Dumri,Small,21,4846,सतेन्दर कुमार,5,ace,700,1500 -188,Dumri,Small,21,4846,सतेन्दर कुमार,4,pick up,1000,2500 -188,Dumri,Small,6,4844,बिशेशवर प्रसाद,2,Tempo,350,600 -188,Dumri,Small,6,4844,बिशेशवर प्रसाद,5,ace,400,1500 -188,Dumri,Small,6,4844,बिशेशवर प्रसाद,4,pick up,600,2500 -188,Dumri,Small,18,4992,धनराज सिंह,2,Tempo,500,600 -188,Dumri,Small,18,4992,धनराज सिंह,5,ace,500,1500 -188,Dumri,Small,18,4992,धनराज सिंह,4,pick up,700,2500 -188,Dumri,Small,10,5025,रवि रंजन,2,Tempo,400,600 -188,Dumri,Small,10,5025,रवि रंजन,5,ace,400,1500 -188,Dumri,Small,10,5025,रवि रंजन,4,pick up,700,2500 \ No newline at end of file +134,Darhara,2,7,4846,सतेन्दर कुमार,2,Tempo,300,600 +134,Darhara,2,7,4846,सतेन्दर कुमार,5,ace,300,1500 +134,Darhara,2,7,4846,सतेन्दर कुमार,4,pick up,500,2500 +134,Darhara,2,8,4844,बिशेशवर प्रसाद,2,Tempo,400,600 +134,Darhara,2,8,4844,बिशेशवर प्रसाद,5,ace,400,1500 +134,Darhara,2,8,4844,बिशेशवर प्रसाद,4,pick up,600,2500 +134,Darhara,2,20,4992,धनराज सिंह,2,Tempo,600,600 +134,Darhara,2,20,4992,धनराज सिंह,5,ace,600,1500 +134,Darhara,2,20,4992,धनराज सिंह,4,pick up,800,2500 +134,Darhara,2,10,5025,रवि रंजन,2,Tempo,400,600 +134,Darhara,2,10,5025,रवि रंजन,5,ace,400,1500 +134,Darhara,2,10,5025,रवि रंजन,4,pick up,600,2500 +133,Buxar,2,31,4846,सतेन्दर कुमार,2,Tempo,600,600 +133,Buxar,2,31,4846,सतेन्दर कुमार,5,ace,700,1500 +133,Buxar,2,31,4846,सतेन्दर कुमार,4,pick up,1200,2500 +133,Buxar,2,17,4844,बिशेशवर प्रसाद,2,Tempo,500,600 +133,Buxar,2,17,4844,बिशेशवर प्रसाद,5,ace,500,1500 +133,Buxar,2,17,4844,बिशेशवर प्रसाद,4,pick up,750,2500 +133,Buxar,2,5,4992,धनराज सिंह,2,Tempo,300,600 +133,Buxar,2,5,4992,धनराज सिंह,5,ace,300,1500 +133,Buxar,2,5,4992,धनराज सिंह,4,pick up,500,2500 +133,Buxar,2,17,5025,रवि रंजन,2,Tempo,500,600 +133,Buxar,2,17,5025,रवि रंजन,5,ace,500,1500 +133,Buxar,2,17,5025,रवि रंजन,4,pick up,800,2500 +152,Bramhpur,2,15,4846,सतेन्दर कुमार,2,Tempo,500,600 +152,Bramhpur,2,15,4846,सतेन्दर कुमार,5,ace,500,1500 +152,Bramhpur,2,15,4846,सतेन्दर कुमार,4,pick up,700,2500 +152,Bramhpur,2,17,4844,बिशेशवर प्रसाद,2,Tempo,500,600 +152,Bramhpur,2,17,4844,बिशेशवर प्रसाद,5,ace,500,1500 +152,Bramhpur,2,17,4844,बिशेशवर प्रसाद,4,pick up,750,2500 +152,Bramhpur,2,30,4992,धनराज सिंह,2,Tempo,600,600 +152,Bramhpur,2,30,4992,धनराज सिंह,5,ace,700,1500 +152,Bramhpur,2,30,4992,धनराज सिंह,4,pick up,1200,2500 +152,Bramhpur,2,20,5025,रवि रंजन,2,Tempo,600,600 +152,Bramhpur,2,20,5025,रवि रंजन,5,ace,600,1500 +152,Bramhpur,2,20,5025,रवि रंजन,4,pick up,1100,2500 +16,Arra,3,65,4846,सतेन्दर कुमार,2,Tempo,900,600 +16,Arra,3,65,4846,सतेन्दर कुमार,5,ace,900,1500 +16,Arra,3,65,4846,सतेन्दर कुमार,4,pick up,1500,2500 +16,Arra,3,65,4844,बिशेशवर प्रसाद,2,Tempo,800,600 +16,Arra,3,65,4844,बिशेशवर प्रसाद,5,ace,900,1500 +16,Arra,3,65,4844,बिशेशवर प्रसाद,4,pick up,1500,2500 +16,Arra,3,80,4992,धनराज सिंह,2,Tempo,1500,600 +16,Arra,3,80,4992,धनराज सिंह,5,ace,1500,1500 +16,Arra,3,80,4992,धनराज सिंह,4,pick up,2500,2500 +16,Arra,3,70,5025,रवि रंजन,2,Tempo,800,600 +16,Arra,3,70,5025,रवि रंजन,5,ace,900,1500 +16,Arra,3,70,5025,रवि रंजन,4,pick up,2000,2500 +150,Nayabhojpur,2,15,4846,सतेन्दर कुमार,2,Tempo,500,600 +150,Nayabhojpur,2,15,4846,सतेन्दर कुमार,5,ace,500,1500 +150,Nayabhojpur,2,15,4846,सतेन्दर कुमार,4,pick up,700,2500 +150,Nayabhojpur,2,4,4844,बिशेशवर प्रसाद,2,Tempo,350,600 +150,Nayabhojpur,2,4,4844,बिशेशवर प्रसाद,5,ace,350,1500 +150,Nayabhojpur,2,4,4844,बिशेशवर प्रसाद,4,pick up,500,2500 +150,Nayabhojpur,2,12,4992,धनराज सिंह,2,Tempo,500,600 +150,Nayabhojpur,2,12,4992,धनराज सिंह,5,ace,500,1500 +150,Nayabhojpur,2,12,4992,धनराज सिंह,4,pick up,700,2500 +150,Nayabhojpur,2,3,5025,रवि रंजन,2,Tempo,350,600 +150,Nayabhojpur,2,3,5025,रवि रंजन,5,ace,350,1500 +150,Nayabhojpur,2,3,5025,रवि रंजन,4,pick up,500,2500 +14,Patna,3,116,4846,सतेन्दर कुमार,2,Tempo,NA,600 +14,Patna,3,116,4846,सतेन्दर कुमार,5,ace,2000,1500 +14,Patna,3,116,4846,सतेन्दर कुमार,4,pick up,3000,2500 +14,Patna,3,130,4844,बिशेशवर प्रसाद,2,Tempo,NA,600 +14,Patna,3,130,4844,बिशेशवर प्रसाद,5,ace,1500,1500 +14,Patna,3,130,4844,बिशेशवर प्रसाद,4,pick up,3000,2500 +14,Patna,3,150,4992,धनराज सिंह,2,Tempo,NA,600 +14,Patna,3,150,4992,धनराज सिंह,5,ace,NA,1500 +14,Patna,3,150,4992,धनराज सिंह,4,pick up,4000,2500 +14,Patna,3,140,5025,रवि रंजन,2,Tempo,NA,600 +14,Patna,3,140,5025,रवि रंजन,5,ace,1500,1500 +14,Patna,3,140,5025,रवि रंजन,4,pick up,3500,2500 +5,Chapra,3,65,4846,सतेन्दर कुमार,2,Tempo,1200,600 +5,Chapra,3,65,4846,सतेन्दर कुमार,5,ace,1200,1500 +5,Chapra,3,65,4846,सतेन्दर कुमार,4,pick up,1700,2500 +5,Chapra,3,75,4844,बिशेशवर प्रसाद,2,Tempo,1200,600 +5,Chapra,3,75,4844,बिशेशवर प्रसाद,5,ace,1200,1500 +5,Chapra,3,75,4844,बिशेशवर प्रसाद,4,pick up,2000,2500 +5,Chapra,3,90,4992,धनराज सिंह,2,Tempo,1300,600 +5,Chapra,3,90,4992,धनराज सिंह,5,ace,1400,1500 +5,Chapra,3,90,4992,धनराज सिंह,4,pick up,2500,2500 +5,Chapra,3,80,5025,रवि रंजन,2,Tempo,1200,600 +5,Chapra,3,80,5025,रवि रंजन,5,ace,1200,1500 +5,Chapra,3,80,5025,रवि रंजन,4,pick up,2000,2500 +151,Dumaraon,2,65,4846,सतेन्दर कुमार,2,Tempo,500,600 +151,Dumaraon,2,65,4846,सतेन्दर कुमार,5,ace,500,1500 +151,Dumaraon,2,65,4846,सतेन्दर कुमार,4,pick up,700,2500 +151,Dumaraon,2,75,4844,बिशेशवर प्रसाद,2,Tempo,350,600 +151,Dumaraon,2,75,4844,बिशेशवर प्रसाद,5,ace,350,1500 +151,Dumaraon,2,75,4844,बिशेशवर प्रसाद,4,pick up,600,2500 +151,Dumaraon,2,90,4992,धनराज सिंह,2,Tempo,500,600 +151,Dumaraon,2,90,4992,धनराज सिंह,5,ace,500,1500 +151,Dumaraon,2,90,4992,धनराज सिंह,4,pick up,700,2500 +151,Dumaraon,2,80,5025,रवि रंजन,2,Tempo,400,600 +151,Dumaraon,2,80,5025,रवि रंजन,5,ace,400,1500 +151,Dumaraon,2,80,5025,रवि रंजन,4,pick up,700,2500 +188,Dumri,1,21,4846,सतेन्दर कुमार,2,Tempo,700,600 +188,Dumri,1,21,4846,सतेन्दर कुमार,5,ace,700,1500 +188,Dumri,1,21,4846,सतेन्दर कुमार,4,pick up,1000,2500 +188,Dumri,1,6,4844,बिशेशवर प्रसाद,2,Tempo,350,600 +188,Dumri,1,6,4844,बिशेशवर प्रसाद,5,ace,400,1500 +188,Dumri,1,6,4844,बिशेशवर प्रसाद,4,pick up,600,2500 +188,Dumri,1,18,4992,धनराज सिंह,2,Tempo,500,600 +188,Dumri,1,18,4992,धनराज सिंह,5,ace,500,1500 +188,Dumri,1,18,4992,धनराज सिंह,4,pick up,700,2500 +188,Dumri,1,10,5025,रवि रंजन,2,Tempo,400,600 +188,Dumri,1,10,5025,रवि रंजन,5,ace,400,1500 +188,Dumri,1,10,5025,रवि रंजन,4,pick up,700,2500 \ No newline at end of file diff --git a/loop_ivr/utils/marketinfo/get_query.py b/loop_ivr/utils/marketinfo/get_query.py index d428c01360..baed2e9d3f 100644 --- a/loop_ivr/utils/marketinfo/get_query.py +++ b/loop_ivr/utils/marketinfo/get_query.py @@ -2,7 +2,7 @@ from datetime import datetime, timedelta def query_for_rates(crop_list, mandi_list, date_range=3): - today_date = datetime(2018, 05, 23) + today_date = datetime(2018, 05, 22) # today_date = datetime.now() query = query_for_transactions.format('(%s)'%(crop_list[0],) if len(crop_list) == 1 else crop_list, '(%s)'%(mandi_list[0],) if len(mandi_list) == 1 else mandi_list, tuple((today_date-timedelta(days=day)).strftime('%Y-%m-%d') for day in range(0,date_range))) From 4f9cae90825b2ee298e31cd58395c42361cc52d9 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Fri, 8 Jun 2018 12:13:50 +0530 Subject: [PATCH 10/16] code reviewe changes done. --- loop/mi_views.py | 43 ++------------------------ loop/utils/mi_pilot_var.py | 3 +- loop_ivr/utils/marketinfo/get_query.py | 4 +-- 3 files changed, 7 insertions(+), 43 deletions(-) diff --git a/loop/mi_views.py b/loop/mi_views.py index 234c46a2b3..7111bdefeb 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -13,14 +13,14 @@ import pandas as pd from tastypie.models import ApiKey from crop_price_structure import * -from loop.utils.mi_pilot_var import mandi_list, agg_list +from loop.utils.mi_pilot_var import mandi_list, agg_list, transport_detail_filepath fileDir = os.path.dirname(os.path.realpath('__file__')) def get_aggregator_mi_related_data(request): agg_list_requested = is_authenticated(request) - + if agg_list_requested : # Create Objects @@ -39,8 +39,7 @@ def get_aggregator_mi_related_data(request): gaddidar_data_obj = Gaddidar.objects.filter(mandi__id__in=mandi_list) # Read CSV file and filter for requested Aggreagator - filepath = os.path.join(fileDir, "/home/trionfo/Documents/dg/loop/utils/Transport Cost & Capacity Data - Sheet1.csv") - print filepath + filepath = os.path.join(fileDir, transport_detail_filepath) transport_dataframe = pd.read_csv(filepath) transport_dataframe = transport_dataframe[transport_dataframe['Aggregator Id']==agg_list_requested[0]] @@ -146,44 +145,8 @@ def is_authenticated(request): # Get User Id apikeyobj = ApiKey.objects.get(key=apikey) aggregator_id = [apikeyobj.user_id] - print aggregator_id agg_list_requested = list(set(aggregator_id) & set(agg_list)) - print agg_list_requested except Exception: agg_list_requested = [] return agg_list_requested - - -# def getJSONObj(**kwargs): - -# aggobj = AggregatorDetail(aggregator_id=1, aggregator_name='Hello') -# mandiobj = MandiDetail(mandi_id=1, mandi_name='Samastipur', mandi_category='Chhoti Mandi',\ -# mandi_distance='590') -# transportobj = TransportDetail(transport_id=1, transport_name='Jugaad', transport_cost=123,\ -# transport_capacity=1209) -# gaddidarobj = GaddidarDetail(gaddidar_id=1, gaddidar_name='Gajodhar') - -# aggobj.mandi_list = [mandiobj.__dict__, mandiobj.__dict__] - -# mandiobj.transport_list = [transportobj.__dict__, ] -# mandiobj.gaddidar_list = [gaddidarobj.__dict__, ] - -# return aggobj.__dict__ - - -# def get_init_kwargs(): -# kwargs = {} -# kwargs['aggregator_id'] = '' -# kwargs['aggregator_name'] = '' -# kwargs['mandi_id'] = '' -# kwargs['mandi_name'] = '' -# kwargs['mandi_category'] = '' -# kwargs['mandi_distance'] = '' -# kwargs['transport_id'] = '' -# kwargs['transport_name'] = '' -# kwargs['transport_cost'] = '' -# kwargs['transport_capacity'] = '' -# kwargs['gaddidar_id'] = '' -# kwargs['gaddidar_name'] = '' -# return kwargs diff --git a/loop/utils/mi_pilot_var.py b/loop/utils/mi_pilot_var.py index 81c9f38825..055f6d8818 100644 --- a/loop/utils/mi_pilot_var.py +++ b/loop/utils/mi_pilot_var.py @@ -1,2 +1,3 @@ mandi_list = (134, 133, 152, 16, 150, 14, 5, 151, 188) -agg_list = (4846, 4844, 4992, 5025) \ No newline at end of file +agg_list = (4846, 4844, 4992, 5025) +transport_detail_filepath = "/home/trionfo/Documents/dg/loop/utils/Transport Cost & Capacity Data - Sheet1.csv" \ No newline at end of file diff --git a/loop_ivr/utils/marketinfo/get_query.py b/loop_ivr/utils/marketinfo/get_query.py index baed2e9d3f..c0aa891801 100644 --- a/loop_ivr/utils/marketinfo/get_query.py +++ b/loop_ivr/utils/marketinfo/get_query.py @@ -2,8 +2,8 @@ from datetime import datetime, timedelta def query_for_rates(crop_list, mandi_list, date_range=3): - today_date = datetime(2018, 05, 22) - # today_date = datetime.now() + # today_date = datetime(2018, 05, 22) + today_date = datetime.now() query = query_for_transactions.format('(%s)'%(crop_list[0],) if len(crop_list) == 1 else crop_list, '(%s)'%(mandi_list[0],) if len(mandi_list) == 1 else mandi_list, tuple((today_date-timedelta(days=day)).strftime('%Y-%m-%d') for day in range(0,date_range))) From a26eec6cf3b334c6be47c4e477b382ccf52f67f6 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Fri, 8 Jun 2018 12:48:36 +0530 Subject: [PATCH 11/16] final changes done --- loop/mi_views.py | 11 ++++++----- loop/utils/mi_pilot_var.py | 3 ++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/loop/mi_views.py b/loop/mi_views.py index 7111bdefeb..6073c2ac00 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -2,16 +2,17 @@ import json import requests +import pandas as pd + from django.http import HttpResponse from loop_ivr.outliers.removal import remove_crop_outliers from loop_ivr.helper_function import run_query from loop_ivr.utils.marketinfo import get_query - -from mi_data_structure import * from loop.models import * -import pandas as pd from tastypie.models import ApiKey + +from mi_data_structure import * from crop_price_structure import * from loop.utils.mi_pilot_var import mandi_list, agg_list, transport_detail_filepath @@ -20,7 +21,7 @@ def get_aggregator_mi_related_data(request): agg_list_requested = is_authenticated(request) - + if agg_list_requested : # Create Objects @@ -39,7 +40,7 @@ def get_aggregator_mi_related_data(request): gaddidar_data_obj = Gaddidar.objects.filter(mandi__id__in=mandi_list) # Read CSV file and filter for requested Aggreagator - filepath = os.path.join(fileDir, transport_detail_filepath) + filepath = fileDir + transport_detail_filepath transport_dataframe = pd.read_csv(filepath) transport_dataframe = transport_dataframe[transport_dataframe['Aggregator Id']==agg_list_requested[0]] diff --git a/loop/utils/mi_pilot_var.py b/loop/utils/mi_pilot_var.py index 055f6d8818..84f450a7ed 100644 --- a/loop/utils/mi_pilot_var.py +++ b/loop/utils/mi_pilot_var.py @@ -1,3 +1,4 @@ mandi_list = (134, 133, 152, 16, 150, 14, 5, 151, 188) agg_list = (4846, 4844, 4992, 5025) -transport_detail_filepath = "/home/trionfo/Documents/dg/loop/utils/Transport Cost & Capacity Data - Sheet1.csv" \ No newline at end of file + +transport_detail_filepath = "/loop/utils/Transport Cost & Capacity Data - Sheet1.csv" \ No newline at end of file From 26d9c11590bd81aa8e80203a4e78bf001b413ed9 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Fri, 8 Jun 2018 12:54:34 +0530 Subject: [PATCH 12/16] changes done as per code review --- loop/mi_views.py | 4 ++-- loop/urls.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/loop/mi_views.py b/loop/mi_views.py index 6073c2ac00..bcb5fb3ea8 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -21,7 +21,7 @@ def get_aggregator_mi_related_data(request): agg_list_requested = is_authenticated(request) - + if agg_list_requested : # Create Objects @@ -128,7 +128,7 @@ def read_params(request): kwargs['day_limit'] = int(request.GET.get('day_limit', 3)) kwargs['start_date'] = request.GET.get('start_date', None) - kwargs['end_date'] = request.GET.getlist('end_date', None) + kwargs['end_date'] = request.GET.get('end_date', None) kwargs['crop_id'] = tuple(request.GET.getlist('crop_id', None)) kwargs['mandi_id'] = tuple(request.GET.getlist('mandi_id', None)) kwargs['range'] = request.GET.get('range', None) diff --git a/loop/urls.py b/loop/urls.py index 80417858e7..e93aecac34 100644 --- a/loop/urls.py +++ b/loop/urls.py @@ -110,6 +110,6 @@ url(r'^get_partners_list/', get_partners_list), url(r'^admin/logout/?$', 'django.contrib.auth.views.logout', {'next_page': '/loop/admin/'}), url(r'^admin/', include(loop_admin.urls)), - url(r'^get_agg_mi_data', get_aggregator_mi_related_data), - url(r'^get_crop_prices', get_crop_prices) + url(r'^get_agg_mi_data/', get_aggregator_mi_related_data), + url(r'^get_crop_prices/', get_crop_prices) ) From a6be6d23638933dfbab594e7392886272efc24cc Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Fri, 8 Jun 2018 15:08:43 +0530 Subject: [PATCH 13/16] path changes --- loop/mi_views.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/loop/mi_views.py b/loop/mi_views.py index bcb5fb3ea8..0842c36a28 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -1,4 +1,4 @@ -import os +import os, sys import json import requests @@ -16,12 +16,13 @@ from crop_price_structure import * from loop.utils.mi_pilot_var import mandi_list, agg_list, transport_detail_filepath -fileDir = os.path.dirname(os.path.realpath('__file__')) +fileDir = os.path.dirname(os.path.abspath('__file__')) def get_aggregator_mi_related_data(request): - - agg_list_requested = is_authenticated(request) + agg_list_requested = is_authenticated(request) + agg_list_requested = [4846] + if agg_list_requested : # Create Objects From f141e2fe916743b91f58bd5c0ea23370fa8dd7c1 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Fri, 8 Jun 2018 15:54:29 +0530 Subject: [PATCH 14/16] path testing --- loop/mi_views.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/loop/mi_views.py b/loop/mi_views.py index 0842c36a28..afd4ceb425 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -15,14 +15,12 @@ from mi_data_structure import * from crop_price_structure import * from loop.utils.mi_pilot_var import mandi_list, agg_list, transport_detail_filepath - -fileDir = os.path.dirname(os.path.abspath('__file__')) +from dg.base_settings import PROJECT_PATH def get_aggregator_mi_related_data(request): agg_list_requested = is_authenticated(request) - agg_list_requested = [4846] - + if agg_list_requested : # Create Objects @@ -41,7 +39,7 @@ def get_aggregator_mi_related_data(request): gaddidar_data_obj = Gaddidar.objects.filter(mandi__id__in=mandi_list) # Read CSV file and filter for requested Aggreagator - filepath = fileDir + transport_detail_filepath + filepath = PROJECT_PATH + transport_detail_filepath transport_dataframe = pd.read_csv(filepath) transport_dataframe = transport_dataframe[transport_dataframe['Aggregator Id']==agg_list_requested[0]] From 4cf1e45acbb7e432120432372df6d63acc6ab0d4 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Fri, 8 Jun 2018 16:03:55 +0530 Subject: [PATCH 15/16] changes path to PROJECT PATH --- loop/mi_views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loop/mi_views.py b/loop/mi_views.py index afd4ceb425..733c39ac30 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -39,7 +39,7 @@ def get_aggregator_mi_related_data(request): gaddidar_data_obj = Gaddidar.objects.filter(mandi__id__in=mandi_list) # Read CSV file and filter for requested Aggreagator - filepath = PROJECT_PATH + transport_detail_filepath + filepath = os.path.join(PROJECT_PATH, '..', transport_detail_filepath) transport_dataframe = pd.read_csv(filepath) transport_dataframe = transport_dataframe[transport_dataframe['Aggregator Id']==agg_list_requested[0]] From df924941f3f08a813ab5f370fc1449c43ef04ce4 Mon Sep 17 00:00:00 2001 From: sujit22993 Date: Fri, 8 Jun 2018 16:13:59 +0530 Subject: [PATCH 16/16] Changed path directory from static to generic --- loop/mi_views.py | 5 +++-- loop/utils/mi_pilot_var.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/loop/mi_views.py b/loop/mi_views.py index 733c39ac30..389ef4e81c 100644 --- a/loop/mi_views.py +++ b/loop/mi_views.py @@ -20,7 +20,7 @@ def get_aggregator_mi_related_data(request): agg_list_requested = is_authenticated(request) - + if agg_list_requested : # Create Objects @@ -39,8 +39,9 @@ def get_aggregator_mi_related_data(request): gaddidar_data_obj = Gaddidar.objects.filter(mandi__id__in=mandi_list) # Read CSV file and filter for requested Aggreagator - filepath = os.path.join(PROJECT_PATH, '..', transport_detail_filepath) + filepath = os.path.abspath(os.path.join(PROJECT_PATH, '..', transport_detail_filepath)) transport_dataframe = pd.read_csv(filepath) + transport_dataframe = transport_dataframe[transport_dataframe['Aggregator Id']==agg_list_requested[0]] # Store Json Result diff --git a/loop/utils/mi_pilot_var.py b/loop/utils/mi_pilot_var.py index 84f450a7ed..b643088f8e 100644 --- a/loop/utils/mi_pilot_var.py +++ b/loop/utils/mi_pilot_var.py @@ -1,4 +1,4 @@ mandi_list = (134, 133, 152, 16, 150, 14, 5, 151, 188) agg_list = (4846, 4844, 4992, 5025) -transport_detail_filepath = "/loop/utils/Transport Cost & Capacity Data - Sheet1.csv" \ No newline at end of file +transport_detail_filepath = "loop/utils/Transport Cost & Capacity Data - Sheet1.csv" \ No newline at end of file