decidim-core 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/decidim/extras/_process_stats.scss +38 -0
  3. data/app/assets/stylesheets/decidim/layouts/_home.scss +2 -2
  4. data/app/controllers/concerns/decidim/feature_settings.rb +0 -2
  5. data/app/controllers/concerns/decidim/needs_organization.rb +18 -6
  6. data/app/controllers/decidim/account_controller.rb +1 -3
  7. data/app/controllers/decidim/authorizations_controller.rb +1 -3
  8. data/app/controllers/decidim/cookie_policy_controller.rb +1 -3
  9. data/app/controllers/decidim/locales_controller.rb +1 -3
  10. data/app/controllers/decidim/notifications_settings_controller.rb +1 -3
  11. data/app/controllers/decidim/own_user_groups_controller.rb +1 -3
  12. data/app/controllers/decidim/pages_controller.rb +1 -2
  13. data/app/controllers/decidim/participatory_process_groups_controller.rb +1 -3
  14. data/app/controllers/decidim/participatory_process_steps_controller.rb +1 -3
  15. data/app/controllers/decidim/participatory_processes_controller.rb +7 -5
  16. data/app/controllers/decidim/static_map_controller.rb +1 -3
  17. data/app/helpers/decidim/participatory_process_helper.rb +24 -0
  18. data/app/helpers/decidim/resource_helper.rb +1 -1
  19. data/app/presenters/decidim/home_stats_presenter.rb +12 -6
  20. data/app/presenters/decidim/participatory_process_stats_presenter.rb +50 -0
  21. data/app/views/decidim/application/_attachments.html.erb +1 -1
  22. data/app/views/decidim/participatory_processes/_statistics.html.erb +10 -0
  23. data/app/views/decidim/participatory_processes/show.html.erb +4 -7
  24. data/config/i18n-tasks.yml +1 -1
  25. data/config/locales/en.yml +19 -0
  26. data/config/locales/it.yml +41 -45
  27. data/db/migrate/20170725085104_add_show_statistics_to_participatory_processes.rb +7 -0
  28. data/db/seeds.rb +12 -22
  29. data/lib/decidim/core.rb +3 -9
  30. data/lib/decidim/core/engine.rb +1 -1
  31. data/lib/decidim/core/test/factories.rb +22 -46
  32. data/lib/decidim/core/version.rb +1 -1
  33. data/lib/decidim/feature_manifest.rb +2 -2
  34. metadata +16 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 57d950df7b4b3bc59a364fae1306993591d25843
4
- data.tar.gz: 507479b4b86006a2e3f0ea0eabb6c087865ffecb
3
+ metadata.gz: 889376b1a7af947c4cfdd5c6182211e66a1feebb
4
+ data.tar.gz: 8257ffd74960e6fe3f2ccdac75c8fbda7c67f634
5
5
  SHA512:
6
- metadata.gz: 6019e44c765d88dd513921ff1abc67b69911c53228408d5696f7c9be1bdfea47a845af095a0ae93fbe57af9430c6ef940fc9f006f67a9fc497b0415fa1d5777f
7
- data.tar.gz: 002e8f943ac4dd60dfc627312966bc94574eabdd664073af2ee35a063fa4a4806690ded0134987a5fd591d963fcc3018ff65c6c159f32a0ea42608565704e83f
6
+ metadata.gz: 8b9c5be3cb7b7a5878fb33ba611b452e56ee998dffc1a361483858fe714c63d382b74b128d6e531f50c329c31fe5c8aee4ed9b56a873570a41bd799b026ebd3c
7
+ data.tar.gz: 9c1c5e92003d02865b8b78bd31b52d13047536b9e46538ac52003f6831e9feae527ddaf12d410d948d823a02ed07ac55cd5a967f58432ff90354afb17cc47420
@@ -0,0 +1,38 @@
1
+ #participatory_process-statistics{
2
+ margin-bottom: 1.5rem;
3
+ }
4
+
5
+ .process_stats{
6
+ padding: 0;
7
+ .process_stats-item{
8
+ width: 33.3%;
9
+ @include breakpoint(large down){
10
+ width: 33.3%;
11
+ }
12
+ @include breakpoint(medium down){
13
+ width: 49.9%;
14
+ }
15
+ @include breakpoint(smallmedium down){
16
+ width: 100%;
17
+ }
18
+ display: inline-block;
19
+ padding: 1em;
20
+ border: $border;
21
+ background: $white;
22
+ .icon {
23
+ width: 1.5em;
24
+ height: 1.5em;
25
+ color: #599aa6;
26
+ vertical-align: middle;
27
+ margin-right: 0.5rem;
28
+ }
29
+ .process_stats-text{
30
+ text-transform: uppercase;
31
+ letter-spacing: 0.03em;
32
+ font-size: 90%;
33
+ color: #3D393C;
34
+ font-weight: 600;
35
+ line-height: 1;
36
+ }
37
+ }
38
+ }
@@ -91,7 +91,7 @@
91
91
  .subhero{
92
92
  padding: 4rem 0;
93
93
  text-align: center;
94
-
94
+
95
95
  .heading3{
96
96
  @include breakpoint(medium down){
97
97
  font-size: 1.3em;
@@ -202,7 +202,7 @@
202
202
  border-bottom: $border;
203
203
  border-right: $border;
204
204
  }
205
-
205
+
206
206
  &:last-child{
207
207
  border-right: none;
208
208
  }
@@ -9,8 +9,6 @@ module Decidim
9
9
  extend ActiveSupport::Concern
10
10
 
11
11
  included do
12
- include NeedsParticipatoryProcess
13
-
14
12
  helper_method :feature_settings, :current_settings
15
13
 
16
14
  def feature_settings
@@ -1,18 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "active_support/concern"
4
-
5
3
  module Decidim
6
4
  # Shared behaviour for controllers that need an organization present in order
7
5
  # to work. The organization is injected via the CurrentOrganization
8
6
  # middleware.
9
7
  module NeedsOrganization
10
- extend ActiveSupport::Concern
8
+ def self.enhance_controller(instance_or_module)
9
+ instance_or_module.class_eval do
10
+ before_action :verify_organization
11
+ helper_method :current_organization
12
+ end
13
+ end
14
+
15
+ def self.extended(base)
16
+ base.extend InstanceMethods
11
17
 
12
- included do
13
- before_action :verify_organization
14
- helper_method :current_organization
18
+ enhance_controller(base)
19
+ end
20
+
21
+ def self.included(base)
22
+ base.include InstanceMethods
23
+
24
+ enhance_controller(base)
25
+ end
15
26
 
27
+ module InstanceMethods
16
28
  # The current organization for the request.
17
29
  #
18
30
  # Returns an Organization.
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
-
5
3
  module Decidim
6
4
  # The controller to handle the user's account page.
7
- class AccountController < ApplicationController
5
+ class AccountController < Decidim::ApplicationController
8
6
  helper_method :authorizations
9
7
  include Decidim::UserProfile
10
8
 
@@ -1,11 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
-
5
3
  module Decidim
6
4
  # This controller allows users to create and destroy their authorizations. It
7
5
  # shouldn't be necessary to expand it to add new authorization schemes.
8
- class AuthorizationsController < ApplicationController
6
+ class AuthorizationsController < Decidim::ApplicationController
9
7
  helper_method :handler, :handlers, :stored_location
10
8
  before_action :valid_handler, only: [:new, :create]
11
9
 
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
-
5
3
  module Decidim
6
4
  # This controller allows the user to accept the cookie policy.
7
- class CookiePolicyController < ApplicationController
5
+ class CookiePolicyController < Decidim::ApplicationController
8
6
  skip_authorization_check
9
7
 
10
8
  def accept
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
-
5
3
  module Decidim
6
4
  # A controller to allow users switching their locale.
7
- class LocalesController < ApplicationController
5
+ class LocalesController < Decidim::ApplicationController
8
6
  authorize_resource :locales, class: false
9
7
 
10
8
  def create
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
-
5
3
  module Decidim
6
4
  # The controller to handle the user's notifications settings page.
7
- class NotificationsSettingsController < ApplicationController
5
+ class NotificationsSettingsController < Decidim::ApplicationController
8
6
  include Decidim::UserProfile
9
7
 
10
8
  def show
@@ -1,11 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
-
5
3
  module Decidim
6
4
  # The controller to handle managing the current user's
7
5
  # UserGroups.
8
- class OwnUserGroupsController < ApplicationController
6
+ class OwnUserGroupsController < Decidim::ApplicationController
9
7
  include Decidim::UserProfile
10
8
 
11
9
  def index
@@ -1,11 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
3
  require_dependency "decidim/page_finder"
5
4
 
6
5
  module Decidim
7
6
  # This controller serves static pages using HighVoltage.
8
- class PagesController < ApplicationController
7
+ class PagesController < Decidim::ApplicationController
9
8
  include HighVoltage::StaticPage
10
9
 
11
10
  layout "layouts/decidim/application"
@@ -1,9 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
-
5
3
  module Decidim
6
- class ParticipatoryProcessGroupsController < ApplicationController
4
+ class ParticipatoryProcessGroupsController < Decidim::ApplicationController
7
5
  helper_method :participatory_processes, :group, :collection
8
6
 
9
7
  before_action :set_group
@@ -1,11 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
-
5
3
  module Decidim
6
4
  # A controller that holds the logic to show ParticipatoryProcessSteps in a
7
5
  # public layout.
8
- class ParticipatoryProcessStepsController < ApplicationController
6
+ class ParticipatoryProcessStepsController < Decidim::ApplicationController
9
7
  helper_method :participatory_process, :current_participatory_process
10
8
  layout "layouts/decidim/participatory_process", only: [:index]
11
9
  include NeedsParticipatoryProcess
@@ -1,21 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
-
5
3
  module Decidim
6
4
  # A controller that holds the logic to show ParticipatoryProcesses in a
7
5
  # public layout.
8
- class ParticipatoryProcessesController < ApplicationController
6
+ class ParticipatoryProcessesController < Decidim::ApplicationController
9
7
  layout "layouts/decidim/participatory_process", only: [:show]
10
8
 
11
- before_action -> { extend(NeedsParticipatoryProcess) }, only: [:show]
9
+ before_action -> { extend NeedsParticipatoryProcess }, only: [:show]
12
10
 
13
11
  helper Decidim::AttachmentsHelper
14
12
  helper Decidim::ParticipatoryProcessHelper
15
13
  helper Decidim::IconHelper
16
14
  helper Decidim::WidgetUrlsHelper
17
15
 
18
- helper_method :collection, :promoted_participatory_processes, :participatory_processes
16
+ helper_method :collection, :promoted_participatory_processes, :participatory_processes, :stats
19
17
 
20
18
  def index
21
19
  authorize! :read, ParticipatoryProcess
@@ -43,5 +41,9 @@ module Decidim
43
41
  def participatory_process_groups
44
42
  @process_groups ||= Decidim::ParticipatoryProcessGroup.where(organization: current_organization)
45
43
  end
44
+
45
+ def stats
46
+ @stats ||= ParticipatoryProcessStatsPresenter.new(participatory_process: current_participatory_process)
47
+ end
46
48
  end
47
49
  end
@@ -1,9 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/application_controller"
4
-
5
3
  module Decidim
6
- class StaticMapController < ApplicationController
4
+ class StaticMapController < Decidim::ApplicationController
7
5
  skip_authorization_check
8
6
 
9
7
  def show
@@ -13,5 +13,29 @@ module Decidim
13
13
  dates = [participatory_process_step.start_date, participatory_process_step.end_date]
14
14
  dates.map { |date| date ? localize(date.to_date, format: :default) : "?" }.join(" - ")
15
15
  end
16
+
17
+ # Public: Returns an icon given an instance of a Feature. It defaults to
18
+ # a question mark when no icon is found.
19
+ #
20
+ # feature - The feature to generate the icon for.
21
+ #
22
+ # Returns an HTML tag with the icon.
23
+ def feature_icon(feature)
24
+ feature_manifest_icon(feature.manifest)
25
+ end
26
+
27
+ # Public: Returns an icon given an instance of a Feature Manifest. It defaults to
28
+ # a question mark when no icon is found.
29
+ #
30
+ # feature_manifest - The feature manifest to generate the icon for.
31
+ #
32
+ # Returns an HTML tag with the icon.
33
+ def feature_manifest_icon(feature_manifest)
34
+ if feature_manifest.icon
35
+ external_icon feature_manifest.icon
36
+ else
37
+ icon "question-mark"
38
+ end
39
+ end
16
40
  end
17
41
  end
@@ -67,7 +67,7 @@ module Decidim
67
67
 
68
68
  # Returns an instance of ResourceLocatorPresenter with the given resource
69
69
  def resource_locator(resource)
70
- ResourceLocatorPresenter.new(resource)
70
+ ::Decidim::ResourceLocatorPresenter.new(resource)
71
71
  end
72
72
  end
73
73
  end
@@ -11,6 +11,7 @@ module Decidim
11
11
  highlighted_stats = highlighted_stats.concat(global_stats(priority: StatsRegistry::HIGH_PRIORITY))
12
12
  highlighted_stats = highlighted_stats.concat(feature_stats(priority: StatsRegistry::HIGH_PRIORITY))
13
13
  highlighted_stats = highlighted_stats.reject(&:empty?)
14
+ highlighted_stats = highlighted_stats.reject { |_name, data| data.zero? }
14
15
 
15
16
  safe_join(
16
17
  highlighted_stats.in_groups_of(2, false).map do |stats|
@@ -30,9 +31,10 @@ module Decidim
30
31
  not_highlighted_stats = global_stats(priority: StatsRegistry::MEDIUM_PRIORITY)
31
32
  not_highlighted_stats = not_highlighted_stats.concat(feature_stats(priority: StatsRegistry::MEDIUM_PRIORITY))
32
33
  not_highlighted_stats = not_highlighted_stats.reject(&:empty?)
34
+ not_highlighted_stats = not_highlighted_stats.reject { |_name, data| data.zero? }
33
35
 
34
36
  safe_join(
35
- not_highlighted_stats.in_groups_of(3, false).map do |stats|
37
+ not_highlighted_stats.in_groups_of(3, [:empty]).map do |stats|
36
38
  content_tag :div, class: "home-pam__lowlight" do
37
39
  safe_join(
38
40
  stats.map do |name, data|
@@ -61,15 +63,19 @@ module Decidim
61
63
 
62
64
  def render_stats_data(name, data)
63
65
  content_tag :div, "", class: "home-pam__data" do
64
- safe_join([
65
- content_tag(:h4, I18n.t(name, scope: "pages.home.statistics"), class: "home-pam__title"),
66
- content_tag(:span, " #{number_with_delimiter(data)}", class: "home-pam__number #{name}")
67
- ])
66
+ if name == :empty
67
+ "&nbsp;".html_safe
68
+ else
69
+ safe_join([
70
+ content_tag(:h4, I18n.t(name, scope: "pages.home.statistics"), class: "home-pam__title"),
71
+ content_tag(:span, " #{number_with_delimiter(data)}", class: "home-pam__number #{name}")
72
+ ])
73
+ end
68
74
  end
69
75
  end
70
76
 
71
77
  def published_features
72
- @published_features ||= Feature.where(participatory_process: organization.participatory_processes.published)
78
+ @published_features ||= Feature.where(participatory_process: organization.participatory_processes.published).published
73
79
  end
74
80
  end
75
81
  end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ # A presenter to render statistics in the homepage.
5
+ class ParticipatoryProcessStatsPresenter < Rectify::Presenter
6
+ attribute :participatory_process, Decidim::ParticipatoryProcess
7
+ include Decidim::ParticipatoryProcessHelper
8
+
9
+ # Public: Render a collection of primary stats.
10
+ def highlighted
11
+ highlighted_stats = feature_stats(priority: StatsRegistry::HIGH_PRIORITY)
12
+ highlighted_stats = highlighted_stats.concat(feature_stats(priority: StatsRegistry::MEDIUM_PRIORITY))
13
+ highlighted_stats = highlighted_stats.reject(&:empty?)
14
+ highlighted_stats = highlighted_stats.reject { |_manifest, _name, data| data.zero? }
15
+ grouped_highlighted_stats = highlighted_stats.group_by { |stats| stats.first.name }
16
+
17
+ safe_join(
18
+ grouped_highlighted_stats.map do |_manifest_name, stats|
19
+ content_tag :div, class: "process_stats-item" do
20
+ safe_join(
21
+ stats.each_with_index.map do |stat, index|
22
+ render_stats_data(stat[0], stat[1], stat[2], index)
23
+ end
24
+ )
25
+ end
26
+ end
27
+ )
28
+ end
29
+
30
+ private
31
+
32
+ def feature_stats(conditions)
33
+ Decidim.feature_manifests.map do |feature_manifest|
34
+ feature_manifest.stats.filter(conditions).with_context(published_features).map { |name, data| [feature_manifest, name, data] }.flatten
35
+ end
36
+ end
37
+
38
+ def render_stats_data(feature_manifest, name, data, index)
39
+ safe_join([
40
+ index.zero? ? feature_manifest_icon(feature_manifest) : " /&nbsp".html_safe,
41
+ content_tag(:span, "#{number_with_delimiter(data)} " + I18n.t(name, scope: "decidim.participatory_processes.statistics"),
42
+ class: "#{name} process_stats-text")
43
+ ])
44
+ end
45
+
46
+ def published_features
47
+ @published_features ||= Feature.where(participatory_process: participatory_process).published
48
+ end
49
+ end
50
+ end
@@ -1,6 +1,6 @@
1
1
  <% if attached_to.attachments.any? %>
2
2
  <div class="row attachments">
3
- <div class="columns large-8">
3
+ <div class="columns large-12">
4
4
  <%= render partial: "documents", locals: { documents: attached_to.documents } %>
5
5
  <%= render partial: "photos", locals: { photos: attached_to.photos } %>
6
6
  </div>
@@ -0,0 +1,10 @@
1
+ <section class="extended" id="participatory_process-statistics" class="statistics">
2
+ <div class="row column">
3
+ <h4 class="section-heading"><%= t(".headline", participatory_process: translated_attribute(current_participatory_process.title)) %></h3>
4
+ </div>
5
+ <div class="row">
6
+ <div class="columns small-centered mediumlarge-12 large-12 process_stats">
7
+ <%= stats.highlighted %>
8
+ </div>
9
+ </div>
10
+ </section>
@@ -15,6 +15,7 @@
15
15
  </div>
16
16
  <%== translated_attribute(current_participatory_process.description) %>
17
17
  </div>
18
+ <%= attachments_for current_participatory_process %>
18
19
  </div>
19
20
  <div class="section columns medium-5 mediumlarge-4 large-3">
20
21
  <div class="card extra definition-data">
@@ -67,17 +68,13 @@
67
68
  </div>
68
69
  <% end %>
69
70
  </div>
70
- </div>
71
- </div>
72
-
73
- <div class="row">
74
- <div class="columns section view-side mediumlarge-4 mediumlarge-push-8 large-3 large-push-9">
75
71
  <%= render partial: "decidim/shared/share_modal" %>
76
72
  <%= embed_modal_for participatory_process_participatory_process_widget_url(current_participatory_process, format: :js) %>
77
73
  </div>
78
74
  </div>
79
-
80
- <%= attachments_for current_participatory_process %>
75
+ <% if current_participatory_process.show_statistics? %>
76
+ <%= render partial: 'statistics' %>
77
+ <% end %>
81
78
  </div>
82
79
 
83
80
  <%= javascript_include_tag "decidim/proposals/social_share" %>
@@ -105,8 +105,8 @@ ignore_unused:
105
105
  - decidim.participatory_processes.scopes.global
106
106
  - decidim.participatory_processes.participatory_process_groups.none
107
107
  - pages.home.statistics.*
108
+ - decidim.participatory_processes.statistics.*
108
109
  - forms.*
109
-
110
110
  # - 'activerecord.attributes.*'
111
111
  # - '{devise,kaminari,will_paginate}.*'
112
112
  # - 'simple_form.{yes,no}'
@@ -206,6 +206,20 @@ en:
206
206
  participatory_structure: Participatory structure
207
207
  scope: Scope
208
208
  target: Target
209
+ statistics:
210
+ answers_count: Answers
211
+ comments_count: Comments
212
+ headline: Activity
213
+ meetings_count: Meetings
214
+ orders_count: Orders
215
+ pages_count: Pages
216
+ processes_count: Processes
217
+ projects_count: Projects
218
+ proposals_count: Proposals
219
+ results_count: Results
220
+ surveys_count: Surveys
221
+ users_count: Participants
222
+ votes_count: Votes
209
223
  reported_mailer:
210
224
  hide:
211
225
  hello: Hello %{name},
@@ -383,12 +397,17 @@ en:
383
397
  active_step: Active step
384
398
  see_all_processes: See all processes
385
399
  statistics:
400
+ answers_count: Answers
386
401
  comments_count: Comments
387
402
  headline: Current state of %{organization}
388
403
  meetings_count: Meetings
404
+ orders_count: Orders
405
+ pages_count: Pages
389
406
  processes_count: Processes
407
+ projects_count: Projects
390
408
  proposals_count: Proposals
391
409
  results_count: Results
410
+ surveys_count: Surveys
392
411
  users_count: Participants
393
412
  votes_count: Votes
394
413
  sub_hero:
@@ -124,26 +124,26 @@ it:
124
124
  verified: Verificato
125
125
  pages:
126
126
  index:
127
- title: Ulteriori informazioni
127
+ title: Informazione
128
128
  participatory_process_groups:
129
129
  show:
130
- group_participatory_processes: Processi per il gruppo %{group}
130
+ group_participatory_processes: Processi per %{group}
131
131
  title: Titolo
132
132
  participatory_process_steps:
133
133
  index:
134
134
  process_steps: Fasi del processo
135
- title: Fasi del processo participatorio
135
+ title: Fasi del processo partecipativo
136
136
  participatory_processes:
137
137
  index:
138
- title: Processo participatorio
138
+ title: Processi partecipativi
139
139
  participatory_process_groups:
140
140
  none: Nessuno
141
141
  scopes:
142
142
  global: Ambito globale
143
143
  show:
144
- developer_group: Gruppo di sviluppo
144
+ developer_group: Gruppo promotore
145
145
  end_date: Data di fine
146
- local_area: Area locale
146
+ local_area: Municipi
147
147
  participatory_scope: Ambito partecipativo
148
148
  participatory_structure: Struttura partecipativa
149
149
  scope: Ambito
@@ -151,48 +151,47 @@ it:
151
151
  hide:
152
152
  hello: Ciao %{name},
153
153
  report_html: <p>Il seguente <a href="%{url}">contenuto</a> è stato nascosto automaticamente.</p>
154
- subject: Una risorsa è stata cancellata automaticamente
154
+ subject: Un contenuto è stato cancellato automaticamente
155
155
  report:
156
156
  hello: Ciao %{name},
157
- subject: Una risorsa è stata riportata
157
+ subject: Un contenuto è stato denunciato
158
158
  reports:
159
159
  create:
160
- error: Si è verificato un errore durante la creazione del report. Per cortesia, prova ad effettuare nuovamente l'operazione.
161
- success: OK, il report è stato creato e sarà revisionato da un amministratore.
160
+ error: Si è verificato un un errore. Ti preghiamo di riprovare.
161
+ success: Il report è stato creato e sarà rivisto da un amministratore.
162
162
  shared:
163
163
  action_authorization_modal:
164
164
  incomplete:
165
165
  cancel: Annulla
166
- explanation: 'Anche se attualmente sei autorizzato con "%{authorization}", abbiamo bisogno che tu richieda una nuova autorizzazione poiché risultano mancanti i seguenti dati:'
167
- reauthorize: Ri-autorizza
168
- title: Per cortesia, occorre una nuova autorizzazione
166
+ explanation: 'Nonostante già sei autorizzato con "%{authorization}", abbiamo bisogno che tu richieda una nuova autorizzazione poiché risultano mancanti i seguenti dati:'
167
+ reauthorize: Ri-autorizzare
168
+ title: Per favore, occorre una nuova autorizzazione
169
169
  missing:
170
- authorize: Autorizza con "%{authorization}"
171
- explanation: Per effettuare questa operazione occorre che tu sia autorizzato con "%{authorization}".
172
- title: E' necessaria l'autorizzazione
170
+ authorize: Autorizzare con "%{authorization}"
171
+ explanation: Per effettuare questa operazione devi disporre della autorizzazione "%{authorization}".
172
+ title: Autorizzazione richiesta
173
173
  unauthorized:
174
- explanation: Mi spiace, non puoi effettuare questa operazione poiché i tuoi dati di autorizzazione non corrispondono.
175
- invalid: "Il campo %{field} non risulta valido."
174
+ explanation: Non puoi eseguire questa azione poiché alcuni dei tuoi dati di autorizzazione non corrispondono.
175
+ invalid: "%{field} non è valido."
176
176
  title: Non autorizzato
177
177
  embed_modal:
178
178
  close_window: Chiudi la finestra
179
- embed: Per cortesia incolla questo codice nella tua pagina
179
+ embed: Per favore, incolla questo codice nella tua pagina
180
180
  embed_link: Incorpora
181
181
  flag_modal:
182
- already_reported: Questo contenuto è già stato riportato e sarà revisionato da parte di un amministratore.
182
+ already_reported: Questo contenuto è già stato riportato e sarà revisionato da un amministratore.
183
183
  close: Chiudi
184
184
  description: Questo contenuto è inappropriato?
185
- does_not_belong: Contiene attività illegati, istigazione al suicidio, informazioni personali o riservate, minacce o altro che tu pensi che non sia appropriato per %{organization_name}.
185
+ does_not_belong: Contiene attività illegali, istigazione al suicidio, informazioni personali o riservate, o altre cose che tu credi che non sono appropriato per %{organization_name}.
186
186
  offensive: Contiene contenuti razzisti, diffamatori, sessisti, insulti o attacchi personali, minacce di morte, istigazioni al suicidio o altre forme di odio verbale.
187
- spam: Contiene pubblicità, truffe, spam oppure ha come intento di attirare traffico internet e "click".
187
+ spam: Contiene clickbait, pubblicità, truffe o script bots.
188
188
  title: Segnala un problema
189
189
  login_modal:
190
- please_sign_in: Per cortesia effettua l'accesso.
191
190
  sign_up: Registrazione
192
191
  share_modal:
193
192
  close_window: Chiudi questa finestra
194
193
  share: Condividi
195
- share_link: Condividi questo link
194
+ share_link: Condividi link
196
195
  devise:
197
196
  invitations:
198
197
  edit:
@@ -201,48 +200,45 @@ it:
201
200
  mailer:
202
201
  invitation_instructions:
203
202
  accept: Accetta l'invito
204
- accept_until: Questo invito sarà valido fino al %{due_date}.
203
+ accept_until: Questo invito scade il %{due_date}.
205
204
  hello: Ciao %{email},
206
205
  ignore: |-
207
- Se non hai intenzione di accettare l'invito, per cortesia ignora questa email.<br />
208
- Non verrà un account relativo al tuo profilo fino a che non effettuerai l'accesso al link precedente ed imposterai la tua password.
206
+ Se non desideri accettare l'invito, ignora questa email.<br /> Il tuo account non verrà creato finché non accedi al link precedente e imposti la tua password.
209
207
  invited_you_as_admin: "%{invited_by} ti ha invitato come amministratore di %{application}, puoi accettare l'invito tramite il seguente link."
210
- someone_invited_you: Sei stato invitato per %{application}, puoi accettare l'invito tramite il seguente link.
211
- invite_admin:
212
- subject: Sei stato invitato per la gestione della sezione relativa all'organizzazione %{organization}
208
+ someone_invited_you: Sei stato invitato a %{application}, puoi accettare l'invito tramite il seguente link.
213
209
  invite_collaborator:
214
- subject: Sei stato invitato a collaborare per la sezione relativa all'organizzazione %{organization}
210
+ subject: Sei stato invitato a collaborare nella %{organization}
215
211
  organization_admin_invitation_instructions:
216
- subject: Sei stato invitato a gestire la sezione relativa all'organizzazione %{organization}
212
+ subject: Sei stato invitato a gestire %{organization}
217
213
  password_change:
218
214
  greeting: Ciao %{recipient}!
219
- message: ti contattiamo per informarti che la tua password è stata modificata.
215
+ message: Ti contattiamo per informarti che la tua password è stata modificata.
220
216
  subject: Password modificata
221
217
  errors:
222
218
  messages:
223
219
  content_type_whitelist_error: Il tipo di file non è valido.
224
- file_size_is_less_than_or_equal_to: La dimensione del file deve essere minore o uguale a %{count}
220
+ file_size_is_less_than_or_equal_to: la dimensione del file deve essere inferiore o uguale a %{count}
225
221
  invalid_manifest: Manifesto non valido
226
222
  invalid_participatory_process: Processo partecipativo non valido
227
223
  long_words: Contiene parole troppo lunghe
228
- must_start_with_caps: Deve iniziare in maiuscolo
229
- nesting_too_deep: Non può essere all'interno di una categoria (annidamento eccessivo)
230
- too_many_marks: Uilizza troppi segni
231
- too_much_caps: Utilizza troppe MAIUSCOLE
224
+ must_start_with_caps: Deve iniziare in maiuscola
225
+ nesting_too_deep: Non può stare all'interno di una subcategoria
226
+ too_many_marks: Sta utilizzando troppi segni di punteggiatura
227
+ too_much_caps: Sta utilizzando troppe maiuscole
232
228
  too_short: Il contenuto è troppo breve
233
229
  invisible_captcha:
234
230
  sentence_for_humans: Se sei una persona e non un computer, ignora questo campo
235
- timestamp_error_message: Mi spiace, troppo veloce! Per cortesia sottoponi nuovamente il contenuto.
231
+ timestamp_error_message: Mi dispiace, troppo veloce! Per favore, invia di nuovo.
236
232
  layouts:
237
233
  decidim:
238
234
  cookie_warning:
239
- description_html: Questo sito utilizza dei cookies. Se continui la navigazione significa che approvi i nostri termini di utilizzo dei cookies. Per ulteriori dettagli in proposito leggi %{link}.
235
+ description_html: Questo sito utilizza cookies. Se continui la navigazione significa che approvi i nostri termini di utilizzo di cookies. Per saperne di più, leggi %{link}.
240
236
  link_label: qui
241
237
  ok: OK, accetto
242
238
  footer:
243
- made_with_open_source: 'Questo sito è su GitHub <a target="_blank" href="https://github.com/decidim/decidim">software libero</a>.'
239
+ made_with_open_source: 'Sito web creato con <a target="_blank" href="https://github.com/decidim/decidim">software libero</a>.'
244
240
  header:
245
- close_menu: Chiudi questo menu
241
+ close_menu: Chiudere menu
246
242
  navigation: Navigazione
247
243
  sign_in: Accedi
248
244
  sign_up: Registrati
@@ -257,18 +253,18 @@ it:
257
253
  index:
258
254
  promoted_processes: Processi evidenziati
259
255
  no_processes_yet:
260
- no_processes_yet: Non ci sono ancora dei processi partecipativi!
256
+ no_processes_yet: Non ci sono ancora processi partecipativi!
261
257
  order_by_processes:
262
258
  processes:
263
259
  one: "%{count} processo"
264
260
  other: "%{count} processi"
265
261
  participatory_process:
266
262
  active_step: 'Fase attuale:'
267
- take_part: Unisciti
263
+ take_part: Partecipa
268
264
  promoted_process:
269
265
  active_step: 'Fase attuale:'
270
266
  more_info: Più informazioni
271
- take_part: Unisciti
267
+ take_part: Partecipa
272
268
  process_header:
273
269
  process_menu_item: Il processo
274
270
  unfold: Espandi
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddShowStatisticsToParticipatoryProcesses < ActiveRecord::Migration[5.1]
4
+ def change
5
+ add_column :decidim_participatory_processes, :show_statistics, :boolean, default: true
6
+ end
7
+ end
data/db/seeds.rb CHANGED
@@ -55,25 +55,13 @@ if !Rails.env.production? || ENV["SEED"]
55
55
  replies_notifications: true
56
56
  )
57
57
 
58
- 3.times do
59
- Decidim::User.find_each do |user|
60
- user_group = Decidim::UserGroup.create!(
61
- name: Faker::Company.name,
62
- document_number: Faker::Number.number(10),
63
- phone: Faker::PhoneNumber.phone_number,
64
- verified_at: Time.current,
65
- decidim_organization_id: user.organization.id
66
- )
67
-
68
- Decidim::UserGroupMembership.create!(
69
- user: user,
70
- user_group: user_group
71
- )
72
-
58
+ Decidim::User.find_each do |user|
59
+ [nil, Time.current].each do |verified_at|
73
60
  user_group = Decidim::UserGroup.create!(
74
61
  name: Faker::Company.unique.name,
75
62
  document_number: Faker::Number.number(10),
76
63
  phone: Faker::PhoneNumber.phone_number,
64
+ verified_at: verified_at,
77
65
  decidim_organization_id: user.organization.id
78
66
  )
79
67
 
@@ -84,6 +72,8 @@ if !Rails.env.production? || ENV["SEED"]
84
72
  end
85
73
  end
86
74
 
75
+ seeds_root = File.join(__dir__, "seeds")
76
+
87
77
  process_groups = []
88
78
  3.times do
89
79
  process_groups << Decidim::ParticipatoryProcessGroup.create!(
@@ -91,7 +81,7 @@ if !Rails.env.production? || ENV["SEED"]
91
81
  description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
92
82
  Decidim::Faker::Localized.paragraph(3)
93
83
  end,
94
- hero_image: File.new(File.join(__dir__, "seeds", "city.jpeg")),
84
+ hero_image: File.new(File.join(seeds_root, "city.jpeg")),
95
85
  organization: organization
96
86
  )
97
87
  end
@@ -108,8 +98,8 @@ if !Rails.env.production? || ENV["SEED"]
108
98
  description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
109
99
  Decidim::Faker::Localized.paragraph(3)
110
100
  end,
111
- hero_image: File.new(File.join(__dir__, "seeds", "city.jpeg")),
112
- banner_image: File.new(File.join(__dir__, "seeds", "city2.jpeg")),
101
+ hero_image: File.new(File.join(seeds_root, "city.jpeg")),
102
+ banner_image: File.new(File.join(seeds_root, "city2.jpeg")),
113
103
  promoted: true,
114
104
  published_at: 2.weeks.ago,
115
105
  organization: organization,
@@ -153,21 +143,21 @@ if !Rails.env.production? || ENV["SEED"]
153
143
 
154
144
  Decidim::ParticipatoryProcessUserRole.create!(user: user, participatory_process: process, role: role)
155
145
  end
156
- end
157
146
 
158
- Decidim::ParticipatoryProcess.find_each do |process|
159
147
  Decidim::Attachment.create!(
160
148
  title: Decidim::Faker::Localized.sentence(2),
161
149
  description: Decidim::Faker::Localized.sentence(5),
162
- file: File.new(File.join(__dir__, "seeds", "city.jpeg")),
150
+ file: File.new(File.join(seeds_root, "city.jpeg")),
163
151
  attached_to: process
164
152
  )
153
+
165
154
  Decidim::Attachment.create!(
166
155
  title: Decidim::Faker::Localized.sentence(2),
167
156
  description: Decidim::Faker::Localized.sentence(5),
168
- file: File.new(File.join(__dir__, "seeds", "Exampledocument.pdf")),
157
+ file: File.new(File.join(seeds_root, "Exampledocument.pdf")),
169
158
  attached_to: process
170
159
  )
160
+
171
161
  2.times do
172
162
  Decidim::Category.create!(
173
163
  name: Decidim::Faker::Localized.sentence(5),
data/lib/decidim/core.rb CHANGED
@@ -43,19 +43,13 @@ module Decidim
43
43
  original_locale = I18n.available_locales
44
44
  I18n.available_locales = original_locale + [:en] unless original_locale.include?(:en)
45
45
 
46
- railties = Rails.application.railties.to_a.uniq.select do |railtie|
47
- railtie.respond_to?(:load_seed) && railtie.class.name.include?("Decidim::")
48
- end
46
+ Rails.application.railties.to_a.uniq.each do |railtie|
47
+ next unless railtie.respond_to?(:load_seed) && railtie.class.name.include?("Decidim::")
49
48
 
50
- railties.each do |railtie|
51
- puts "Creating #{railtie.class.name} seeds..."
52
49
  railtie.load_seed
53
50
  end
54
51
 
55
- Decidim.feature_manifests.each do |feature|
56
- puts "Creating Feature (#{feature.name}) seeds..."
57
- feature.seed!
58
- end
52
+ Decidim.feature_manifests.each(&:seed!)
59
53
 
60
54
  I18n.available_locales = original_locale
61
55
  end
@@ -142,7 +142,7 @@ module Decidim
142
142
  menu.item I18n.t("menu.home", scope: "decidim"),
143
143
  decidim.root_path,
144
144
  position: 1,
145
- active: ["decidim/pages" => :show]
145
+ active: :exact
146
146
 
147
147
  menu.item I18n.t("menu.processes", scope: "decidim"),
148
148
  decidim.participatory_processes_path,
@@ -4,7 +4,7 @@ require "decidim/faker/localized"
4
4
  require "decidim/dev"
5
5
 
6
6
  FactoryGirl.define do
7
- sequence :name do |n|
7
+ sequence(:name) do |n|
8
8
  "#{Faker::Name.name} #{n}"
9
9
  end
10
10
 
@@ -41,12 +41,12 @@ FactoryGirl.define do
41
41
  sequence(:host) { |n| "#{n}.lvh.me" }
42
42
  description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(2) } }
43
43
  welcome_text { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(2) } }
44
- homepage_image { test_file("city.jpeg", "image/jpeg") }
45
- favicon { test_file("icon.png", "image/png") }
44
+ homepage_image { Decidim::Dev.test_file("city.jpeg", "image/jpeg") }
45
+ favicon { Decidim::Dev.test_file("icon.png", "image/png") }
46
46
  default_locale { I18n.default_locale }
47
47
  available_locales { Decidim.available_locales }
48
- official_img_header { test_file("avatar.jpg", "image/jpeg") }
49
- official_img_footer { test_file("avatar.jpg", "image/jpeg") }
48
+ official_img_header { Decidim::Dev.test_file("avatar.jpg", "image/jpeg") }
49
+ official_img_footer { Decidim::Dev.test_file("avatar.jpg", "image/jpeg") }
50
50
  official_url { Faker::Internet.url }
51
51
  end
52
52
 
@@ -56,8 +56,8 @@ FactoryGirl.define do
56
56
  subtitle { Decidim::Faker::Localized.sentence(1) }
57
57
  short_description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(2) } }
58
58
  description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(4) } }
59
- hero_image { test_file("city.jpeg", "image/jpeg") }
60
- banner_image { test_file("city2.jpeg", "image/jpeg") }
59
+ hero_image { Decidim::Dev.test_file("city.jpeg", "image/jpeg") }
60
+ banner_image { Decidim::Dev.test_file("city2.jpeg", "image/jpeg") }
61
61
  published_at { Time.current }
62
62
  organization
63
63
  meta_scope { Decidim::Faker::Localized.word }
@@ -67,6 +67,8 @@ FactoryGirl.define do
67
67
  participatory_scope { Decidim::Faker::Localized.sentence(1) }
68
68
  participatory_structure { Decidim::Faker::Localized.sentence(2) }
69
69
  end_date 2.month.from_now.at_midnight
70
+ show_statistics true
71
+
70
72
  trait :promoted do
71
73
  promoted true
72
74
  end
@@ -103,7 +105,7 @@ FactoryGirl.define do
103
105
  factory :participatory_process_group, class: Decidim::ParticipatoryProcessGroup do
104
106
  name { Decidim::Faker::Localized.sentence(3) }
105
107
  description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(4) } }
106
- hero_image { test_file("city.jpeg", "image/jpeg") }
108
+ hero_image { Decidim::Dev.test_file("city.jpeg", "image/jpeg") }
107
109
  organization
108
110
  end
109
111
 
@@ -133,7 +135,7 @@ FactoryGirl.define do
133
135
  organization
134
136
  locale { organization.default_locale }
135
137
  tos_agreement "1"
136
- avatar { test_file("avatar.jpg", "image/jpeg") }
138
+ avatar { Decidim::Dev.test_file("avatar.jpg", "image/jpeg") }
137
139
  comments_notifications true
138
140
  replies_notifications true
139
141
 
@@ -160,35 +162,19 @@ FactoryGirl.define do
160
162
  role: :admin
161
163
  end
162
164
  end
165
+ end
163
166
 
164
- trait :process_collaborator do
165
- transient { participatory_process nil }
166
-
167
- after(:create) do |user, evaluator|
168
- create :participatory_process_user_role,
169
- user: user,
170
- participatory_process: evaluator.participatory_process,
171
- role: :collaborator
172
- end
173
- end
174
-
175
- trait :process_moderator do
176
- transient { participatory_process nil }
177
-
178
- after(:create) do |user, evaluator|
179
- create :participatory_process_user_role,
180
- user: user,
181
- participatory_process: evaluator.participatory_process,
182
- role: :moderator
183
- end
184
- end
167
+ factory :participatory_process_user_role, class: Decidim::ParticipatoryProcessUserRole do
168
+ user
169
+ participatory_process
170
+ role "admin"
185
171
  end
186
172
 
187
173
  factory :user_group, class: Decidim::UserGroup do
188
174
  name { Faker::Educator.course }
189
175
  document_number { Faker::Number.number(8) + "X" }
190
176
  phone { Faker::PhoneNumber.phone_number }
191
- avatar { test_file("avatar.jpg", "image/jpeg") }
177
+ avatar { Decidim::Dev.test_file("avatar.jpg", "image/jpeg") }
192
178
  organization
193
179
 
194
180
  transient do
@@ -245,23 +231,23 @@ FactoryGirl.define do
245
231
  factory :attachment, class: Decidim::Attachment do
246
232
  title { Decidim::Faker::Localized.sentence(3) }
247
233
  description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(4) } }
248
- file { test_file("city.jpeg", "image/jpeg") }
234
+ file { Decidim::Dev.test_file("city.jpeg", "image/jpeg") }
249
235
  attached_to { build(:participatory_process) }
250
236
 
251
237
  trait :with_image do
252
- file { test_file("city.jpeg", "image/jpeg") }
238
+ file { Decidim::Dev.test_file("city.jpeg", "image/jpeg") }
253
239
  end
254
240
 
255
241
  trait :with_pdf do
256
- file { test_file("Exampledocument.pdf", "application/pdf") }
242
+ file { Decidim::Dev.test_file("Exampledocument.pdf", "application/pdf") }
257
243
  end
258
244
 
259
245
  trait :with_doc do
260
- file { test_file("Exampledocument.doc", "application/msword") }
246
+ file { Decidim::Dev.test_file("Exampledocument.doc", "application/msword") }
261
247
  end
262
248
 
263
249
  trait :with_odt do
264
- file { test_file("Exampledocument.odt", "application/vnd.oasis.opendocument") }
250
+ file { Decidim::Dev.test_file("Exampledocument.odt", "application/vnd.oasis.opendocument") }
265
251
  end
266
252
  end
267
253
 
@@ -271,10 +257,6 @@ FactoryGirl.define do
271
257
  manifest_name "dummy"
272
258
  published_at { Time.now }
273
259
 
274
- after(:create) do |feature, _evaluator|
275
- feature.participatory_process.steps.reload
276
- end
277
-
278
260
  trait :unpublished do
279
261
  published_at { nil }
280
262
  end
@@ -293,7 +275,6 @@ FactoryGirl.define do
293
275
  title { generate(:name) }
294
276
  feature { create(:feature, manifest_name: "dummy") }
295
277
  author { create(:user, :confirmed, organization: feature.organization) }
296
- category { create(:category, participatory_process: feature.participatory_process) }
297
278
  end
298
279
 
299
280
  factory :resource_link, class: Decidim::ResourceLink do
@@ -321,8 +302,3 @@ FactoryGirl.define do
321
302
  reason "spam"
322
303
  end
323
304
  end
324
-
325
- def test_file(filename, content_type)
326
- asset = Decidim::Dev.asset(filename)
327
- Rack::Test::UploadedFile.new(asset, content_type)
328
- end
@@ -3,7 +3,7 @@
3
3
  # This holds Decidim's version and the Rails version on which it depends.
4
4
  module Decidim
5
5
  def self.version
6
- "0.4.2"
6
+ "0.4.3"
7
7
  end
8
8
 
9
9
  def self.rails_version
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency "decidim/features/settings_manifest"
4
- require_dependency "decidim/features/export_manifest"
3
+ require "decidim/features/settings_manifest"
4
+ require "decidim/features/export_manifest"
5
5
 
6
6
  module Decidim
7
7
  # This class handles all the logic associated to configuring a feature
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-08-02 00:00:00.000000000 Z
13
+ date: 2017-07-25 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -466,70 +466,70 @@ dependencies:
466
466
  requirements:
467
467
  - - '='
468
468
  - !ruby/object:Gem::Version
469
- version: 0.4.2
469
+ version: 0.4.3
470
470
  type: :runtime
471
471
  prerelease: false
472
472
  version_requirements: !ruby/object:Gem::Requirement
473
473
  requirements:
474
474
  - - '='
475
475
  - !ruby/object:Gem::Version
476
- version: 0.4.2
476
+ version: 0.4.3
477
477
  - !ruby/object:Gem::Dependency
478
478
  name: decidim-dev
479
479
  requirement: !ruby/object:Gem::Requirement
480
480
  requirements:
481
481
  - - '='
482
482
  - !ruby/object:Gem::Version
483
- version: 0.4.2
483
+ version: 0.4.3
484
484
  type: :development
485
485
  prerelease: false
486
486
  version_requirements: !ruby/object:Gem::Requirement
487
487
  requirements:
488
488
  - - '='
489
489
  - !ruby/object:Gem::Version
490
- version: 0.4.2
490
+ version: 0.4.3
491
491
  - !ruby/object:Gem::Dependency
492
492
  name: decidim-proposals
493
493
  requirement: !ruby/object:Gem::Requirement
494
494
  requirements:
495
495
  - - '='
496
496
  - !ruby/object:Gem::Version
497
- version: 0.4.2
497
+ version: 0.4.3
498
498
  type: :development
499
499
  prerelease: false
500
500
  version_requirements: !ruby/object:Gem::Requirement
501
501
  requirements:
502
502
  - - '='
503
503
  - !ruby/object:Gem::Version
504
- version: 0.4.2
504
+ version: 0.4.3
505
505
  - !ruby/object:Gem::Dependency
506
506
  name: decidim-meetings
507
507
  requirement: !ruby/object:Gem::Requirement
508
508
  requirements:
509
509
  - - '='
510
510
  - !ruby/object:Gem::Version
511
- version: 0.4.2
511
+ version: 0.4.3
512
512
  type: :development
513
513
  prerelease: false
514
514
  version_requirements: !ruby/object:Gem::Requirement
515
515
  requirements:
516
516
  - - '='
517
517
  - !ruby/object:Gem::Version
518
- version: 0.4.2
518
+ version: 0.4.3
519
519
  - !ruby/object:Gem::Dependency
520
520
  name: decidim-results
521
521
  requirement: !ruby/object:Gem::Requirement
522
522
  requirements:
523
523
  - - '='
524
524
  - !ruby/object:Gem::Version
525
- version: 0.4.2
525
+ version: 0.4.3
526
526
  type: :development
527
527
  prerelease: false
528
528
  version_requirements: !ruby/object:Gem::Requirement
529
529
  requirements:
530
530
  - - '='
531
531
  - !ruby/object:Gem::Version
532
- version: 0.4.2
532
+ version: 0.4.3
533
533
  description: Adds core features so other engines can hook into the framework.
534
534
  email:
535
535
  - josepjaume@gmail.com
@@ -585,6 +585,7 @@ files:
585
585
  - app/assets/stylesheets/decidim/extras/_embed.scss
586
586
  - app/assets/stylesheets/decidim/extras/_label-required.scss
587
587
  - app/assets/stylesheets/decidim/extras/_leaflet.scss
588
+ - app/assets/stylesheets/decidim/extras/_process_stats.scss
588
589
  - app/assets/stylesheets/decidim/extras/_quill.scss
589
590
  - app/assets/stylesheets/decidim/extras/_reference.scss
590
591
  - app/assets/stylesheets/decidim/extras/_register_form.scss
@@ -765,6 +766,7 @@ files:
765
766
  - app/presenters/decidim/home_stats_presenter.rb
766
767
  - app/presenters/decidim/menu_item_presenter.rb
767
768
  - app/presenters/decidim/menu_presenter.rb
769
+ - app/presenters/decidim/participatory_process_stats_presenter.rb
768
770
  - app/presenters/decidim/resource_locator_presenter.rb
769
771
  - app/queries/decidim/highlighted_participatory_processes.rb
770
772
  - app/queries/decidim/organization_participatory_processes.rb
@@ -829,6 +831,7 @@ files:
829
831
  - app/views/decidim/participatory_processes/_order_by_processes.html.erb
830
832
  - app/views/decidim/participatory_processes/_participatory_process.html.erb
831
833
  - app/views/decidim/participatory_processes/_promoted_process.html.erb
834
+ - app/views/decidim/participatory_processes/_statistics.html.erb
832
835
  - app/views/decidim/participatory_processes/index.html.erb
833
836
  - app/views/decidim/participatory_processes/show.html.erb
834
837
  - app/views/decidim/reported_mailer/hide.html.erb
@@ -974,6 +977,7 @@ files:
974
977
  - db/migrate/20170612100253_create_decidim_categorizations.rb
975
978
  - db/migrate/20170713131206_add_admin_to_users.rb
976
979
  - db/migrate/20170713131308_migrate_user_roles_to_participatory_process_roles.rb
980
+ - db/migrate/20170725085104_add_show_statistics_to_participatory_processes.rb
977
981
  - db/seeds.rb
978
982
  - db/seeds/Exampledocument.pdf
979
983
  - db/seeds/city.jpeg