def create(): from gluon.tools import Crud #Hide the fields that should not be accessable by the user hideFields(db.game, ['host_id', 'game_status', 'password', 'winner_id', 'rules']) #Run the form #form = SQLFORM(db.game) #form.add_class('assassins-form') #form.vars.host_id=auth.user.id #Create the form crud = Crud(db) crud.messages.submit_button = 'Create Game' form = crud.create(db.game) form.add_class('assassins-form') form.vars.host_id = auth.user.id #When the form is submitted, add the creator as a player and go to new game if form.process().accepted: joinGame(form.vars.id, auth.user) resizeImage(db.game, form.vars.id) redirect(URL('default', 'game', args=form.vars.id)) return dict(form=form)
def create(): from gluon.tools import Crud #Hide the fields that should not be accessable by the user hideFields (db.game, ['host_id', 'game_status', 'password']) #Run the form #form = SQLFORM(db.game) #form.add_class('assassins-form') #form.vars.host_id=auth.user.id #Create the form crud = Crud(db) crud.messages.submit_button = 'Create Game' form = crud.create(db.game) form.add_class('assassins-form') form.vars.host_id=auth.user.id #When the form is submitted, add the creator as a player and go to new game if form.process().accepted: addPlayer(form.vars.id, auth.user) resizeImage(db.game, form.vars.id) redirect(URL('game', 'detail', args=form.vars.id)) return dict(form=form)
def add_log(): import re from datetime import datetime from gluon.tools import Crud pattern = re.compile(r""" \[(?P<time>.*?)\] \s(?P<mac>[0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}) \s(?P<more>.*) \s*""" , re.VERBOSE) crud = Crud(db) form = crud.create(db.log) if form.process(dbio=False).accepted: form.vars.log_id = db.log.insert(**dict(form.vars)) request.vars.log_file.file.seek(0) count=0 for line in request.vars.log_file.file: #print 'l', line match = pattern.findall(line) if match: d = datetime.strptime(match[0][0], '%m/%d/%y %H:%M:%S') db.record.insert(log_id=form.vars.log_id, station_id=form.vars.station_id, mac=match[0][1], gathered_on=d) count += 1 session.flash = 'Inserted %s record' % count try: cache.memcache.flush_all() #memcache client except: cache.memcache.clear() #web2py ram client redirect(URL(c='plot', f='index', vars={'id':form.vars.station_id})) return response.render('default/index.html', dict(form=form))
def accessory_crud(): """ Create a simple form using the CRUD function of web2py. """ from gluon.tools import Crud crud = Crud(db) accessory_crud = crud.create(db.accessory) return locals()
def add_log(): import re from datetime import datetime from gluon.tools import Crud pattern = re.compile(r""" \[(?P<time>.*?)\] \s(?P<mac>[0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}) \s(?P<more>.*) \s*""" , re.VERBOSE) crud = Crud(db) form = crud.create(db.log) if form.process(dbio=False).accepted: form.vars.log_id = db.log.insert(**dict(form.vars)) request.vars.log_file.file.seek(0) count=0 for line in request.vars.log_file.file: #print 'l', line match = pattern.findall(line) if match: d = datetime.strptime(match[0][0], '%m/%d/%y %H:%M:%S') db.record.insert(log_id=form.vars.log_id, station_id=form.vars.station_id, mac=match[0][1], gathered_on=d) count += 1 session.flash = 'Inserted %s record' % count redirect(URL(f='index', vars={'id':form.vars.station_id})) return response.render('default/index.html', dict(form=form))
def admin(): args = request.args title = 'administration' if not args: link = UL(*[LI(A(tab,_href=URL(args=tab))) for tab in db.tables]) return dict(items=link,title=title) if not args(1): i = 0 else: i =1 for tab in db.tables: if tab==args(i): tb = db[tab] crud = Crud(db) if args(0)=='edit': form = crud.update(tb, args(2),next=URL(f='admin',args=args(1))) items = None title = 'Edit %s ' % args(i) else: form = crud.create(tb) rows = db().select(tb.ALL) items = SQLTABLE(rows,linkto='edit') title = 'Insert %s ' % args(i) return dict(form=form,items=items,title=title)
def comments(): """ Function accessed by AJAX to handle Comments - for discuss(() & page() """ try: post_id = request.args[0] except: raise HTTP(400) table = s3db.cms_comment # Form to add a new Comment from gluon.tools import Crud crud = Crud() table.post_id.default = post_id table.post_id.writable = table.post_id.readable = False form = crud.create(table) # List of existing Comments comments = db(table.post_id == post_id).select(table.id, table.parent, table.body, table.created_by, table.created_on) output = UL(_id="comments") for comment in comments: if not comment.parent: # Show top-level threads at top-level thread = comment_parse(comment, comments, post_id=post_id) output.append(thread) # Also see the outer discuss() script = \ '''$('#comments').collapsible({xoffset:'-5',yoffset:'50',imagehide:img_path+'arrow-down.png',imageshow:img_path+'arrow-right.png',defaulthide:false}) $('#cms_comment_parent__row1').hide() $('#cms_comment_parent__row').hide() $('#cms_comment_body').ckeditor(ck_config) $('#submit_record__row input').click(function(){ $('#comment-form').hide() $('#cms_comment_body').ckeditorGet().destroy() return true })''' # No layout in this output! #s3.jquery_ready.append(script) output = DIV(output, DIV(H4(T("New Post"), _id = "comment-title"), form, _id = "comment-form", _class = "clear", ), SCRIPT(script)) return XML(output)
def add_station(): from gluon.tools import Crud crud = Crud(db) form = crud.create(db.station) if form.process(dbio=True).accepted: session.flash = 'Station added correctly' redirect(URL(f='index')) return response.render('default/index.html', dict(form=form))
def messages(): db = current.db auth = current.auth request = current.request crud = Crud(db) crud.settings.formstyle = 'table3cols' crud.settings.keepvalues = True crud.messages.submit_button = '送信' crud.messages.delete_label = '削除する' crud.messages.record_created = 'メッセージを作成しました' crud.messages.record_updated = 'メッセージを更新しました' crud.messages.record_deleted = '削除しました' crud.messages.create_log = 'Message Record %(id)s created' crud.messages.update_log = 'Message Record %(id)s updated' crud.settings.create_next = URL('messages') crud.settings.download_url = URL('download') crud.settings.create_onaccept = give_create_message_permission crud.settings.update_ondelete = remove_message_permission button = A(BUTTON('リストへ戻る'), _href=URL('messages')) db.messages.to_group.represent = show_to_group db.messages.to_group.requires = IS_IN_SET(get_to_group_list(), zero=None) db.messages.created_by.label = '作成者' db.messages.created_by.readable = True if (request.args(0) == 'read'): crud.settings.auth = auth if auth.has_permission('update', db.messages, request.args(1)): button += A(BUTTON('編集する'), _href=URL('messages/update', request.args(1))) return dict(form=crud.read(db.messages, request.args(1)), button=button) if (request.args(0) == 'new'): return dict(form=crud.create(db.messages), button=button) if (request.args(0) == 'update'): crud.settings.auth = auth db.messages.to_group.writable = False return dict(form=crud.update(db.messages, request.args(1), deletable=True), button=button) query = auth.accessible_query('read', db.messages, auth.user.id) db.messages.title.represent = lambda title, row: A( title, _href=URL(args=('read', row.id))) db.messages.id.represent = lambda id, row: '' form = crud.select(db.messages, query=query, fields=['title', 'created_by', 'modified_on', 'id'], orderby=~db.messages.modified_on, headers={ 'messages.title': '件名', 'messages.created_by': db.messages.created_by.label, 'messages.modified_on': '更新時刻', 'messages.id': '' }) return dict(form=form, button=A(BUTTON('新規作成'), _href=URL('messages/new')))
def accessory_crud(): """ Create a simple form using the CRUD function of web2py. """ #aqui ele formata tudo sozinho e ainda envia para o banco sozinho também #mostra a mensagem de falha sozinho from gluon.tools import Crud crud = Crud(db) accessory_crud = crud.create(db.accessory) return locals()
def people(): from gluon.tools import Crud crud = Crud(db) form = crud.create(db.client, next=URL('people'),message=T("record created")) persons = crud.select(db.client, fields=['name'],headers={'client.name': 'Name'}) return dict(form=form, persons=persons)
def autocomplet(): from gluon.tools import Crud crud = Crud(db) form = crud.create(db.product2, next=URL('autocomplet'),message=T("record created")) persons = crud.select(db.product2, fields=['category'],headers={'product2.category': 'Tipo'}) return dict(form=form, persons=persons)
def crud(): tablename = request.args(0) action = request.args(1) event_id = request.get_vars['eid'] record_id = request.get_vars['id'] if session.crud and session.crud.return_page: return_page = URL(session.crud.return_page) else: return_page = URL('table/' + tablename) crud = Crud(shotdb) crud.settings.auth = auth # ensures access control via permissions crud.settings.controller = 'staff' crud.settings.create_next = return_page crud.settings.update_next = return_page crud.settings.update_deletable = True crud.settings.showid = True if session.crud and session.crud.fix_ref_id: for ref_table, ref_id in session.crud.fix_ref_id.iteritems(): if ref_id > 0 and ref_table in shotdb[tablename]: shotdb[tablename][ref_table].default = ref_id shotdb[tablename][ref_table].writable = False # add event filter to drop down selectors if event_id != None and event_id > 0: if tablename == 'help': shotdb.help.shift.requires = IS_IN_DB(shotdb(shotdb.shift.event == event_id), 'shift.id', '%(activity)s, %(day)s, %(time)s') elif tablename == 'bring': shotdb.bring.donation.requires = IS_IN_DB(shotdb(shotdb.donation.event == event_id), 'donation.id', '%(item)s') if tablename == 'person': crud.settings.create_onvalidation = __create_person_onvalidation crud.settings.update_onvalidation = __update_person_onvalidation crud.settings.update_onaccept = __update_person_onaccept crud.settings.update_ondelete = __update_person_ondelete shotdb.person.code.writable = False shotdb.person.verified.writable = False crud.messages.record_created = None else: # default flash messages crud.messages.record_created = None crud.messages.record_updated = None crud.messages.record_deleted = 'Der Datenbankeintrag wurde gelöscht.' if(action == 'add'): crud_response = crud.create(tablename) elif(action == 'edit' and record_id != None): crud_response = crud.update(tablename, record_id) else: crud_response = 'Nothing selected!' return dict(crud_response = crud_response)
def index(): """ example action using the internationalization operator T and flash rendered by views/default/index.html or views/generic.html """ from gluon.tools import Crud crud = Crud(db) form = crud.create(db.userskill) return dict(form=form)
def hoi_dap(): forlder_id = cms.get_folder(request.args(0)) hoi_dap = cms.define_table(tablename ='hoi_dap',migrate=True) hoi_dap.folder.writable=False hoi_dap.folder.readable=False hoi_dap.folder.default=forlder_id hoi_dap.avatar.writable=False hoi_dap.avatar.readable=False hoi_dap.avatar.default=' ' hoi_dap.htmlcontent.writable=False hoi_dap.htmlcontent.readable=False from gluon.tools import Recaptcha public_key='6LdtT_YSAAAAALCH4vbHKl1yjqvhB80JZh1J21Lv' private_key='6LdtT_YSAAAAAI6XnBMNNWwSkJeSYtbP_-kW5HUH' ### provided by recaptcha.net from gluon.tools import Crud crud = Crud(cms.db) crud.settings.captcha = Recaptcha(request,public_key,private_key,options = "lang:'en', theme:'clean'") form=crud.create(hoi_dap) # form[0].insert(-1, TR('', Recaptcha(request,public_key,private_key,options = "lang:'en', theme:'clean'"))) if form.process().accepted: from plugin_process import ProcessModel process = ProcessModel() objects = process.define_objects(True) log = process.define_process_log(True) objects_id =objects.insert(folder=forlder_id ,tablename='hoi_dap',table_id=form.vars.id ,process=2) log.insert(objects=objects_id, process=2) response.flash=T('done!') # scr ='''<script type="text/javascript"> # setInterval("location.reload();",1000); # </script>''' # form.append(XML(scr)) # if form.errors: # response.flash=T('Loi nhap du lieu!') # scr ='''<script type="text/javascript"> # setInterval("location.reload();",1000); # </script>''' # form.append(XML(scr)) div = DIV(_id='hoi_dap') div.append(DIV(H2('Nhập câu hỏi',_class="title_box"),_class="tinlienquan")) div.append(form) response.view = 'layout/hoi_dap_13.html' return dict(content=div)
def add_cong_ty(): id_folder = request.args(1) name = request.args(2) from plugin_ckeditor import CKEditor div = DIV(_class='col-md-12') div.append( H2(SPAN('Khởi tạo gian hàng', _class='title_name'), _class='title_page')) cong_ty = cms.define_table('cong_ty') from gluon.tools import Crud crud = Crud(cms.db) cong_ty.folder.default = id_folder cong_ty.folder.writable = False cong_ty.folder.readable = False cong_ty.start_time.writable = False cong_ty.start_time.readable = False cong_ty.danh_gia.writable = False cong_ty.danh_gia.readable = False cong_ty.is_maps.writable = False cong_ty.is_maps.readable = False form = crud.create(cong_ty) if form.process().accepted: from plugin_process import ProcessModel objects = ProcessModel().define_objects() objects_id = objects.insert(folder=id_folder, foldername=name, tablename='cong_ty', table_id=form.vars.id, auth_group=8, process=3) link = name.replace('đ', 'd') link = '%s.html' % IS_SLUG.urlify(link) dcontent = cms.define_dcontent() dcontent.insert(folder=id_folder, dtable='cong_ty', table_id=form.vars.id, link=link, name=form.vars.name, avatar=form.vars.avatar, description=form.vars.description, publish_on=request.now, expired_on=None) cms.db(cong_ty.id == form.vars.id).update(link=link) redirect(URL(c='portal', f='folder', args=[name])) div.append(form) response.view = 'layout/home_dang_ky_nha_cung_cap.html' return dict(content=div)
def create_dropdown(): table, field = request.args(0).split('.') refereed = db[table][field].type[10:] if db[table][ field].type[:9] == 'reference' else db[table][field].type[15:] db[table][field].requires = IS_IN_DB(db, refereed + '.id', '%(name)s') from gluon.tools import Crud crud = Crud(db) form = crud.create(db[refereed]) if form.vars.id: session['_plugin_dropbox:%s' % request.args(0)] = form.vars.id options = UL(*[ LI(v) for k, v in db[table][field].requires.options() if k == str(form.vars.id) ]) return dict(form=form, options=options)
def zuoye(): zuozhe=auth.user_id keshi_id=request.args[0] crud=Crud(db) if db.zuoye((db.zuoye.zuozhe==zuozhe)&(db.zuoye.keshi==keshi_id)): db.zuoye.defen.writable=False zuoye_id=db.zuoye((db.zuoye.zuozhe==zuozhe)&(db.zuoye.keshi==keshi_id)).id form=crud.update(db.zuoye,zuoye_id,deletable=False,next=request.url) db.zuoye.defen.writable=True else: db.zuoye.zuozhe.default=zuozhe db.zuoye.keshi.default=keshi_id db.zuoye.defen.writable=False form=crud.create(db.zuoye,next=request.url) # db.zuoye.zuozhe.default=None db.zuoye.keshi.default=None db.zuoye.defen.writable=True return dict(form=form)
def crud(): tablename = request.args(0) action = request.args(1) record_id = request.get_vars['id'] crud_ = Crud(shotdb) crud_.settings.controller = 'config' crud_.settings.create_next = URL('config_event') crud_.settings.update_next = URL('config_event') crud_.settings.update_deletable = False crud_.settings.showid = True if(action == 'add'): crud_response = crud_.create(tablename) elif(action == 'edit' and record_id != None): crud_response = crud_.update(tablename, record_id) else: crud_response = 'Nothing selected!' return dict(crud_response = crud_response)
def crudeGeral(): from gluon.tools import Crud crud = Crud(db) form = crud.create(db.client) id=1 form2 = crud.read(db.client, id) form3 = crud.update(db.client, id) form4 = crud.search(db.client) #form5 = SQLFORM(db.client, myrecord).process(onsuccess=auth.archive) #form5 = crud.update(db.mytable, myrecord, onaccept=auth.archive) return dict(form=form,form2=form2,form3=form3,form4=form4)
def form_y_kien_du_thao(): vb_du_thao=request.vars.vbdt div = DIV(_id='hoi_dap') div.append(DIV(H2('Gửi ý kiến đóng góp',_class="title_box"),_class="tinlienquan")) from gluon.tools import Recaptcha public_key='6LdtT_YSAAAAALCH4vbHKl1yjqvhB80JZh1J21Lv' private_key='6LdtT_YSAAAAAI6XnBMNNWwSkJeSYtbP_-kW5HUH' ### provided by recaptcha.net gop_y_du_thao = cms.define_table(tablename ='gop_y_du_thao',migrate=True) gop_y_du_thao.r_gop_y_du_thao.writable=False gop_y_du_thao.r_gop_y_du_thao.readable=False gop_y_du_thao.r_gop_y_du_thao.default=vb_du_thao from gluon.tools import Crud crud = Crud(cms.db) form=crud.create(gop_y_du_thao) form[0].insert(-1, TR('', Recaptcha(request,public_key,private_key,options = "lang:'en', theme:'clean'"))) div.append(form) return div
def crud(): tablename = request.args(0) action = request.args(1) id_ = request.args(2) if session.crud and session.crud.return_page: return_page = session.crud.return_page else: return_page = URL('admin_', 'manage_users') crud = Crud(shotdb) crud.settings.controller = 'admin_' crud.settings.create_next = return_page crud.settings.update_next = return_page crud.settings.update_deletable = True crud.settings.showid = True if(action == 'add'): crud_response = crud.create(tablename) elif(action == 'edit' and id_ != None): onaccept = None if tablename == 'auth_user': shotdb['auth_user']['registration_key'].writable = True elif tablename == 'config': crud.settings.update_deletable = False shotdb['config']['name'].writable = False # update the configuration object, drop the passed argument form onaccept = lambda form: config.update(shotdb) crud_response = crud.update(tablename, id_, onaccept = onaccept) else: crud_response = 'Nothing selected!' return dict(crud_response = crud_response)
def createpost(): from gluon.tools import Crud crud = Crud(db) form = crud.create(db.blogpost) if auth.user else None return dict(form=form)