try: name = sender.navigations.filter(screen__slug='reg_name').latest('date').response facility = sender.navigations.filter(screen__slug='reg_hc').latest('date').response district = sender.navigations.filter(screen__slug='reg_dist').latest('date').response district = find_closest_match(district, Location.objects.filter(type__name='district')) if district: sublocs = district.get_descendants(include_self=True).all() facility = find_closest_match(facility, HealthFacility.objects.filter(catchment_areas__in=sublocs)) else: facility = find_closest_match(facility, HealthFacility.objects) provider = HealthProvider.objects.create(name=name, facility=facility, reporting_location=district, active=False) provider.connection_set.add(sender.connection) # sender.connection.contact = provider # sender.connection.save() except Navigation.DoesNotExist: pass @receiver(post_save, sender=Message) def post_process_pending(sender, **kwargs): msg = kwargs['instance'] if msg.direction == 'O' and msg.status == 'P' and not msg.connection in Blacklist.objects.all().values_list('connection', flat=True): msg.status = 'Q' msg.save() ussd_pre_transition.connect(ussd_jump_diseases, weak=False) ussd_complete.connect(ussd_reg, weak=False) script_progress_was_completed.connect(cvs_autoreg, weak=False) xform_received.connect(xform_received_handler, weak=True) pre_delete.connect(fix_location, weak=True)
configurable sitewide settings. Its better to store in db table """ attribute=models.CharField(max_length=50,null=False) value=models.CharField(default='',max_length=50,null=True) description= models.TextField(null=True) user=models.ForeignKey(User,null=True,blank=True) class Meta: app_label = 'ureport' class AutoregGroupRules(models.Model): group=models.ForeignKey(Group) values=models.TextField(default=None) class Meta: app_label = 'ureport' from .litseners import autoreg,check_conn,update_latest_poll,ussd_poll,add_to_poll script_progress_was_completed.connect(autoreg, weak=False) post_save.connect(check_conn, sender=Connection, weak=False) post_save.connect(update_latest_poll, sender=Poll, weak=False) ussd_complete.connect(ussd_poll, weak=False) #post_save.connect(add_to_poll, sender=Blacklist, weak=False)
self.key = self.key.replace(" ", "_") super(PollAttribute, self).save() def make_native(self, default): if self.key_type == 'bool': return True if default.lower() == 'true' else False elif self.key_type == 'int': return int(default) else: return default class SentToMtrac(models.Model): message = models.OneToOneField(Message) sent_on = models.DateTimeField(auto_now_add=True) class Meta: app_label = 'ureport' from .litseners import autoreg, check_conn, update_latest_poll, ussd_poll, add_to_poll script_progress_was_completed.connect(autoreg, weak=False) post_save.connect(check_conn, sender=Connection, weak=False) ussd_complete.connect(ussd_poll, weak=False) if settings.USSD_ENABLED: post_save.connect(update_latest_poll, sender=Poll, weak=False) #post_save.connect(add_to_poll, sender=Blacklist, weak=False)