Exemplo n.º 1
0
function mp_response_table($year, $xml, $rep_info, $questionnaire_report, $type_summary, $last_year_report)
{
    $last_year_data = array();
    foreach ($last_year_report as $key => $row) {
        if (is_array($row)) {
            $last_year_data[] = array('name' => $row['name'], 'person_id' => $row['person_id'], 'category' => $row['category'], 'response' => $row['responded_mean'], 'low' => $row['responded_95_low'], 'high' => $row['responded_95_high']);
        }
    }
    usort($last_year_data, 'by_response');
    $position = 0;
    $same_stat = 1;
    $last_response = -1;
    $last_low = -1;
    $fymp_ranked = array();
    $fymp_response = array();
    $fymp_category = array();
    foreach ($last_year_data as $key => $row) {
        if ($row['response'] != $last_response || $row['low'] != $last_low) {
            $position += $same_stat;
            $same_stat = 1;
            $last_response = $row['response'];
            $last_low = $row['low'];
        } else {
            $same_stat++;
        }
        $fymp_ranked[$row['person_id']] = $position;
        $fymp_response[$row['person_id']] = $row['response'];
        $fymp_category[$row['person_id']] = $row['category'];
    }
    # Read in data
    $data = array();
    foreach ($questionnaire_report as $key => $row) {
        if (is_array($row)) {
            $data['data'][] = array('person_id' => $key, 'name' => $row['name'], 'party' => $row['party'], 'area' => $row['area'], 'sent' => $row['dispatched_success'], 'category' => $row['category'], 'notes' => category_lookup($row['category']), 'response' => $row['responded_mean'], 'low' => $row['responded_95_low'], 'high' => $row['responded_95_high'], 'responded' => $row['responded'], 'responded_outof' => $row['responded_outof'], 'fymp_rank' => array_key_exists($key, $fymp_ranked) ? $fymp_ranked[$key] : null, 'fymp_response' => array_key_exists($key, $fymp_response) ? $fymp_response[$key] : null, 'fymp_notes' => array_key_exists($key, $fymp_category) ? category_lookup($fymp_category[$key]) : '');
        } else {
            $data['info'][$key] = $row;
        }
    }
    $non_mp_sent = 0;
    foreach ($type_summary as $type => $row) {
        if ($type != 'westminster' && $type != 'total') {
            $non_mp_sent += $row['dispatched_success'];
        }
    }
    $data['info']['non_mp_sent'] = $non_mp_sent;
    # Sort data
    function by_area($a, $b)
    {
        return strcmp($a['area'], $b['area']);
    }
    function by_sent($a, $b)
    {
        if ($a['sent'] < $b['sent']) {
            return 1;
        } elseif ($a['sent'] > $b['sent']) {
            return -1;
        }
        return 0;
    }
    $sort = get_http_var('o');
    if ($sort == 'n') {
        usort($data['data'], 'by_name');
    } elseif ($sort == 'c') {
        usort($data['data'], 'by_area');
    } elseif ($sort == 's') {
        usort($data['data'], 'by_sent');
    } else {
        $sort = 'r';
        usort($data['data'], 'by_response');
    }
    $data['info']['sort'] = $sort;
    $data['info']['mp'] = null;
    if (count($rep_info)) {
        $key = $rep_info['parlparse_person_id'];
        $row = $questionnaire_report[$key];
        $data['info']['mp'] = array_merge($row, array('pc' => $rep_info['postcode'], 'notes' => category_lookup($row['category']), 'response' => $row['responded_mean'], 'low' => $row['responded_95_low'], 'high' => $row['responded_95_high'], 'fymp_rank' => array_key_exists($key, $fymp_ranked) ? $fymp_ranked[$key] : null, 'fymp_response' => array_key_exists($key, $fymp_response) ? $fymp_response[$key] : null, 'fymp_notes' => array_key_exists($key, $fymp_category) ? category_lookup($fymp_category[$key]) : ''));
    }
    # Output data
    global $year_bar;
    template_draw($xml ? 'stats-mp-twfy' : 'stats-mp-performance', array("title" => "WriteToThem.com Zeitgeist {$year}", 'year' => $year, 'year_bar' => $year_bar, 'data' => $data));
}
Exemplo n.º 2
0
function mp_response_table($questionnaire_report) {
    # Read in data
    $data = array();
    foreach ($questionnaire_report as $key => $row) {
        if (is_array($row)) {
            $data['data'][] = array(
                'person_id' => $key,
                'name' => $row['name'],
                'party' => $row['party'],
                'area' => $row['area'],
                'sent' => $row['dispatched_success'],
                'category' => $row['category'],
                'notes' => category_lookup($row['category']),
                'response' => round($row['responded_mean'] * 100, 1),
                'low' => round($row['responded_95_low'] * 100, 1),
                'high' => round($row['responded_95_high'] * 100, 1)
            );
        } else {
            $data['info'][$key] = $row;
        }
    }

    # Sort data
    function by_name($a, $b) {
        return strcmp($a['name'], $b['name']);
    }
    function by_area($a, $b) {
        return strcmp($a['area'], $b['area']);
    }
    function by_sent($a, $b) {
        if ($a['sent']<$b['sent']) return 1;
        elseif ($a['sent']>$b['sent']) return -1;
        return 0;
    }
    $sort = get_http_var('o');
    if ($sort == 'n') {
        usort($data['data'], 'by_name');
    } elseif ($sort == 'c') {
        usort($data['data'], 'by_area');
    } elseif ($sort == 's') {
        usort($data['data'], 'by_sent');
    } else {
        function by_response($a, $b) {
            if ($a['category'] != 'good' && $b['category'] == 'good')
                return 1;
            if ($b['category'] != 'good' && $a['category'] == 'good')
                return -1;
            if ($a['category'] != 'good' && $b['category'] != 'good')
                return by_name($a, $b);
            if ($a['response']<$b['response']) return 1;
            elseif ($a['response']>$b['response']) return -1;
            if ($a['low']<$b['low']) return 1;
            elseif ($a['low']>$b['low']) return -1;
            return 0;
        }
        usort($data['data'], 'by_response');
    }
    $data['info']['sort'] = $sort;

    # Output data
    template_draw('stats-fymp', array(
        "title" => "FYMP stats",
        'data' => $data
        ));
}