Class: Decidim::TimeTracker::ActivityQuestionnaireController
- Inherits:
-
ApplicationController
- Object
- Components::BaseController
- ApplicationController
- Decidim::TimeTracker::ActivityQuestionnaireController
- Includes:
- Forms::Concerns::HasQuestionnaire
- Defined in:
- app/controllers/decidim/time_tracker/activity_questionnaire_controller.rb
Instance Method Summary collapse
- #after_answer_path ⇒ Object
-
#allow_answers? ⇒ Boolean
only allows answers if not in preview mode.
- #form_path ⇒ Object
-
#preview ⇒ Object
only allows answers if not in preview mode.
- #questionnaire_for ⇒ Object
-
#update_url ⇒ Object
Returns the path to answer this questionnaire for normal users If the questionnaire is rendered in a preview route, then just do nothing with the responses.
-
#visitor_already_answered? ⇒ Boolean
Override to allow respond users once per-activity.
-
#visitor_can_answer? ⇒ Boolean
Override so can answer only if is an assignation can view Also admins can preview it (but not answer).
Instance Method Details
#after_answer_path ⇒ Object
41 42 43 |
# File 'app/controllers/decidim/time_tracker/activity_questionnaire_controller.rb', line 41 def after_answer_path Decidim::EngineRouter.main_proxy(current_component).root_path end |
#allow_answers? ⇒ Boolean
only allows answers if not in preview mode
21 22 23 24 25 26 27 |
# File 'app/controllers/decidim/time_tracker/activity_questionnaire_controller.rb', line 21 def allow_answers? return false if current_user.blank? return true if params[:action] == "preview" && current_user.admin? activity.allow_answers_for? current_user end |
#form_path ⇒ Object
37 38 39 |
# File 'app/controllers/decidim/time_tracker/activity_questionnaire_controller.rb', line 37 def form_path task_activity_form_path(activity_id: activity.id, id: activity.questionnaire) end |
#preview ⇒ Object
only allows answers if not in preview mode
9 10 11 12 13 14 |
# File 'app/controllers/decidim/time_tracker/activity_questionnaire_controller.rb', line 9 def preview return show if request.method == "GET" flash[":alert"] = I18n.t("questionnaire_in_preview_mode", scope: "decidim.time_tracker.time_tracker") redirect_to preview_task_activity_form_path(activity_id: activity.id, id: activity.questionnaire) end |
#questionnaire_for ⇒ Object
16 17 18 |
# File 'app/controllers/decidim/time_tracker/activity_questionnaire_controller.rb', line 16 def questionnaire_for time_tracker end |
#update_url ⇒ Object
Returns the path to answer this questionnaire for normal users If the questionnaire is rendered in a preview route, then just do nothing with the responses
31 32 33 34 35 |
# File 'app/controllers/decidim/time_tracker/activity_questionnaire_controller.rb', line 31 def update_url return preview_task_activity_form_path(activity_id: activity.id, id: activity.questionnaire) if params[:action] == "preview" answer_task_activity_form_path(activity_id: activity.id, id: activity.questionnaire) end |
#visitor_already_answered? ⇒ Boolean
Override to allow respond users once per-activity
56 57 58 59 60 61 62 |
# File 'app/controllers/decidim/time_tracker/activity_questionnaire_controller.rb', line 56 def visitor_already_answered? return false if current_user.blank? return false if params[:action] == "preview" && current_user.admin? activity.questionnaire.answered_by?(session_token) end |
#visitor_can_answer? ⇒ Boolean
Override so can answer only if is an assignation can view Also admins can preview it (but not answer)
47 48 49 50 51 52 53 |
# File 'app/controllers/decidim/time_tracker/activity_questionnaire_controller.rb', line 47 def visitor_can_answer? return false if current_user.blank? return true if params[:action] == "preview" && current_user.admin? activity.assignation_accepted? current_user end |