decidim-accountability 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +46 -0
  3. data/Rakefile +3 -0
  4. data/app/assets/config/decidim_accountability_admin_manifest.js +1 -0
  5. data/app/assets/config/decidim_accountability_manifest.js +1 -0
  6. data/app/assets/images/decidim/accountability/icon.svg +1 -0
  7. data/app/assets/javascripts/decidim/accountability/accountability.js.es6 +10 -0
  8. data/app/assets/javascripts/decidim/accountability/admin/accountability_admin.js +8 -0
  9. data/app/assets/stylesheets/decidim/accountability/_accountability.scss +1 -0
  10. data/app/assets/stylesheets/decidim/accountability/accountability/_cards.scss +13 -0
  11. data/app/assets/stylesheets/decidim/accountability/accountability/_categories.scss +109 -0
  12. data/app/assets/stylesheets/decidim/accountability/accountability/_lines_breadcrumb.scss +29 -0
  13. data/app/assets/stylesheets/decidim/accountability/accountability/_results.scss +144 -0
  14. data/app/commands/decidim/accountability/admin/create_result.rb +72 -0
  15. data/app/commands/decidim/accountability/admin/create_status.rb +42 -0
  16. data/app/commands/decidim/accountability/admin/create_timeline_entry.rb +40 -0
  17. data/app/commands/decidim/accountability/admin/update_result.rb +80 -0
  18. data/app/commands/decidim/accountability/admin/update_status.rb +46 -0
  19. data/app/commands/decidim/accountability/admin/update_template_texts.rb +47 -0
  20. data/app/commands/decidim/accountability/admin/update_timeline_entry.rb +44 -0
  21. data/app/controllers/decidim/accountability/admin/application_controller.rb +15 -0
  22. data/app/controllers/decidim/accountability/admin/imports_controller.rb +30 -0
  23. data/app/controllers/decidim/accountability/admin/results_controller.rb +84 -0
  24. data/app/controllers/decidim/accountability/admin/statuses_controller.rb +70 -0
  25. data/app/controllers/decidim/accountability/admin/template_texts_controller.rb +38 -0
  26. data/app/controllers/decidim/accountability/admin/timeline_entries_controller.rb +75 -0
  27. data/app/controllers/decidim/accountability/application_controller.rb +13 -0
  28. data/app/controllers/decidim/accountability/result_widgets_controller.rb +19 -0
  29. data/app/controllers/decidim/accountability/results_controller.rb +77 -0
  30. data/app/forms/decidim/accountability/admin/result_form.rb +74 -0
  31. data/app/forms/decidim/accountability/admin/status_form.rb +21 -0
  32. data/app/forms/decidim/accountability/admin/template_texts_form.rb +19 -0
  33. data/app/forms/decidim/accountability/admin/timeline_entry_form.rb +20 -0
  34. data/app/helpers/decidim/accountability/application_helper.rb +50 -0
  35. data/app/models/decidim/accountability/application_record.rb +10 -0
  36. data/app/models/decidim/accountability/result.rb +66 -0
  37. data/app/models/decidim/accountability/status.rb +18 -0
  38. data/app/models/decidim/accountability/template_texts.rb +17 -0
  39. data/app/models/decidim/accountability/timeline_entry.rb +11 -0
  40. data/app/services/decidim/accountability/csv_exporter.rb +77 -0
  41. data/app/services/decidim/accountability/csv_importer.rb +106 -0
  42. data/app/services/decidim/accountability/result_search.rb +40 -0
  43. data/app/services/decidim/accountability/result_stats_calculator.rb +52 -0
  44. data/app/services/decidim/accountability/results_calculator.rb +34 -0
  45. data/app/views/decidim/accountability/admin/imports/new.html.erb +47 -0
  46. data/app/views/decidim/accountability/admin/results/_form.html.erb +70 -0
  47. data/app/views/decidim/accountability/admin/results/edit.html.erb +9 -0
  48. data/app/views/decidim/accountability/admin/results/index.html.erb +52 -0
  49. data/app/views/decidim/accountability/admin/results/new.html.erb +9 -0
  50. data/app/views/decidim/accountability/admin/shared/_subnav.html.erb +3 -0
  51. data/app/views/decidim/accountability/admin/statuses/_form.html.erb +23 -0
  52. data/app/views/decidim/accountability/admin/statuses/edit.html.erb +8 -0
  53. data/app/views/decidim/accountability/admin/statuses/index.html.erb +45 -0
  54. data/app/views/decidim/accountability/admin/statuses/new.html.erb +8 -0
  55. data/app/views/decidim/accountability/admin/template_texts/_form.html.erb +30 -0
  56. data/app/views/decidim/accountability/admin/template_texts/edit.html.erb +8 -0
  57. data/app/views/decidim/accountability/admin/timeline_entries/_form.html.erb +15 -0
  58. data/app/views/decidim/accountability/admin/timeline_entries/edit.html.erb +8 -0
  59. data/app/views/decidim/accountability/admin/timeline_entries/index.html.erb +41 -0
  60. data/app/views/decidim/accountability/admin/timeline_entries/new.html.erb +8 -0
  61. data/app/views/decidim/accountability/result_widgets/show.html.erb +2 -0
  62. data/app/views/decidim/accountability/results/_home_categories.html.erb +73 -0
  63. data/app/views/decidim/accountability/results/_home_header.html.erb +24 -0
  64. data/app/views/decidim/accountability/results/_linked_results.html.erb +12 -0
  65. data/app/views/decidim/accountability/results/_nav_breadcrumb.html.erb +29 -0
  66. data/app/views/decidim/accountability/results/_results_leaf.html.erb +45 -0
  67. data/app/views/decidim/accountability/results/_results_parent.html.erb +32 -0
  68. data/app/views/decidim/accountability/results/_scope_filters.html.erb +14 -0
  69. data/app/views/decidim/accountability/results/_search.html.erb +12 -0
  70. data/app/views/decidim/accountability/results/_show_leaf.html.erb +79 -0
  71. data/app/views/decidim/accountability/results/_show_parent.html.erb +25 -0
  72. data/app/views/decidim/accountability/results/_stats.html.erb +11 -0
  73. data/app/views/decidim/accountability/results/_stats_box.html.erb +36 -0
  74. data/app/views/decidim/accountability/results/_tags.html.erb +10 -0
  75. data/app/views/decidim/accountability/results/_timeline.html.erb +24 -0
  76. data/app/views/decidim/accountability/results/home.html.erb +9 -0
  77. data/app/views/decidim/accountability/results/index.html.erb +19 -0
  78. data/app/views/decidim/accountability/results/index.js.erb +2 -0
  79. data/app/views/decidim/accountability/results/show.html.erb +14 -0
  80. data/config/i18n-tasks.yml +10 -0
  81. data/config/locales/ca.yml +190 -0
  82. data/config/locales/en.yml +190 -0
  83. data/config/locales/es.yml +190 -0
  84. data/config/locales/eu.yml +79 -0
  85. data/config/locales/fi.yml +77 -0
  86. data/db/migrate/20170425154712_create_accountability_statuses.rb +13 -0
  87. data/db/migrate/20170426104125_create_accountability_results.rb +22 -0
  88. data/db/migrate/20170508104902_add_description_and_progress_to_statuses.rb +6 -0
  89. data/db/migrate/20170508161109_create_template_texts.rb +14 -0
  90. data/db/migrate/20170606102902_add_index_to_accountability_results_on_external_id.rb +5 -0
  91. data/db/migrate/20170620154712_create_accountability_timeline_entries.rb +13 -0
  92. data/db/migrate/20170623094200_migrate_accountability_results_category.rb +13 -0
  93. data/db/migrate/20170623144902_add_children_counter_cache_to_results.rb +5 -0
  94. data/lib/decidim/accountability.rb +12 -0
  95. data/lib/decidim/accountability/admin.rb +10 -0
  96. data/lib/decidim/accountability/admin_engine.rb +32 -0
  97. data/lib/decidim/accountability/feature.rb +86 -0
  98. data/lib/decidim/accountability/list_engine.rb +27 -0
  99. data/lib/decidim/accountability/test/factories.rb +45 -0
  100. metadata +238 -0
@@ -0,0 +1,77 @@
1
+ fi:
2
+ activemodel:
3
+ attributes:
4
+ result:
5
+ decidim_category_id: Kategoria
6
+ decidim_scope_id: Konteksti
7
+ description: Kuvaus
8
+ proposal_ids: Sisällytetyt ehdotukset
9
+ title: Otsikko
10
+ decidim:
11
+ features:
12
+ accountability:
13
+ name: Tulokset
14
+ settings:
15
+ global:
16
+ comments_enabled: Kommentointi sallittu
17
+ step:
18
+ comments_blocked: Kommentointi estetty
19
+ resource_links:
20
+ included_proposals:
21
+ result_proposals: Projektit, jotka sisältyvät tähän tulokseen
22
+ meetings_through_proposals:
23
+ result_meetings: Liittyvät tapaamiset
24
+ accountability:
25
+ actions:
26
+ confirm_destroy: Oletko varma, että haluat poistaa tämän tuloksen?
27
+ destroy: Poista
28
+ edit: Muokkaa
29
+ new: Uusi %{name}
30
+ title: Toiminnot
31
+ admin:
32
+ models:
33
+ result:
34
+ name: Tulos
35
+ results:
36
+ create:
37
+ invalid: Tuloksen luonnissa tapahtui virhe
38
+ success: Tulos luotu onnistuneesti
39
+ destroy:
40
+ success: Tulos poistettu onnistuneesti
41
+ edit:
42
+ title: Muokkaa tulosta
43
+ update: Päivitä tulos
44
+ index:
45
+ title: Tulokset
46
+ new:
47
+ create: Luo tulos
48
+ title: Uusi tulos
49
+ update:
50
+ invalid: Tuloksen päivityksessä tapahtui virhe
51
+ success: Tulos päivitetty onnistuneesti
52
+ models:
53
+ result:
54
+ fields:
55
+ title: Otsikko
56
+ results:
57
+ count:
58
+ results_count:
59
+ one: 1 tulos
60
+ other: "%{count} tulosta"
61
+ filters:
62
+ category: Kategoria
63
+ scopes: Konteksti
64
+ search: Haku
65
+ filters_small_view:
66
+ close_modal: Sulje ikkuna
67
+ filter: Suodata
68
+ filter_by: Suodata
69
+ unfold: Avaa
70
+ show:
71
+ stats:
72
+ attendees: Osallistujat
73
+ comments: Kommentit
74
+ contributions: Kontribuutiot
75
+ meetings: Tapaamiset
76
+ proposals: Ehdotukset
77
+ votes: Kannatukset
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateAccountabilityStatuses < ActiveRecord::Migration[5.0]
4
+ def change
5
+ create_table :decidim_accountability_statuses do |t|
6
+ t.string :key
7
+ t.jsonb :name
8
+ t.references :decidim_feature, index: true
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateAccountabilityResults < ActiveRecord::Migration[5.0]
4
+ def change
5
+ create_table :decidim_accountability_results do |t|
6
+ t.jsonb :title
7
+ t.jsonb :description
8
+ t.string :reference
9
+ t.date :start_date
10
+ t.date :end_date
11
+ t.decimal :progress, precision: 5, scale: 2
12
+ t.string :external_id, index: true
13
+ t.references :parent, index: { name: :decidim_accountability_results_on_parent_id }
14
+ t.references :decidim_accountability_status, index: { name: :decidim_accountability_results_on_status_id }
15
+ t.references :decidim_feature, index: true
16
+ t.references :decidim_scope, index: true
17
+ t.references :decidim_category, index: true
18
+
19
+ t.timestamps
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,6 @@
1
+ class AddDescriptionAndProgressToStatuses < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :decidim_accountability_statuses, :description, :jsonb
4
+ add_column :decidim_accountability_statuses, :progress, :integer
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ class CreateTemplateTexts < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :decidim_accountability_template_texts do |t|
4
+ t.jsonb :intro
5
+ t.jsonb :categories_label
6
+ t.jsonb :subcategories_label
7
+ t.jsonb :heading_parent_level_results
8
+ t.jsonb :heading_leaf_level_results
9
+ t.references :decidim_feature, index: { name: :decidim_accountability_template_texts_on_feature_id }
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ class AddIndexToAccountabilityResultsOnExternalId < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_index :decidim_accountability_results, [:decidim_feature_id, :external_id], unique: true, name: :decidim_accountability_results_on_external_id
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateAccountabilityTimelineEntries < ActiveRecord::Migration[5.0]
4
+ def change
5
+ create_table :decidim_accountability_timeline_entries do |t|
6
+ t.date :entry_date, index: true
7
+ t.jsonb :description
8
+ t.references :decidim_accountability_result, index: { name: :index_decidim_accountability_timeline_entries_on_results_id }
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class MigrateAccountabilityResultsCategory < ActiveRecord::Migration[5.1]
2
+ def change
3
+ # Create categorizations ensuring database integrity
4
+ execute('
5
+ INSERT INTO decidim_categorizations(decidim_category_id, categorizable_id, categorizable_type, created_at, updated_at)
6
+ SELECT decidim_category_id, decidim_accountability_results.id, \'Decidim::Accountability::Result\', NOW(), NOW()
7
+ FROM decidim_accountability_results
8
+ INNER JOIN decidim_categories ON decidim_categories.id = decidim_accountability_results.decidim_category_id
9
+ ')
10
+ # Remove unused column
11
+ remove_column :decidim_accountability_results, :decidim_category_id
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ class AddChildrenCounterCacheToResults < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :decidim_accountability_results, :children_count, :integer, default: 0
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "decidim/accountability/admin"
4
+ require "decidim/accountability/list_engine"
5
+ require "decidim/accountability/admin_engine"
6
+ require "decidim/accountability/feature"
7
+
8
+ module Decidim
9
+ # Base module for this engine.
10
+ module Accountability
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Accountability
5
+ # This module contains all the domain logic associated to Decidim's Results
6
+ # component admin panel.
7
+ module Admin
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Accountability
5
+ # This is the engine that runs on the admin interface of `decidim-accountability`.
6
+ # It mostly handles rendering the created results and projects associated to a
7
+ # participatory process.
8
+ class AdminEngine < ::Rails::Engine
9
+ isolate_namespace Decidim::Accountability::Admin
10
+
11
+ paths["db/migrate"] = nil
12
+
13
+ routes do
14
+ resource :template_texts
15
+ resources :statuses
16
+ resources :results, except: [:show] do
17
+ resources :timeline_entries, except: [:show]
18
+ end
19
+ resource :import, only: [:new, :create]
20
+ root to: "results#index"
21
+ end
22
+
23
+ def load_seed
24
+ nil
25
+ end
26
+
27
+ initializer "decidim_accountability.assets" do |app|
28
+ app.config.assets.precompile += %w(decidim_accountability_admin_manifest.js)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_dependency "decidim/features/namer"
4
+
5
+ Decidim.register_feature(:accountability) do |feature|
6
+ feature.engine = Decidim::Accountability::ListEngine
7
+ feature.admin_engine = Decidim::Accountability::AdminEngine
8
+ feature.icon = "decidim/accountability/icon.svg"
9
+ feature.stylesheet = "decidim/accountability/accountability"
10
+
11
+ feature.on(:before_destroy) do |instance|
12
+ raise StandardError, "Can't remove this feature" if Decidim::Accountability::Result.where(feature: instance).any?
13
+ end
14
+
15
+ feature.register_resource do |resource|
16
+ resource.model_class_name = "Decidim::Accountability::Result"
17
+ resource.template = "decidim/accountability/results/linked_results"
18
+ end
19
+
20
+ feature.settings(:global) do |settings|
21
+ settings.attribute :comments_enabled, type: :boolean, default: true
22
+ end
23
+
24
+ feature.settings(:step) do |settings|
25
+ settings.attribute :comments_blocked, type: :boolean, default: false
26
+ end
27
+
28
+ feature.seeds do
29
+ Decidim::ParticipatoryProcess.all.each do |process|
30
+ next unless process.steps.any?
31
+
32
+ feature = Decidim::Feature.create!(
33
+ name: Decidim::Features::Namer.new(process.organization.available_locales, :accountability).i18n_name,
34
+ manifest_name: :accountability,
35
+ published_at: Time.current,
36
+ participatory_process: process
37
+ )
38
+
39
+ 5.times do |i|
40
+ Decidim::Accountability::Status.create!(
41
+ feature: feature,
42
+ name: Decidim::Faker::Localized.word,
43
+ key: "status_#{i}"
44
+ )
45
+ end
46
+
47
+ 3.times do
48
+ result = Decidim::Accountability::Result.create!(
49
+ feature: feature,
50
+ scope: process.organization.scopes.sample,
51
+ category: process.categories.sample,
52
+ title: Decidim::Faker::Localized.sentence(2),
53
+ description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
54
+ Decidim::Faker::Localized.paragraph(3)
55
+ end
56
+ )
57
+
58
+ Decidim::Comments::Seed.comments_for(result)
59
+
60
+ 3.times do
61
+ child_result = Decidim::Accountability::Result.create!(
62
+ feature: feature,
63
+ parent: result,
64
+ start_date: Date.today,
65
+ end_date: Date.today + 10,
66
+ status: Decidim::Accountability::Status.all.sample,
67
+ progress: rand(1..100),
68
+ title: Decidim::Faker::Localized.sentence(2),
69
+ description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
70
+ Decidim::Faker::Localized.paragraph(3)
71
+ end
72
+ )
73
+
74
+ rand(0..5).times do |i|
75
+ child_result.timeline_entries.create!(
76
+ entry_date: child_result.start_date + i.days,
77
+ description: Decidim::Faker::Localized.sentence(2)
78
+ )
79
+ end
80
+
81
+ Decidim::Comments::Seed.comments_for(child_result)
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "searchlight"
4
+ require "kaminari"
5
+
6
+ module Decidim
7
+ module Accountability
8
+ # This is the engine that runs on the public interface of `decidim-accountability`.
9
+ # It mostly handles rendering the created results associated to a participatory
10
+ # process.
11
+ class ListEngine < ::Rails::Engine
12
+ isolate_namespace Decidim::Accountability
13
+
14
+ routes do
15
+ resources :results, only: [:index, :show] do
16
+ resource :result_widget, only: :show, path: "embed"
17
+ end
18
+ get "csv", to: "results#csv"
19
+ root to: "results#home"
20
+ end
21
+
22
+ initializer "decidim_accountability.assets" do |app|
23
+ app.config.assets.precompile += %w(decidim_accountability_manifest.js)
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "decidim/faker/localized"
4
+ require "decidim/dev"
5
+
6
+ FactoryGirl.define do
7
+ factory :accountability_feature, parent: :feature do
8
+ name { Decidim::Features::Namer.new(participatory_space.organization.available_locales, :accountability).i18n_name }
9
+ manifest_name :accountability
10
+ participatory_space { create(:participatory_process, :with_steps, organization: organization) }
11
+ end
12
+
13
+ factory :accountability_template_texts, class: Decidim::Accountability::TemplateTexts do
14
+ feature { build(:feature, manifest_name: "accountability") }
15
+ intro { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(4) } }
16
+ categories_label { Decidim::Faker::Localized.word }
17
+ subcategories_label { Decidim::Faker::Localized.word }
18
+ heading_parent_level_results { Decidim::Faker::Localized.word }
19
+ heading_leaf_level_results { Decidim::Faker::Localized.word }
20
+ end
21
+
22
+ factory :accountability_status, class: Decidim::Accountability::Status do
23
+ feature { build(:feature, manifest_name: "accountability") }
24
+ sequence(:key) { |n| "status_#{n}" }
25
+ name { Decidim::Faker::Localized.word }
26
+ description { Decidim::Faker::Localized.sentence(3) }
27
+ progress { rand(1..100) }
28
+ end
29
+
30
+ factory :accountability_result, class: Decidim::Accountability::Result do
31
+ feature { build(:feature, manifest_name: "accountability") }
32
+ title { Decidim::Faker::Localized.sentence(3) }
33
+ description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(4) } }
34
+ start_date { "12/7/2017" }
35
+ end_date { "30/9/2017" }
36
+ status { create :accountability_status, feature: feature }
37
+ progress { rand(1..100) }
38
+ end
39
+
40
+ factory :accountability_timeline_entry, class: Decidim::Accountability::TimelineEntry do
41
+ result { build(:accountability_result) }
42
+ entry_date { "12/7/2017" }
43
+ description { Decidim::Faker::Localized.sentence(2) }
44
+ end
45
+ end
metadata ADDED
@@ -0,0 +1,238 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: decidim-accountability
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Amaia Castro
8
+ - Josep Jaume Rey Peroy
9
+ - Marc Riera Casals
10
+ - Oriol Gual Oliva
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2017-09-19 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: decidim-core
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.6.0
23
+ - - "<="
24
+ - !ruby/object:Gem::Version
25
+ version: 0.8.0
26
+ type: :runtime
27
+ prerelease: false
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.6.0
33
+ - - "<="
34
+ - !ruby/object:Gem::Version
35
+ version: 0.8.0
36
+ - !ruby/object:Gem::Dependency
37
+ name: decidim-comments
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ - !ruby/object:Gem::Dependency
51
+ name: decidim-dev
52
+ requirement: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ - !ruby/object:Gem::Dependency
65
+ name: decidim-comments
66
+ requirement: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: decidim-meetings
80
+ requirement: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ type: :development
86
+ prerelease: false
87
+ version_requirements: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ - !ruby/object:Gem::Dependency
93
+ name: decidim-proposals
94
+ requirement: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ description: An accountability component for decidim's participatory processes.
107
+ email:
108
+ - amaia.castro@gmail.com
109
+ - josepjaume@gmail.com
110
+ - mrc2407@gmail.com
111
+ - oriolgual@gmail.com
112
+ executables: []
113
+ extensions: []
114
+ extra_rdoc_files: []
115
+ files:
116
+ - README.md
117
+ - Rakefile
118
+ - app/assets/config/decidim_accountability_admin_manifest.js
119
+ - app/assets/config/decidim_accountability_manifest.js
120
+ - app/assets/images/decidim/accountability/icon.svg
121
+ - app/assets/javascripts/decidim/accountability/accountability.js.es6
122
+ - app/assets/javascripts/decidim/accountability/admin/accountability_admin.js
123
+ - app/assets/stylesheets/decidim/accountability/_accountability.scss
124
+ - app/assets/stylesheets/decidim/accountability/accountability/_cards.scss
125
+ - app/assets/stylesheets/decidim/accountability/accountability/_categories.scss
126
+ - app/assets/stylesheets/decidim/accountability/accountability/_lines_breadcrumb.scss
127
+ - app/assets/stylesheets/decidim/accountability/accountability/_results.scss
128
+ - app/commands/decidim/accountability/admin/create_result.rb
129
+ - app/commands/decidim/accountability/admin/create_status.rb
130
+ - app/commands/decidim/accountability/admin/create_timeline_entry.rb
131
+ - app/commands/decidim/accountability/admin/update_result.rb
132
+ - app/commands/decidim/accountability/admin/update_status.rb
133
+ - app/commands/decidim/accountability/admin/update_template_texts.rb
134
+ - app/commands/decidim/accountability/admin/update_timeline_entry.rb
135
+ - app/controllers/decidim/accountability/admin/application_controller.rb
136
+ - app/controllers/decidim/accountability/admin/imports_controller.rb
137
+ - app/controllers/decidim/accountability/admin/results_controller.rb
138
+ - app/controllers/decidim/accountability/admin/statuses_controller.rb
139
+ - app/controllers/decidim/accountability/admin/template_texts_controller.rb
140
+ - app/controllers/decidim/accountability/admin/timeline_entries_controller.rb
141
+ - app/controllers/decidim/accountability/application_controller.rb
142
+ - app/controllers/decidim/accountability/result_widgets_controller.rb
143
+ - app/controllers/decidim/accountability/results_controller.rb
144
+ - app/forms/decidim/accountability/admin/result_form.rb
145
+ - app/forms/decidim/accountability/admin/status_form.rb
146
+ - app/forms/decidim/accountability/admin/template_texts_form.rb
147
+ - app/forms/decidim/accountability/admin/timeline_entry_form.rb
148
+ - app/helpers/decidim/accountability/application_helper.rb
149
+ - app/models/decidim/accountability/application_record.rb
150
+ - app/models/decidim/accountability/result.rb
151
+ - app/models/decidim/accountability/status.rb
152
+ - app/models/decidim/accountability/template_texts.rb
153
+ - app/models/decidim/accountability/timeline_entry.rb
154
+ - app/services/decidim/accountability/csv_exporter.rb
155
+ - app/services/decidim/accountability/csv_importer.rb
156
+ - app/services/decidim/accountability/result_search.rb
157
+ - app/services/decidim/accountability/result_stats_calculator.rb
158
+ - app/services/decidim/accountability/results_calculator.rb
159
+ - app/views/decidim/accountability/admin/imports/new.html.erb
160
+ - app/views/decidim/accountability/admin/results/_form.html.erb
161
+ - app/views/decidim/accountability/admin/results/edit.html.erb
162
+ - app/views/decidim/accountability/admin/results/index.html.erb
163
+ - app/views/decidim/accountability/admin/results/new.html.erb
164
+ - app/views/decidim/accountability/admin/shared/_subnav.html.erb
165
+ - app/views/decidim/accountability/admin/statuses/_form.html.erb
166
+ - app/views/decidim/accountability/admin/statuses/edit.html.erb
167
+ - app/views/decidim/accountability/admin/statuses/index.html.erb
168
+ - app/views/decidim/accountability/admin/statuses/new.html.erb
169
+ - app/views/decidim/accountability/admin/template_texts/_form.html.erb
170
+ - app/views/decidim/accountability/admin/template_texts/edit.html.erb
171
+ - app/views/decidim/accountability/admin/timeline_entries/_form.html.erb
172
+ - app/views/decidim/accountability/admin/timeline_entries/edit.html.erb
173
+ - app/views/decidim/accountability/admin/timeline_entries/index.html.erb
174
+ - app/views/decidim/accountability/admin/timeline_entries/new.html.erb
175
+ - app/views/decidim/accountability/result_widgets/show.html.erb
176
+ - app/views/decidim/accountability/results/_home_categories.html.erb
177
+ - app/views/decidim/accountability/results/_home_header.html.erb
178
+ - app/views/decidim/accountability/results/_linked_results.html.erb
179
+ - app/views/decidim/accountability/results/_nav_breadcrumb.html.erb
180
+ - app/views/decidim/accountability/results/_results_leaf.html.erb
181
+ - app/views/decidim/accountability/results/_results_parent.html.erb
182
+ - app/views/decidim/accountability/results/_scope_filters.html.erb
183
+ - app/views/decidim/accountability/results/_search.html.erb
184
+ - app/views/decidim/accountability/results/_show_leaf.html.erb
185
+ - app/views/decidim/accountability/results/_show_parent.html.erb
186
+ - app/views/decidim/accountability/results/_stats.html.erb
187
+ - app/views/decidim/accountability/results/_stats_box.html.erb
188
+ - app/views/decidim/accountability/results/_tags.html.erb
189
+ - app/views/decidim/accountability/results/_timeline.html.erb
190
+ - app/views/decidim/accountability/results/home.html.erb
191
+ - app/views/decidim/accountability/results/index.html.erb
192
+ - app/views/decidim/accountability/results/index.js.erb
193
+ - app/views/decidim/accountability/results/show.html.erb
194
+ - config/i18n-tasks.yml
195
+ - config/locales/ca.yml
196
+ - config/locales/en.yml
197
+ - config/locales/es.yml
198
+ - config/locales/eu.yml
199
+ - config/locales/fi.yml
200
+ - db/migrate/20170425154712_create_accountability_statuses.rb
201
+ - db/migrate/20170426104125_create_accountability_results.rb
202
+ - db/migrate/20170508104902_add_description_and_progress_to_statuses.rb
203
+ - db/migrate/20170508161109_create_template_texts.rb
204
+ - db/migrate/20170606102902_add_index_to_accountability_results_on_external_id.rb
205
+ - db/migrate/20170620154712_create_accountability_timeline_entries.rb
206
+ - db/migrate/20170623094200_migrate_accountability_results_category.rb
207
+ - db/migrate/20170623144902_add_children_counter_cache_to_results.rb
208
+ - lib/decidim/accountability.rb
209
+ - lib/decidim/accountability/admin.rb
210
+ - lib/decidim/accountability/admin_engine.rb
211
+ - lib/decidim/accountability/feature.rb
212
+ - lib/decidim/accountability/list_engine.rb
213
+ - lib/decidim/accountability/test/factories.rb
214
+ homepage: https://github.com/AjuntamentdeBarcelona/decidim
215
+ licenses:
216
+ - AGPLv3
217
+ metadata: {}
218
+ post_install_message:
219
+ rdoc_options: []
220
+ require_paths:
221
+ - lib
222
+ required_ruby_version: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - ">="
225
+ - !ruby/object:Gem::Version
226
+ version: 2.3.1
227
+ required_rubygems_version: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ version: '0'
232
+ requirements: []
233
+ rubyforge_project:
234
+ rubygems_version: 2.6.11
235
+ signing_key:
236
+ specification_version: 4
237
+ summary: An accountability component for decidim's participatory processes.
238
+ test_files: []