def get_location_rows(domain): users = CommTrackUser.by_domain(domain) mappings = [] for user in users: locations = user.locations for location in locations: mappings.append( [user.raw_username, location.site_code, location.name]) return mappings
def send_soh_reminder(domain, date): sp_ids = set() for user in CommTrackUser.by_domain(domain): if user.is_active and user.location and user.location.location_type == 'FACILITY': sp = SupplyPointCase.get_by_location(user.location) if sp and not StockTransaction.objects.filter(case_id=sp._id, report__date__gte=date, type='stockonhand').exists(): if user.get_verified_number(): send_sms_to_verified_number(user.get_verified_number(), REMINDER_STOCKONHAND) sp_ids.add(sp._id) update_statuses(sp_ids, SupplyPointStatusTypes.SOH_FACILITY, SupplyPointStatusValues.REMINDER_SENT)
def send_supervision_reminder(domain, date): sp_ids = set() for user in CommTrackUser.by_domain(domain): if user.is_active and user.location and user.location.location_type == 'FACILITY': sp = SupplyPointCase.get_by_location(user.location) if sp and not SupplyPointStatus.objects.filter(supply_point=sp._id, status_type=SupplyPointStatusTypes.SUPERVISION_FACILITY, status_date__gte=date).exists(): if user.get_verified_number(): send_sms_to_verified_number(user.get_verified_number(), REMINDER_SUPERVISION) sp_ids.add(sp._id) update_statuses(sp_ids, SupplyPointStatusTypes.SUPERVISION_FACILITY, SupplyPointStatusValues.REMINDER_SENT)
def get_location_rows(domain): users = CommTrackUser.by_domain(domain) mappings = [] for user in users: locations = user.locations for location in locations: mappings.append([ user.raw_username, location.site_code, location.name ]) return mappings
def send_supervision_reminder(domain, date): sp_ids = set() for user in CommTrackUser.by_domain(domain): if user.is_active and user.location and user.location.location_type == 'FACILITY': sp = SupplyPointCase.get_by_location(user.location) if sp and not SupplyPointStatus.objects.filter( supply_point=sp._id, status_type=SupplyPointStatusTypes.SUPERVISION_FACILITY, status_date__gte=date).exists(): if user.get_verified_number(): send_sms_to_verified_number(user.get_verified_number(), REMINDER_SUPERVISION) sp_ids.add(sp._id) update_statuses(sp_ids, SupplyPointStatusTypes.SUPERVISION_FACILITY, SupplyPointStatusValues.REMINDER_SENT)
def send_ror_reminder(domain, date, loc_type='FACILITY'): if loc_type == 'FACILITY': status_type = SupplyPointStatusTypes.R_AND_R_FACILITY sms_text = REMINDER_R_AND_R_FACILITY elif loc_type == 'DISTRICT': status_type = SupplyPointStatusTypes.R_AND_R_DISTRICT sms_text = REMINDER_R_AND_R_DISTRICT else: return current_group = DeliveryGroups().current_submitting_group(date.month) sp_ids = set() for user in CommTrackUser.by_domain(domain): if user.is_active and user.location and user.location.location_type == loc_type: sp = SupplyPointCase.get_by_location(user.location) if current_group in get_groups(sp.location.metadata.get('groups', None)) \ and not SupplyPointStatus.objects.filter(supply_point=sp._id, status_type=status_type, status_date__gte=date).exists(): if user.get_verified_number(): send_sms_to_verified_number(user.get_verified_number(), sms_text) sp_ids.add(sp._id) update_statuses(sp_ids, status_type, SupplyPointStatusValues.REMINDER_SENT)
def send_ror_reminder(domain, date, loc_type='FACILITY'): if loc_type == 'FACILITY': status_type = SupplyPointStatusTypes.R_AND_R_FACILITY sms_text = REMINDER_R_AND_R_FACILITY elif loc_type == 'DISTRICT': status_type = SupplyPointStatusTypes.R_AND_R_DISTRICT sms_text = REMINDER_R_AND_R_DISTRICT else: return current_group = get_current_group() sp_ids = set() for user in CommTrackUser.by_domain(domain): if user.is_active and user.location and user.location.location_type == loc_type: sp = SupplyPointCase.get_by_location(user.location) if current_group in get_groups(sp.location.metadata.get('groups', None)) \ and not SupplyPointStatus.objects.filter(supply_point=sp._id, status_type=status_type, status_date__gte=date).exists(): if user.get_verified_number(): send_sms_to_verified_number(user.get_verified_number(), sms_text) sp_ids.add(sp._id) update_statuses(sp_ids, status_type, SupplyPointStatusValues.REMINDER_SENT)
def _send_delivery_alert_to_facilities(self, sp_name, location): locs = [c._id for c in location.children] users = filter(lambda u: u.domain_membership["location_id"] in locs, CommTrackUser.by_domain(self.domain)) for user in users: if user.get_verified_number(): send_sms_to_verified_number(user.get_verified_number(), DELIVERY_CONFIRM_CHILDREN % {"district_name": sp_name})
def _send_submission_alert_to_msd(self, params): users = filter(lambda u: u.user_data.get('role', None) == 'MSD', CommTrackUser.by_domain(self.domain)) for user in users: if user.get_verified_number(): send_sms_to_verified_number(user.get_verified_number(), SUBMITTED_NOTIFICATION_MSD % params)
def send_message(self, location, message, **kwargs): for user in CommTrackUser.by_domain(self.domain): dm = user.get_domain_membership(self.domain) if dm.location_id == location._id and user.get_verified_number(): send_sms_to_verified_number(user.get_verified_number(), message % kwargs)