merging with upstream
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user