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 use http://vimeo.com/7182692 as 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.


Reply via email to