app/models/decidim/meetings/answer.rb
# frozen_string_literal: true module Decidim module Meetings # The data store for an Answer in the Decidim::Meetings class Answer < Meetings::ApplicationRecord include Decidim::DownloadYourData belongs_to :user, class_name: "Decidim::User", foreign_key: "decidim_user_id", optional: true belongs_to :questionnaire, class_name: "Decidim::Meetings::Questionnaire", foreign_key: "decidim_questionnaire_id" belongs_to :question, class_name: "Question", foreign_key: "decidim_question_id" has_many :choices, class_name: "AnswerChoice", foreign_key: "decidim_answer_id", dependent: :destroy, inverse_of: :answer validate :user_questionnaire_same_organization validate :question_belongs_to_questionnaire def self.user_collection(user) where(decidim_user_id: user.id) end def self.export_serializer Decidim::Meetings::DownloadYourDataUserAnswersSerializer end def organization user.organization if user.present? questionnaire&.questionnaire_for.try(:organization) end private def user_questionnaire_same_organization return if user.nil? || user&.organization == questionnaire.questionnaire_for&.organization errors.add(:user, :invalid) end def question_belongs_to_questionnaire errors.add(:questionnaire, :invalid) if question&.questionnaire != questionnaire end end end end
Source Files
- app/cells/decidim/meetings/content_blocks/highlighted_meetings_cell.rb
- app/cells/decidim/meetings/content_blocks/upcoming_meetings_cell.rb
- app/cells/decidim/meetings/highlighted_meetings_cell.rb
- app/cells/decidim/meetings/highlighted_meetings_for_component_cell.rb
- app/cells/decidim/meetings/join_meeting_button_cell.rb
- app/cells/decidim/meetings/meeting_activity_cell.rb
- app/cells/decidim/meetings/meeting_cell.rb
- app/cells/decidim/meetings/meeting_highlighted_list_item_cell.rb
- app/cells/decidim/meetings/meeting_list_item_cell.rb
- app/cells/decidim/meetings/meeting_m_cell.rb
- app/cells/decidim/meetings/meeting_s_cell.rb
- app/cells/decidim/meetings/meeting_url_cell.rb
- app/cells/decidim/meetings/meetings_map_cell.rb
- app/cells/decidim/meetings/online_meeting_cell.rb
- app/cells/decidim/meetings/online_meeting_link_cell.rb
- app/cells/decidim/meetings/public_participants_list_cell.rb
- app/cells/decidim/meetings/question_responses_cell.rb
- app/cells/decidim/meetings/reported_content_cell.rb
- app/commands/decidim/meetings/admin/close_meeting.rb
- app/commands/decidim/meetings/admin/copy_meeting.rb
- app/commands/decidim/meetings/admin/create_agenda.rb
- app/commands/decidim/meetings/admin/create_meeting.rb
- app/commands/decidim/meetings/admin/destroy_meeting.rb
- app/commands/decidim/meetings/admin/export_meeting_registrations.rb
- app/commands/decidim/meetings/admin/invite_user_to_join_meeting.rb
- app/commands/decidim/meetings/admin/publish_meeting.rb
- app/commands/decidim/meetings/admin/unpublish_meeting.rb
- app/commands/decidim/meetings/admin/update_agenda.rb
- app/commands/decidim/meetings/admin/update_meeting.rb
- app/commands/decidim/meetings/admin/update_question_status.rb
- app/commands/decidim/meetings/admin/update_questionnaire.rb
- app/commands/decidim/meetings/admin/update_registrations.rb
- app/commands/decidim/meetings/admin/validate_registration_code.rb
- app/commands/decidim/meetings/close_meeting.rb
- app/commands/decidim/meetings/create_answer.rb
- app/commands/decidim/meetings/create_meeting.rb
- app/commands/decidim/meetings/decline_invitation.rb
- app/commands/decidim/meetings/join_meeting.rb
- app/commands/decidim/meetings/leave_meeting.rb
- app/commands/decidim/meetings/update_meeting.rb
- app/commands/decidim/meetings/withdraw_meeting.rb
- app/controllers/concerns/decidim/meetings/admin/filterable.rb
- app/controllers/concerns/decidim/meetings/component_filterable.rb
- app/controllers/concerns/decidim/meetings/filterable.rb
- app/controllers/concerns/decidim/meetings/polls_resources.rb
- app/controllers/decidim/meetings/admin/agenda_controller.rb
- app/controllers/decidim/meetings/admin/application_controller.rb
- app/controllers/decidim/meetings/admin/attachment_collections_controller.rb
- app/controllers/decidim/meetings/admin/attachments_controller.rb
- app/controllers/decidim/meetings/admin/invites_controller.rb
- app/controllers/decidim/meetings/admin/meeting_closes_controller.rb
- app/controllers/decidim/meetings/admin/meeting_copies_controller.rb
- app/controllers/decidim/meetings/admin/meetings_controller.rb
- app/controllers/decidim/meetings/admin/meetings_poll_controller.rb
- app/controllers/decidim/meetings/admin/registration_form_controller.rb
- app/controllers/decidim/meetings/admin/registrations_controller.rb
- app/controllers/decidim/meetings/application_controller.rb
- app/controllers/decidim/meetings/calendars_controller.rb
- app/controllers/decidim/meetings/directory/application_controller.rb
- app/controllers/decidim/meetings/directory/meetings_controller.rb
- app/controllers/decidim/meetings/live_events_controller.rb
- app/controllers/decidim/meetings/meeting_closes_controller.rb
- app/controllers/decidim/meetings/meetings_controller.rb
- app/controllers/decidim/meetings/polls/answers_controller.rb
- app/controllers/decidim/meetings/polls/questions_controller.rb
- app/controllers/decidim/meetings/registrations_controller.rb
- app/controllers/decidim/meetings/versions_controller.rb
- app/controllers/decidim/meetings/widgets_controller.rb
- app/events/decidim/meetings/close_meeting_event.rb
- app/events/decidim/meetings/create_meeting_event.rb
- app/events/decidim/meetings/meeting_event.rb
- app/events/decidim/meetings/meeting_registration_notification_event.rb
- app/events/decidim/meetings/meeting_registrations_enabled_event.rb
- app/events/decidim/meetings/meeting_registrations_over_percentage_event.rb
- app/events/decidim/meetings/registration_code_validated_event.rb
- app/events/decidim/meetings/upcoming_meeting_event.rb
- app/events/decidim/meetings/update_meeting_event.rb
- app/forms/decidim/meetings/admin/answer_option_form.rb
- app/forms/decidim/meetings/admin/close_meeting_form.rb
- app/forms/decidim/meetings/admin/meeting_agenda_form.rb
- app/forms/decidim/meetings/admin/meeting_agenda_items_form.rb
- app/forms/decidim/meetings/admin/meeting_form.rb
- app/forms/decidim/meetings/admin/meeting_registration_invite_form.rb
- app/forms/decidim/meetings/admin/meeting_registrations_form.rb
- app/forms/decidim/meetings/admin/meeting_service_form.rb
- app/forms/decidim/meetings/admin/question_form.rb
- app/forms/decidim/meetings/admin/questionnaire_form.rb
- app/forms/decidim/meetings/admin/validate_registration_code_form.rb
- app/forms/decidim/meetings/answer_choice_form.rb
- app/forms/decidim/meetings/answer_form.rb
- app/forms/decidim/meetings/base_meeting_form.rb
- app/forms/decidim/meetings/close_meeting_form.rb
- app/forms/decidim/meetings/join_meeting_form.rb
- app/forms/decidim/meetings/meeting_form.rb
- app/helpers/decidim/meetings/admin/application_helper.rb
- app/helpers/decidim/meetings/admin/filterable_helper.rb
- app/helpers/decidim/meetings/application_helper.rb
- app/helpers/decidim/meetings/directory/application_helper.rb
- app/helpers/decidim/meetings/map_helper.rb
- app/helpers/decidim/meetings/meeting_cells_helper.rb
- app/helpers/decidim/meetings/meetings_helper.rb
- app/jobs/decidim/meetings/send_close_meeting_reminder_job.rb
- app/jobs/decidim/meetings/upcoming_meeting_notification_job.rb
- app/mailers/decidim/meetings/admin/invite_join_meeting_mailer.rb
- app/mailers/decidim/meetings/close_meeting_reminder_mailer.rb
- app/mailers/decidim/meetings/registration_mailer.rb
- app/models/decidim/meetings/agenda.rb
- app/models/decidim/meetings/agenda_item.rb
- app/models/decidim/meetings/answer.rb
- app/models/decidim/meetings/answer_choice.rb
- app/models/decidim/meetings/answer_option.rb
- app/models/decidim/meetings/application_record.rb
- app/models/decidim/meetings/invite.rb
- app/models/decidim/meetings/meeting.rb
- app/models/decidim/meetings/poll.rb
- app/models/decidim/meetings/question.rb
- app/models/decidim/meetings/questionnaire.rb
- app/models/decidim/meetings/registration.rb
- app/models/decidim/meetings/service.rb
- app/permissions/decidim/meetings/admin/permissions.rb
- app/permissions/decidim/meetings/permissions.rb
- app/presenters/decidim/meetings/admin_log/invite_presenter.rb
- app/presenters/decidim/meetings/admin_log/meeting_presenter.rb
- app/presenters/decidim/meetings/admin_log/questionnaire_presenter.rb
- app/presenters/decidim/meetings/admin_log/value_types/meeting_title_description_presenter.rb
- app/presenters/decidim/meetings/invite_presenter.rb
- app/presenters/decidim/meetings/log/resource_presenter.rb
- app/presenters/decidim/meetings/meeting_edition_presenter.rb
- app/presenters/decidim/meetings/meeting_presenter.rb
- app/presenters/decidim/meetings/official_author_presenter.rb
- app/queries/decidim/meetings/admin/invites.rb
- app/queries/decidim/meetings/filtered_meetings.rb
- app/queries/decidim/meetings/metrics/meeting_followers_metric_measure.rb
- app/queries/decidim/meetings/metrics/meetings_metric_manage.rb
- app/queries/decidim/meetings/questionnaire_user_answers.rb
- app/serializers/decidim/meetings/download_your_data_invite_serializer.rb
- app/serializers/decidim/meetings/download_your_data_registration_serializer.rb
- app/serializers/decidim/meetings/registration_serializer.rb
- app/services/decidim/meetings/calendar/base_calendar.rb
- app/services/decidim/meetings/calendar/component_calendar.rb
- app/services/decidim/meetings/calendar/meeting_calendar.rb
- app/services/decidim/meetings/calendar/meeting_to_event.rb
- app/services/decidim/meetings/calendar/organization_calendar.rb
- app/services/decidim/meetings/calendar_renderer.rb
- app/services/decidim/meetings/close_meeting_reminder_generator.rb
- app/services/decidim/meetings/diff_renderer.rb
- app/services/decidim/meetings/meeting_iframe_embedder.rb
- app/services/decidim/meetings/meeting_search.rb
- lib/decidim/api/agenda_item_type.rb
- lib/decidim/api/agenda_type.rb
- lib/decidim/api/linked_resources_interface.rb
- lib/decidim/api/meeting_type.rb
- lib/decidim/api/meetings_type.rb
- lib/decidim/api/service_type.rb
- lib/decidim/api/services_interface.rb
- lib/decidim/content_parsers/meeting_parser.rb
- lib/decidim/content_renderers/meeting_renderer.rb
- lib/decidim/meetings.rb
- lib/decidim/meetings/admin.rb
- lib/decidim/meetings/admin_engine.rb
- lib/decidim/meetings/api.rb
- lib/decidim/meetings/component.rb
- lib/decidim/meetings/directory.rb
- lib/decidim/meetings/directory_engine.rb
- lib/decidim/meetings/download_your_data_user_answers_serializer.rb
- lib/decidim/meetings/engine.rb
- lib/decidim/meetings/meeting_serializer.rb
- lib/decidim/meetings/polls.rb
- lib/decidim/meetings/registrations.rb
- lib/decidim/meetings/registrations/code_generator.rb
- lib/decidim/meetings/test/factories.rb
- lib/decidim/meetings/test/notifications_handling.rb
- lib/decidim/meetings/test/translated_event.rb
- lib/decidim/meetings/user_answers_serializer.rb
- lib/decidim/meetings/version.rb