Files
chatwoot/app/models/concerns/priority_activity_message_handler.rb
Sivin Varghese c35edc9c49 chore(i18n): Improvements in automation and macros (#11231)
# Pull Request Template

## Description

This PR includes,
1. **Sort Accounts List** – Orders the accounts list alphabetically for
better organization.
2. **Add Missing Translations in Automation** – Includes missing
translations for actions, events, and conditions dropdown.
3. **Fix Missing Translation in Macros** – Adds missing translations in
the macros action select dropdown.
4. Translate "Automation System" Username – Ensures the "Automation
System" username is properly translated.

Fixes: https://linear.app/chatwoot/issue/CW-4198/issues-[converso]

## Type of change

- [x] Bug fix (non-breaking change which fixes an issue)


## Checklist:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
2025-04-02 15:48:42 -07:00

34 lines
1.2 KiB
Ruby

module PriorityActivityMessageHandler
extend ActiveSupport::Concern
private
def priority_change_activity(user_name)
old_priority, new_priority = previous_changes.values_at('priority')[0]
return unless priority_change?(old_priority, new_priority)
user = Current.executed_by.instance_of?(AutomationRule) ? I18n.t('automation.system_name') : user_name
content = build_priority_change_content(user, old_priority, new_priority)
::Conversations::ActivityMessageJob.perform_later(self, activity_message_params(content)) if content
end
def priority_change?(old_priority, new_priority)
old_priority.present? || new_priority.present?
end
def build_priority_change_content(user_name, old_priority = nil, new_priority = nil)
change_type = get_priority_change_type(old_priority, new_priority)
I18n.t("conversations.activity.priority.#{change_type}", user_name: user_name, new_priority: new_priority, old_priority: old_priority)
end
def get_priority_change_type(old_priority, new_priority)
case [old_priority.present?, new_priority.present?]
when [true, true] then 'updated'
when [false, true] then 'added'
when [true, false] then 'removed'
end
end
end