Пример #1
0
    def handle(self, *args, **options):
        domain, group_name = args
        group = Group.by_name(domain, name=group_name)
        owner_ids = get_all_owner_ids_from_group(group)
        pillow = CareBiharFluffPillow()
        db = CommCareCase.get_db()

        greenlets = []

        def process_case(case):
            pillow.change_transport(pillow.change_transform(case))


        for i, owner_id in enumerate(owner_ids):
            print '{0}/{1} owner_ids'.format(i, len(owner_ids))
            rows = CommCareCase.view(
                'hqcase/by_owner',
                startkey=[domain, owner_id],
                endkey=[domain, owner_id, {}],
                reduce=False,
            ).all()
            case_ids = [row['id'] for row in rows]
            print '{0} case_ids'.format(len(case_ids))
            for case in iter_docs(db, case_ids):
                g = gevent.Greenlet.spawn(process_case, case)
                greenlets.append(g)
        gevent.joinall(greenlets)
Пример #2
0
    def case_filter(self):
        group_id = self.request_params.get('group', '')
        filters = []

        if group_id:
            group = Group.get(group_id)
            users_in_group = get_all_owner_ids_from_group(group)
            if users_in_group:
                or_stm = []
                for user_id in users_in_group:
                    or_stm.append({'term': {'owner_id': user_id}})
                filters.append({"or": or_stm})
            else:
                filters.append({'term': {'owner_id': group_id}})

        return {'and': filters} if filters else {}
Пример #3
0
    def case_filter(self):
        group_id = self.request_params.get('group', '')
        filters = []

        if group_id:
            group = Group.get(group_id)
            users_in_group = get_all_owner_ids_from_group(group)
            if users_in_group:
                or_stm = []
                for user_id in users_in_group:
                    or_stm.append({'term': {'owner_id': user_id}})
                filters.append({"or": or_stm})
            else:
                filters.append({'term': {'owner_id': group_id}})

        return {'and': filters} if filters else {}
Пример #4
0
    def handle(self, *args, **options):
        domain, group_name = args
        group = Group.by_name(domain, name=group_name)
        owner_ids = get_all_owner_ids_from_group(group)
        pillow = CareBiharFluffPillow()
        db = CommCareCase.get_db()

        greenlets = []

        def process_case(case):
            pillow.change_transport(pillow.change_transform(case))

        for i, owner_id in enumerate(owner_ids):
            print '{0}/{1} owner_ids'.format(i, len(owner_ids))
            case_ids = get_case_ids_in_domain_by_owner(domain,
                                                       owner_id=owner_id)
            print '{0} case_ids'.format(len(case_ids))
            for case in iter_docs(db, case_ids):
                g = gevent.Greenlet.spawn(process_case, case)
                greenlets.append(g)
        gevent.joinall(greenlets)
Пример #5
0
    def handle(self, *args, **options):
        domain, group_name = args
        group = Group.by_name(domain, name=group_name)
        owner_ids = get_all_owner_ids_from_group(group)
        pillow = CareBiharFluffPillow()
        db = CommCareCase.get_db()

        greenlets = []

        def process_case(case):
            pillow.change_transport(pillow.change_transform(case))

        for i, owner_id in enumerate(owner_ids):
            print '{0}/{1} owner_ids'.format(i, len(owner_ids))
            case_ids = get_case_ids_in_domain_by_owner(
                domain, owner_id=owner_id)
            print '{0} case_ids'.format(len(case_ids))
            for case in iter_docs(db, case_ids):
                g = gevent.Greenlet.spawn(process_case, case)
                greenlets.append(g)
        gevent.joinall(greenlets)
    def handle(self, *args, **options):
        args = list(args)
        domain = args.pop(0)
        group_id_or_name = args.pop(0)
        slugs = args.pop(0) if args else None

        try:
            group = Group.get(group_id_or_name)
            assert group.domain == domain
        except ResourceNotFound:
            group = Group.by_name(domain, group_id_or_name)

        owner_ids = get_all_owner_ids_from_group(group)

        if slugs:
            lines = [(slug,) + get_calculation(owner_ids, slug)
                     for slug in slugs.split(' ')]
        else:
            lines = get_all_calculations(owner_ids)

        for line in lines:
            print '\t'.join(map(unicode, line))
Пример #7
0
    def handle(self, *args, **options):
        args = list(args)
        domain = args.pop(0)
        group_id_or_name = args.pop(0)
        slugs = args.pop(0) if args else None

        try:
            group = Group.get(group_id_or_name)
            assert group.domain == domain
        except ResourceNotFound:
            group = Group.by_name(domain, group_id_or_name)

        owner_ids = get_all_owner_ids_from_group(group)

        if slugs:
            lines = [(slug, ) + get_calculation(owner_ids, slug)
                     for slug in slugs.split(' ')]
        else:
            lines = get_all_calculations(owner_ids)

        for line in lines:
            print '\t'.join(map(unicode, line))
Пример #8
0
 def all_owner_ids(self):
     return get_all_owner_ids_from_group(self.group)
Пример #9
0
 def all_owner_ids(self):
     groups = groups_for_user(self.request.couch_user, self.domain)
     return set([
         id for group in groups
         for id in get_all_owner_ids_from_group(group)
     ])
Пример #10
0
 def all_owner_ids(self):
     return set([
         id for group in self.groups
         for id in get_all_owner_ids_from_group(group)
     ])
Пример #11
0
 def all_owner_ids(self):
     groups = groups_for_user(self.request.couch_user, self.domain)
     return set([id for group in groups for id in get_all_owner_ids_from_group(group)])
Пример #12
0
 def all_owner_ids(self):
     return get_all_owner_ids_from_group(self.group)
Пример #13
0
 def all_owner_ids(self):
     return set([id for group in self.groups for id in get_all_owner_ids_from_group(group)])