decidim 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.eslintrc.json +2 -1
- data/Gemfile.lock +121 -112
- data/README.md +28 -10
- data/Rakefile +1 -1
- data/decidim-admin/README.md +1 -1
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_sidebar.scss +30 -1
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_tables.scss +3 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/application.scss +3 -0
- data/decidim-admin/app/commands/decidim/admin/create_participatory_process.rb +4 -1
- data/decidim-admin/app/commands/decidim/admin/create_participatory_process_admin.rb +26 -7
- data/decidim-admin/app/commands/decidim/admin/create_participatory_process_group.rb +54 -0
- data/decidim-admin/app/commands/decidim/admin/create_participatory_process_step.rb +0 -1
- data/decidim-admin/app/commands/decidim/admin/destroy_participatory_process_step.rb +3 -1
- data/decidim-admin/app/commands/decidim/admin/hide_resource.rb +37 -0
- data/decidim-admin/app/commands/decidim/admin/reorder_participatory_process_steps.rb +1 -0
- data/decidim-admin/app/commands/decidim/admin/unreport_resource.rb +33 -0
- data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +4 -2
- data/decidim-admin/app/commands/decidim/admin/update_participatory_process_group.rb +57 -0
- data/decidim-admin/app/commands/decidim/admin/update_participatory_process_step.rb +1 -2
- data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +4 -0
- data/decidim-admin/app/controllers/decidim/admin/categories_controller.rb +1 -1
- data/decidim-admin/app/controllers/decidim/admin/feature_permissions_controller.rb +2 -2
- data/decidim-admin/{lib → app/controllers}/decidim/admin/features/base_controller.rb +0 -0
- data/decidim-admin/app/controllers/decidim/admin/moderations_controller.rb +64 -0
- data/decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb +1 -1
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_groups_controller.rb +86 -0
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_publications_controller.rb +1 -1
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_activations_controller.rb +1 -1
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_ordering_controller.rb +1 -1
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_steps_controller.rb +1 -1
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_user_roles_controller.rb +3 -3
- data/decidim-admin/app/controllers/decidim/admin/participatory_processes_controller.rb +3 -2
- data/decidim-admin/app/forms/decidim/admin/organization_form.rb +1 -0
- data/decidim-admin/app/forms/decidim/admin/participatory_process_form.rb +12 -1
- data/decidim-admin/app/forms/decidim/admin/participatory_process_group_form.rb +23 -0
- data/decidim-admin/app/forms/decidim/admin/participatory_process_step_form.rb +0 -1
- data/decidim-admin/app/forms/decidim/admin/participatory_process_user_role_form.rb +5 -1
- data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +1 -0
- data/decidim-admin/app/helpers/decidim/admin/process_groups_for_select_helper.rb +20 -0
- data/decidim-admin/app/helpers/decidim/admin/processes_for_select_helper.rb +22 -0
- data/decidim-admin/app/models/decidim/admin/abilities/admin_user.rb +2 -0
- data/decidim-admin/app/models/decidim/admin/abilities/participatory_process_admin.rb +4 -0
- data/decidim-admin/app/models/decidim/admin/participatory_process_user_role.rb +1 -1
- data/decidim-admin/app/queries/decidim/admin/process_admins.rb +43 -0
- data/decidim-admin/app/views/decidim/admin/moderations/index.html.erb +65 -0
- data/decidim-admin/app/views/decidim/admin/organization/_form.html.erb +4 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_groups/_form.html.erb +17 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_groups/edit.html.erb +13 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_groups/index.html.erb +38 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_groups/new.html.erb +11 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_groups/show.html.erb +23 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/_form.html.erb +0 -4
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/show.html.erb +4 -5
- data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +27 -24
- data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +10 -1
- data/decidim-admin/app/views/decidim/admin/participatory_processes/show.html.erb +15 -1
- data/decidim-admin/app/views/layouts/decidim/admin/_header.html.erb +1 -0
- data/decidim-admin/app/views/layouts/decidim/admin/_language_chooser.html.erb +14 -0
- data/decidim-admin/app/views/layouts/decidim/admin/_sidebar.html.erb +2 -0
- data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +5 -0
- data/decidim-admin/config/i18n-tasks.yml +3 -1
- data/decidim-admin/config/locales/ca.yml +83 -3
- data/decidim-admin/config/locales/en.yml +81 -1
- data/decidim-admin/config/locales/es.yml +81 -1
- data/decidim-admin/config/locales/eu.yml +340 -1
- data/decidim-admin/config/locales/fi.yml +464 -0
- data/decidim-admin/config/routes.rb +8 -0
- data/decidim-admin/db/seeds.rb +1 -1
- data/decidim-admin/lib/decidim/admin/engine.rb +1 -0
- data/decidim-admin/spec/commands/create_participatory_process_admin_spec.rb +10 -4
- data/decidim-admin/spec/commands/create_participatory_process_spec.rb +6 -1
- data/decidim-admin/spec/commands/hide_resource_spec.rb +41 -0
- data/decidim-admin/spec/commands/unreport_resource_spec.rb +42 -0
- data/decidim-admin/spec/commands/update_organization_spec.rb +1 -0
- data/decidim-admin/spec/features/admin_invite_spec.rb +1 -0
- data/decidim-admin/spec/features/admin_manages_feature_permissions_spec.rb +1 -1
- data/decidim-admin/spec/features/admin_manages_organization_admins_spec.rb +1 -1
- data/decidim-admin/spec/features/admin_manages_participatory_process_groups_spec.rb +107 -0
- data/decidim-admin/spec/features/admin_manages_participatory_processes_spec.rb +5 -0
- data/decidim-admin/spec/features/admin_manages_user_groups_spec.rb +11 -4
- data/decidim-admin/spec/forms/organization_form_spec.rb +2 -0
- data/decidim-admin/spec/forms/participatory_process_group_form_spec.rb +86 -0
- data/decidim-admin/spec/forms/participatory_process_step_form_spec.rb +0 -10
- data/decidim-admin/spec/forms/participatory_process_user_role_form_spec.rb +4 -0
- data/decidim-admin/spec/models/abilities/admin_user_spec.rb +3 -2
- data/decidim-admin/spec/models/abilities/participatory_process_admin_spec.rb +7 -0
- data/decidim-admin/spec/queries/process_admins_spec.rb +23 -0
- data/decidim-admin/spec/shared/manage_process_admins_examples.rb +2 -0
- data/decidim-admin/spec/shared/manage_process_steps_examples.rb +0 -10
- data/decidim-api/decidim-api.gemspec +1 -1
- data/decidim-budgets/app/commands/decidim/budgets/add_line_item.rb +9 -1
- data/decidim-budgets/app/controllers/decidim/budgets/admin/projects_controller.rb +13 -1
- data/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb +5 -1
- data/decidim-budgets/app/models/decidim/budgets/order.rb +3 -0
- data/decidim-budgets/app/models/decidim/budgets/project.rb +9 -1
- data/decidim-budgets/app/services/decidim/budgets/project_search.rb +0 -5
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/_form.html.erb +5 -3
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/index.html.erb +9 -0
- data/decidim-budgets/app/views/decidim/budgets/line_items/update_budget.js.erb +1 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_filters.html.erb +2 -2
- data/decidim-budgets/app/views/decidim/budgets/projects/_filters_small_view.html.erb +18 -0
- data/decidim-budgets/app/views/decidim/budgets/projects/_project.html.erb +17 -2
- data/decidim-budgets/app/views/decidim/budgets/projects/_project_budget_button.html.erb +2 -2
- data/decidim-budgets/app/views/decidim/budgets/projects/_tags.html.erb +1 -1
- data/decidim-budgets/app/views/decidim/budgets/projects/index.html.erb +2 -1
- data/decidim-budgets/app/views/decidim/budgets/projects/show.html.erb +7 -1
- data/decidim-budgets/config/i18n-tasks.yml +1 -0
- data/decidim-budgets/config/locales/ca.yml +18 -3
- data/decidim-budgets/config/locales/en.yml +15 -0
- data/decidim-budgets/config/locales/es.yml +17 -2
- data/decidim-budgets/config/locales/eu.yml +97 -1
- data/decidim-budgets/config/locales/fi.yml +123 -0
- data/decidim-budgets/db/migrate/20170215132708_add_reference_to_projects.rb +7 -0
- data/decidim-budgets/lib/decidim/budgets/feature.rb +4 -2
- data/decidim-budgets/lib/decidim/budgets/seeds/Exampledocument.pdf +0 -0
- data/decidim-budgets/lib/decidim/budgets/seeds/city.jpeg +0 -0
- data/decidim-budgets/lib/decidim/budgets/test/factories.rb +21 -1
- data/decidim-budgets/spec/commands/add_line_item_spec.rb +10 -1
- data/decidim-budgets/spec/features/comments_spec.rb +10 -0
- data/decidim-budgets/spec/features/orders_spec.rb +47 -3
- data/decidim-budgets/spec/models/project_spec.rb +16 -1
- data/decidim-budgets/spec/services/project_search_spec.rb +9 -0
- data/decidim-budgets/spec/shared/admin_shared_context.rb +1 -1
- data/decidim-budgets/spec/shared/manage_projects_examples.rb +22 -0
- data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
- data/decidim-comments/app/commands/decidim/comments/create_comment.rb +9 -1
- data/decidim-comments/app/frontend/application/icon.component.jsx +1 -1
- data/decidim-comments/app/frontend/comments/add_comment_form.component.jsx +11 -10
- data/decidim-comments/app/frontend/comments/add_comment_form.component.test.jsx +5 -5
- data/decidim-comments/app/frontend/comments/comment.component.jsx +91 -1
- data/decidim-comments/app/frontend/comments/comment.component.test.jsx +18 -0
- data/decidim-comments/app/frontend/comments/comment_data.fragment.graphql +2 -0
- data/decidim-comments/app/frontend/comments/comment_order_selector.component.jsx +4 -5
- data/decidim-comments/app/frontend/comments/comments.query.graphql +1 -0
- data/decidim-comments/app/mailers/decidim/comments/comment_notification_mailer.rb +8 -0
- data/decidim-comments/app/models/decidim/comments/abilities/admin_user.rb +25 -0
- data/decidim-comments/app/models/decidim/comments/abilities/process_admin_user.rb +33 -0
- data/decidim-comments/app/models/decidim/comments/comment.rb +7 -1
- data/decidim-comments/app/models/decidim/comments/comment_vote.rb +3 -1
- data/decidim-comments/app/queries/decidim/comments/sorted_comments.rb +1 -0
- data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/comment_created.html.erb +1 -1
- data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/reply_created.html.erb +1 -1
- data/decidim-comments/config/locales/ca.yml +11 -0
- data/decidim-comments/config/locales/en.yml +12 -2
- data/decidim-comments/config/locales/es.yml +11 -0
- data/decidim-comments/config/locales/eu.yml +38 -1
- data/decidim-comments/config/locales/fi.yml +66 -0
- data/decidim-comments/lib/decidim/comments.rb +2 -0
- data/decidim-comments/lib/decidim/comments/admin.rb +9 -0
- data/decidim-comments/lib/decidim/comments/admin_engine.rb +22 -0
- data/decidim-comments/lib/decidim/comments/api/comment_type.rb +12 -0
- data/decidim-comments/lib/decidim/comments/commentable.rb +0 -2
- data/decidim-comments/lib/decidim/comments/engine.rb +1 -0
- data/decidim-comments/lib/decidim/comments/test/factories.rb +3 -0
- data/decidim-comments/spec/commands/create_comment_spec.rb +11 -0
- data/decidim-comments/spec/features/admin_manages_comments_spec.rb +23 -0
- data/decidim-comments/spec/features/comments_spec.rb +5 -173
- data/decidim-comments/spec/features/process_admin_manages_comments_spec.rb +24 -0
- data/decidim-comments/spec/features/report_comment_spec.rb +20 -0
- data/decidim-comments/spec/models/abilities/admin_user_spec.rb +20 -0
- data/decidim-comments/spec/models/abilities/process_admin_user_spec.rb +21 -0
- data/decidim-comments/spec/models/comment_spec.rb +1 -0
- data/decidim-comments/spec/queries/sorted_comments_spec.rb +11 -0
- data/decidim-comments/spec/shared/admin_shared_context.rb +11 -0
- data/decidim-comments/spec/types/comment_type_spec.rb +19 -0
- data/decidim-dev/config/locales/ca.yml +1 -1
- data/decidim-dev/config/locales/en.yml +1 -1
- data/decidim-dev/config/locales/es.yml +1 -1
- data/decidim-dev/config/locales/eu.yml +1 -1
- data/decidim-dev/config/locales/fi.yml +5 -0
- data/decidim-dev/decidim-dev.gemspec +3 -1
- data/decidim-dev/lib/decidim/dev/test/base_spec_helper.rb +1 -28
- data/decidim-dev/lib/decidim/dev/test/rspec_support/feature.rb +11 -0
- data/{decidim-meetings/spec/support → decidim-dev/lib/decidim/dev/test/rspec_support}/geocoder.rb +5 -1
- data/decidim-dev/lib/decidim/dev/test/rspec_support/html_matchers.rb +6 -0
- data/decidim-dev/lib/decidim/dev/test/rspec_support/i18n.rb +3 -0
- data/decidim-dev/lib/decidim/dev/test/rspec_support/webmock.rb +2 -0
- data/decidim-dev/lib/decidim/dev/test/spec_helper.rb +37 -0
- data/decidim-dev/lib/generators/decidim/dummy_generator.rb +5 -0
- data/decidim-dev/lib/generators/decidim/templates/autoprefixer.yml +8 -0
- data/decidim-dev/lib/generators/decidim/templates/autoprefixer_initializer.rb +16 -0
- data/decidim-meetings/app/commands/decidim/meetings/admin/create_meeting.rb +6 -17
- data/decidim-meetings/app/commands/decidim/meetings/admin/update_meeting.rb +6 -7
- data/decidim-meetings/app/controllers/decidim/meetings/application_controller.rb +1 -0
- data/decidim-meetings/app/controllers/decidim/meetings/meetings_controller.rb +14 -9
- data/decidim-meetings/app/forms/decidim/meetings/admin/meeting_form.rb +12 -1
- data/decidim-meetings/app/helpers/decidim/meetings/admin/application_helper.rb +1 -1
- data/decidim-meetings/app/helpers/decidim/meetings/application_helper.rb +2 -1
- data/decidim-meetings/app/helpers/decidim/meetings/map_helper.rb +10 -32
- data/decidim-meetings/app/models/decidim/meetings/meeting.rb +2 -1
- data/decidim-meetings/app/services/decidim/meetings/meeting_search.rb +0 -5
- data/decidim-meetings/app/views/decidim/meetings/admin/meetings/_form.html.erb +5 -3
- data/decidim-meetings/app/views/decidim/meetings/meetings/_filters.html.erb +5 -3
- data/decidim-meetings/app/views/decidim/meetings/meetings/_filters_small_view.html.erb +1 -1
- data/decidim-meetings/app/views/decidim/meetings/meetings/_meetings.html.erb +11 -1
- data/decidim-meetings/app/views/decidim/meetings/meetings/_tags.html.erb +1 -1
- data/decidim-meetings/app/views/decidim/meetings/meetings/index.html.erb +27 -32
- data/decidim-meetings/app/views/decidim/meetings/meetings/index.js.erb +2 -2
- data/decidim-meetings/app/views/decidim/meetings/meetings/show.html.erb +2 -15
- data/decidim-meetings/config/i18n-tasks.yml +1 -1
- data/decidim-meetings/config/locales/ca.yml +18 -3
- data/decidim-meetings/config/locales/en.yml +20 -3
- data/decidim-meetings/config/locales/es.yml +18 -3
- data/decidim-meetings/config/locales/eu.yml +75 -1
- data/decidim-meetings/config/locales/fi.yml +98 -0
- data/decidim-meetings/db/migrate/20170215132546_add_reference_to_meetings.rb +7 -0
- data/decidim-meetings/decidim-meetings.gemspec +0 -2
- data/decidim-meetings/lib/decidim/meetings/admin_engine.rb +0 -26
- data/decidim-meetings/lib/decidim/meetings/list_engine.rb +1 -9
- data/decidim-meetings/spec/commands/create_meeting_spec.rb +6 -14
- data/decidim-meetings/spec/commands/update_meeting_spec.rb +10 -29
- data/decidim-meetings/spec/features/explore_meetings_spec.rb +37 -13
- data/decidim-meetings/spec/forms/meeting_form_spec.rb +15 -1
- data/decidim-meetings/spec/models/meeting_spec.rb +1 -0
- data/decidim-meetings/spec/services/meeting_search_spec.rb +9 -0
- data/decidim-meetings/spec/shared/admin_shared_context.rb +1 -1
- data/decidim-meetings/spec/shared/manage_meetings_examples.rb +97 -1
- data/decidim-meetings/spec/spec_helper.rb +0 -5
- data/decidim-pages/app/commands/decidim/pages/admin/update_page.rb +1 -4
- data/decidim-pages/app/commands/decidim/pages/create_page.rb +1 -4
- data/decidim-pages/app/forms/decidim/pages/admin/page_form.rb +0 -3
- data/decidim-pages/app/models/decidim/pages/page.rb +8 -12
- data/decidim-pages/app/views/decidim/pages/admin/pages/_form.html.erb +0 -1
- data/decidim-pages/app/views/decidim/pages/application/show.html.erb +0 -1
- data/decidim-pages/config/locales/ca.yml +0 -1
- data/decidim-pages/config/locales/en.yml +0 -1
- data/decidim-pages/config/locales/es.yml +0 -1
- data/decidim-pages/config/locales/eu.yml +14 -1
- data/decidim-pages/config/locales/fi.yml +22 -0
- data/decidim-pages/db/migrate/20170220091402_remove_page_feature_titles.rb +5 -0
- data/decidim-pages/lib/decidim/pages/engine.rb +1 -0
- data/decidim-pages/lib/decidim/pages/feature.rb +4 -1
- data/decidim-pages/spec/commands/create_page_spec.rb +1 -2
- data/decidim-pages/spec/commands/update_page_spec.rb +0 -1
- data/decidim-pages/spec/factories.rb +6 -1
- data/decidim-pages/spec/features/admin_spec.rb +1 -17
- data/decidim-pages/spec/features/comments_spec.rb +10 -0
- data/decidim-pages/spec/features/page_show_spec.rb +1 -10
- data/decidim-pages/spec/forms/page_form_spec.rb +0 -21
- data/decidim-pages/spec/models/page_spec.rb +2 -4
- data/decidim-proposals/app/commands/decidim/proposals/admin/create_proposal.rb +4 -1
- data/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb +4 -1
- data/decidim-proposals/app/controllers/decidim/proposals/admin/proposals_controller.rb +4 -0
- data/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb +12 -6
- data/decidim-proposals/app/forms/decidim/proposals/admin/proposal_form.rb +13 -2
- data/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb +13 -2
- data/decidim-proposals/app/helpers/decidim/proposals/application_helper.rb +3 -0
- data/decidim-proposals/app/helpers/decidim/proposals/map_helper.rb +19 -0
- data/decidim-proposals/app/helpers/decidim/proposals/proposal_order_helper.rb +16 -0
- data/decidim-proposals/app/models/decidim/proposals/abilities/admin_user.rb +2 -0
- data/decidim-proposals/app/models/decidim/proposals/abilities/current_user.rb +3 -0
- data/decidim-proposals/app/models/decidim/proposals/abilities/process_admin_user.rb +2 -1
- data/decidim-proposals/app/models/decidim/proposals/proposal.rb +12 -3
- data/decidim-proposals/app/services/decidim/proposals/proposal_search.rb +0 -5
- data/decidim-proposals/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +1 -1
- data/decidim-proposals/app/views/decidim/proposals/admin/proposals/_form.html.erb +8 -2
- data/decidim-proposals/app/views/decidim/proposals/admin/proposals/index.html.erb +12 -14
- data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +2 -2
- data/decidim-proposals/app/views/decidim/proposals/proposals/_filters_small_view.html.erb +1 -1
- data/decidim-proposals/app/views/decidim/proposals/proposals/_proposals.html.erb +1 -1
- data/decidim-proposals/app/views/decidim/proposals/proposals/_tags.html.erb +1 -1
- data/decidim-proposals/app/views/decidim/proposals/proposals/index.html.erb +27 -0
- data/decidim-proposals/app/views/decidim/proposals/proposals/new.html.erb +8 -2
- data/decidim-proposals/app/views/decidim/proposals/proposals/show.html.erb +18 -1
- data/decidim-proposals/config/i18n-tasks.yml +3 -1
- data/decidim-proposals/config/locales/ca.yml +11 -8
- data/decidim-proposals/config/locales/en.yml +9 -6
- data/decidim-proposals/config/locales/es.yml +14 -11
- data/decidim-proposals/config/locales/eu.yml +119 -1
- data/decidim-proposals/config/locales/fi.yml +143 -0
- data/decidim-proposals/db/migrate/20170215113152_create_proposal_reports.rb +14 -0
- data/decidim-proposals/db/migrate/20170215131720_add_report_count_to_proposals.rb +5 -0
- data/decidim-proposals/db/migrate/20170215132030_add_reference_to_proposals.rb +7 -0
- data/decidim-proposals/db/migrate/20170220152416_add_hidden_at_to_proposals.rb +5 -0
- data/decidim-proposals/db/migrate/20170228105156_add_geolocalization_fields_to_proposals.rb +7 -0
- data/decidim-proposals/db/migrate/20170307085300_migrate_proposal_reports_data_to_reports.rb +26 -0
- data/decidim-proposals/decidim-proposals.gemspec +1 -1
- data/decidim-proposals/lib/decidim/proposals/feature.rb +4 -3
- data/decidim-proposals/lib/decidim/proposals/test/factories.rb +8 -0
- data/decidim-proposals/spec/features/admin_manages_proposals_spec.rb +3 -0
- data/decidim-proposals/spec/features/comments_spec.rb +11 -0
- data/decidim-proposals/spec/features/process_admin_manages_proposals_spec.rb +3 -0
- data/decidim-proposals/spec/features/proposals_spec.rb +98 -15
- data/decidim-proposals/spec/features/report_proposal_spec.rb +19 -0
- data/decidim-proposals/spec/helpers/proposal_order_helper_spec.rb +30 -0
- data/decidim-proposals/spec/models/decidim/proposals/proposal_spec.rb +2 -0
- data/decidim-proposals/spec/services/decidim/proposals/proposal_search_spec.rb +9 -0
- data/decidim-proposals/spec/shared/create_proposal_examples.rb +29 -2
- data/decidim-proposals/spec/shared/manage_proposals_examples.rb +95 -26
- data/decidim-proposals/spec/shared/proposal_form_examples.rb +29 -1
- data/decidim-results/app/forms/decidim/results/admin/result_form.rb +9 -1
- data/decidim-results/app/models/decidim/results/result.rb +2 -1
- data/decidim-results/app/services/decidim/results/result_search.rb +0 -5
- data/decidim-results/app/views/decidim/results/admin/results/_form.html.erb +5 -3
- data/decidim-results/app/views/decidim/results/results/_filters.html.erb +2 -2
- data/decidim-results/app/views/decidim/results/results/_filters_small_view.html.erb +18 -0
- data/decidim-results/app/views/decidim/results/results/_tags.html.erb +1 -1
- data/decidim-results/app/views/decidim/results/results/index.html.erb +1 -0
- data/decidim-results/app/views/decidim/results/results/show.html.erb +1 -0
- data/decidim-results/config/i18n-tasks.yml +2 -0
- data/decidim-results/config/locales/ca.yml +15 -2
- data/decidim-results/config/locales/en.yml +15 -2
- data/decidim-results/config/locales/es.yml +15 -2
- data/decidim-results/config/locales/eu.yml +57 -1
- data/decidim-results/config/locales/fi.yml +77 -0
- data/decidim-results/db/migrate/20170215132624_add_reference_to_results.rb +7 -0
- data/decidim-results/lib/decidim/results/test/factories.rb +6 -0
- data/decidim-results/spec/features/comments_spec.rb +10 -0
- data/decidim-results/spec/features/explore_results_spec.rb +27 -0
- data/decidim-results/spec/models/result_spec.rb +1 -0
- data/decidim-results/spec/services/result_search_spec.rb +9 -0
- data/decidim-results/spec/shared/admin_shared_context.rb +1 -1
- data/decidim-system/README.md +45 -8
- data/decidim-system/app/commands/decidim/system/register_organization.rb +3 -0
- data/decidim-system/app/commands/decidim/system/update_organization.rb +2 -0
- data/decidim-system/app/controllers/decidim/system/application_controller.rb +2 -0
- data/decidim-system/app/forms/decidim/system/register_organization_form.rb +1 -0
- data/decidim-system/app/forms/decidim/system/update_organization_form.rb +18 -0
- data/decidim-system/app/views/decidim/system/organizations/edit.html.erb +10 -0
- data/decidim-system/app/views/decidim/system/organizations/new.html.erb +33 -19
- data/decidim-system/config/locales/ca.yml +3 -0
- data/decidim-system/config/locales/en.yml +3 -0
- data/decidim-system/config/locales/es.yml +3 -0
- data/decidim-system/config/locales/eu.yml +3 -0
- data/decidim-system/config/locales/fi.yml +68 -0
- data/decidim-system/db/seeds.rb +1 -1
- data/decidim-system/decidim-system.gemspec +1 -1
- data/decidim-system/lib/decidim/system/engine.rb +1 -0
- data/decidim-system/spec/commands/decidim/system/register_organization_spec.rb +3 -0
- data/decidim-system/spec/commands/decidim/system/update_organization_spec.rb +53 -0
- data/decidim-system/spec/features/organizations_spec.rb +5 -0
- data/docs/analytics.md +23 -0
- data/docs/how_to_create_a_plugin.md +3 -1
- data/lib/generators/decidim/app_generator.rb +4 -0
- data/lib/generators/decidim/demo_generator.rb +1 -1
- data/lib/generators/decidim/install_generator.rb +8 -1
- data/lib/generators/decidim/review_app_generator.rb +53 -0
- data/lib/generators/decidim/templates/Gemfile.erb +1 -5
- data/lib/generators/decidim/templates/app.json.erb +1 -1
- data/lib/generators/decidim/templates/carrierwave.rb +2 -2
- data/lib/generators/decidim/templates/decidim_controller.rb.erb +5 -0
- data/lib/generators/decidim/templates/initializer.rb +4 -0
- data/package.json +4 -4
- data/yarn.lock +106 -165
- metadata +100 -54
- data/decidim-meetings/app/assets/config/decidim_meetings_manifest.js +0 -2
- data/decidim-meetings/app/assets/javascripts/decidim/meetings/map.js.es6.erb +0 -97
- data/decidim-meetings/app/assets/stylesheets/decidim/meetings/map.css +0 -3
- data/decidim-meetings/app/services/decidim/meetings/static_map_generator.rb +0 -50
- data/decidim-meetings/app/views/decidim/meetings/meetings/_address_details.html.erb +0 -5
- data/decidim-meetings/spec/controllers/meetings_controller_spec.rb +0 -41
- data/decidim-meetings/spec/services/static_map_generator_spec.rb +0 -33
- data/decidim-meetings/vendor/assets/javascripts/leaflet-svg-icon.js +0 -179
- data/decidim-meetings/vendor/assets/javascripts/leaflet-tilelayer-here.js +0 -166
- data/decidim-meetings/vendor/assets/javascripts/leaflet.js +0 -9
- data/decidim-meetings/vendor/assets/javascripts/leaflet.markercluster.js +0 -7
- data/decidim-meetings/vendor/assets/stylesheets/MarkerCluster.Default.css +0 -60
- data/decidim-meetings/vendor/assets/stylesheets/MarkerCluster.css +0 -14
- data/decidim-meetings/vendor/assets/stylesheets/leaflet.css +0 -624
@@ -1,5 +1,13 @@
|
|
1
1
|
---
|
2
2
|
en:
|
3
|
+
activemodel:
|
4
|
+
attributes:
|
5
|
+
result:
|
6
|
+
decidim_category_id: Category
|
7
|
+
decidim_scope_id: Scope
|
8
|
+
description: Description
|
9
|
+
proposal_ids: Included proposals
|
10
|
+
title: Title
|
3
11
|
decidim:
|
4
12
|
features:
|
5
13
|
results:
|
@@ -11,9 +19,9 @@ en:
|
|
11
19
|
comments_blocked: Comments blocked
|
12
20
|
resource_links:
|
13
21
|
included_proposals:
|
14
|
-
|
22
|
+
result_proposals: Proposals included in this result
|
15
23
|
meetings_through_proposals:
|
16
|
-
|
24
|
+
result_meetings: Related meetings
|
17
25
|
results:
|
18
26
|
actions:
|
19
27
|
confirm_destroy: Are you sure you want to delete this result?
|
@@ -55,6 +63,11 @@ en:
|
|
55
63
|
category: Category
|
56
64
|
scopes: Scopes
|
57
65
|
search: Search
|
66
|
+
filters_small_view:
|
67
|
+
close_modal: Close modal
|
68
|
+
filter: Filter
|
69
|
+
filter_by: Filter by
|
70
|
+
unfold: Unfold
|
58
71
|
show:
|
59
72
|
stats:
|
60
73
|
attendees: Attendees
|
@@ -1,4 +1,12 @@
|
|
1
1
|
es:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
result:
|
5
|
+
decidim_category_id: Categoría
|
6
|
+
decidim_scope_id: Ámbito
|
7
|
+
description: Descripción
|
8
|
+
proposal_ids: Propuestas incluidas
|
9
|
+
title: Título
|
2
10
|
decidim:
|
3
11
|
features:
|
4
12
|
results:
|
@@ -10,9 +18,9 @@ es:
|
|
10
18
|
comments_blocked: Comentarios bloqueados
|
11
19
|
resource_links:
|
12
20
|
included_proposals:
|
13
|
-
|
21
|
+
result_proposals: Propuestas incluidas en este resultado
|
14
22
|
meetings_through_proposals:
|
15
|
-
|
23
|
+
result_meetings: Encuentros relacionados
|
16
24
|
results:
|
17
25
|
actions:
|
18
26
|
confirm_destroy: '¿Está seguro de que quiere eliminar este resultado?'
|
@@ -54,6 +62,11 @@ es:
|
|
54
62
|
category: Categoría
|
55
63
|
scopes: Ámbitos
|
56
64
|
search: Buscar
|
65
|
+
filters_small_view:
|
66
|
+
close_modal: Cerrar ventana
|
67
|
+
filter: Filtrar
|
68
|
+
filter_by: Filtrar por
|
69
|
+
unfold: Desplegar
|
57
70
|
show:
|
58
71
|
stats:
|
59
72
|
attendees: Asistentes
|
@@ -2,4 +2,60 @@ eu:
|
|
2
2
|
decidim:
|
3
3
|
features:
|
4
4
|
results:
|
5
|
-
name: Emaitzak
|
5
|
+
name: Emaitzak
|
6
|
+
resource_links:
|
7
|
+
included_proposals:
|
8
|
+
result_proposals: Emaitza honetan jasotako proposamenak
|
9
|
+
meetings_through_proposals:
|
10
|
+
result_meetings: Honekin lotutako topaketak
|
11
|
+
results:
|
12
|
+
actions:
|
13
|
+
confirm_destroy: Ziur zaude emaitza hau ezabatu nahi duzula?
|
14
|
+
destroy: Garbitu
|
15
|
+
edit: Editatu
|
16
|
+
new: '%{name} berria'
|
17
|
+
title: Ekintzak
|
18
|
+
admin:
|
19
|
+
models:
|
20
|
+
result:
|
21
|
+
name: Emaitza
|
22
|
+
results:
|
23
|
+
create:
|
24
|
+
invalid: Arazo bat izan da emaitza hau sortzean.
|
25
|
+
success: Emaitza zuzen sortu da
|
26
|
+
destroy:
|
27
|
+
success: Emaitza zuzen ezabatu da.
|
28
|
+
edit:
|
29
|
+
title: Editatu emaitza
|
30
|
+
update: Eguneratu emaitza
|
31
|
+
index:
|
32
|
+
title: Emaitzak
|
33
|
+
new:
|
34
|
+
create: Sortu emaitza
|
35
|
+
title: Emaitza berria
|
36
|
+
update:
|
37
|
+
invalid: Arazo bat izan da emaitza hau eguneratzean.
|
38
|
+
success: Emaitza zuzen eguneratu da.
|
39
|
+
models:
|
40
|
+
result:
|
41
|
+
fields:
|
42
|
+
title: Izenburua
|
43
|
+
results:
|
44
|
+
count:
|
45
|
+
results_count:
|
46
|
+
one: Emaitza bat
|
47
|
+
other: "%{count} emaitza"
|
48
|
+
filters:
|
49
|
+
category: Kategoria
|
50
|
+
scopes: Esparruak
|
51
|
+
search: Bilatu
|
52
|
+
filters_small_view:
|
53
|
+
filter_by: 'Iragazi honen arabera:'
|
54
|
+
show:
|
55
|
+
stats:
|
56
|
+
attendees: Bertaratuak
|
57
|
+
comments: Iruzkinak
|
58
|
+
contributions: Ekarpenak
|
59
|
+
meetings: Topaketa-zerrenda
|
60
|
+
proposals: Proposamenak
|
61
|
+
votes: Euskarria
|
@@ -0,0 +1,77 @@
|
|
1
|
+
fi:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
result:
|
5
|
+
decidim_category_id: Kategoria
|
6
|
+
decidim_scope_id: Konteksti
|
7
|
+
description: Kuvaus
|
8
|
+
proposal_ids: Sisällytetyt ehdotukset
|
9
|
+
title: Otsikko
|
10
|
+
decidim:
|
11
|
+
features:
|
12
|
+
results:
|
13
|
+
name: Tulokset
|
14
|
+
settings:
|
15
|
+
global:
|
16
|
+
comments_enabled: Kommentointi sallittu
|
17
|
+
step:
|
18
|
+
comments_blocked: Kommentointi estetty
|
19
|
+
resource_links:
|
20
|
+
included_proposals:
|
21
|
+
result_proposals: Projektit, jotka sisältyvät tähän tulokseen
|
22
|
+
meetings_through_proposals:
|
23
|
+
result_meetings: Liittyvät tapaamiset
|
24
|
+
results:
|
25
|
+
actions:
|
26
|
+
confirm_destroy: Oletko varma, että haluat poistaa tämän tuloksen?
|
27
|
+
destroy: Poista
|
28
|
+
edit: Muokkaa
|
29
|
+
new: Uusi %{name}
|
30
|
+
title: Toiminnot
|
31
|
+
admin:
|
32
|
+
models:
|
33
|
+
result:
|
34
|
+
name: Tulos
|
35
|
+
results:
|
36
|
+
create:
|
37
|
+
invalid: Tuloksen luonnissa tapahtui virhe
|
38
|
+
success: Tulos luotu onnistuneesti
|
39
|
+
destroy:
|
40
|
+
success: Tulos poistettu onnistuneesti
|
41
|
+
edit:
|
42
|
+
title: Muokkaa tulosta
|
43
|
+
update: Päivitä tulos
|
44
|
+
index:
|
45
|
+
title: Tulokset
|
46
|
+
new:
|
47
|
+
create: Luo tulos
|
48
|
+
title: Uusi tulos
|
49
|
+
update:
|
50
|
+
invalid: Tuloksen päivityksessä tapahtui virhe
|
51
|
+
success: Tulos päivitetty onnistuneesti
|
52
|
+
models:
|
53
|
+
result:
|
54
|
+
fields:
|
55
|
+
title: Otsikko
|
56
|
+
results:
|
57
|
+
count:
|
58
|
+
results_count:
|
59
|
+
one: 1 tulos
|
60
|
+
other: "%{count} tulosta"
|
61
|
+
filters:
|
62
|
+
category: Kategoria
|
63
|
+
scopes: Konteksti
|
64
|
+
search: Haku
|
65
|
+
filters_small_view:
|
66
|
+
close_modal: Sulje ikkuna
|
67
|
+
filter: Suodata
|
68
|
+
filter_by: Suodata
|
69
|
+
unfold: Avaa
|
70
|
+
show:
|
71
|
+
stats:
|
72
|
+
attendees: Osallistujat
|
73
|
+
comments: Kommentit
|
74
|
+
contributions: Kontribuutiot
|
75
|
+
meetings: Tapaamiset
|
76
|
+
proposals: Ehdotukset
|
77
|
+
votes: Kannatukset
|
@@ -3,6 +3,12 @@ require "decidim/faker/localized"
|
|
3
3
|
require "decidim/dev"
|
4
4
|
|
5
5
|
FactoryGirl.define do
|
6
|
+
factory :result_feature, parent: :feature do
|
7
|
+
name { Decidim::Features::Namer.new(participatory_process.organization.available_locales, :results).i18n_name }
|
8
|
+
manifest_name :results
|
9
|
+
participatory_process { create(:participatory_process, :with_steps) }
|
10
|
+
end
|
11
|
+
|
6
12
|
factory :result, class: Decidim::Results::Result do
|
7
13
|
title { Decidim::Faker::Localized.sentence(3) }
|
8
14
|
description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { Decidim::Faker::Localized.sentence(4) } }
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "spec_helper"
|
3
|
+
|
4
|
+
describe "Comments", type: :feature, perform_enqueued: true do
|
5
|
+
let!(:feature) { create(:result_feature, organization: organization) }
|
6
|
+
let!(:commentable) { create(:result, feature: feature) }
|
7
|
+
|
8
|
+
let(:resource_path) { decidim_results.result_path(commentable, feature_id: feature, participatory_process_id: feature.participatory_process) }
|
9
|
+
include_examples "comments"
|
10
|
+
end
|
@@ -38,6 +38,7 @@ describe "Explore results", type: :feature do
|
|
38
38
|
it "shows all result info" do
|
39
39
|
expect(page).to have_i18n_content(result.title)
|
40
40
|
expect(page).to have_i18n_content(result.description)
|
41
|
+
expect(page).to have_content(result.reference)
|
41
42
|
|
42
43
|
within ".section.view-side" do
|
43
44
|
expect(page).to have_content(/Proposals/i)
|
@@ -162,6 +163,32 @@ describe "Explore results", type: :feature do
|
|
162
163
|
visit_feature
|
163
164
|
end
|
164
165
|
|
166
|
+
context "when the process has a linked scope" do
|
167
|
+
before do
|
168
|
+
participatory_process.update_attributes(scope: scope)
|
169
|
+
visit current_path
|
170
|
+
end
|
171
|
+
|
172
|
+
it "enables filtering by scope" do
|
173
|
+
within ".filters" do
|
174
|
+
expect(page).not_to have_content(/Scopes/i)
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
context "when the process has no linked scope" do
|
180
|
+
before do
|
181
|
+
participatory_process.update_attributes(scope: nil)
|
182
|
+
visit current_path
|
183
|
+
end
|
184
|
+
|
185
|
+
it "enables filtering by scope" do
|
186
|
+
within ".filters" do
|
187
|
+
expect(page).to have_content(/Scopes/i)
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
165
192
|
context "by origin 'official'" do
|
166
193
|
it "lists the filtered results" do
|
167
194
|
within ".filters" do
|
@@ -65,6 +65,15 @@ describe Decidim::Results::ResultSearch do
|
|
65
65
|
expect(subject.results).to match_array [result1,result2]
|
66
66
|
end
|
67
67
|
end
|
68
|
+
|
69
|
+
context "when `global` is being sent" do
|
70
|
+
let!(:resource_without_scope) { create(:result, feature: current_feature, scope: nil)}
|
71
|
+
let(:params) { default_params.merge(scope_id: ["global"]) }
|
72
|
+
|
73
|
+
it "returns resources without a scope" do
|
74
|
+
expect(subject.results).to eq [resource_without_scope]
|
75
|
+
end
|
76
|
+
end
|
68
77
|
end
|
69
78
|
|
70
79
|
context "category_id" do
|
@@ -1,6 +1,6 @@
|
|
1
1
|
RSpec.shared_context "admin" do
|
2
2
|
let(:organization) { create(:organization) }
|
3
|
-
let!(:user) { create(:user, :admin, :confirmed, organization: organization, email: "admin@
|
3
|
+
let!(:user) { create(:user, :admin, :confirmed, organization: organization, email: "admin@example.org") }
|
4
4
|
let(:participatory_process) { create(:participatory_process, :with_steps, organization: organization) }
|
5
5
|
let(:process_admin) { create :user, :confirmed, organization: organization }
|
6
6
|
let!(:user_role) { create :participatory_process_user_role, user: process_admin, participatory_process: participatory_process }
|
data/decidim-system/README.md
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
# Decidim::System
|
2
|
-
|
2
|
+
|
3
|
+
This engine adds an administration dashboard so admin can manage a Decidim deploy
|
4
|
+
and its organizations when working in a multi-tenant environment.
|
3
5
|
|
4
6
|
## Usage
|
5
|
-
How to use my plugin.
|
6
7
|
|
7
|
-
|
8
|
+
`decidim-system` is already included in the `decidim` gem, but you can also include it separately:
|
9
|
+
|
8
10
|
Add this line to your application's Gemfile:
|
9
11
|
|
10
12
|
```ruby
|
@@ -16,13 +18,48 @@ And then execute:
|
|
16
18
|
$ bundle
|
17
19
|
```
|
18
20
|
|
19
|
-
|
20
|
-
|
21
|
-
|
21
|
+
## Multi-tenancy in Decidim
|
22
|
+
|
23
|
+
A single Decidim deploy can be used by multiple organizations (tenants) at the same time. All resources and entities are always scoped to an organization.
|
24
|
+
|
25
|
+
When using Decidim as multi-tenant, you should keep these in mind:
|
26
|
+
|
27
|
+
* All organizations share the same database.
|
28
|
+
* Each organization must have a different hostname.
|
29
|
+
* Users aren't shared between each organization (the same email can be registered in different organizations and it will be considered as different users).
|
30
|
+
* All configuration related to Decidim (`Decidim.config`) is shared between the organizations.
|
31
|
+
* Stylesheets aren't customizable per-tenant so UI styles (colors and other variables) are shared.
|
32
|
+
|
33
|
+
## Glossary
|
34
|
+
|
35
|
+
* **Organization**: Each of the tenants using a Decidim deploy.
|
36
|
+
* **System admin**: Users that can manage organizations in a Decidim deploy.
|
37
|
+
* **Admins**: Users that can manage a **single** organization in a Decidim deploy.
|
38
|
+
* **Participatory process admins**: Users that can manage a **single participatory process** in an organization in a Decidim deploy.
|
39
|
+
|
40
|
+
## Managing System admins
|
41
|
+
|
42
|
+
Currently Decidim doesn't provide a way to create the first System Admin in a new deployment. To do it, you should open a Rails console in your application and
|
43
|
+
create it:
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
Decidim::System::Admin.create!(
|
47
|
+
email: "your-email@example.org",
|
48
|
+
password: "your-safe-password",
|
49
|
+
password_confirmation: "your-safe-password"
|
50
|
+
)
|
22
51
|
```
|
23
52
|
|
24
|
-
|
25
|
-
|
53
|
+
Once you have created your first admin you can access the system dashboard at `https://your-decidim-deployment-host/system` and login with your newly created user.
|
54
|
+
From the system dashboard you can add new admins.
|
55
|
+
|
56
|
+
## Managing organizations
|
57
|
+
|
58
|
+
Once you have your system admin setup you can also start managing the organizations in your deploy. To do it, login at the system dashboard and create a new organization
|
59
|
+
following the form instructions. After creating it, a new admin user will be created and invited to start managing it.
|
60
|
+
|
61
|
+
Remember that System admins and regular Admins are completely different users (they don't even share the same database table), so you can't use your
|
62
|
+
system user to login in as an organization admin.
|
26
63
|
|
27
64
|
## License
|
28
65
|
The gem is available as open source under the terms of the [AGPLv3 License](https://opensource.org/licenses/AGPL-3.0).
|
@@ -42,7 +42,10 @@ module Decidim
|
|
42
42
|
Decidim::Organization.create!(
|
43
43
|
name: form.name,
|
44
44
|
host: form.host,
|
45
|
+
secondary_hosts: form.clean_secondary_hosts,
|
46
|
+
reference_prefix: form.reference_prefix,
|
45
47
|
available_locales: form.available_locales,
|
48
|
+
available_authorizations: form.clean_available_authorizations,
|
46
49
|
default_locale: form.default_locale
|
47
50
|
)
|
48
51
|
end
|
@@ -42,6 +42,8 @@ module Decidim
|
|
42
42
|
def save_organization
|
43
43
|
organization.name = form.name
|
44
44
|
organization.host = form.host
|
45
|
+
organization.secondary_hosts = form.clean_secondary_hosts
|
46
|
+
organization.available_authorizations = form.clean_available_authorizations
|
45
47
|
|
46
48
|
organization.save!
|
47
49
|
end
|
@@ -4,10 +4,12 @@ module Decidim
|
|
4
4
|
# The main application controller that inherits from Rails.
|
5
5
|
class ApplicationController < ActionController::Base
|
6
6
|
include FormFactory
|
7
|
+
include PayloadInfo
|
7
8
|
protect_from_forgery with: :exception, prepend: true
|
8
9
|
|
9
10
|
helper Decidim::TranslationsHelper
|
10
11
|
helper Decidim::DecidimFormHelper
|
12
|
+
helper Decidim::ReplaceButtonsHelper
|
11
13
|
end
|
12
14
|
end
|
13
15
|
end
|
@@ -12,6 +12,7 @@ module Decidim
|
|
12
12
|
attribute :organization_admin_name, String
|
13
13
|
attribute :available_locales, Array
|
14
14
|
attribute :default_locale, String
|
15
|
+
attribute :reference_prefix
|
15
16
|
|
16
17
|
validates :organization_admin_email, :organization_admin_name, :name, :host, presence: true
|
17
18
|
validates :available_locales, presence: true
|
@@ -12,9 +12,27 @@ module Decidim
|
|
12
12
|
|
13
13
|
attribute :name, String
|
14
14
|
attribute :host, String
|
15
|
+
attribute :secondary_hosts, String
|
16
|
+
attribute :available_authorizations, Array[String]
|
15
17
|
|
18
|
+
validates :name, presence: true
|
19
|
+
validates :host, presence: true
|
16
20
|
validate :validate_organization_uniqueness
|
17
21
|
|
22
|
+
def map_model(model)
|
23
|
+
self.secondary_hosts = model.secondary_hosts.join("\n")
|
24
|
+
end
|
25
|
+
|
26
|
+
def clean_secondary_hosts
|
27
|
+
return unless secondary_hosts
|
28
|
+
secondary_hosts.split("\n").map(&:chomp).select(&:present?)
|
29
|
+
end
|
30
|
+
|
31
|
+
def clean_available_authorizations
|
32
|
+
return unless available_authorizations
|
33
|
+
available_authorizations.select(&:present?)
|
34
|
+
end
|
35
|
+
|
18
36
|
private
|
19
37
|
|
20
38
|
def validate_organization_uniqueness
|