decidim-conferences 0.25.0.rc4 → 0.26.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/conferences/conference_speaker/show.erb +14 -11
  3. data/app/cells/decidim/conferences/conference_speaker_cell.rb +2 -4
  4. data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_cell.rb +12 -0
  5. data/app/cells/decidim/conferences/photo/show.erb +1 -1
  6. data/app/cells/decidim/conferences/photo_cell.rb +1 -1
  7. data/app/cells/decidim/conferences/registration_type/registration_confirm.erb +1 -1
  8. data/app/cells/decidim/conferences/registration_type_cell.rb +1 -1
  9. data/app/commands/decidim/conferences/admin/create_conference_admin.rb +1 -1
  10. data/app/controllers/decidim/conferences/admin/conference_user_roles_controller.rb +11 -4
  11. data/app/models/decidim/conference_meeting.rb +3 -1
  12. data/app/models/decidim/conference_user_role.rb +20 -0
  13. data/app/presenters/decidim/conference_speaker_presenter.rb +10 -0
  14. data/app/views/decidim/conferences/admin/conference_user_roles/index.html.erb +7 -6
  15. data/app/views/decidim/conferences/admin/conferences/index.html.erb +1 -1
  16. data/app/views/decidim/conferences/conference_program/_program_meeting.html.erb +1 -1
  17. data/app/views/decidim/conferences/conferences/_promoted_conference.html.erb +1 -1
  18. data/app/views/decidim/conferences/conferences/show.html.erb +3 -3
  19. data/config/locales/cs.yml +1 -1
  20. data/config/locales/el.yml +49 -0
  21. data/config/locales/eu.yml +83 -24
  22. data/config/locales/fr-CA.yml +37 -0
  23. data/config/locales/fr.yml +37 -0
  24. data/config/locales/ga-IE.yml +204 -0
  25. data/config/locales/ja.yml +21 -21
  26. data/config/locales/lb-LU.yml +529 -0
  27. data/config/locales/lb.yml +532 -0
  28. data/config/locales/pl.yml +16 -1
  29. data/config/locales/pt-BR.yml +1 -1
  30. data/config/locales/pt.yml +50 -0
  31. data/config/locales/ro-RO.yml +41 -27
  32. data/config/locales/sv.yml +1 -0
  33. data/config/locales/val-ES.yml +1 -0
  34. data/lib/decidim/conferences/admin_engine.rb +3 -1
  35. data/lib/decidim/conferences/engine.rb +4 -0
  36. data/lib/decidim/conferences/participatory_space.rb +12 -1
  37. data/lib/decidim/conferences/test/factories.rb +48 -1
  38. data/lib/decidim/conferences/version.rb +1 -1
  39. metadata +16 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee1804c9f6703c0cb245a2dae893c5c1bb631d70932cb7d9143822f37a9cc4aa
4
- data.tar.gz: 88107bfa43fd1dc97572d16b4e6dcacdd04c72211ce8aa38880509298b123a05
3
+ metadata.gz: 9d5329f43f4b3fda7c6c86702f3f59a7c93d55d85b8a5001ab7237aad6c9e17b
4
+ data.tar.gz: acf90eb711433d37e96f58ab895957b69a5261927375f1f7bea54e3a0b151e37
5
5
  SHA512:
6
- metadata.gz: 9968aa877a530ae392f63f4c5364fc1d1a121763a4bd9030ad3b27b315f08c9c5a7df3e9926a7b293c1f6254d5a846e921ae3d402bfdbe4956bd01482f76fe7a
7
- data.tar.gz: 50a5346c96ba2d2a1f2516ae46d26750ea1157a3aec498faefbd249b7c38f6c9dccb21c68aa8d62fdbb2cd2e32ebeab5d03065003c62e7a1b7b9578dfce7a40a
6
+ metadata.gz: db24406ee9bbbdb8147ad2f2fa2ee4c160c6ba95b31e8b8206b3ae5090ab7b1b70b1ec6081e44fcf63fa47d92408a9270100c7239cec63129af6fd99d9e5c273
7
+ data.tar.gz: 2d593959a762d3ff34ca1eae7fed40d7a45f47619b371570c5e896c1f8c2f996a516c5a651bb981a7a450bcca05867e2bab2de3b7dd9c1bbaac7e1a77c4ff956
@@ -11,14 +11,18 @@
11
11
  <%= position %>
12
12
  </div>
13
13
  <% end %>
14
+ <% if affiliation.presence %>
15
+ <div class="data-extra">
16
+ <%= affiliation %>
17
+ </div>
18
+ <% end %>
14
19
  <div class="data-extra">
15
20
  <% if nickname.present? %>
16
- <%= link_to profile_path, class: "card-link" do %>
17
- <%= nickname %> <span><u><%= t(".more_info") %></u></span>
18
- <% end %>
21
+ <%= link_to nickname, profile_path, class: "card-link" %>
19
22
  <% else %>
20
23
  <div class="author__nickname">&nbsp;</div>
21
24
  <% end %>
25
+ <div><u><%= t(".more_info") %></u></div>
22
26
  </div>
23
27
  </div>
24
28
  <div class="speaker-bio js-bio">
@@ -34,14 +38,18 @@
34
38
  <% if position.presence %>
35
39
  <div class="data-role"><%= position %></div>
36
40
  <% end %>
41
+ <% if affiliation.presence %>
42
+ <div class="data-extra">
43
+ <%= affiliation %>
44
+ </div>
45
+ <% end %>
37
46
  <div class="data-extra">
38
47
  <% if nickname.present? %>
39
- <%= link_to profile_path, class: "card-link" do %>
40
- <%= nickname %> <span><u><%= t(".more_info") %></u></span>
41
- <% end %>
48
+ <%= link_to nickname, profile_path, class: "card-link" %>
42
49
  <% else %>
43
50
  <div class="author__nickname">&nbsp;</div>
44
51
  <% end %>
52
+ <div><u><%= t(".more_info") %></u></div>
45
53
  </div>
46
54
  <% if personal_url.presence %>
47
55
  <div>
@@ -53,11 +61,6 @@
53
61
  <%= twitter_handle %>
54
62
  </div>
55
63
  <% end %>
56
- <% if affiliation.presence %>
57
- <div>
58
- <%= affiliation %>
59
- </div>
60
- <% end %>
61
64
  </div>
62
65
  </div>
63
66
  <% if short_bio.presence %>
@@ -42,7 +42,7 @@ module Decidim
42
42
  def avatar_path
43
43
  return Decidim::UserPresenter.new(model.user).avatar_url if model.user.present?
44
44
 
45
- model.attached_uploader(:avatar).path
45
+ Decidim::ConferenceSpeakerPresenter.new(model).avatar_url
46
46
  end
47
47
 
48
48
  def has_profile?
@@ -72,9 +72,7 @@ module Decidim
72
72
  def personal_url
73
73
  return unless model.personal_url.presence || (model.user.presence && model.user.personal_url.presence)
74
74
 
75
- link_to model.personal_url || model.user.personal_url, target: "_blank", class: "card-link", rel: "noopener" do
76
- "#{icon "external-link"}" "&nbsp;#{t(".personal_website")}"
77
- end
75
+ link_to t(".personal_website"), model.personal_url || model.user.personal_url, target: "_blank", class: "card-link", rel: "noopener"
78
76
  end
79
77
 
80
78
  def meetings
@@ -6,6 +6,10 @@ module Decidim
6
6
  class HighlightedConferencesCell < Decidim::ViewModel
7
7
  delegate :current_user, to: :controller
8
8
 
9
+ cache :show, expires_in: 10.minutes, if: :perform_caching? do
10
+ cache_hash
11
+ end
12
+
9
13
  def show
10
14
  render if highlighted_conferences.any?
11
15
  end
@@ -21,6 +25,14 @@ module Decidim
21
25
  def decidim_conferences
22
26
  Decidim::Conferences::Engine.routes.url_helpers
23
27
  end
28
+
29
+ private
30
+
31
+ def cache_hash
32
+ hash = []
33
+ hash.push(I18n.locale)
34
+ hash.join(Decidim.cache_key_separator)
35
+ end
24
36
  end
25
37
  end
26
38
  end
@@ -17,7 +17,7 @@
17
17
  <strong><%= title %></strong>
18
18
  </h5>
19
19
  <div class="text-small">
20
- <%= decidim_sanitize description %>
20
+ <%= decidim_sanitize_editor description %>
21
21
  </div>
22
22
  <button class="close-button" data-close aria-label="<%= t("conferences.photo.show.close_modal", scope: "decidim") %>" type="button">
23
23
  <span aria-hidden="true">&times;</span>
@@ -30,7 +30,7 @@ module Decidim
30
30
  end
31
31
 
32
32
  def short_description
33
- decidim_sanitize html_truncate(description, length: 100, separator: "...")
33
+ decidim_sanitize_editor html_truncate(description, length: 100, separator: "...")
34
34
  end
35
35
 
36
36
  def description
@@ -1,7 +1,7 @@
1
1
  <div class="reveal" data-reveal id="conference-registration-confirm-<%= model.id %>">
2
2
  <div class="row">
3
3
  <div class="columns medium-10 medium-offset-1 help-text">
4
- <%= decidim_sanitize translated_attribute(conference.registration_terms) %>
4
+ <%= decidim_sanitize_editor translated_attribute(conference.registration_terms) %>
5
5
  </div>
6
6
  </div>
7
7
  <div class="row">
@@ -22,7 +22,7 @@ module Decidim
22
22
  end
23
23
 
24
24
  def description
25
- decidim_sanitize translated_attribute model.description
25
+ decidim_sanitize_editor translated_attribute model.description
26
26
  end
27
27
 
28
28
  def price
@@ -68,7 +68,7 @@ module Decidim
68
68
  organization: conference.organization
69
69
  )
70
70
 
71
- InviteUserAgain.call(@existing_user, invitation_instructions) if @existing_user && !@existing_user.invitation_accepted?
71
+ InviteUserAgain.call(@existing_user, invitation_instructions) if @existing_user&.invitation_pending?
72
72
 
73
73
  @existing_user
74
74
  end
@@ -7,11 +7,11 @@ module Decidim
7
7
  #
8
8
  class ConferenceUserRolesController < Decidim::Conferences::Admin::ApplicationController
9
9
  include Concerns::ConferenceAdmin
10
- include Decidim::Paginable
10
+ include Decidim::Admin::Officializations::Filterable
11
11
 
12
12
  def index
13
13
  enforce_permission_to :index, :conference_user_role
14
- @conference_user_roles = paginate(collection)
14
+ @conference_user_roles = filtered_collection
15
15
  end
16
16
 
17
17
  def new
@@ -90,11 +90,18 @@ module Decidim
90
90
 
91
91
  private
92
92
 
93
+ def search_field_predicate
94
+ :name_or_nickname_or_email_cont
95
+ end
96
+
97
+ def filters
98
+ [:invitation_accepted_at_present, :last_sign_in_at_present]
99
+ end
100
+
93
101
  def collection
94
102
  @collection ||= Decidim::ConferenceUserRole
95
- .includes(:user)
103
+ .joins(:user)
96
104
  .where(conference: current_conference)
97
- .order(:role, "decidim_users.name")
98
105
  end
99
106
  end
100
107
  end
@@ -3,9 +3,11 @@
3
3
  module Decidim
4
4
  # It represents a meeting of the conference
5
5
  class ConferenceMeeting < Decidim::Meetings::Meeting
6
+ translatable_fields(*Decidim::Meetings::Meeting.translatable_fields_list)
7
+
6
8
  has_many :conference_speaker_conference_meetings, dependent: :destroy
7
9
  has_many :conference_speakers, through: :conference_speaker_conference_meetings, class_name: "Decidim::ConferenceSpeaker"
8
- has_many :conference_meeting_registration_types, dependent: :destroy
10
+ has_many :conference_meeting_registration_types, dependent: :destroy, class_name: "Decidim::Conferences::ConferenceMeetingRegistrationType"
9
11
  has_many :registration_types, through: :conference_meeting_registration_types, foreign_key: "registration_type_id", class_name: "Decidim::Conferences::RegistrationType"
10
12
  end
11
13
  end
@@ -19,6 +19,26 @@ module Decidim
19
19
  Decidim::Conferences::AdminLog::ConferenceUserRolePresenter
20
20
  end
21
21
 
22
+ ransacker :name do
23
+ Arel.sql(%{("decidim_users"."name")::text})
24
+ end
25
+
26
+ ransacker :nickname do
27
+ Arel.sql(%{("decidim_users"."nickname")::text})
28
+ end
29
+
30
+ ransacker :email do
31
+ Arel.sql(%{("decidim_users"."email")::text})
32
+ end
33
+
34
+ ransacker :invitation_accepted_at do
35
+ Arel.sql(%{("decidim_users"."invitation_accepted_at")::text})
36
+ end
37
+
38
+ ransacker :last_sign_in_at do
39
+ Arel.sql(%{("decidim_users"."last_sign_in_at")::text})
40
+ end
41
+
22
42
  private
23
43
 
24
44
  # Private: check if the process and the user have the same organization
@@ -33,6 +33,16 @@ module Decidim
33
33
  false
34
34
  end
35
35
 
36
+ def avatar
37
+ attached_uploader(:avatar)
38
+ end
39
+
40
+ def avatar_url(variant = nil)
41
+ return avatar.default_url unless avatar.attached?
42
+
43
+ avatar.path(variant: variant)
44
+ end
45
+
36
46
  private
37
47
 
38
48
  def user
@@ -7,17 +7,18 @@
7
7
  <% end %>
8
8
  </h2>
9
9
  </div>
10
+ <%= admin_filter_selector %>
10
11
 
11
12
  <div class="card-section">
12
13
  <div class="table-scroll">
13
- <table class="stack">
14
+ <table class="stack table-list">
14
15
  <thead>
15
16
  <tr>
16
- <th><%= t("models.conference_user_role.fields.name", scope: "decidim.admin") %></th>
17
- <th><%= t("models.conference_user_role.fields.email", scope: "decidim.admin") %></th>
18
- <th><%= t("models.user.fields.invitation_sent_at", scope: "decidim.admin") %></th>
19
- <th><%= t("models.user.fields.invitation_accepted_at", scope: "decidim.admin") %></th>
20
- <th><%= t("models.conference_user_role.fields.role", scope: "decidim.admin") %></th>
17
+ <th><%= sort_link(query, :name,t("models.conference_user_role.fields.name", scope: "decidim.admin"), default_order: :desc) %></th>
18
+ <th><%= sort_link(query, :email, t("models.conference_user_role.fields.email", scope: "decidim.admin"), default_order: :desc) %></th>
19
+ <th><%= sort_link(query, :last_sign_in_at, t("models.user.fields.last_sign_in_at", scope: "decidim.admin"), default_order: :desc) %></th>
20
+ <th><%= sort_link(query, :invitation_accepted_at, t("models.user.fields.invitation_accepted_at", scope: "decidim.admin"), default_order: :desc) %></th>
21
+ <th><%= sort_link(query, :role, t("models.conference_user_role.fields.role", scope: "decidim.admin"), default_order: :desc) %></th>
21
22
  <th class="actions"></th>
22
23
  </tr>
23
24
  </thead>
@@ -22,7 +22,7 @@
22
22
  <tr>
23
23
  <td>
24
24
  <% if conference.promoted? %>
25
- <span data-tooltip class="icon-state icon-highlight" aria-haspopup="true" data-disable-hover="false" title="<%= t("models.conference.fields.promoted", scope: "decidim.admin") %>">
25
+ <span data-tooltip class="icon-state icon-highlight" data-disable-hover="false" title="<%= t("models.conference.fields.promoted", scope: "decidim.admin") %>">
26
26
  <%= icon "star", aria_label: t("models.conference.fields.promoted", scope: "decidim.admin"), role: "img" %>
27
27
  </span>
28
28
  <% end %>
@@ -43,7 +43,7 @@
43
43
  <strong><%= t(".content") %></strong>
44
44
  </div>
45
45
  <div class="column medium-10">
46
- <%= decidim_sanitize(present(meeting).description(links: true)) %>
46
+ <%= decidim_sanitize_editor(present(meeting).description(links: true)) %>
47
47
  </div>
48
48
  </div>
49
49
  <% end %>
@@ -5,7 +5,7 @@
5
5
  <%= link_to conference_path(promoted_conference), class: "card__link" do %>
6
6
  <h2 class="card__title"><%= translated_attribute promoted_conference.title %></h2>
7
7
  <% end %>
8
- <%= decidim_sanitize html_truncate(translated_attribute(promoted_conference.short_description), length: 630, separator: "...") %>
8
+ <%= decidim_sanitize_editor html_truncate(translated_attribute(promoted_conference.short_description), length: 630, separator: "...") %>
9
9
  <%= link_to conference_path(promoted_conference), class: "button small hollow card__button" do %>
10
10
  <%= t("conferences.promoted_conference.more_info", scope: "layouts.decidim") %>
11
11
  <% end %>
@@ -20,12 +20,12 @@ edit_link(
20
20
  <div class="columns mediumlarge-12">
21
21
  <section class="section">
22
22
  <h3 class="section-heading"><%= t("conferences.show.introduction", scope: "decidim") %></h3>
23
- <%= decidim_sanitize translated_attribute(current_participatory_space.short_description) %>
23
+ <%= decidim_sanitize_editor translated_attribute(current_participatory_space.short_description) %>
24
24
  </section>
25
25
  <hr class="reset mt-none mb-m">
26
26
  <section class="section">
27
27
  <h3 class="section-heading"><%= t("conferences.show.details", scope: "decidim") %></h3>
28
- <%= decidim_sanitize translated_attribute(current_participatory_space.description) %>
28
+ <%= decidim_sanitize_editor translated_attribute(current_participatory_space.description) %>
29
29
  <div class="row mt-l mb-l">
30
30
  <div class="column medium-9 medium-centered">
31
31
  <% if current_participatory_space.registrations_enabled? %>
@@ -71,7 +71,7 @@ edit_link(
71
71
  <% unless translated_attribute(current_participatory_space.objectives).blank? %>
72
72
  <section class="section">
73
73
  <h3 class="section-heading"><%= t("conferences.show.objectives", scope: "decidim") %></h3>
74
- <%= decidim_sanitize translated_attribute(current_participatory_space.objectives) %>
74
+ <%= decidim_sanitize_editor translated_attribute(current_participatory_space.objectives) %>
75
75
  </section>
76
76
  <% end %>
77
77
 
@@ -538,7 +538,7 @@ cs:
538
538
  details: Podrobnosti
539
539
  introduction: Úvod
540
540
  objectives: Cíle
541
- related_assemblies: Související sestavy
541
+ related_assemblies: Související shromáždění
542
542
  related_consultations: Související konzultace
543
543
  related_participatory_processes: Související procesy účasti
544
544
  events:
@@ -3,6 +3,7 @@ el:
3
3
  attributes:
4
4
  conference:
5
5
  assemblies_ids: Σχετικές συνελεύσεις
6
+ available_slots: Διαθέσιμες χρονοθυρίδες
6
7
  banner_image: Εικόνα διαφημιστικού πλαισίου
7
8
  consultations_ids: Σχετικές διαβουλεύσεις
8
9
  copy_categories: Αντιγραφή κατηγοριών
@@ -10,26 +11,58 @@ el:
10
11
  copy_features: Αντιγραφή χαρακτηριστικών
11
12
  decidim_scope_id: Πεδίο εφαρμογής
12
13
  description: Περιγραφή
14
+ end_date: Ημερομηνία λήξης
13
15
  hashtag: Hashtag
14
16
  hero_image: Εικόνα αρχικής σελίδας
17
+ location: Τοποθεσία
18
+ main_logo: Κύριο λογότυπο
19
+ objectives: Στόχοι
15
20
  participatory_processes_ids: Σχετικές διαδικασίες συμμετοχής
16
21
  promoted: Επισημάνθηκε
17
22
  published_at: Δημοσιεύτηκε στις
23
+ registration_terms: Όροι εγγραφής
24
+ registrations_enabled: Ενεργοποιημένες εγγραφές
18
25
  scope_id: Πεδίο εφαρμογής
19
26
  scopes_enabled: Ενεργοποιημένα πεδία εφαρμογών
20
27
  short_description: Σύντομη περιγραφή
21
28
  show_statistics: Εμφάνιση στατιστικών
29
+ sign_date: Ημερομηνία υπογραφής
30
+ signature: Υπογραφή
31
+ signature_name: όνομα υπογραφής
22
32
  slogan: Σύνθημα
23
33
  slug: Slug διεύθυνσης URL
34
+ start_date: Ημερομηνία έναρξης
24
35
  title: Τίτλος
25
36
  conference_media_link:
37
+ date: Ημερομηνία
38
+ link: Σύνδεσμος
39
+ title: Τίτλος
26
40
  weight: Βάρος
27
41
  conference_partner:
42
+ link: Σύνδεσμος
43
+ logo: Λογότυπο
44
+ name: Όνομα
45
+ partner_type: Τύπος εταίρου
28
46
  weight: Βάρος
47
+ conference_registration_invite:
48
+ name: Όνομα
49
+ registration_type_id: Τύπος εγγραφής
50
+ user_id: Χρήστης
29
51
  conference_registration_type:
52
+ description: Περιγραφή
53
+ price: Τιμή
54
+ title: Τίτλος
30
55
  weight: Βάρος
31
56
  conference_speaker:
57
+ affiliation: Δεσμός
58
+ avatar: Εικόνα Χρήστη
59
+ conference_meeting_ids: Σχετικές συναντήσεις
32
60
  full_name: Ονοματεπώνυμο
61
+ personal_url: Προσωπικό url
62
+ position: Θέση
63
+ short_bio: Σύντομο Βιογραφικό
64
+ twitter_handle: Ψευδώνυμο Twitter
65
+ user_id: Χρήστης
33
66
  conference_user_role:
34
67
  email: Email
35
68
  name: Όνομα
@@ -212,6 +245,7 @@ el:
212
245
  price: Τιμή
213
246
  registrations_count: Αριθμός εγγραφών
214
247
  title: Τίτλος
248
+ weight: Θέση κατάταξης
215
249
  name: Τύπος εγγραφής
216
250
  partners:
217
251
  create:
@@ -271,6 +305,10 @@ el:
271
305
  conferences:
272
306
  conference_registration:
273
307
  confirm: "Ο χρήστης %{user_name} επιβεβαίωση μια εγγραφή διάσκεψης στη διάσκεψη %{resource_name}"
308
+ partner:
309
+ create: "Ο χρήστης %{user_name} δημιούργησε τον εταίρο %{resource_name} στη διάσκεψη %{space_name}"
310
+ delete: "Ο χρήστης %{user_name} απομάκρυνε τον εταίρο %{resource_name} από τη διάσκεψη %{space_name}"
311
+ update: "Ο χρήστης %{user_name} ενημέρωσε τον εταίρο %{resource_name} στη διάσκεψη %{space_name}"
274
312
  registration_type:
275
313
  create: "Ο χρήστης %{user_name} δημιούργησε τον τύπο εγγραφής %{resource_name} στη διάσκεψη %{space_name}"
276
314
  publish: "Ο χρήστης %{user_name} δημοσίευσε τον τύπο εγγραφής %{resource_name} στη διάσκεψη %{space_name}"
@@ -403,6 +441,7 @@ el:
403
441
  personal_website: Προσωπικός ιστότοπος
404
442
  show:
405
443
  more_info: περισσότερες πληροφορίες
444
+ speaking_at: Μιλώντας στο
406
445
  conference_speaker_cell:
407
446
  personal_url:
408
447
  personal_website: Προσωπικός ιστότοπος
@@ -461,6 +500,7 @@ el:
461
500
  home:
462
501
  highlighted_conferences:
463
502
  active_conferences: Ενεργές διασκέψεις
503
+ conferences_button_title: Σύνδεσμος προς τη σελίδα Διασκέψεων που εμφανίζει όλες τις διασκέψεις
464
504
  see_all_conferences: Δείτε όλες τις διασκέψεις
465
505
  photo:
466
506
  image:
@@ -476,6 +516,7 @@ el:
476
516
  index:
477
517
  choose_an_option: 'Ορίστε την επιλογή εγγραφής σας:'
478
518
  login_as: Έχετε συνδεθεί ως %{name} <%{email}>
519
+ no_registrations: Δεν υπάρχουν εγγραφές
479
520
  register: Εγγραφή
480
521
  title: Τύποι εγγραφής
481
522
  shared:
@@ -522,6 +563,12 @@ el:
522
563
  email_outro: Λάβατε αυτήν την ειδοποίηση επειδή ακολουθείτε τη διάσκεψη «%{resource_title}». Μπορείτε να σταματήσετε να την ακολουθείτε από τον προηγούμενο σύνδεσμο.
523
564
  email_subject: Η διάσκεψη «%{resource_title}» έρχεται σύντομα κοντά σας!
524
565
  notification_title: Η διάσκεψη <a href="%{resource_path}">%{resource_title}</a> θα πραγματοποιηθεί σε 2 ημέρες.
566
+ help:
567
+ participatory_spaces:
568
+ conferences:
569
+ contextual: "<p>Μία <strong>Διάσκεψη</strong> είναι μια συλλογή συναντήσεων που οργανώνονται σε ένα πρόγραμμα, με έναν αριθμό ατόμων που προσκαλούνται ως ομιλητές, και άλλα πεδία πληροφοριών που είναι τυπικά για μεγάλα συνέδρια ή κοινωνικές εκδηλώσεις (εγγραφή, κατάλογος των οργανισμών που υποστηρίζουν ή χρηματοδοτούν την εκδήλωση, κ.λπ.).</p> <p>Παραδείγματα: Μια Διάσκεψη μπορεί να είναι ένα σχετικό γεγονός για έναν οργανισμό και τα μέλη του, ή να πραγματοποιείται στο πλαίσιο μιας συμμετοχικής διαδικασίας ή να ακολουθεί μια διαβούλευση.</p>\n"
570
+ page: "<p>Μία <strong>Διάσκεψη</strong> είναι μια συλλογή συναντήσεων που οργανώνονται σε ένα πρόγραμμα, με έναν αριθμό ατόμων που προσκαλούνται ως ομιλητές, και άλλα πεδία πληροφοριών που είναι τυπικά για μεγάλα συνέδρια ή κοινωνικές εκδηλώσεις (εγγραφή, κατάλογος των οργανισμών που υποστηρίζουν ή χρηματοδοτούν την εκδήλωση, κ.λπ.).</p> <p>Παραδείγματα: Μια Διάσκεψη μπορεί να είναι ένα σχετικό γεγονός για έναν οργανισμό και τα μέλη του, ή να πραγματοποιείται στο πλαίσιο μιας συμμετοχικής διαδικασίας ή να ακολουθεί μια διαβούλευση.</p>\n"
571
+ title: Τι είναι οι διασκέψεις;
525
572
  log:
526
573
  value_types:
527
574
  conference_presenter:
@@ -532,6 +579,8 @@ el:
532
579
  title: Πολυμέσα και σύνδεσμοι
533
580
  menu:
534
581
  conferences: Διασκέψεις
582
+ statistics:
583
+ conferences_count: Διασκέψεις
535
584
  devise:
536
585
  mailer:
537
586
  join_conference: