merging with upstream

This commit is contained in:
Senad Uka
2017-12-27 16:24:50 +01:00
parent db7453f438
commit f4c19dec04
7 changed files with 103 additions and 56 deletions

View File

@@ -41,16 +41,21 @@ app.config['PROFILE'] = True
# Sales Force integrations
oauth = OAuth()
SF_BASE_URL = os.getenv('SFDC_BASE_URL', 'https://test.salesforce.com')
sales_force = oauth.remote_app('sales_force',
consumer_key=os.getenv('SFDC_ACCESS_KEY_ID'),
consumer_secret=os.getenv('SFDC_SECRET_ACCESS_KEY'),
base_url=SF_BASE_URL,
request_token_url=None, # OAuth 2
access_token_method='POST', # Sales Force requirement
access_token_url=SF_BASE_URL + '/services/oauth2/token',
authorize_url=SF_BASE_URL + '/services/oauth2/authorize',
)
SFDC_BASE_URL = os.getenv('SFDC_BASE_URL', 'https://test.salesforce.com')
try:
sales_force = oauth.remote_app('sales_force',
consumer_key=os.getenv('SFDC_ACCESS_KEY_ID'),
consumer_secret=os.getenv('SFDC_SECRET_ACCESS_KEY'),
base_url=SFDC_BASE_URL,
request_token_url=None, # OAuth 2
access_token_method='POST', # Sales Force requirement
access_token_url=SFDC_BASE_URL + '/services/oauth2/token',
authorize_url=SFDC_BASE_URL + '/services/oauth2/authorize',
)
except TypeError:
print('Sales Force integration disabled')
sales_force = None
assets_env = assets.Environment(app)
assets_env.init_app(app)
@@ -186,7 +191,7 @@ def summary():
return render_template('site_summary.html.jinja', context=context)
def handle_dxf_file(session_manager, file_contents, filename=None):
def handle_dxf_file(session_manager, file_contents, filename=None, save_file=True):
errors = []
user_values = session_manager.user_values()
validator = FileValidator(user_values)
@@ -210,7 +215,8 @@ def handle_dxf_file(session_manager, file_contents, filename=None):
DXFHelper(),
SubarrayValidator())
csv = CsvBuilder().build_cad_output(dxf_data['panels'])
session_manager.save_uploaded_file(csv, dxf_file_name=filename)
if save_file:
session_manager.save_uploaded_file(csv, dxf_file_name=filename)
buildings = dxf_data['buildings']
session_manager.save_buildings_polygons(buildings)
@@ -334,7 +340,7 @@ def load_dxf_file():
db_session = sql_constant.sql_session_maker()
session_manager = SessionManager(session, redis_constant.redis_store, db_session)
success, errors = handle_dxf_file(session_manager, file_contents, filename=filename)
success, errors = handle_dxf_file(session_manager, file_contents, filename=filename, save_file=False)
session['dxf_link_loaded'] = True
if success:
return jsonify({'status': 'success'})
@@ -424,6 +430,10 @@ def download():
session_manager = SessionManager(session, redis_constant.redis_store, db_session)
context = session_manager.context()
context['current_step'] = 5
error, data = session.pop('sfdc_export_urls', (None, None))
if data is not None:
context['sfdc_export_error'] = error
context['sfdc_export_urls'] = data
db_session.close()
return render_template('download.html.jinja', context=context)
@@ -540,7 +550,7 @@ def sales_force_authorized():
session_manager = SessionManager(session, redis_constant.redis_store, db_session)
session['sales_force_token'] = resp['access_token']
data = sf_tasks.get_site_characterization_from_sales_force(session, resp['instance_url'])
data = sf_tasks.get_site_characterization_from_sales_force(session)
if data:
session['dxf_link'] = data['dxf_link']
session_manager.save_form_submission(data)
@@ -549,23 +559,27 @@ def sales_force_authorized():
return sales_force_logout()
# FIXME
@app.route("/export-sfdc")
def export_sfdc():
if not is_sfdc_session():
return redirect('/')
db_session = sql_constant.sql_session_maker()
session_manager = SessionManager(session, redis_constant.redis_store, db_session)
session_id = session_manager.session['id']
data = sf_tasks.export_to_sfdc(session_id)
helix_session_id = session_manager.session['id']
access_token = session['sales_force_token']
sfid = session['SFID']
error, data = sf_tasks.export_to_sfdc(helix_session_id, access_token, sfid)
data.pop('bom', None)
data['dxfUrlFromSF'] = session['dxf_link']
session['sfdc_export_urls'] = (error, data)
db_session.close()
return jsonify(data)
# return redirect('/download')
return redirect('/download')
@sales_force.tokengetter
def get_sales_force_token(token=None):
return session.get('sales_force_token')
if sales_force:
@sales_force.tokengetter
def get_sales_force_token(token=None):
return session.get('sales_force_token')
@app.route('/sales_force_logout')
@@ -574,6 +588,7 @@ def sales_force_logout():
session.pop('sales_force_token', None)
session.pop('dxf_link', None)
session.pop('dxf_link_loaded', None)
session.pop('sfdc_export_urls', None)
session.clear()
return redirect('/')
# End of Sales Force Integration