def get_location_mass_messages(**kwargs): request = kwargs.pop('request') location = get_location_for_user(request.user) messages = MassText.objects.filter( contacts__reporting_location__in=location.get_descendants(include_self=True)).annotate( count=Count('contacts')).values_list('text', 'date', 'user__username', 'count') return messages
def get_anonymous_reports(request=None): location = get_location_for_user(getattr(request, 'user', None)) districts = Location.objects.filter(type__name='district').values_list('name', flat=True) if location.name in districts: return AnonymousReport.objects.filter(district=location).select_related('health_facility__type', 'district__name').order_by('-date') else: return AnonymousReport.objects.all().select_related('health_facility__type', 'district__name').order_by('-date')
def approve(request): location = get_location_for_user(request.user) return render_to_response('mtrack/partials/dashboard_approve.html', { #'reports':get_facility_reports(location, date_range=last_reporting_period(period=0), count=True, approved=False), #'total_reports':get_facility_reports(location, date_range=last_reporting_period(todate=True), count=True, approved=False), 'reports':get_facility_reports2(location, date_range=last_reporting_period(period=0)), 'total_reports':get_facility_reports2(location, date_range=last_reporting_period(period=0), todate=True), 'reporting_period': last_reporting_period_number(), 'current_week': current_reporting_week_number() }, context_instance=RequestContext(request))
def fhd_submission_stats(request, district_id=None): stats = [] # columns to be sent to generic start out as blank user_location = Location.objects.get(pk=district_id) if district_id else get_location_for_user(request.user) location = Location.tree.root_nodes()[0] dates = get_xform_dates(request) values = total_attribute_value(['dpt_males'], start_date=dates.get('start'), end_date=dates.get('end'), location=location) stats.append(('males', location_values(user_location, values))) values = total_attribute_value(['dpt_females'], start_date=dates.get('start'), end_date=dates.get('end'), location=location) stats.append(('females', location_values(user_locaiton, values))) res = {'dates': dates, 'stats': stats} return res
def get_all_messages(**kwargs): """ Get all messages that are direct responses to polls (not related to the anonymous hotline) """ request = kwargs.pop('request') area = get_location_for_user(request.user) if not area == Location.tree.root_nodes()[0]: return Message.objects.exclude(connection__identity__in=getattr(settings, 'MODEM_NUMBERS', ['256777773260', '256752145316', '256711957281', '256790403038', '256701205129'])).\ exclude(connection__backend__name="yo8200").filter(direction='I', connection__contact__reporting_location__in=area.get_descendants(include_self=True).all()).order_by('-date') return Message.objects.exclude(connection__identity__in=getattr(settings, 'MODEM_NUMBERS', ['256777773260', '256752145316', '256711957281', '256790403038', '256701205129'])).\ exclude(connection__backend__name="yo8200").filter(direction='I').order_by('-date')
def admin(request): location = get_location_for_user(request.user) return render_to_response('mtrack/partials/dashboard_admin.html', { #change period = 1 for the last reporting 'good_facilities':reporting_facilities(location, date_range=last_reporting_period(period=0)), 'good_vhts':reporting_vhts(location), 'total_facilities':total_registered_facilities(location), 'total_vhts':total_vhts(location), 'reporting_period': last_reporting_period_number(), 'current_week': current_reporting_week_number() }, context_instance=RequestContext(request))
def get_unsolicited_messages(**kwargs): request = kwargs.pop('request') # get all unsolicited messages, from cache if available from_cache = cache.get('_get_messages_') if from_cache is not None: messages = from_cache else: messages = get_messages(request) cache.set('_get_messages_', messages, getattr(settings, 'QUERY_CACHE_TIMEOUT', 60 * 60)) # now filter by user's location location = get_location_for_user(request.user) messages = messages.filter(connection__contact__reporting_location__in=location.get_descendants(include_self=True)) # get rid of unregistered, anonymous, and trainee connections messages = messages.exclude(connection__contact=None) # .exclude(connection__contact__active=False) messages = messages.order_by('-date') return messages
def get_facilites_for_view(request=None): location = get_location_for_user(getattr(request, 'user', None)) return total_facilities(location, count=False)
def get_facility_reports_for_view(request=None): location = get_location_for_user(request.user) # print location return get_facility_reports(location, count=False, approved=False)
def get_all_ussd_facility_reports_for_view(request=None): location = get_location_for_user(request.user) return get_ussd_facility_reports(location, count=False, date_range=None)
def get_location(request, district_id): user_location = Location.objects.get(pk=district_id) if district_id else get_location_for_user(request.user) return user_location
def _all_mass_messages(request): location = get_location_for_user(request.user) messages = MassText.objects.filter( contacts__reporting_location__in=location.get_descendants(include_self=True)) return messages