diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/public_body_categories.rb | 35 | ||||
-rw-r--r-- | lib/tasks/stats.rake | 48 |
2 files changed, 67 insertions, 16 deletions
diff --git a/lib/public_body_categories.rb b/lib/public_body_categories.rb index e01ce8bf7..e30ce8707 100644 --- a/lib/public_body_categories.rb +++ b/lib/public_body_categories.rb @@ -12,27 +12,27 @@ module PublicBodyCategories "Miscellaneous", [ "other", "Miscellaneous", "miscellaneous" ], "Central government", - [ "department", "Ministerial departments", "a ministerial department" ], - [ "non_ministerial_department", "Non-ministerial departments", "a non-ministerial department" ], - [ "executive_agency", "Executive agencies", "an executive agency" ], - [ "government_office", "Government offices for the regions", "a government office for the regions" ], + [ "department", "Ministerial departments", "a ministerial department" ], + [ "non_ministerial_department", "Non-ministerial departments", "a non-ministerial department" ], + [ "executive_agency", "Executive agencies", "an executive agency" ], + [ "government_office", "Government offices for the regions", "a government office for the regions" ], [ "advisory_committee", "Advisory committees", "an advisory committee" ], [ "awc", "Agricultural wages committees", "an agriculatural wages committee" ], [ "adhac", "Agricultural dwelling house advisory committees", "an agriculatural dwelling house advisory committee" ], [ "newdeal", "New Deal for Communities partnership", "a New Deal for Communities partnership" ], "Local and regional", [ "local_council", "Local councils", "a local council" ], - [ "parish_council", "Town and Parish councils", "a town or parish council"], + [ "parish_council", "Town and Parish councils", "a town or parish council"], [ "housing_association", "Housing associations", "a housing association"], [ "almo", "Housing ALMOs", "a housing ALMO"], [ "municipal_bank", "Municipal bank", "a municipal bank"], [ "nsbody", "North/south bodies", "a north/south body"], [ "pbo", "Professional buying organisations", "a professional buying organisation"], - [ "regional_assembly", "Regional assemblies", "a regional assembly"], - [ "rda", "Regional development agencies", "a regional development agency" ], + [ "regional_assembly", "Regional assemblies", "a regional assembly"], + [ "rda", "Regional development agencies", "a regional development agency" ], "Education", [ "university", "Universities", "a university" ], - [ "university_college", "University colleges", "a university college" ], + [ "university_college", "University colleges", "a university college" ], [ "cambridge_college", "Cambridge colleges", "a Cambridge college" ], [ "durham_college", "Durham colleges", "a Durham college" ], [ "oxford_college", "Oxford colleges", "an Oxford college or permanent private hall" ], @@ -45,12 +45,11 @@ module PublicBodyCategories [ "lib_board", "Education and library boards", "an education and library board" ], [ "rbc", "Regional Broadband Consortia", "a Regional Broadband Consortium" ], "Environment", - [ "npa", "National park authorities", "a national park authority" ], + [ "npa", "National park authorities", "a national park authority" ], [ "rpa", "Regional park authorities", "a regional park authority" ], - [ "sea_fishery_committee", "Sea fisheries committees", "a sea fisheries committee" ], [ "watercompanies", "Water companies", "a water company" ], + [ "ifca", "Inshore fisheries and conservation authorities", "an inshore fisheries and conservation authority" ], [ "idb", "Internal drainage boards", "an internal drainage board" ], - [ "rfdc", "Regional flood defence committees", "a regional flood defence committee" ], [ "wda", "Waste disposal authorities", "a waste disposal authority" ], [ "zoo", "Zoos", "a zoo" ], "Health", @@ -70,22 +69,26 @@ module PublicBodyCategories [ "military_college", "Military colleges", "a military college" ], [ "security_services", "Security services", "a security services body" ], "Emergency services and the courts", - [ "police", "Police forces", "a police force" ], - [ "police_authority", "Police authorities", "a police authority" ], + [ "police", "Police forces", "a police force" ], + [ "police_authority", "Police authorities", "a police authority" ], [ "dpp", "District policing partnerships", "a district policing partnership" ], [ "fire_service", "Fire and rescue services", "a fire and rescue service" ], - [ "prob_board", "Probation boards", "a probation board" ], + [ "probation_trust", "Probation trusts", "a probation trust" ], [ "rules_committee", "Rules commitees", "a rules committee" ], [ "tribunal", "Tribunals", "a tribunal"], "Transport", [ "npte", "Passenger transport executives", "a passenger transport executive" ], [ "port_authority", "Port authorities", "a port authority" ], [ "scp", "Safety Camera Partnerships", "a safety camera partnership" ], - [ "srp", "Safer Roads Partnership", "a safer roads partnership" ] + [ "srp", "Safer Roads Partnership", "a safer roads partnership" ], + "Defunct", + [ "prob_board", "Probation boards", "a probation board" ], + [ "rfdc", "Regional flood defence committees", "a regional flood defence committee" ], + [ "sea_fishery_committee", "Sea fisheries committees", "a sea fisheries committee" ], ] # Arranged in different ways for different sorts of displaying - CATEGORIES_WITH_DESCRIPTION = CATEGORIES_WITH_HEADINGS.select() { |a| a.instance_of?(Array) } + CATEGORIES_WITH_DESCRIPTION = CATEGORIES_WITH_HEADINGS.select() { |a| a.instance_of?(Array) } CATEGORIES = CATEGORIES_WITH_DESCRIPTION.map() { |a| a[0] } CATEGORIES_BY_TAG = Hash[*CATEGORIES_WITH_DESCRIPTION.map() { |a| a[0..1] }.flatten] CATEGORY_SINGULAR_BY_TAG = Hash[*CATEGORIES_WITH_DESCRIPTION.map() { |a| [a[0],a[2]] }.flatten] diff --git a/lib/tasks/stats.rake b/lib/tasks/stats.rake new file mode 100644 index 000000000..e206ce951 --- /dev/null +++ b/lib/tasks/stats.rake @@ -0,0 +1,48 @@ +namespace :stats do + + desc 'Produce transaction stats' + task :show => :environment do + month_starts = (Date.new(2009, 1)..Date.new(2011, 5)).select { |d| d.day == 1 } + headers = ['Period', + 'Requests sent', + 'Annotations added', + 'Track this request email signups', + 'Comments on own requests', + 'Follow up messages sent'] + puts headers.join("\t") + month_starts.each do |month_start| + month_end = month_start.end_of_month + period = "#{month_start}-#{month_end}" + date_conditions = ['created_at >= ? + AND created_at < ?', + month_start, month_end+1] + request_count = InfoRequest.count(:conditions => date_conditions) + comment_count = Comment.count(:conditions => date_conditions) + track_conditions = ['track_type = ? + AND track_medium = ? + AND created_at >= ? + AND created_at < ?', + 'request_updates', 'email_daily', month_start, month_end+1] + email_request_track_count = TrackThing.count(:conditions => track_conditions) + comment_on_own_request_conditions = ['comments.user_id = info_requests.user_id + AND comments.created_at >= ? + AND comments.created_at < ?', + month_start, month_end+1] + comment_on_own_request_count = Comment.count(:conditions => comment_on_own_request_conditions, + :include => :info_request) + + followup_conditions = ['message_type = ? + AND created_at >= ? + AND created_at < ?', + 'followup', month_start, month_end+1] + follow_up_count = OutgoingMessage.count(:conditions => followup_conditions) + puts [period, + request_count, + comment_count, + email_request_track_count, + comment_on_own_request_count, + follow_up_count].join("\t") + end + end + +end
\ No newline at end of file |