def renew_form(policy): if not policy is not None: raise AssertionError form = btforms.Form(title=u'套餐续费', action='/ssportal/product/renew') items = form.inputs = [] items.append( btforms.Textbox('account_number', description=u'用户账号', readonly='readonly', **input_style)) items.append( btforms.Textbox('product_name', readonly='readonly', description=u'资费', **input_style)) items.append( btforms.Hidden('product_id', description=u'资费', required='required', **input_style)) if int(policy) == PPMonth: items.append( btforms.Textbox('months', rules.is_number, description=u'续费月数', required='required', **input_style)) elif int(policy) == BOMonth: items.append( btforms.Textbox('months', rules.is_number, description=u'续费月数(不填写表示续费整个套餐)', required='required', **input_style)) else: items.append( btforms.Hidden('months', description=u'订购月数(预付费包月)', **input_style)) if int(policy) == PPDay: items.append( btforms.Textbox('days', rules.is_number, description=u'续费天数', required='required', **input_style)) elif int(policy) == BODay: items.append( btforms.Textbox('days', description=u'续费天数(不填写表示续费整个套餐)', **input_style)) else: items.append( btforms.Hidden('days', description=u'订购天数(预付费包天)', **input_style)) os.environ.get('LICENSE_TYPE') != 'community' and items.append( btforms.Textbox('vcard_code', description=u'充值卡', **input_style)) items.append( btforms.Password('vcard_pwd', description=u'充值卡密码', **input_style)) return form
def customer_update_form(nodes=[]): return btforms.Form(btforms.Hidden('account_number', description=u'用户账号'), btforms.Dropdown('node_id', description=u'区域*', args=nodes, required='required', **input_style), btforms.Dropdown('area_id', description=u'社区*', args=[], required='required', **input_style), btforms.Hidden('customer_id', description=u'mid', required='required', **input_style), btforms.Textbox('realname', rules.len_of(1, 64), description=u'用户姓名', required='required', **input_style), btforms.Hidden('customer_name', description=u'自助服务用户名', readonly='readonly', autocomplete='off', **input_style), btforms.Hidden('new_password', rules.len_of(0, 128), value='', description=u'自助服务密码(留空不修改)', **input_style), btforms.Textbox('email', rules.len_of(0, 128), description=u'电子邮箱', **input_style), btforms.Textbox('idcard', rules.len_of(0, 32), description=u'证件号码', **input_style), btforms.Textbox('mobile', rules.len_of(0, 32), description=u'用户手机号码', **input_style), btforms.Textbox('address', description=u'用户地址', hr=True, **input_style), btforms.Textarea('customer_desc', description=u'用户描述', rows=4, **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'用户基本信息修改', action='/admin/customer/update')
def profile_order_form(policy, get_product_attr_val): form = btforms.Form(title=u'套餐订购', action='/usrportal/product/reneworder') items = form.inputs = [] items.append( btforms.Textbox('account_number', description=u'用户账号', readonly='readonly', **input_style)) items.append( btforms.Textbox('product_name', readonly='readonly', description=u'资费', **input_style)) items.append( btforms.Hidden('product_id', description=u'资费', required='required', **input_style)) if int(policy) == PPMonth: items.append( btforms.Textbox('months', rules.is_number, description=u'订购月数(预付费包月)', required='required', **input_style)) else: items.append( btforms.Hidden('months', description=u'订购月数(预付费包月)', **input_style)) if int(policy) == PPDay: items.append( btforms.Textbox('days', rules.is_number, description=u'订购天数(预付费包天)', required='required', **input_style)) else: items.append( btforms.Hidden('days', description=u'订购天数(预付费包天)', **input_style)) if os.environ.get('LICENSE_TYPE') != 'community' and get_product_attr_val( 'product_tag'): items.append( btforms.Textbox('vcard_code', description=u'充值卡', **input_style)) items.append( btforms.Password('vcard_pwd', description=u'充值卡密码', **input_style)) items.append( btforms.Button('submit', type='submit', html=u'<b>提交订单</b>', **button_style)) return form
def pool_update_form(nodes=[]): return btforms.Form(btforms.Hidden('id', description=u'编号'), btforms.Textbox('pool_name', rules.is_alphanum2(1, 64), description=u'地址池名称', required='required', **input_style), btforms.Textbox('start_ip', rules.is_ip, description=u'开始地址', required='required', **input_style), btforms.Textbox('end_ip', rules.is_ip, description=u'结束地址', required='required', **input_style), btforms.Textbox('next_pool', rules.is_alphanum2(1, 64), description=u'下一个地址池', **input_style), btforms.Button('submit', type='submit', html=u'<b>更新</b>', **button_style), title=u'修改地址池', htopic='addrpool', action='/admin/addrpool/update')
def domain_update_vform(): return btforms.Form(btforms.Hidden('id', description=u'编号'), btforms.Dropdown('tpl_name', wlan_tpls.items(), rules.not_null, description=u'Hotspot 模版', required='required', **input_style), btforms.Textbox('domain_code', rules.not_null, readonly='readonly', description=u'认证域编码', required='required', **input_style), btforms.Textbox('domain_desc', rules.not_null, description=u'域描述', required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'修改认证域', action='/admin/wlan/domain/update')
def builder_update_form(areas=[]): return btforms.Form(btforms.Hidden('id', description=u'ID'), btforms.Textbox('builder_name', rules.len_of(2, 128), description=u'服务人员姓名', required='required', **input_style), btforms.Textbox('builder_phone', rules.len_of(2, 128), description=u'服务人员电话', required='required', **input_style), btforms.Dropdown('areas', description=u'关联社区', args=areas, multiple='multiple', size=5, required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b>更新</b>', **button_style), title=u'修改服务人员', htopic='builder', action='/admin/builder/update')
def smsvcode_form(pid='', phone=''): form = btforms.Form(title=u'套餐订购', action='/ssportal/product/order') items = form.inputs = [] items.append( btforms.Hidden('product_id', description=u'资费', value=pid, required='required', **input_style)) items.append( btforms.Textbox('account_number', description=u'用户手机号', value=phone, required='required', **input_style)) items.append( btforms.Textbox('vcode', description=u'验证码', required='required', **input_style)) items.append( btforms.Button('smsvcode', id='smsvcode', type='button', html=u'<b>发送短信验证码</b>', onclick='send_vcode()', **lbutton_style)) items.append( btforms.Button('submit', type='submit', html=u'<b>下一步</b>', **button_style)) return form
def vcard_charge_form(): form = btforms.Form(title=u'充值卡充值', action='/ssportal/product/vcardcharge') items = form.inputs = [] items.append( btforms.Textbox('account_number', description=u'用户账号', readonly='readonly', **input_style)) items.append( btforms.Textbox('product_name', readonly='readonly', description=u'资费', **input_style)) items.append( btforms.Hidden('product_id', description=u'资费', required='required', **input_style)) items.append( btforms.Textbox('vcard_code', rules.not_null, description=u'充值卡', required='required', **input_style)) items.append( btforms.Password('vcard_pwd', rules.not_null, description=u'充值卡密码', required='required', **input_style)) return form
def charge_form(): form = btforms.Form(title=u'账号充值', action='/ssportal/product/charge') items = form.inputs = [] items.append( btforms.Textbox('account_number', description=u'用户账号', readonly='readonly', **input_style)) items.append( btforms.Textbox('product_name', readonly='readonly', description=u'资费', **input_style)) items.append( btforms.Hidden('product_id', description=u'资费', required='required', **input_style)) items.append( btforms.Textbox('fee_value', rules.is_rmb, description=u'充值金额(元)', required='required', **input_style)) return form
def account_update_form(): return btforms.Form(btforms.Textbox('account_number', description=u'用户账号', readonly='readonly', **input_style), btforms.Textbox('ip_address', description=u'用户IP地址', **input_style), btforms.Hidden('install_address', description=u'用户安装地址', required='required', **input_style), btforms.Hidden('new_password', description=u'认证密码(留空不修改)', **input_style), btforms.Textbox('user_concur_number', rules.is_number, description=u'用户并发数', required='required', **input_style), btforms.Dropdown('bind_mac', args=boolean.items(), description=u'是否绑定MAC', **input_style), btforms.Dropdown('bind_vlan', args=boolean.items(), description=u'是否绑定VLAN', **input_style), btforms.Textbox('domain', description=u'用户域', **input_style), btforms.Textarea('account_desc', description=u'用户描述', rows=4, **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'用户策略修改', action='/admin/account/update')
def resetpassword_form(uuid='', token=''): form = btforms.Form(title=u'重置密码', id="resetpassword", action='/usrportal/resetpassword', glyphicon='1') items = form.inputs = [] items.append( btforms.Hidden('uuid', value=str(uuid), description=u'uuid', required='required', **lg_input_style)) items.append( btforms.Hidden('token', value=str(token), description=u'token', required='required', **lg_input_style)) items.append( btforms.Password('password', glyphicon='glyphicon-lock', description=u'登录密码', required='required', **lg_input_style)) items.append( btforms.Password('confirmpassword', glyphicon='glyphicon-lock', description=u'确认密码', required='required', **lg_input_style)) items.append( btforms.Button('submit', type='submit', html=u'重置密码', **forgot_button_style)) return form
def account_change_form(products=[]): return btforms.Form(btforms.Hidden('account_number', description=u'用户账号', required='required', **input_style), btforms.Dropdown('product_id', args=products, description=u'资费', required='required', **input_style), btforms.Textbox('add_value', rules.is_rmb, description=u'缴费金额', required='required', value='0', **input_style), btforms.Textbox('expire_date', rules.is_date, description=u'过期日期', value='0000-00-00', **input_style), btforms.Textbox('balance', rules.is_rmb, description=u'用户变更后余额', value='0.00', **input_style), btforms.Textbox('time_length', description=u'用户时长(小时)', value='0.00', **input_style), btforms.Textbox('flow_length', description=u'用户流量(G)', value='0', **input_style), btforms.Textarea('operate_desc', rules.len_of(0, 512), description=u'操作描述', rows=4, **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'用户资费变更', action='/admin/account/change')
def bind_form(): return btforms.Form(btforms.Hidden('openid', description=u'openid'), btforms.Textbox('username', rules.len_of(1, 32), description=u'账号名称', required='required', **input_style), btforms.Password('password', rules.len_of(1, 32), description=u'账号密码', required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b>绑定</b>', **button_style), title=u'用户微信绑定', action='')
def login_form(): return btforms.Form(btforms.Textbox('username', rules.not_null, iwidth=3, description=u'认证账号', required='required', **input_style), btforms.Password('password', rules.not_null, iwidth=3, description=u'账号密码', required='required', **input_style), btforms.Hidden('next', description=u'next url'), btforms.Button('submit', type='submit', html=u'<b>登 陆</b>', **button_style), title=u'用户登陆', action='/ssportal/login')
def operator_update_form(nodes=[], products=[]): return btforms.Form(btforms.Hidden('id', description=u'编号'), btforms.Textbox('operator_name', description=u'操作员名称', readonly='readonly', **input_style), btforms.Textbox('operator_desc', rules.len_of(0, 255), description=u'操作员姓名', **input_style), btforms.Password('operator_pass', rules.len_of(0, 128), description=u'操作员密码(留空不修改)', autocomplete='off', **input_style), btforms.Dropdown('operator_status', description=u'操作员状态', args=opr_status_dict.items(), required='required', **input_style), btforms.Dropdown('operator_nodes', description=u'关联区域(多选)', args=nodes, required='required', multiple='multiple', size=4, **input_style), btforms.Dropdown('operator_products', description=u'关联资费(多选)', args=products, required='required', multiple='multiple', size=6, **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'修改操作员', action='/admin/operator/update')
def issues_process_form(): return btforms.Form(btforms.Hidden('issues_id', rules.len_of(1, 32), description=u'工单id', required='required', **input_style), btforms.Textarea('accept_result', rules.len_of(1, 1024), description=u'处理描述', rows=6, required='required', **input_style), btforms.Dropdown('accept_status', description=u'处理结果', args=process_status.items(), required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b> 处理用户工单 </b>', **button_style), action='/admin/issues/process', title=u'处理用户工单')()
def node_update_form(rule_ids=[], bas_ids=[]): return btforms.Form(btforms.Hidden('id', description=u'区域ID'), btforms.Textbox('node_name', rules.len_of(2, 32), description=u'区域名称', **input_style), btforms.Dropdown('node_type', description=u'区域接入类型', args=node_types.items(), required='required', help=u'仅提供设备同步使用', **input_style), btforms.Dropdown('rule_id', description=u'账号生成规则', args=rule_ids, required='required', **input_style), btforms.Dropdown('bas_id', description=u'绑定接入设备', args=bas_ids, multiple='multiple', size=6, **input_style), btforms.Textarea('node_desc', rules.len_of(2, 128), description=u'区域描述', rows=3, required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b>更新</b>', **button_style), title=u'修改区域', htopic='node', action='/admin/node/update')
def customer_batch_open_form(nodes=[], products=[]): form = btforms.Form(title=u'用户批量开户', action='/admin/customer/batchopen') items = form.inputs = [] items.append( btforms.Dropdown('node_id', description=u'区域*', args=nodes, required='required', **input_style)) items.append( btforms.Dropdown('area_id', description=u'社区*', args=[], required='required', **input_style)) items.append( btforms.Dropdown('product_id', args=products, description=u'资费*', required='required', **input_style)) items.append( btforms.Dropdown('pwd_type', args=pwd_types.items(), description=u'密码类型', **input_style)) items.append( btforms.Textbox('password', description=u'认证密码*', **input_style)) items.append( btforms.Textbox('opennum', rules.is_number, description=u'数量(最大1000)*', required='required', **input_style)) items.append( btforms.Textbox('user_prefix', rules.is_alphanum2(1, 10), description=u'账号前缀*', required='required', **input_style)) items.append( btforms.Textbox('suffix_len', rules.is_number, description=u'序号长度*', required='required', **input_style)) items.append( btforms.Textbox('start_num', rules.is_number, description=u'开始序号*', required='required', **input_style)) items.append( btforms.Textbox('expire_date', rules.is_date, description=u'过期日期*', readonly='readonly', **input_style)) items.append( btforms.Hidden('billing_type', args=billing_types.items(), description=u'计费开始时间', **input_style)) items.append( btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style)) return form
def product_add_form(policy=0, charges=[], pools=[]): _policy = int(policy) form = btforms.Form(title=u'创建资费', action='/admin/product/add') form.inputs = [] additem = form.inputs.append additem( btforms.Textbox('product_id', rules.is_alphanum2(4, 32), description=u'资费编码', required='required', **input_style)) additem( btforms.Textbox('product_name', rules.len_of(4, 64), description=u'资费名称', required='required', **input_style)) additem( btforms.Dropdown('ispub', args=boolean.items(), description=u'是否发布到自助订购套餐', **input_style)) additem(btforms.Hidden('product_policy', value=policy, description=u'')) if _policy == PPMonth: form.desc = u'预付费包月:以每月单价为基础,用户可自由订购多月,到期即停止服务。' additem( btforms.Textbox('fee_price', rules.is_rmb, description=u'每月单价(元)', required='required', **input_style)) additem(btforms.Hidden('fee_flows', value=0, description=u'买断流量(G)')) additem(btforms.Hidden('fee_times', value=0, description=u'买断时长(小时)')) additem(btforms.Hidden('fee_months', value=0, description=u'买断授权月数')) additem(btforms.Hidden('fee_days', value=0, description=u'买断授权天数')) elif _policy == APMonth: form.desc = u'后付费包月:以每月单价为基础,先使用,下个月初期生成使用账单' additem( btforms.Textbox('fee_price', rules.is_rmb, description=u'每月单价(元)', required='required', **input_style)) additem(btforms.Hidden('fee_flows', value=0, description=u'买断流量(G)')) additem(btforms.Hidden('fee_times', value=0, description=u'买断时长(小时)')) additem(btforms.Hidden('fee_months', value=0, description=u'买断授权月数')) additem(btforms.Hidden('fee_days', value=0, description=u'买断授权天数')) elif _policy == BOMonth: form.desc = u'买断包月:以月为单位进行套餐打包(如包季度,半年,一年等),设定买断总价,用户一次性订购,到期即停止服务。' additem( btforms.Textbox('fee_price', rules.is_rmb, description=u'买断包月总价(元)', required='required', **input_style)) additem( btforms.Textbox('fee_months', rules.is_number, description=u'买断授权月数', value=0, **input_style)) additem(btforms.Hidden('fee_times', value=0, description=u'买断时长(小时)')) additem(btforms.Hidden('fee_flows', value=0, description=u'买断流量(G)')) additem(btforms.Hidden('fee_days', value=0, description=u'买断授权天数')) elif _policy == BOTimes: form.desc = u'买断时长:一次性将固定的时长打包为套餐,提供用户一次性订购,在使用过程中实时扣除时间,扣完为止。(设备必须支持实时记帐),剩余时长为零时停止服务' additem( btforms.Textbox('fee_price', rules.is_rmb, description=u'买断时长总价(元)', required='required', **input_style)) additem( btforms.Textbox('fee_times', rules.is_number3, description=u'买断时长(小时)', value=0, **input_style)) additem(btforms.Hidden('fee_flows', value=0, description=u'买断流量(G)')) additem(btforms.Hidden('fee_days', value=0, description=u'买断授权天数')) additem(btforms.Hidden('fee_months', value=0, description=u'买断授权月数')) elif _policy == BOFlows: form.desc = u'买断流量:一次性将固定的流量打包为套餐,提供用户一次性订购,在使用过程中实时扣除流量,扣完为止。(设备必须支持实时记帐),剩余流量为零时停止服务。' additem( btforms.Textbox('fee_price', rules.is_rmb, description=u'买断流量总价(元)', required='required', **input_style)) additem( btforms.Textbox('fee_flows', rules.is_number3, description=u'买断流量(G)', value=0, **input_style)) additem(btforms.Hidden('fee_times', value=0, description=u'买断时长(小时)')) additem(btforms.Hidden('fee_days', value=0, description=u'买断授权天数')) additem(btforms.Hidden('fee_months', value=0, description=u'买断授权月数')) elif _policy == PPDay: form.desc = u'预付费包日:以每日单价为基础,用户可自由订购多日,到期即停止服务。' additem( btforms.Textbox('fee_price', rules.is_rmb, description=u'每日单价(元)', required='required', **input_style)) additem(btforms.Hidden('fee_times', value=0, description=u'买断时长(小时)')) additem(btforms.Hidden('fee_flows', value=0, description=u'买断流量(G)')) additem(btforms.Hidden('fee_days', value=0, description=u'买断授权天数')) additem(btforms.Hidden('fee_months', value=0, description=u'买断授权月数')) elif _policy == BODay: form.desc = u'买断包日:以日为单位进行套餐打包(任意天数),设定买断总价,用户一次性订购,到期即停止服务。' additem( btforms.Textbox('fee_price', rules.is_rmb, description=u'买断包日总价(元)', required='required', **input_style)) additem( btforms.Textbox('fee_days', rules.is_number3, description=u'买断授权天数', value=0, **input_style)) additem(btforms.Hidden('fee_flows', value=0, description=u'买断流量(G)')) additem(btforms.Hidden('fee_times', value=0, description=u'买断时长(小时)')) additem(btforms.Hidden('fee_months', value=0, description=u'买断授权月数')) additem( btforms.Dropdown('product_charges', description=u'关联收费项(多选)', args=charges, multiple='multiple', size=6, **input_style)) additem( btforms.Dropdown('addr_pool', args=pools, description=u'地址池', **input_style)) additem( btforms.Textbox('concur_number', rules.is_numberOboveZore, description=u'同时在线数(0表示不限制)', value='0', **input_style)) additem( btforms.Dropdown('bind_mac', args=boolean.items(), description=u'是否绑定MAC ', **input_style)) additem( btforms.Dropdown('bind_vlan', args=boolean.items(), description=u'是否绑定VLAN ', **input_style)) additem( btforms.Textbox('input_max_limit', rules.is_number3, description=u'最大上行速率(Mbps)', required='required', **input_style)) additem( btforms.Textbox('output_max_limit', rules.is_number3, description=u'最大下行速率(Mbps)', required='required', **input_style)) additem( btforms.Dropdown('free_auth', args=boolean.items(), description=u'支持到期免费授权', **input_style)) additem( btforms.Textbox('free_auth_uprate', rules.is_number3, description=u' 免费授权最大上行速率(Mbps)', **input_style)) additem( btforms.Textbox('free_auth_downrate', rules.is_number3, description=u'免费授权最大下行速率(Mbps)', **input_style)) additem( btforms.Button('submit', type='submit', id='submit', html=u'<b>提交</b>', **button_style)) return form
#!/usr/bin/env python # coding=utf-8 from taurusxradius.taurusxlib import btforms from taurusxradius.taurusxlib.btforms import dataform from taurusxradius.taurusxlib.btforms import rules from taurusxradius.taurusxlib.btforms.rules import button_style, input_style from taurusxradius.modules.settings import * button_style = {'class': 'btn btn-sm'} tpl_types = {OpenNotify: u'用户开户通知模板', NextNotify: u'用户续费通知模板', ExpireNotify: u'用户到期通知模板', IssuesNotify: u'工单通知模板', VcodeNotify: u'验证码通知模板'} content_tpl_add_form = btforms.Form(btforms.Dropdown('tpl_type', args=tpl_types.items(), description=u'模板类型', required='required', **input_style), btforms.Textbox('tpl_id', rules.not_null, description=u'模板ID', required='required', **input_style), btforms.Textarea('tpl_content', rules.len_of(2, 1024), description=u'模板内容', rows=7, required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'创建模板', action='/admin/contenttpl/add') content_tpl_update_form = btforms.Form(btforms.Hidden('id', description=u'模板ID'), btforms.Dropdown('tpl_type', args=tpl_types.items(), description=u'模板类型', **input_style), btforms.Textbox('tpl_id', rules.not_null, description=u'模板ID', required='required', **input_style), btforms.Textarea('tpl_content', rules.len_of(2, 1024), description=u'模板内容', rows=7, required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b>更新</b>', **button_style), title=u'修改模板', action='/admin/contenttpl/update')
**input_style), btforms.Textbox('ad2_img_url', description=u'广告图片地址2', **input_style), btforms.Textbox('ad3_img_url', description=u'广告图片地址3', **input_style), btforms.Button('submit', type='submit', html=u'<b>更新配置</b>', **button_style), title=u'认证域参数配置', action='/admin/wlan/domain/attr/update') domain_ap_add_form = btforms.Form(btforms.Hidden('domain_code', description=u'域编码'), btforms.Textbox('guid', rules.not_null, description=u'接入点唯一标识', required='required', **input_style), btforms.Textbox('ssid', rules.not_null, description=u'接入点SSID', required='required', **input_style), btforms.Textbox('ap_desc', rules.not_null, description=u'接入点描述', required='required', **input_style),
def register_customer_open_form(): form = btforms.Form(title=u'用户注册开户') items = form.inputs = [] items.append( btforms.Textbox('node_id', description=u'区域*', required='required', **input_style)) items.append( btforms.Textbox('area_id', description=u'社区*', required='required', **input_style)) items.append( btforms.Textbox('realname', rules.len_of(1, 64), description=u'用户姓名*', required='required', **input_style)) items.append( btforms.Textbox('idcard', rules.len_of(0, 18), description=u'证件号码*', **input_style)) items.append( btforms.Textbox('mobile', rules.len_of(0, 11), description=u'用户手机号码*', **input_style)) items.append(btforms.Textbox('email', description=u'电子邮箱*', **input_style)) items.append( btforms.Textbox('address', rules.len_of(1, 255), description=u'用户地址', hr=True, **input_style)) items.append( btforms.Textbox('account_number', description=u'用户账号*', required='required', **input_style)) items.append( btforms.Textbox('password', description=u'认证密码*', required='required', **input_style)) items.append( btforms.Textbox('ip_address', description=u'用户IP地址', **input_style)) items.append( btforms.Textbox('product_id', description=u'资费*', required='required', **input_style)) items.append( btforms.Textbox('agency_id', description=u'代理商', **input_style)) items.append( btforms.Textbox('charge_code', description=u'收费项', **input_style)) items.append( btforms.Textbox('months', description=u'月数(包月有效)', **input_style)) items.append( btforms.Textbox('days', description=u'天数(包日有效)', **input_style)) items.append( btforms.Textbox('giftdays', rules.is_number, description=u'赠送天数', help=u'包月资费,买断包月资费有效', value=0, required='required', **input_style)) items.append( btforms.Textbox('giftflows', rules.is_number, description=u'赠送流量(G)', help=u'流量包月资费有效', value=0, required='required', **input_style)) items.append( btforms.Textbox('fee_value', rules.is_rmb, description=u'缴费金额(套餐资费+收费项)*', required='required', **input_style)) items.append( btforms.Textbox('expire_date', rules.is_date, description=u'过期日期*', readonly='readonly', **input_style)) items.append( btforms.Hidden('status', value=1, description=u'用户状态', **input_style)) items.append( btforms.Textbox('builder_name', description=u'指派施工人员', **input_style)) items.append( btforms.Textarea('customer_desc', description=u'备注信息', rows=4, **input_style)) items.append( btforms.Textbox('billing_type', description=u'计费开始时间', **input_style)) items.append(btforms.Hidden('account_rule', description=u'账号生成规则')) return form
def customer_open_form(nodes=[], products=[], agencies=[]): form = btforms.Form(title=u'用户正常开户', action='/admin/customer/open') items = form.inputs = [] items.append( btforms.Dropdown('node_id', description=u'区域*', args=nodes, required='required', **input_style)) items.append( btforms.Dropdown('area_id', description=u'社区*', args=[], required='required', **input_style)) items.append( btforms.Textbox('realname', rules.len_of(1, 64), description=u'用户姓名*', required='required', **input_style)) items.append( btforms.Textbox('idcard', rules.len_of(0, 18), description=u'证件号码*', **input_style)) items.append( btforms.Textbox('mobile', rules.len_of(0, 11), description=u'用户手机号码*', **input_style)) items.append(btforms.Textbox('email', description=u'电子邮箱*', **input_style)) items.append( btforms.Textbox('address', rules.len_of(1, 255), description=u'用户地址', hr=True, required='required', **input_style)) items.append( btforms.Textbox('account_number', description=u'用户账号*', required='required', **input_style)) items.append( btforms.Textbox('password', description=u'认证密码*', required='required', **input_style)) items.append( btforms.Button('button', type='button', onclick='reBuildAccount();', html=u'<b>生成账号密码</b>', **_btn_style)) items.append( btforms.Textbox('ip_address', description=u'用户IP地址', **input_style)) items.append( btforms.Dropdown('product_id', args=products, description=u'资费*', required='required', **input_style)) items.append( btforms.Dropdown('agency_id', args=agencies, description=u'代理商', **input_style)) items.append( btforms.Dropdown('charge_code', args=[], description=u'收费项', **input_style)) items.append( btforms.Textbox('months', description=u'月数(包月有效)', **input_style)) items.append( btforms.Textbox('days', description=u'天数(包日有效)', **input_style)) items.append( btforms.Textbox('giftdays', rules.is_number, description=u'赠送天数', help=u'包月资费,买断包月资费有效', value=0, required='required', **input_style)) items.append( btforms.Textbox('giftflows', rules.is_number, description=u'赠送流量(G)', help=u'流量包月资费有效', value=0, required='required', **input_style)) items.append( btforms.Textbox('fee_value', rules.is_rmb, description=u'缴费金额(套餐资费+收费项)*', required='required', **input_style)) items.append( btforms.Textbox('expire_date', rules.is_date, description=u'过期日期*', readonly='readonly', **input_style)) items.append( btforms.Hidden('status', value=1, description=u'用户状态', **input_style)) items.append( btforms.Dropdown('builder_name', args=[], description=u'指派施工人员', **input_style)) items.append( btforms.Textarea('customer_desc', description=u'备注信息', rows=4, **input_style)) items.append( btforms.Dropdown('billing_type', args=billing_types.items(), description=u'计费开始时间', **input_style)) items.append(btforms.Hidden('account_rule', description=u'账号生成规则')) items.append( btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style)) return form
multiple='multiple', size=5, **input_style), btforms.Textarea('tpl_content', rules.not_null, description=u'模板内容', rows=14, required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'创建票据模板', action='/admin/printtpl/add') print_tpl_update_form = btforms.Form(btforms.Hidden('id', description=u'模板ID'), btforms.Textbox('tpl_name', rules.len_of(2, 128), description=u'模板名', **input_style), btforms.Dropdown('tpl_types', description=u'打印类型(多选)', args=tpl_types.items(), required='required', multiple='multiple', size=5, **input_style), btforms.Textarea('tpl_content', rules.not_null, description=u'模板内容', rows=14,
def bas_update_form(nodes = []): return btforms.Form(btforms.Hidden('id', description=u'编号'), btforms.Textbox('ip_addr', rules.is_ip, description=u'接入设备地址', **input_style), btforms.Textbox('bas_name', rules.len_of(2, 64), description=u'接入设备名称', required='required', **input_style), btforms.Textbox('nas_id', rules.len_of(4, 32), description=u'接入设备标识', help=u'动态IP专用', **input_style), btforms.Textbox('bas_secret', rules.is_alphanum2(4, 32), description=u'共享秘钥', required='required', **input_style), btforms.Dropdown('vendor_id', description=u'接入设备类型', args=bastype.items(), required='required', **input_style), btforms.Dropdown('portal_vendor', description=u'portal协议', args=portaltype.items(), required='required', **input_style), btforms.Textbox('ac_port', rules.is_number, description=u'无线控制器端口', default=2000, **input_style), btforms.Textbox('coa_port', rules.is_number, description=u'授权端口', default=3799, required='required', **input_style), btforms.Dropdown('time_type', description=u'时间类型', args=timetype.items(), required='required', **input_style), btforms.Dropdown('nodes', description=u'绑定区域(多选)', args=nodes, required='required', multiple='multiple', size=6, **input_style), btforms.Button('submit', type='submit', html=u'<b>更新</b>', **button_style), attrs=dict(mselect=['nodes']), title=u'修改接入设备', htopic='bas', action='/admin/bas/update')
def account_open_form(products=[]): return btforms.Form(btforms.Hidden('node_id', description=u'区域', **input_style), btforms.Hidden('customer_id', description=u'编号'), btforms.Textbox('realname', description=u'用户姓名', readonly='readonly', **input_style), btforms.Textbox('account_number', description=u'用户账号', required='required', **input_style), btforms.Textbox('password', description=u'认证密码', required='required', **input_style), btforms.Button('button', type='button', onclick='reBuildAccount();', html=u'<b>重新生成账号密码</b>', **_btn_style), btforms.Textbox('ip_address', description=u'用户IP地址', **input_style), btforms.Textbox('address', description=u'用户装机地址', required='required', **input_style), btforms.Dropdown('product_id', args=products, description=u'资费', required='required', **input_style), btforms.Textbox('months', rules.is_number, description=u'月数(包月有效)', required='required', **input_style), btforms.Textbox('giftdays', rules.is_number, description=u'赠送天数', value=0, required='required', **input_style), btforms.Textbox('fee_value', rules.is_rmb, description=u'缴费金额', required='required', **input_style), btforms.Textbox('expire_date', rules.is_date, description=u'过期日期', required='required', **input_style), btforms.Hidden('status', value=1, description=u'用户状态', **input_style), btforms.Textarea('account_desc', description=u'用户描述', rows=4, **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'用户新开账号', action='/admin/account/open')
timetype = {0: u'标准时区,北京时间', 1: u'时区和时间同区'} bastype = {'0': u'标准', '3041': u'阿尔卡特', '2352': u'爱立信', '2011': u'华为', '25506': u'H3C', '3902': u'中兴', '14988': u'RouterOS/Smart6/神行者/Panabit', '10055': u'爱快路由', '30001': u'华为扩展1'} portaltype = {'0': u'无', 'cmccv1': u'中国移动 V1', 'cmccv2': u'中国移动 V2', 'huaweiv1': u'华为 V1', 'huaweiv2': u'华为 V2'} attr_types = {'ros_api_addr': u'RouterOS Api 地址', 'ros_api_port': u'RouterOS Api 端口', 'ros_api_user': u'RouterOS Api 用户', 'ros_api_pwd': u'RouterOS Api 密码'} def bas_add_form(nodes = []): return btforms.Form(btforms.Textbox('ip_addr', rules.is_ip, description=u'接入设备地址', **input_style), btforms.Textbox('bas_name', rules.len_of(2, 64), description=u'接入设备名称', required='required', **input_style), btforms.Textbox('nas_id', rules.len_of(4, 32), description=u'接入设备标识', help=u'动态IP专用', **input_style), btforms.Textbox('bas_secret', rules.is_alphanum2(4, 32), description=u'共享秘钥', required='required', **input_style), btforms.Dropdown('vendor_id', description=u'接入设备类型', args=bastype.items(), required='required', **input_style), btforms.Dropdown('portal_vendor', description=u'portal协议', args=portaltype.items(), required='required', **input_style), btforms.Textbox('coa_port', rules.is_number, description=u'授权端口', default=3799, required='required', **input_style), btforms.Textbox('ac_port', rules.is_number, description=u'无线控制器端口', default=2000, **input_style), btforms.Dropdown('time_type', description=u'时间类型', args=timetype.items(), required='required', **input_style), btforms.Dropdown('nodes', description=u'绑定区域(多选)', args=nodes, required='required', multiple='multiple', size=6, **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), attrs=dict(mselect=['nodes']), title=u'创建接入设备', htopic='bas', action='/admin/bas/add') def bas_update_form(nodes = []): return btforms.Form(btforms.Hidden('id', description=u'编号'), btforms.Textbox('ip_addr', rules.is_ip, description=u'接入设备地址', **input_style), btforms.Textbox('bas_name', rules.len_of(2, 64), description=u'接入设备名称', required='required', **input_style), btforms.Textbox('nas_id', rules.len_of(4, 32), description=u'接入设备标识', help=u'动态IP专用', **input_style), btforms.Textbox('bas_secret', rules.is_alphanum2(4, 32), description=u'共享秘钥', required='required', **input_style), btforms.Dropdown('vendor_id', description=u'接入设备类型', args=bastype.items(), required='required', **input_style), btforms.Dropdown('portal_vendor', description=u'portal协议', args=portaltype.items(), required='required', **input_style), btforms.Textbox('ac_port', rules.is_number, description=u'无线控制器端口', default=2000, **input_style), btforms.Textbox('coa_port', rules.is_number, description=u'授权端口', default=3799, required='required', **input_style), btforms.Dropdown('time_type', description=u'时间类型', args=timetype.items(), required='required', **input_style), btforms.Dropdown('nodes', description=u'绑定区域(多选)', args=nodes, required='required', multiple='multiple', size=6, **input_style), btforms.Button('submit', type='submit', html=u'<b>更新</b>', **button_style), attrs=dict(mselect=['nodes']), title=u'修改接入设备', htopic='bas', action='/admin/bas/update') bas_attr_add_form = btforms.Form(btforms.Hidden('bas_id', description=u'BAS编号'), btforms.Dropdown('attr_types', args=attr_types.items(), description=u'预定义属性', required='required', **input_style), btforms.Textbox('attr_name', rules.len_of(1, 255), description=u'属性名称', required='required', help=u'属性参考', **input_style), btforms.Textbox('attr_value', rules.len_of(1, 255), description=u'属性值', required='required', **input_style), btforms.Textbox('attr_desc', rules.len_of(1, 255), description=u'属性描述', required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'创建BAS属性', action='/admin/bas/attr/add') bas_attr_update_form = btforms.Form(btforms.Hidden('id', description=u'编号'), btforms.Hidden('bas_id', description=u'BAS编号'), btforms.Dropdown('attr_types', args=attr_types.items(), description=u'预定义属性', required='required', **input_style), btforms.Textbox('attr_name', rules.len_of(1, 255), description=u'属性名称', readonly='required', **input_style), btforms.Textbox('attr_value', rules.len_of(1, 255), description=u'属性值', required='required', **input_style), btforms.Textbox('attr_desc', rules.len_of(1, 255), description=u'属性描述', required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b>更新</b>', **button_style), title=u'修改BAS属性', action='/admin/bas/attr/update')
def ppmflow_product_update_form(): return btforms.Form(btforms.Hidden('id', description=u'编号'), btforms.Textbox('product_name', rules.len_of(4, 64), description=u'资费名称', required='required', **input_style), btforms.Dropdown('ispub', args=boolean.items(), description=u'是否发布到自助订购套餐', **input_style), btforms.Textbox('fee_flows', rules.is_number3, description=u'授权流量(G)', value=0, **input_style), btforms.Textbox('fee_price', rules.is_rmb, description=u'资费价格(元)', required='required', **input_style), btforms.Textbox('flow_price', rules.is_rmb, description=u'流量充值单价(元/G)', required='required', **input_style), btforms.Textbox('max_giftflows', rules.is_number3, description=u'最大赠送流量值(G)', required='required', **input_style), btforms.Dropdown('product_status', args=product_status_dict.items(), description=u'资费状态', required='required', **input_style), btforms.Textbox('concur_number', rules.is_numberOboveZore, description=u'并发数控制(0表示不限制)', value='0', **input_style), btforms.Dropdown('bind_mac', args=boolean.items(), description=u'是否绑定MAC ', **input_style), btforms.Dropdown('bind_vlan', args=boolean.items(), description=u'是否绑定VLAN ', **input_style), btforms.Textbox('input_max_limit', rules.is_number3, description=u'最大上行速率(Mbps)', required='required', **input_style), btforms.Textbox('output_max_limit', rules.is_number3, description=u'最大下行速率(Mbps)', required='required', **input_style), btforms.Dropdown('free_auth', args=boolean.items(), description=u'支持到期免费授权', **input_style), btforms.Textbox('free_auth_uprate', rules.is_number3, description=u' 免费授权最大上行速率(Mbps)', **input_style), btforms.Textbox('free_auth_downrate', rules.is_number3, description=u'免费授权最大下行速率(Mbps)', **input_style), btforms.Button('submit', type='submit', id='submit', html=u'<b>提交</b>', **button_style), title=u'创建预付费包月流量套餐', action='/admin/product/ppmf/update')
required='required', **input_style), btforms.Textbox('user_suffix_len', rules.is_number, description=u'账号后缀长度', value=6, required='required', **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'新增账号生成规则', htopic='node', action='/admin/account_rule/add') account_rule_update_form = btforms.Form(btforms.Hidden('id', description=u'规则ID'), btforms.Textbox('rule_name', rules.not_null, description=u'规则名称', required='required', **input_style), btforms.Textbox('user_prefix', rules.not_null, description=u'账号前缀', required='required', **input_style), btforms.Textbox('user_suffix_len', rules.is_number, description=u'账号后缀长度', value=6, readonly='readonly',
btforms.Textbox('domain', description=u'用户域', **input_style), btforms.Textarea('account_desc', description=u'用户描述', rows=4, **input_style), btforms.Button('submit', type='submit', html=u'<b>提交</b>', **button_style), title=u'用户策略修改', action='/admin/account/update') account_next_form = btforms.Form(btforms.Hidden('product_id', description=u'资费'), btforms.Hidden('old_expire', description=u''), btforms.Hidden('account_number', description=u'用户账号'), btforms.Textbox('months', rules.is_number, description=u'月数(预付费包月有效)', value=0, required='required', **input_style), btforms.Textbox('days', rules.is_number, description=u'天数数(预付费包日有效)', value=0, required='required', **input_style),