A couple of things: query = 'SELECT auth_user.id FROM auth_user,auth_membership where auth_user.id>0 and auth_user.id not in (select auth_membership.user_id from auth_membership where auth_membership.group_id='+str(group_id)+') group by auth_user.id' rows = db.executesql(query)
would be rows = db(~db.auth_user.id.belongs(db (db.auth_membership.group_id==group_id)._select (db.auth_membership.user_id))).select(db.auth_user.id) This instead {{=LOAD('plugin_groups',f='index',args=[request.args(0)],ajax=True)}} should be {{=LOAD('plugin_groups','index',args=[request.args(0)],ajax=True)}} I am not sure about the other issue. Can you explain it again? On Jan 3, 6:18 am, KMax <mkostri...@gmail.com> wrote: > I have some progress here. Code might looks ugly, please excuse my > newbie try. > As you can see I use raw sql query to my postgress, since I fail to > make same by web2py dal > --begin of plugin controller-- > def index(): > group_id=request.args(0) > if IS_IN_DB(db(db.auth_user.id==request.vars.id),db.auth_user.id): > if request.vars.action == 'del': > if db((db.auth_membership.user_id == request.vars.id) & > (db.auth_membership.group_id == group_id)).select(): > auth.del_membership(group_id,request.vars.id) > if request.vars.action == 'add': > if db((db.auth_membership.user_id == request.vars.id) & > (db.auth_membership.group_id == group_id)).select(): > pass > else: > auth.add_membership(group_id,request.vars.id) > group=db.auth_group[group_id] or redirect(URL > (request.application,'roles','groups')) > members = db(db.auth_membership.group_id == group_id).select > (db.auth_membership.user_id) > query = 'SELECT auth_user.id FROM auth_user,auth_membership where > auth_user.id>0 and auth_user.id not in (select auth_membership.user_id > from auth_membership where auth_membership.group_id='+str(group_id)+') > group by auth_user.id' > notmembers = db.executesql(query) > return dict > (members=members,notmembers=notmembers,group_id=group_id) > ---end of controller-- > ---begin view--- > <table class="smarttable"> > <thead> > <tr> > <th>{{=T('Members')}}</th><th>{{=T('Action')}}</th> > </tr> > </thead> > <tbody> > {{for member in members:}} > <tr> > <td>{{=A(str(db.auth_user[member.user_id].first_name)+' '+str > (db.auth_user[member.user_id].last_name)+' login:'+str(db.auth_user > [member.user_id].email),_href=URL > (r=request,c='plugin_groups',f='index',args=group_id,vars= > {'action':'del','id':member.user_id}))}}</td> > <td>{{=SPAN('[',A('remove',_href=URL > (r=request,c='plugin_groups',f='index',args=group_id,vars= > {'action':'del','id':member.user_id})),']')}}</td> > </tr> > {{pass}} > <tr> > <th>{{=T('NotMembers')}}</th><th>{{=T('Action')}}</th> > </tr> > {{for member in notmembers:}} > {{notmember=member[0]}} > <tr> > <td>{{=A(str(db.auth_user[notmember].first_name) + ' ' + str > (db.auth_user[notmember].last_name) + ' ' + str(db.auth_user > [notmember].email),_href=URL > (r=request,c='plugin_groups',f='index',args=group_id,vars= > {'action':'add','id':notmember}))}}</td> > <td>{{=SPAN('[',A('add',_href=URL > (r=request,c='plugin_groups',f='index',args=group_id,vars= > {'action':'add','id':notmember})),']')}}</td> > </tr> > {{pass}} > </tbody> > </table> > --end of view--- > Now loading the plugin at main-application > /welcome/default/index.html: > ---- > {{extend 'layout.html'}} > <h1>{{=T('Add/remove users for group:')}}{{=db.auth_group[request.args > (0)].role}}</h1> > {{=LOAD('plugin_groups',args=[request.args(0)],ajax=True)}} > ---- > First of all(as small bug report?, i do not need this functuanality): > {{=LOAD('plugin_groups',f='index',args=[request.args(0)],ajax=True)}} > Shows error: TypeError: __call__() got an unexpected keyword argument > 'f' > on line: response.write(LOAD('plugin_groups',f='index',args= > [request.args(0)],ajax=True)) > Second one (more important for me): > I usehttp://vimeo.com/7182692as a manual > And if I add or remove on page: which loads plugins, link does not > update internal area, but follow to /welcome/plugin_groups/index/1 > (/1 - group_id) > I realy want to make cool ajax page, but failed. Please point to > possibly other approach to web2py ajax sollution. > > Thank you, for your attention. -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@googlegroups.com. To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.