示例#1
0
    def get_users_messages(self):
        locations = SQLLocation.active_objects.filter(
            domain=self.domain, location_type__administrative=False)
        for sql_location in locations:
            in_charges = list(
                map(
                    CommCareUser.wrap,
                    iter_docs(CommCareUser.get_db(), [
                        in_charge.user_id for in_charge in
                        sql_location.facilityincharge_set.all()
                    ])))
            web_users = [
                web_user for web_user in get_web_users_by_location(
                    self.domain, sql_location.location_id)
                if has_notifications_enabled(self.domain, web_user)
            ]
            message, kwargs = self.get_message_for_location(sql_location)

            for user in web_users + in_charges:
                phone_number = get_preferred_phone_number_for_recipient(user)
                if not phone_number:
                    continue

                kwargs['name'] = user.full_name
                if message:
                    yield user, phone_number, message % kwargs
 def recipients_filter(self, user):
     sql_location = user.get_sql_location(self.domain)
     if not sql_location or not sql_location.location_type.administrative:
         return False
     date = datetime.datetime.utcnow() - datetime.timedelta(weeks=13)
     return user.last_login < date and has_notifications_enabled(
         self.domain, user)
示例#3
0
    def get_users_messages(self):
        locations = SQLLocation.active_objects.filter(domain=self.domain, location_type__administrative=False)
        for sql_location in locations:
            in_charges = list(map(CommCareUser.wrap, iter_docs(
                CommCareUser.get_db(),
                [in_charge.user_id for in_charge in sql_location.facilityincharge_set.all()]
            )))
            web_users = [
                web_user
                for web_user in get_web_users_by_location(self.domain, sql_location.location_id)
                if has_notifications_enabled(self.domain, web_user)
            ]
            message, kwargs = self.get_message_for_location(sql_location)

            for user in web_users + in_charges:
                phone_number = get_preferred_phone_number_for_recipient(user)
                if not phone_number:
                    continue

                kwargs['name'] = user.full_name
                if message:
                    yield user, phone_number, message % kwargs
示例#4
0
 def send(self):
     for recipient, message in self.get_users_messages():
         phone_number = get_preferred_phone_number_for_recipient(recipient)
         if phone_number and has_notifications_enabled(self.domain, recipient):
             send_sms(self.domain, recipient, phone_number, message)
示例#5
0
 def send(self):
     for recipient, message in self.get_users_messages():
         phone_number = get_preferred_phone_number_for_recipient(recipient)
         if phone_number and has_notifications_enabled(self.domain, recipient):
             send_sms(self.domain, recipient, phone_number, message)
示例#6
0
 def send(self):
     phone_number = get_preferred_phone_number_for_recipient(self.user)
     if phone_number and has_notifications_enabled(self.domain, self.user):
         send_sms(self.domain, self.user, phone_number, self.message)
 def recipients_filter(self, user):
     sql_location = user.get_sql_location(self.domain)
     if not sql_location or not sql_location.location_type.administrative:
         return False
     date = datetime.datetime.utcnow() - datetime.timedelta(weeks=13)
     return user.last_login < date and has_notifications_enabled(self.domain, user)
示例#8
0
 def recipients_filter(self, user):
     return has_notifications_enabled(self.domain, user)
示例#9
0
 def send(self):
     phone_number = get_preferred_phone_number_for_recipient(self.user)
     if phone_number and has_notifications_enabled(self.domain, self.user):
         send_sms(self.domain, self.user, phone_number, self.message)