If you just need to add a filter it's probably better to avoid issues in
the future to just add the kw.update line and then call
super._do_get_provider_count_and_objs instead of copying the whole
implementation


On Tue, Nov 5, 2013 at 9:39 PM, Stuart Zurcher <[email protected]>wrote:

> Ok. Found the solution, thanks to Alessandro, and posting for others.
> I am using ming with auth quickstarted.
> The following will provide a subset of users with 'plats' in _groups of
> the User entity in my customAdmin.py
> Key line highlighted in bold.  Adjust filter query semantics to your ORM
> provider and needs.
>
>
> from projectName.model.auth import User, Group, Permission
>>
>> from tgext.admin.mongo import TGMongoAdminConfig
>> from tgext.admin.tgadminconfig import CrudRestControllerConfig
>> from tgext.admin.controller import AdminController
>>
>> try:
>>     from tgext.crud.utils import SortableTableBase as TableBase
>> except:
>>     from sprox.tablebase import TableBase
>>
>> try:
>>     from tgext.crud.utils import RequestLocalTableFiller as TableFiller
>> except:
>>     from sprox.fillerbase import TableFiller
>> from tg.predicates import in_group
>>
>>
>> class MyAdminConfig(TGMongoAdminConfig):
>>     default_index_template = "mako:projectName.templates.admin"
>>
>>
>>
>>     class user(CrudRestControllerConfig):
>>         class table_type(TableBase):
>>             __entity__ = User
>>             __limit_fields__ = ['display_name', 'email_address', 'groups']
>>
>>             __url__ = '../user.json' #this just tidies up the URL a bit
>>
>>         class table_filler_type(TableFiller):
>>             __entity__ = User
>>             __limit_fields__ = ['_id', 'display_name',  'email_address',
>> 'groups']
>>
>>
>>             def _do_get_provider_count_and_objs(self, **kw):
>>                 limit = kw.pop('limit', None)
>>                 offset = kw.pop('offset', None)
>>                 order_by = kw.pop('order_by', None)
>>                 desc = kw.pop('desc', False)
>>                 substring_filters = kw.pop('substring_filters', [])
>>                 *kw.update({'_groups':{'$in': ['plats']}})*
>>
>>                 count, objs = self.__provider__.query(self.__entity__,
>> limit, offset, self.__limit_fields__,
>>                                                       order_by, desc,
>> substring_filters=substring_filters,
>>                                                       filters=kw)
>>                 self.__count__ = count
>>                 return count, objs
>>
>>
>> class MyAdminController(AdminController):
>>     allow_only = in_group('plats',
>>                          msg=('DB can only be administered by Plat
>> Reiview staff.'))
>>
>
> Saved by the group.
>
>
>
> Thank you for the replies.  I'll revisit this later today or tomorrow.
> Have a detour project to work on.
> Stuart
>
> On Monday, November 4, 2013 8:05:50 AM UTC-6, Stuart Zurcher wrote:
>
>> I have been looking around and have not found any documentation or
>> examples of providing a subset of the entity for admin.
>>
>> I would like to provide all users of a group for that group's
>> administrator.  I can hard code the forms but was wondering if there is a
>> simpler way with the admin module as I have several of these type of
>> instances which a simple solution would save considerable time.
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "TurboGears" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/turbogears.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/turbogears.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to