def index(self):

        context = {
            'model': model,
            'session': model.Session,
            'user': c.user or c.author
        }
        data_dict = {'all_fields': True}

        try:
            check_access('site_read', context)
        except NotAuthorized:
            abort(401, _('Not authorized to see this page'))

        # This used to be just used by the hierarchy but now is not, but it is
        # now used for search autocomplete and count.
        # c.all_groups = model.Session.query(model.Group).\
        #                filter(model.Group.type == 'organization').\
        #                filter(model.Group.state == 'active').\
        #                order_by('title')
        # c.page = AlphaPage(
        #     controller_name="ckanext.dgu_orgs.controllers.organisation:OrganisationController",
        #     collection=c.all_groups,
        #     page=request.params.get('page', 'A'),
        #     alpha_attribute='title',
        #     other_text=_('Other'),
        # )

        return render('organisation/index.html')
    def users(self, id, data=None, errors=None, error_summary=None):
        c.group = model.Group.by_name(id)

        if not c.group:
            abort(404, _('Group not found'))

        context = {
            'model': model,
            'session': model.Session,
            'user': c.user or c.author,
            'group': c.group
        }

        try:
            check_access('group_update', context)
        except NotAuthorized, e:
            abort(401, _('User %r not authorized to edit %s') % (c.user, id))
    def report_groups_without_admins(self):
        context = {
            'model': model,
            'session': model.Session,
            'user': c.user or c.author
        }
        try:
            check_access('group_create', context)
        except NotAuthorized:
            abort(401, _('Not authorized to see this page'))

        g_query = """SELECT g.* FROM public.group g WHERE id NOT IN
                    (SELECT group_id FROM public.member WHERE capacity='admin')
                    ORDER BY g.name;"""
        c.non_admin = model.Session.query(
            model.Group).from_statement(g_query).all()
        c.non_admin_count = len(c.non_admin)

        return render('organisation/report_groups_without_admins.html')
    def report_users_not_assigned_to_groups(self):
        context = {
            'model': model,
            'session': model.Session,
            'user': c.user or c.author
        }
        try:
            check_access('group_create', context)
        except NotAuthorized:
            abort(401, _('Not authorized to see this page'))

        query = """SELECT * FROM public.user WHERE id NOT IN
                (SELECT table_id FROM public.member WHERE table_name='user')
                ORDER BY created desc;"""
        c.unassigned_users = model.Session.query(
            model.User).from_statement(query).all()
        c.unassigned_users_count = len(c.unassigned_users)

        return render('organisation/report_users_not_assigned_to_groups.html')
    def report_users(self):
        context = {
            'model': model,
            'session': model.Session,
            'user': c.user or c.author
        }
        try:
            check_access('group_create', context)
        except NotAuthorized:
            abort(401, _('Not authorized to see this page'))

        q = model.Session.query(model.User).order_by(model.User.created.desc())
        c.count = q.count()

        c.page = h.Page(
            collection=q,
            page=int(request.params.get('page', 1)),
            url=h.pager_url,
            items_per_page=report_limit,
        )

        return render('organisation/report_users.html')