decidim-conferences 0.16.1 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/app/assets/stylesheet/decidim/conferences/conferences.scss +3 -0
 - data/app/cells/decidim/conferences/conference_address/show.erb +1 -1
 - data/app/cells/decidim/conferences/conference_m/footer.erb +1 -1
 - data/app/cells/decidim/conferences/conference_speaker/show.erb +2 -2
 - data/app/cells/decidim/conferences/conference_speaker_cell.rb +6 -2
 - data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_cell.rb +0 -1
 - data/app/cells/decidim/conferences/linked_participatory_spaces_cell.rb +6 -0
 - data/app/cells/decidim/conferences/partner_cell.rb +2 -0
 - data/app/cells/decidim/conferences/photos_list_cell.rb +1 -0
 - data/app/cells/decidim/conferences/registration_type_cell.rb +2 -0
 - data/app/commands/decidim/conferences/admin/confirm_conference_registration.rb +1 -0
 - data/app/commands/decidim/conferences/admin/create_conference.rb +0 -10
 - data/app/commands/decidim/conferences/admin/create_conference_admin.rb +1 -0
 - data/app/commands/decidim/conferences/admin/publish_conference.rb +12 -0
 - data/app/commands/decidim/conferences/admin/update_conference.rb +6 -2
 - data/app/commands/decidim/conferences/admin/update_diploma.rb +1 -0
 - data/app/commands/decidim/conferences/join_conference.rb +2 -0
 - data/app/commands/decidim/conferences/leave_conference.rb +1 -0
 - data/app/controllers/decidim/conferences/admin/application_controller.rb +5 -4
 - data/app/controllers/decidim/conferences/admin/concerns/conference_admin.rb +6 -4
 - data/app/controllers/decidim/conferences/admin/conference_registrations_controller.rb +1 -0
 - data/app/controllers/decidim/conferences/application_controller.rb +6 -5
 - data/app/controllers/decidim/conferences/conference_program_controller.rb +4 -1
 - data/app/controllers/decidim/conferences/conference_registrations_controller.rb +1 -0
 - data/app/controllers/decidim/conferences/conference_speakers_controller.rb +1 -0
 - data/app/controllers/decidim/conferences/media_controller.rb +1 -0
 - data/app/controllers/decidim/conferences/registration_types_controller.rb +1 -0
 - data/app/forms/decidim/conferences/admin/conference_form.rb +4 -0
 - data/app/forms/decidim/conferences/admin/conference_speaker_form.rb +1 -0
 - data/app/forms/decidim/conferences/admin/registration_type_form.rb +1 -0
 - data/app/helpers/decidim/conferences/conference_helper.rb +1 -0
 - data/app/models/decidim/conference.rb +9 -4
 - data/app/models/decidim/conference_user_role.rb +1 -0
 - data/app/permissions/decidim/conferences/permissions.rb +6 -0
 - data/app/presenters/decidim/conferences/admin_log/value_types/role_presenter.rb +1 -0
 - data/app/presenters/decidim/log/value_types/conference_presenter.rb +1 -0
 - data/app/queries/decidim/conferences/admin/admin_users.rb +8 -1
 - data/app/queries/decidim/conferences/admin/conference_invites.rb +1 -0
 - data/app/queries/decidim/conferences/admin/conference_speakers.rb +1 -0
 - data/app/views/decidim/conferences/admin/conference_user_roles/index.html.erb +3 -3
 - data/app/views/decidim/conferences/admin/conferences/index.html.erb +3 -3
 - data/app/views/decidim/conferences/admin/send_conference_diploma_mailer/diploma_user.html.erb +1 -1
 - data/app/views/decidim/conferences/conferences/_partners.html.erb +1 -1
 - data/app/views/decidim/conferences/conferences/_promoted_conference.html.erb +1 -1
 - data/app/views/decidim/conferences/conferences/show.html.erb +3 -3
 - data/app/views/decidim/conferences/media/index.html.erb +2 -2
 - data/app/views/layouts/decidim/_conference_hero.html.erb +3 -3
 - data/app/views/layouts/decidim/diploma.html.erb +2 -2
 - data/config/locales/ar-SA.yml +132 -22
 - data/config/locales/ar.yml +589 -0
 - data/config/locales/ca.yml +192 -191
 - data/config/locales/cs-CZ.yml +3 -3
 - data/config/locales/cs.yml +581 -0
 - data/config/locales/de.yml +15 -14
 - data/config/locales/en.yml +87 -85
 - data/config/locales/eo-UY.yml +1 -0
 - data/config/locales/es-MX.yml +7 -6
 - data/config/locales/es-PY.yml +8 -7
 - data/config/locales/es.yml +161 -160
 - data/config/locales/eu.yml +6 -5
 - data/config/locales/fi-pl.yml +3 -3
 - data/config/locales/fi-plain.yml +571 -0
 - data/config/locales/fi.yml +65 -64
 - data/config/locales/fr.yml +100 -99
 - data/config/locales/gl.yml +6 -5
 - data/config/locales/hu.yml +9 -8
 - data/config/locales/id-ID.yml +6 -5
 - data/config/locales/it.yml +9 -8
 - data/config/locales/nl.yml +8 -7
 - data/config/locales/no.yml +5 -0
 - data/config/locales/pl.yml +6 -5
 - data/config/locales/pt-BR.yml +6 -5
 - data/config/locales/pt.yml +6 -5
 - data/config/locales/sv.yml +206 -205
 - data/config/locales/tr-TR.yml +6 -5
 - data/lib/decidim/conferences/admin_engine.rb +1 -0
 - data/lib/decidim/conferences/participatory_space.rb +2 -0
 - data/lib/decidim/conferences/version.rb +1 -1
 - metadata +26 -21
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: a350885d8989dcbed020295a179753dd257966cc6ea5234188a5257dc506d1c6
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: b28820eefb620c35d49d9caabae092c086397940793d510aad55d10c61148278
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 33434c66f9cbf62b02131047146097f0283b1e3cd9dc7a5bb11f41ca42589c8de7ceb30349ab23b19738b30286960f3c7f3aa30a1598b6ee08c5a74262a0b7b9
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: e1902107434422ba5f6527297db272b71cb536810e90fbbef7a5cb1d82575f956b4af61fc30e3519d3488ae06928d5dddb00606e8f6e9f05a4b2945c47553007
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <div class="mb-s">
         
     | 
| 
       2 
2 
     | 
    
         
             
              <% if model.respond_to? :location %>
         
     | 
| 
       3 
3 
     | 
    
         
             
                <div>
         
     | 
| 
       4 
     | 
    
         
            -
                  <strong><%= translated_attribute model.location %></strong><br 
     | 
| 
      
 4 
     | 
    
         
            +
                  <strong><%= translated_attribute model.location %></strong><br>
         
     | 
| 
       5 
5 
     | 
    
         
             
                </div>
         
     | 
| 
       6 
6 
     | 
    
         
             
              <% end %>
         
     | 
| 
       7 
7 
     | 
    
         
             
              <div class="text-medium"><%= model.address %></div>
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <div class="card__footer card__footer--spaces">
         
     | 
| 
       2 
2 
     | 
    
         
             
              <div class="card__support">
         
     | 
| 
       3 
3 
     | 
    
         
             
                <%= link_to(
         
     | 
| 
       4 
     | 
    
         
            -
                  t("layouts.decidim.conferences.conference 
     | 
| 
      
 4 
     | 
    
         
            +
                  t(model.cta_button_text_key, scope: "layouts.decidim.conferences.conference"),
         
     | 
| 
       5 
5 
     | 
    
         
             
                  resource_path,
         
     | 
| 
       6 
6 
     | 
    
         
             
                  class: "card__button button button--sc secondary light small"
         
     | 
| 
       7 
7 
     | 
    
         
             
                ) %>
         
     | 
| 
         @@ -67,14 +67,14 @@ 
     | 
|
| 
       67 
67 
     | 
    
         
             
                  <% end %>
         
     | 
| 
       68 
68 
     | 
    
         
             
                </div>
         
     | 
| 
       69 
69 
     | 
    
         
             
                <% if meetings.present? %>
         
     | 
| 
       70 
     | 
    
         
            -
                  <hr class="reset mt-none mb-s" 
     | 
| 
      
 70 
     | 
    
         
            +
                  <hr class="reset mt-none mb-s">
         
     | 
| 
       71 
71 
     | 
    
         
             
                  <div class="row">
         
     | 
| 
       72 
72 
     | 
    
         
             
                    <div class="column medium-12">
         
     | 
| 
       73 
73 
     | 
    
         
             
                      <div class="bio-acts">Speaking at</div>
         
     | 
| 
       74 
74 
     | 
    
         | 
| 
       75 
75 
     | 
    
         
             
                      <ul class="list-reset">
         
     | 
| 
       76 
76 
     | 
    
         
             
                        <% meetings.each do |meeting| %>
         
     | 
| 
       77 
     | 
    
         
            -
                          <%= meeting_title meeting %> <br 
     | 
| 
      
 77 
     | 
    
         
            +
                          <%= meeting_title meeting %> <br>
         
     | 
| 
       78 
78 
     | 
    
         
             
                        <% end %>
         
     | 
| 
       79 
79 
     | 
    
         
             
                      </ul>
         
     | 
| 
       80 
80 
     | 
    
         
             
                    </div>
         
     | 
| 
         @@ -41,6 +41,7 @@ module Decidim 
     | 
|
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
                  def avatar
         
     | 
| 
       43 
43 
     | 
    
         
             
                    return model.user.avatar if model.user.present?
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
       44 
45 
     | 
    
         
             
                    model.avatar
         
     | 
| 
       45 
46 
     | 
    
         
             
                  end
         
     | 
| 
       46 
47 
     | 
    
         | 
| 
         @@ -58,17 +59,20 @@ module Decidim 
     | 
|
| 
       58 
59 
     | 
    
         | 
| 
       59 
60 
     | 
    
         
             
                  def short_bio
         
     | 
| 
       60 
61 
     | 
    
         
             
                    return unless model.short_bio.presence
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
       61 
63 
     | 
    
         
             
                    translated_attribute model.short_bio
         
     | 
| 
       62 
64 
     | 
    
         
             
                  end
         
     | 
| 
       63 
65 
     | 
    
         | 
| 
       64 
66 
     | 
    
         
             
                  def twitter_handle
         
     | 
| 
       65 
67 
     | 
    
         
             
                    return unless model.twitter_handle.presence
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                    link_to t(".go_to_twitter"), "https://twitter.com/#{model.twitter_handle}", target: "_blank", rel: "noopener"
         
     | 
| 
       67 
70 
     | 
    
         
             
                  end
         
     | 
| 
       68 
71 
     | 
    
         | 
| 
       69 
72 
     | 
    
         
             
                  def personal_url
         
     | 
| 
       70 
73 
     | 
    
         
             
                    return unless model.personal_url.presence || (model.user.presence && model.user.personal_url.presence)
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                    link_to model.personal_url || model.user.personal_url, target: "_blank", class: "card-link", rel: "noopener" do
         
     | 
| 
       72 
76 
     | 
    
         
             
                      "#{icon "external-link"}" " #{t(".personal_website")}"
         
     | 
| 
       73 
77 
     | 
    
         
             
                    end
         
     | 
| 
       74 
78 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -20,22 +20,28 @@ module Decidim 
     | 
|
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                  def conference_participatory_processes
         
     | 
| 
       22 
22 
     | 
    
         
             
                    return unless Decidim.participatory_space_manifests.map(&:name).include?(:participatory_processes)
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       23 
24 
     | 
    
         
             
                    processes = model.linked_participatory_space_resources(:participatory_processes, "included_participatory_processes")
         
     | 
| 
       24 
25 
     | 
    
         
             
                    return unless processes.any?
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
       25 
27 
     | 
    
         
             
                    processes
         
     | 
| 
       26 
28 
     | 
    
         
             
                  end
         
     | 
| 
       27 
29 
     | 
    
         | 
| 
       28 
30 
     | 
    
         
             
                  def conference_assemblies
         
     | 
| 
       29 
31 
     | 
    
         
             
                    return unless Decidim.participatory_space_manifests.map(&:name).include?(:assemblies)
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
       30 
33 
     | 
    
         
             
                    assemblies = model.linked_participatory_space_resources(:assemblies, "included_assemblies")
         
     | 
| 
       31 
34 
     | 
    
         
             
                    return unless assemblies.any?
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
       32 
36 
     | 
    
         
             
                    assemblies
         
     | 
| 
       33 
37 
     | 
    
         
             
                  end
         
     | 
| 
       34 
38 
     | 
    
         | 
| 
       35 
39 
     | 
    
         
             
                  def conference_consultations
         
     | 
| 
       36 
40 
     | 
    
         
             
                    return unless Decidim.participatory_space_manifests.map(&:name).include?(:consultations)
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
       37 
42 
     | 
    
         
             
                    consultations = model.linked_participatory_space_resources(:consultations, "included_consultations")
         
     | 
| 
       38 
43 
     | 
    
         
             
                    return unless consultations.any?
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
       39 
45 
     | 
    
         
             
                    consultations
         
     | 
| 
       40 
46 
     | 
    
         
             
                  end
         
     | 
| 
       41 
47 
     | 
    
         | 
| 
         @@ -12,11 +12,13 @@ module Decidim 
     | 
|
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                  def name
         
     | 
| 
       14 
14 
     | 
    
         
             
                    return unless model.name.presence
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
       15 
16 
     | 
    
         
             
                    "<div class='text-medium'> #{model.name} </div>"
         
     | 
| 
       16 
17 
     | 
    
         
             
                  end
         
     | 
| 
       17 
18 
     | 
    
         | 
| 
       18 
19 
     | 
    
         
             
                  def logo
         
     | 
| 
       19 
20 
     | 
    
         
             
                    return unless model.logo.presence
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       20 
22 
     | 
    
         
             
                    "<div class='card p-m flex--cc'> #{image_tag model.logo.medium.url} </div>"
         
     | 
| 
       21 
23 
     | 
    
         
             
                  end
         
     | 
| 
       22 
24 
     | 
    
         
             
                end
         
     | 
| 
         @@ -27,6 +27,7 @@ module Decidim 
     | 
|
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                  def price
         
     | 
| 
       29 
29 
     | 
    
         
             
                    return I18n.t("free", scope: "decidim.conferences.conference.show") if model.price.blank?
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
       30 
31 
     | 
    
         
             
                    number_to_currency(model.price, locale: I18n.locale, unit: Decidim.currency_unit)
         
     | 
| 
       31 
32 
     | 
    
         
             
                  end
         
     | 
| 
       32 
33 
     | 
    
         | 
| 
         @@ -44,6 +45,7 @@ module Decidim 
     | 
|
| 
       44 
45 
     | 
    
         | 
| 
       45 
46 
     | 
    
         
             
                  def i18n_join_text
         
     | 
| 
       46 
47 
     | 
    
         
             
                    return I18n.t("registration", scope: "decidim.conferences.conference.show") if conference.has_available_slots?
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
       47 
49 
     | 
    
         
             
                    I18n.t("no_slots_available", scope: "decidim.conferences.conference.show")
         
     | 
| 
       48 
50 
     | 
    
         
             
                  end
         
     | 
| 
       49 
51 
     | 
    
         
             
                end
         
     | 
| 
         @@ -29,7 +29,6 @@ module Decidim 
     | 
|
| 
       29 
29 
     | 
    
         
             
                        link_consultations
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
                        broadcast(:ok, conference)
         
     | 
| 
       32 
     | 
    
         
            -
                        send_notification
         
     | 
| 
       33 
32 
     | 
    
         
             
                      else
         
     | 
| 
       34 
33 
     | 
    
         
             
                        form.errors.add(:hero_image, conference.errors[:hero_image]) if conference.errors.include? :hero_image
         
     | 
| 
       35 
34 
     | 
    
         
             
                        form.errors.add(:banner_image, conference.errors[:banner_image]) if conference.errors.include? :banner_image
         
     | 
| 
         @@ -81,15 +80,6 @@ module Decidim 
     | 
|
| 
       81 
80 
     | 
    
         
             
                      end
         
     | 
| 
       82 
81 
     | 
    
         
             
                    end
         
     | 
| 
       83 
82 
     | 
    
         | 
| 
       84 
     | 
    
         
            -
                    def send_notification
         
     | 
| 
       85 
     | 
    
         
            -
                      Decidim::EventsManager.publish(
         
     | 
| 
       86 
     | 
    
         
            -
                        event: "decidim.events.conferences.registrations_enabled",
         
     | 
| 
       87 
     | 
    
         
            -
                        event_class: Decidim::Conferences::ConferenceRegistrationsEnabledEvent,
         
     | 
| 
       88 
     | 
    
         
            -
                        resource: conference,
         
     | 
| 
       89 
     | 
    
         
            -
                        followers: conference.followers
         
     | 
| 
       90 
     | 
    
         
            -
                      )
         
     | 
| 
       91 
     | 
    
         
            -
                    end
         
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
83 
     | 
    
         
             
                    def participatory_processes
         
     | 
| 
       94 
84 
     | 
    
         
             
                      @participatory_processes ||= conference.participatory_space_sibling_scope(:participatory_processes).where(id: @form.participatory_processes_ids)
         
     | 
| 
       95 
85 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -28,11 +28,23 @@ module Decidim 
     | 
|
| 
       28 
28 
     | 
    
         
             
                      end
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                      broadcast(:ok)
         
     | 
| 
      
 31 
     | 
    
         
            +
                      send_notification
         
     | 
| 
       31 
32 
     | 
    
         
             
                    end
         
     | 
| 
       32 
33 
     | 
    
         | 
| 
       33 
34 
     | 
    
         
             
                    private
         
     | 
| 
       34 
35 
     | 
    
         | 
| 
       35 
36 
     | 
    
         
             
                    attr_reader :conference, :current_user
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                    def send_notification
         
     | 
| 
      
 39 
     | 
    
         
            +
                      return unless conference.registrations_enabled?
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                      Decidim::EventsManager.publish(
         
     | 
| 
      
 42 
     | 
    
         
            +
                        event: "decidim.events.conferences.registrations_enabled",
         
     | 
| 
      
 43 
     | 
    
         
            +
                        event_class: Decidim::Conferences::ConferenceRegistrationsEnabledEvent,
         
     | 
| 
      
 44 
     | 
    
         
            +
                        resource: conference,
         
     | 
| 
      
 45 
     | 
    
         
            +
                        followers: conference.followers
         
     | 
| 
      
 46 
     | 
    
         
            +
                      )
         
     | 
| 
      
 47 
     | 
    
         
            +
                    end
         
     | 
| 
       36 
48 
     | 
    
         
             
                  end
         
     | 
| 
       37 
49 
     | 
    
         
             
                end
         
     | 
| 
       38 
50 
     | 
    
         
             
              end
         
     | 
| 
         @@ -23,6 +23,7 @@ module Decidim 
     | 
|
| 
       23 
23 
     | 
    
         
             
                    # Returns nothing.
         
     | 
| 
       24 
24 
     | 
    
         
             
                    def call
         
     | 
| 
       25 
25 
     | 
    
         
             
                      return broadcast(:invalid) if form.invalid?
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
       26 
27 
     | 
    
         
             
                      update_conference
         
     | 
| 
       27 
28 
     | 
    
         
             
                      link_participatory_processes
         
     | 
| 
       28 
29 
     | 
    
         
             
                      link_assemblies
         
     | 
| 
         @@ -99,7 +100,9 @@ module Decidim 
     | 
|
| 
       99 
100 
     | 
    
         
             
                    end
         
     | 
| 
       100 
101 
     | 
    
         | 
| 
       101 
102 
     | 
    
         
             
                    def should_notify_followers_registrations_enabled?
         
     | 
| 
       102 
     | 
    
         
            -
                      @conference.previous_changes["registrations_enabled"].present? && 
     | 
| 
      
 103 
     | 
    
         
            +
                      @conference.previous_changes["registrations_enabled"].present? &&
         
     | 
| 
      
 104 
     | 
    
         
            +
                        @conference.registrations_enabled? &&
         
     | 
| 
      
 105 
     | 
    
         
            +
                        @conference.published?
         
     | 
| 
       103 
106 
     | 
    
         
             
                    end
         
     | 
| 
       104 
107 
     | 
    
         | 
| 
       105 
108 
     | 
    
         
             
                    def send_notification_update_conference
         
     | 
| 
         @@ -112,7 +115,8 @@ module Decidim 
     | 
|
| 
       112 
115 
     | 
    
         
             
                    end
         
     | 
| 
       113 
116 
     | 
    
         | 
| 
       114 
117 
     | 
    
         
             
                    def should_notify_followers_update_conference?
         
     | 
| 
       115 
     | 
    
         
            -
                      important_attributes.any? { |attr| @conference.previous_changes[attr].present? }
         
     | 
| 
      
 118 
     | 
    
         
            +
                      important_attributes.any? { |attr| @conference.previous_changes[attr].present? } &&
         
     | 
| 
      
 119 
     | 
    
         
            +
                        @conference.published?
         
     | 
| 
       116 
120 
     | 
    
         
             
                    end
         
     | 
| 
       117 
121 
     | 
    
         | 
| 
       118 
122 
     | 
    
         
             
                    def important_attributes
         
     | 
| 
         @@ -22,6 +22,7 @@ module Decidim 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  def call
         
     | 
| 
       23 
23 
     | 
    
         
             
                    conference.with_lock do
         
     | 
| 
       24 
24 
     | 
    
         
             
                      return broadcast(:invalid) unless can_join_conference?
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
       25 
26 
     | 
    
         
             
                      create_registration
         
     | 
| 
       26 
27 
     | 
    
         
             
                      create_meetings_registrations
         
     | 
| 
       27 
28 
     | 
    
         
             
                      accept_invitation
         
     | 
| 
         @@ -77,6 +78,7 @@ module Decidim 
     | 
|
| 
       77 
78 
     | 
    
         
             
                  def notify_admin_over_percentage
         
     | 
| 
       78 
79 
     | 
    
         
             
                    return send_notification_over(0.5) if occupied_slots_over?(0.5)
         
     | 
| 
       79 
80 
     | 
    
         
             
                    return send_notification_over(0.8) if occupied_slots_over?(0.8)
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
       80 
82 
     | 
    
         
             
                    send_notification_over(1.0) if occupied_slots_over?(1.0)
         
     | 
| 
       81 
83 
     | 
    
         
             
                  end
         
     | 
| 
       82 
84 
     | 
    
         | 
| 
         @@ -5,6 +5,10 @@ module Decidim 
     | 
|
| 
       5 
5 
     | 
    
         
             
                module Admin
         
     | 
| 
       6 
6 
     | 
    
         
             
                  # The main admin application controller for conferences
         
     | 
| 
       7 
7 
     | 
    
         
             
                  class ApplicationController < Decidim::Admin::ApplicationController
         
     | 
| 
      
 8 
     | 
    
         
            +
                    register_permissions(::Decidim::Conferences::Admin::ApplicationController,
         
     | 
| 
      
 9 
     | 
    
         
            +
                                         Decidim::Conferences::Permissions,
         
     | 
| 
      
 10 
     | 
    
         
            +
                                         Decidim::Admin::Permissions)
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       8 
12 
     | 
    
         
             
                    private
         
     | 
| 
       9 
13 
     | 
    
         | 
| 
       10 
14 
     | 
    
         
             
                    def permissions_context
         
     | 
| 
         @@ -14,10 +18,7 @@ module Decidim 
     | 
|
| 
       14 
18 
     | 
    
         
             
                    end
         
     | 
| 
       15 
19 
     | 
    
         | 
| 
       16 
20 
     | 
    
         
             
                    def permission_class_chain
         
     | 
| 
       17 
     | 
    
         
            -
                       
     | 
| 
       18 
     | 
    
         
            -
                        Decidim::Conferences::Permissions,
         
     | 
| 
       19 
     | 
    
         
            -
                        Decidim::Admin::Permissions
         
     | 
| 
       20 
     | 
    
         
            -
                      ]
         
     | 
| 
      
 21 
     | 
    
         
            +
                      ::Decidim.permissions_registry.chain_for(::Decidim::Conferences::Admin::ApplicationController)
         
     | 
| 
       21 
22 
     | 
    
         
             
                    end
         
     | 
| 
       22 
23 
     | 
    
         
             
                  end
         
     | 
| 
       23 
24 
     | 
    
         
             
                end
         
     | 
| 
         @@ -12,6 +12,11 @@ module Decidim 
     | 
|
| 
       12 
12 
     | 
    
         
             
                    module ConferenceAdmin
         
     | 
| 
       13 
13 
     | 
    
         
             
                      extend ActiveSupport::Concern
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
      
 15 
     | 
    
         
            +
                      RegistersPermissions
         
     | 
| 
      
 16 
     | 
    
         
            +
                        .register_permissions(::Decidim::Conferences::Admin::Concerns::ConferenceAdmin,
         
     | 
| 
      
 17 
     | 
    
         
            +
                                              ::Decidim::Conferences::Permissions,
         
     | 
| 
      
 18 
     | 
    
         
            +
                                              ::Decidim::Admin::Permissions)
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
       15 
20 
     | 
    
         
             
                      included do
         
     | 
| 
       16 
21 
     | 
    
         
             
                        include Decidim::Admin::ParticipatorySpaceAdminContext
         
     | 
| 
       17 
22 
     | 
    
         
             
                        participatory_space_admin_layout
         
     | 
| 
         @@ -35,10 +40,7 @@ module Decidim 
     | 
|
| 
       35 
40 
     | 
    
         
             
                        end
         
     | 
| 
       36 
41 
     | 
    
         | 
| 
       37 
42 
     | 
    
         
             
                        def permission_class_chain
         
     | 
| 
       38 
     | 
    
         
            -
                           
     | 
| 
       39 
     | 
    
         
            -
                            Decidim::Conferences::Permissions,
         
     | 
| 
       40 
     | 
    
         
            -
                            Decidim::Admin::Permissions
         
     | 
| 
       41 
     | 
    
         
            -
                          ]
         
     | 
| 
      
 43 
     | 
    
         
            +
                          PermissionsRegistry.chain_for(ConferenceAdmin)
         
     | 
| 
       42 
44 
     | 
    
         
             
                        end
         
     | 
| 
       43 
45 
     | 
    
         
             
                      end
         
     | 
| 
       44 
46 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -10,6 +10,11 @@ module Decidim 
     | 
|
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                  include NeedsPermission
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
                  register_permissions(::Decidim::Conferences::ApplicationController,
         
     | 
| 
      
 14 
     | 
    
         
            +
                                       Decidim::Conferences::Permissions,
         
     | 
| 
      
 15 
     | 
    
         
            +
                                       Decidim::Admin::Permissions,
         
     | 
| 
      
 16 
     | 
    
         
            +
                                       Decidim::Permissions)
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       13 
18 
     | 
    
         
             
                  private
         
     | 
| 
       14 
19 
     | 
    
         | 
| 
       15 
20 
     | 
    
         
             
                  def permissions_context
         
     | 
| 
         @@ -19,11 +24,7 @@ module Decidim 
     | 
|
| 
       19 
24 
     | 
    
         
             
                  end
         
     | 
| 
       20 
25 
     | 
    
         | 
| 
       21 
26 
     | 
    
         
             
                  def permission_class_chain
         
     | 
| 
       22 
     | 
    
         
            -
                     
     | 
| 
       23 
     | 
    
         
            -
                      Decidim::Conferences::Permissions,
         
     | 
| 
       24 
     | 
    
         
            -
                      Decidim::Admin::Permissions,
         
     | 
| 
       25 
     | 
    
         
            -
                      Decidim::Permissions
         
     | 
| 
       26 
     | 
    
         
            -
                    ]
         
     | 
| 
      
 27 
     | 
    
         
            +
                    ::Decidim.permissions_registry.chain_for(::Decidim::Conferences::ApplicationController)
         
     | 
| 
       27 
28 
     | 
    
         
             
                  end
         
     | 
| 
       28 
29 
     | 
    
         | 
| 
       29 
30 
     | 
    
         
             
                  def permission_scope
         
     | 
| 
         @@ -11,7 +11,8 @@ module Decidim 
     | 
|
| 
       11 
11 
     | 
    
         
             
                  helper_method :collection, :conference, :meeting_days, :meeting_component
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                  def show
         
     | 
| 
       14 
     | 
    
         
            -
                    raise ActionController::RoutingError, "No meetings for this conference " if meetings. 
     | 
| 
      
 14 
     | 
    
         
            +
                    raise ActionController::RoutingError, "No meetings for this conference " if meetings.blank?
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
       15 
16 
     | 
    
         
             
                    enforce_permission_to :list, :program
         
     | 
| 
       16 
17 
     | 
    
         
             
                    redirect_to decidim_conferences.conference_path(current_participatory_space) unless current_user_can_visit_space?
         
     | 
| 
       17 
18 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -20,11 +21,13 @@ module Decidim 
     | 
|
| 
       20 
21 
     | 
    
         | 
| 
       21 
22 
     | 
    
         
             
                  def meeting_component
         
     | 
| 
       22 
23 
     | 
    
         
             
                    return if params[:id].blank?
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
       23 
25 
     | 
    
         
             
                    @meeting_component ||= current_participatory_space.components.where(manifest_name: "meetings").find_by(id: params[:id])
         
     | 
| 
       24 
26 
     | 
    
         
             
                  end
         
     | 
| 
       25 
27 
     | 
    
         | 
| 
       26 
28 
     | 
    
         
             
                  def meetings
         
     | 
| 
       27 
29 
     | 
    
         
             
                    return unless meeting_component.published? || !meeting_component.presence
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
       28 
31 
     | 
    
         
             
                    @meetings ||= Decidim::Meetings::Meeting.where(component: meeting_component).visible_meeting_for(current_user).order(:start_time)
         
     | 
| 
       29 
32 
     | 
    
         
             
                  end
         
     | 
| 
       30 
33 
     | 
    
         | 
| 
         @@ -11,6 +11,7 @@ module Decidim 
     | 
|
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                  def index
         
     | 
| 
       13 
13 
     | 
    
         
             
                    raise ActionController::RoutingError, "No speakers for this conference " if speakers.empty?
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       14 
15 
     | 
    
         
             
                    enforce_permission_to :list, :speakers
         
     | 
| 
       15 
16 
     | 
    
         
             
                    redirect_to decidim_conferences.conference_path(current_participatory_space) unless current_user_can_visit_space?
         
     | 
| 
       16 
17 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -13,6 +13,7 @@ module Decidim 
     | 
|
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                  def index
         
     | 
| 
       15 
15 
     | 
    
         
             
                    raise ActionController::RoutingError, "No media_links for this conference " if media_links.empty? && current_participatory_space.attachments.empty?
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       16 
17 
     | 
    
         
             
                    enforce_permission_to :list, :media_links
         
     | 
| 
       17 
18 
     | 
    
         
             
                    redirect_to decidim_conferences.conference_path(current_participatory_space) unless current_user_can_visit_space?
         
     | 
| 
       18 
19 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -11,6 +11,7 @@ module Decidim 
     | 
|
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                  def index
         
     | 
| 
       13 
13 
     | 
    
         
             
                    raise ActionController::RoutingError, "No registration types for this conference " if registration_types.empty? && current_participatory_space.registrations_enabled.empty?
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       14 
15 
     | 
    
         
             
                    enforce_permission_to :list, :registration_types
         
     | 
| 
       15 
16 
     | 
    
         
             
                    redirect_to decidim_conferences.conference_path(current_participatory_space) unless current_user_can_visit_space?
         
     | 
| 
       16 
17 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -62,6 +62,7 @@ module Decidim 
     | 
|
| 
       62 
62 
     | 
    
         | 
| 
       63 
63 
     | 
    
         
             
                    def processes_for_select
         
     | 
| 
       64 
64 
     | 
    
         
             
                      return unless Decidim.participatory_space_manifests.map(&:name).include?(:participatory_processes)
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
       65 
66 
     | 
    
         
             
                      @processes_for_select ||= Decidim.find_participatory_space_manifest(:participatory_processes)
         
     | 
| 
       66 
67 
     | 
    
         
             
                                                       .participatory_spaces.call(current_organization)&.order(title: :asc)&.map do |process|
         
     | 
| 
       67 
68 
     | 
    
         
             
                        [
         
     | 
| 
         @@ -73,6 +74,7 @@ module Decidim 
     | 
|
| 
       73 
74 
     | 
    
         | 
| 
       74 
75 
     | 
    
         
             
                    def assemblies_for_select
         
     | 
| 
       75 
76 
     | 
    
         
             
                      return unless Decidim.participatory_space_manifests.map(&:name).include?(:assemblies)
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
       76 
78 
     | 
    
         
             
                      @assemblies_for_select ||= Decidim.find_participatory_space_manifest(:assemblies)
         
     | 
| 
       77 
79 
     | 
    
         
             
                                                        .participatory_spaces.call(current_organization)&.order(title: :asc)&.map do |assembly|
         
     | 
| 
       78 
80 
     | 
    
         
             
                        [
         
     | 
| 
         @@ -84,6 +86,7 @@ module Decidim 
     | 
|
| 
       84 
86 
     | 
    
         | 
| 
       85 
87 
     | 
    
         
             
                    def consultations_for_select
         
     | 
| 
       86 
88 
     | 
    
         
             
                      return unless Decidim.participatory_space_manifests.map(&:name).include?(:consultations)
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
       87 
90 
     | 
    
         
             
                      @consultations_for_select ||= Decidim.find_participatory_space_manifest(:consultations)
         
     | 
| 
       88 
91 
     | 
    
         
             
                                                           .participatory_spaces.call(current_organization)&.order(title: :asc)&.map do |consultation|
         
     | 
| 
       89 
92 
     | 
    
         
             
                        [
         
     | 
| 
         @@ -98,6 +101,7 @@ module Decidim 
     | 
|
| 
       98 
101 
     | 
    
         
             
                    def available_slots_greater_than_or_equal_to_registrations_count
         
     | 
| 
       99 
102 
     | 
    
         
             
                      conference = OrganizationConferences.new(current_organization).query.find_by(slug: slug)
         
     | 
| 
       100 
103 
     | 
    
         
             
                      return true if conference.blank?
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
       101 
105 
     | 
    
         
             
                      errors.add(:available_slots, :invalid) if available_slots < conference.conference_registrations.count
         
     | 
| 
       102 
106 
     | 
    
         
             
                    end
         
     | 
| 
       103 
107 
     | 
    
         |