def register_account(): # auth process if current_user.is_authenticated is True: account = get_account_info_by_account_id(current_user.account_id) else: return redirect(url_for('auth.login_view')) if account['account_status'] != 'admin': return redirect(url_for('auth.home_view')) # process end # main function process below form = RegisterForm() # POST method if form.validate_on_submit(): # captcha validate ( get from session ) if str(form.captcha.data).upper() != session.get('captcha_code'): flash('CAPTCHA is not Correct!', 'warning') return redirect(url_for('auth.register_view')) if form.password.data != form.re_password.data: flash('Passwords should be the same.', 'warning') return redirect(url_for('auth.register_view')) # account info account_info = dict() account_info['account_email'] = form.email.data account_info['account_nickname'] = form.nickname.data account_info['password'] = form.re_password.data account_info['account_status'] = form.account_status.data register_url = 'http://' + Config.ACCOUNT_SERVICE_URL + '/api/account/account-creating' result = requests.post(register_url, data=account_info) if result.status_code == 200: flash('新用户创建成功!', 'success') return redirect(url_for('auth.register_view')) else: flash('该邮箱已被注册。', 'danger') return redirect(url_for('auth.register_view'))
def data_submit_post(): # auth process if current_user.is_authenticated is True: account = get_account_info_by_account_id(current_user.account_id) else: return redirect(url_for('auth.login_view')) # process end form = GasDataRecordForm() post_doc_url = 'http://' + Config.DB_OPS_URL + '/api/gas/document' doc_dict = dict(request.form) doc_dict['boiler_room'] = str(form.boiler_room_and_no.data).split('/')[0] doc_dict['boiler_no'] = str(form.boiler_room_and_no.data).split('/')[1] doc_dict['employee_no'] = current_user.account_id doc_dict['employee_name'] = account['account_nickname'] doc_dict['datetime'] = get_current_datetime() doc_dict['date'] = get_current_date() doc_dict['time'] = get_current_time() if form.validate_on_submit(): result = requests.post(post_doc_url, data=doc_dict) if result.status_code == 200: flash('数据提交成功', 'success') return redirect(url_for('gas.gas_data_submit_view')) else: flash('发生了错误, 数据未成功提交', 'danger') return redirect(url_for('gas.gas_data_submit_view'))
def register_view(): # auth process if current_user.is_authenticated is True: account = get_account_info_by_account_id(current_user.account_id) else: return redirect(url_for('auth.login_view')) if account['account_status'] != 'admin': return redirect(url_for('auth.home_view')) # process end # main function process below form = RegisterForm() captcha = dict() captcha_url = 'http://' + Config.CAPTCHA_SERVICE_URL + '/api/hash-match/captcha' result = requests.get(captcha_url) if result.status_code == 200: captcha['captcha_code'] = get_api_info(result)[0]['CAPTCHA'] captcha['hash_code'] = get_api_info(result)[0]['Hash-Code'] # store the captcha code into session session['captcha_code'] = captcha['captcha_code'] captcha['captcha_url'] = 'http://' + Config.CAPTCHA_SERVICE_URL +\ '/api/hash-match/captcha/' + captcha['hash_code'] else: captcha['captcha_code'] = '0000' captcha['captcha_url'] = 'error' return render_template('auth/register/register.html', form=form, captcha=captcha, account=account)
def data_download_view(): # auth process if current_user.is_authenticated is True: account = get_account_info_by_account_id(current_user.account_id) else: return redirect(url_for('auth.login_view')) # process end form = SendCsvFileForm() return render_template('dataDownLoad.html', form=form, title='数据下载', account=account)
def gas_data_submit_view(): # auth process if current_user.is_authenticated is True: account = get_account_info_by_account_id(current_user.account_id) else: return redirect(url_for('auth.login_view')) # process end form = GasDataRecordForm() return render_template('gas/gasDataSubmit.html', form=form, title='燃气数据提交', account=account)
def delete_confirm(record_id): # auth process if current_user.is_authenticated is True: account = get_account_info_by_account_id(current_user.account_id) else: return redirect(url_for('auth.login_view')) # process end form = DeleteForm() # Get record info record_url = 'http://' + Config.DB_OPS_URL + \ '/api/gas/document/rid/' + str(record_id) result = requests.get(record_url) # Functional Part if form.validate_on_submit(): if result.status_code == 200: user_id = get_api_info(result)[0]['employee_no'] # check user's authentication by account_id in url whether match current_user.account_id # Mention!! Type of current_user.account_id is not string! if str(current_user.account_id) != str(user_id): # back to detail viewing page flash('试图删除不属于自己的数据', 'danger') return redirect( url_for('auth.home_view', account_id=current_user.account_id)) # main function process below delete_url = 'http://' + Config.DB_OPS_URL + \ '/api/gas/document/' + str(record_id) requests.delete(delete_url) flash('数据删除成功', 'success') return redirect( url_for('auth.home_view', account_id=current_user.account_id)) # View Part else: if result.status_code == 200: user_id = get_api_info(result)[0]['employee_no'] # check user's authentication by account_id in url whether match current_user.account_id # Mention!! Type of current_user.account_id is not string! if str(current_user.account_id) != str(user_id): # back to detail viewing page return redirect( url_for('auth.home_view', account_id=current_user.account_id)) # main function process below competition = get_api_info(result)[0] return render_template('recordDelete.html', form=form, account=account)
def gas_stats_panel(): # auth process if current_user.is_authenticated is True: account = get_account_info_by_account_id(current_user.account_id) else: return redirect(url_for('auth.login_view')) # process end form = GasDataStatsForm() # functional url basic_successive_url = 'http://' + Config.DB_OPS_URL + '/api/gas/calculating/gas-consumption/successive/' basic_sum_url = 'http://' + Config.DB_OPS_URL + '/api/gas/calculating/gas-consumption/inexact-date/' # post function if form.validate_on_submit(): boiler_room = str(form.boiler_room_and_no.data).split('/')[0] boiler_no = str(form.boiler_room_and_no.data).split('/')[1] sum_url = basic_sum_url + boiler_room + '/' + boiler_no + '/' +\ str(form.start_date.data) + '/' + str(form.end_date.data) successive_url = basic_successive_url + boiler_room + '/' + boiler_no + '/' +\ str(form.start_date.data) + '/' + str(form.end_date.data) # get function else: today_date = get_current_date() last_date = get_last_date() form.start_date.data = get_last_date_strftime() form.end_date.data = get_current_date_strftime() default_boiler_room_and_no = GasInfoClass().get_gas_url_list()[0] sum_url = basic_sum_url + default_boiler_room_and_no + '/' + last_date + '/' + today_date successive_url = basic_successive_url + default_boiler_room_and_no + '/' + last_date + '/' + today_date flash('默认统计"今日与昨日"的燃气消耗量。', 'info') # get relative gas data # get first with dict type consumption_sum_dict = get_api_info_first(requests.get(sum_url)) # get all with list type consumption_successive_list = get_api_info(requests.get(successive_url)) if consumption_sum_dict['gas_consumption_type'] == '错误' or\ consumption_sum_dict['gas_consumption_type'] == '日期区间错误': flash('无相关数据!', 'danger') else: flash('数据统计成功!', 'success') # render templates return render_template( 'gas/statsPanel.html', consumption_sum_dict=consumption_sum_dict, account=account, consumption_successive_list=consumption_successive_list, form=form, title='燃气数据统计')
def gas_panel_search(): # auth process if current_user.is_authenticated is True: account = get_account_info_by_account_id(current_user.account_id) else: return redirect(url_for('auth.login_view')) # process end form = ViewPanelSearchForm() basic_doc_url = 'http://' + Config.DB_OPS_URL + '/api/gas/document/boiler-room-and-no/fuzzy/' if form.validate_on_submit(): search_doc_url = basic_doc_url + str(form.boiler_room_and_no.data) gas_doc_list = get_api_info(requests.get(search_doc_url)) flash('数据检索成功!', 'success') return render_template('gasPanel.html', documents=gas_doc_list, title='燃气监测', form=form, account=account)
def competition_inserting_function(): # auth process if current_user.is_authenticated is True: account = get_account_info_by_account_id(current_user.account_id) else: return redirect(url_for('auth.login_view')) # process end form = CompetitionInsertForm() if form.validate_on_submit(): insert_url = 'http://' + Config.COMPETITION_SERVICE_URL + \ '/api/competition' new_competition = dict() new_competition['comp_title'] = form.comp_title.data new_competition['comp_subtitle'] = form.comp_subtitle.data new_competition['comp_range'] = form.comp_range.data new_competition['comp_url'] = form.comp_url.data new_competition['prize_currency'] = form.prize_currency.data new_competition['prize_amount'] = form.prize_amount.data new_competition['deadline'] = form.deadline.data new_competition['timezone'] = form.timezone.data new_competition['update_time'] = get_current_datetime() new_competition['publish_time'] = get_current_datetime() new_competition['contributor_id'] = str(current_user.account_id) new_competition['contributor_name'] = str(account['account_nickname']) new_competition['comp_description'] = form.comp_description.data host_list = [{'comp_host_name': form.comp_host_name.data, 'comp_host_url': form.comp_host_url.data}] new_competition['comp_host'] = str(host_list) comp_scenario_list = str_to_right_type(str(form.comp_scenario.data)) new_competition['comp_scenario'] = str(comp_scenario_list) data_feature = str_to_right_type(str(form.data_feature.data)) new_competition['data_feature'] = str(data_feature) result = requests.post(insert_url, data=new_competition) if result.status_code == 200: competition = get_api_info(result)[0] comp_record_hash = competition['comp_record_hash'] return redirect(url_for('competition-operator.competition_detail_view', comp_record_hash=comp_record_hash)) else: flash('Something wrong happened! Can not upload competition', 'danger') return redirect(url_for('competition-operator.competition_inserting_view'))
def gas_panel_view(): # auth process if current_user.is_authenticated is True: account = get_account_info_by_account_id(current_user.account_id) else: return redirect(url_for('auth.login_view')) # process end form = ViewPanelSearchForm() get_doc_url = 'http://' + Config.DB_OPS_URL + '/api/gas/document/all-documents' result = requests.get(get_doc_url) if result.status_code == 200: document_list = get_api_info(result) document_list.reverse() else: document_list = [{'Error': 'Server Down.'}] return render_template('gasPanel.html', documents=document_list, title='燃气监测', form=form, account=account)