These cards will be displayed in the SDG homepage. Note there seems to be a strange behavior in cancancan. If we define these rules: can :manage, Widget::Card, page_type: "SDG::Phase" can :manage, Widget::Card The expected behavior is the first rule will always be ignored because the second one overwrites it. However, when creating a new card with `load_and_authorize_resource` will automatically add `page_type: "SDG::Phase"`. Similarly, if we do something like: can :manage, Widget::Card, id: 3 can :manage, Widget::Card Then the new card will have `3` as an ID. Maybe upgrading cancancan solves the issue; we haven't tried it. For now we're defining a different rule when creating widget cards.
24 lines
435 B
Ruby
24 lines
435 B
Ruby
class SDGManagement::Homepage::ShowComponent < ApplicationComponent
|
|
include Header
|
|
|
|
attr_reader :phases
|
|
|
|
def initialize(phases)
|
|
@phases = phases
|
|
end
|
|
|
|
private
|
|
|
|
def title
|
|
t("sdg_management.homepage.title")
|
|
end
|
|
|
|
def create_card_text(phase)
|
|
t("sdg_management.homepage.create_card", phase: phase.title.downcase)
|
|
end
|
|
|
|
def no_cards_message
|
|
t("sdg_management.homepage.no_cards")
|
|
end
|
|
end
|