def lookupvalues_upload(store_id): from application.forms.ops import CreateLookupvalueForm from application.createlookupvalues import generate_lookup, generate_lookupvalue from application.nutils.excel import load_excel store_name = Store.find_storename_by_store_id(store_id).name form = CreateLookupvalueForm() redirect_url = redirect( url_for('ops.lookupvalues_upload', store_id=store_id), code=303) if form.validate_on_submit(): filename = secure_filename(form.lookupvalue_file.data.filename) if check_filename(filename, store_id): lookupvalues_file = os.path.join(current_app.config['UPLOAD_FOLDER'], filename) form.lookupvalue_file.data.save(lookupvalues_file) lookupvalues_data = load_excel(lookupvalues_file) lookup_ids = generate_lookup(store_id) if generate_lookupvalue(lookup_ids, lookupvalues_data): flash_success(u"店面信息导入完成") return redirect_url else: flash_error(u'上传的文件名错误') return redirect_url return render_template('ops/lookupvalues_upload.html', storename=store_name, form=form)
def lookupvalues_add(lookup_id): from application.models.lookup import Lookup from application.createlookupvalues import add_lookupvalue, check_looupvalue lookup_by_store_and_name = Lookup.get_description_by_store_id(lookup_id) descriptions = get_stores_descriptions_and_lookupvalues(lookup_id) version = lookup_by_store_and_name.version store_name = Store.find_storename_by_store_id(lookup_by_store_and_name.store_id).name if request.method == 'POST': changevalues = convert_changevalues(request.form) message = check_looupvalue(lookup_id, changevalues) if message: flash_error(message) return redirect(url_for('ops.lookupvalues_add', lookup_id=lookup_id), code=303) count = add_lookupvalue(lookup_id, version, changevalues) if count is None: flash_error(u"更新失败!") elif count == 0: flash_info(u"未发生更新!") else: flash_success(u"成功更新%s条信息!" % count) return redirect(url_for('ops.lookupvalues_add', lookup_id=lookup_id), code=303) return render_template('ops/lookupvalues_add.html', store_name=store_name, lookup_by_id=lookup_by_store_and_name, descriptions=descriptions, lookup_id=lookup_id)
def modify_password(): form = ResetPasswordForm() if form.validate_on_submit(): if form.new_password.data != form.confirm_password.data: flash_error(u'两次输入密码不一致') else: success = False error_msg = u'非常抱歉服务器出错了, 请稍后重试或者联系系统管理员.' if g.user.system == 'ucenter': try: success = uc_change_password(g.user.id, form.original_password.data, form.new_password.data) except Exception as e: if hasattr(e, 'message'): error_msg = e.message else: result = bmw_change_password(g.user.id, form.original_password.data, form.new_password.data) if isinstance(result, dict): if 'status' in result and result['status'] == 0: success = True if 'message' in result: error_msg = result['message'] if success: flash_success(u'密码修改成功') else: flash_error(error_msg) return render_template('settings/security.html', selected_menu=MODIFY_PASSWORD, form=form)
def login(): form = LoginForm() referer = request.form.get('referer') if form.validate_on_submit(): username = form.username.data password = form.password.data user = None flashed = False try: login_response = uc_login(username, password) #测试使用 ucenter if login_response: user = uc_save_user(login_response) except UserWasNotFound: json_r = bmw_login(username, password) #使用原始bmw if bmw_is_success(json_r): if bmw_validate_user(json_r): user = bmw_save_user(json_r) except UserWasNotAuthorized: flash_error(u'用户密码错误') flashed = True if user: add_user(user) return redirect(referer or url_for(user.dashboard_endpoint())) if not flashed: flash_error(gettext(u'login failed')) return render_template('account/login.html', form=form)
def import_inv(): if request.method == 'POST': upload_file = request.files['upload_file'] if not upload_file or not allowed_file(upload_file.filename): flash_error(u'导入文件不存在或者不是合法的文件类型') else: origin_file_name = upload_file.filename store_id = get_or_set_store_id() gen_file_name = gen_inv_upload_file_path(store_id, origin_file_name) upload_file.save(gen_file_name) import_his = InvImportHistory() import_his.origin_file = origin_file_name import_his.import_file = os.path.relpath( gen_file_name, current_app.config['INV_UPLOAD_FOLDER']) db.session.add(import_his) Inventory.save_from_excel(gen_file_name, store_id) flash_success(u'导入成功') return redirect(url_for('inventories.inventories'))
def restore_password(): form = RestorePasswordForm() if form.validate_on_submit(): token = form.token.data if not token: flash_error(u'无效验证码') else: verify_code = form.verify_code.data new_password = form.new_password.data ip = request.remote_addr flashed = False try: if uc_restore_password(token, verify_code, new_password, 'isr', ip): return redirect('/account/login') except (RestorePasswordInvalidToken, RestorePasswordChecksumMissmatch) as e: flash_error(e.message) flashed = True if not flashed: flash_error(gettext(u'重置密码失败')) return render_template('account/restore_password.html', form=form)
def cancel_order(): current_user = g.user store_id = get_or_set_store_id() form = OrderCancelForm() if form.order_id.data is None or int(form.order_id.data) < 1: flash_error(u'订单信息错误,请选择需要取消的订单') else: order = Order.find_by_id_and_store(form.order_id.data, store_id) if not order: abort(404) if order and order.status not in ('delivered', 'cancelled'): order.status = 'cancelled' order.save_and_flush() flash_success(u'订单已取消') elif order: flash_error(u'订单已交车或已取消') else: flash_error(u'找不到需要取消的订单') return redirect(url_for('orders.orders'))