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
Exemple #5
0
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))
Exemple #7
0
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)
Exemple #10
0
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