mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 05:09:38 +02:00
Add country_code attribute to Security model and related classes
* Update Security model to include country_code in the data definition. * Modify Provider::SecurityConcept to define country_code for security. * Enhance Provider::Synth to extract country_code from security data. * Update Security::Provided to include country_code when creating security instances. * Adjust Security::SynthComboboxOption to add country_code as an attribute. * Revise combobox_security partial to conditionally display country flag and code.
This commit is contained in:
parent
fd3b583737
commit
a7438e5c78
6 changed files with 25 additions and 9 deletions
|
@ -1,7 +1,7 @@
|
|||
module Provider::SecurityConcept
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
Security = Data.define(:symbol, :name, :logo_url, :exchange_operating_mic)
|
||||
Security = Data.define(:symbol, :name, :logo_url, :exchange_operating_mic, :country_code)
|
||||
SecurityInfo = Data.define(:symbol, :name, :links, :logo_url, :description, :kind, :exchange_operating_mic)
|
||||
Price = Data.define(:symbol, :date, :price, :currency, :exchange_operating_mic)
|
||||
|
||||
|
|
|
@ -106,6 +106,7 @@ class Provider::Synth < Provider
|
|||
name: security.dig("name"),
|
||||
logo_url: security.dig("logo_url"),
|
||||
exchange_operating_mic: security.dig("exchange", "operating_mic_code"),
|
||||
country_code: security.dig("exchange", "country_code")
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -21,6 +21,7 @@ class Security < ApplicationRecord
|
|||
name: name,
|
||||
logo_url: logo_url,
|
||||
exchange_operating_mic: exchange_operating_mic,
|
||||
country_code: country_code
|
||||
)
|
||||
end
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ module Security::Provided
|
|||
name: provider_security.name,
|
||||
logo_url: provider_security.logo_url,
|
||||
exchange_operating_mic: provider_security.exchange_operating_mic,
|
||||
country_code: provider_security.country_code
|
||||
)
|
||||
end
|
||||
else
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
class Security::SynthComboboxOption
|
||||
include ActiveModel::Model
|
||||
|
||||
attr_accessor :symbol, :name, :logo_url, :exchange_operating_mic
|
||||
attr_accessor :symbol, :name, :logo_url, :exchange_operating_mic, :country_code
|
||||
|
||||
def id
|
||||
"#{symbol}|#{exchange_operating_mic}" # submitted by combobox as value
|
||||
|
|
|
@ -1,11 +1,24 @@
|
|||
<div class="flex items-center">
|
||||
<%= image_tag(combobox_security.logo_url, class: "rounded-full h-8 w-8 inline-block mr-2" ) %>
|
||||
<div class="flex flex-col">
|
||||
<span class="text-sm font-medium">
|
||||
<%= combobox_security.name.presence || combobox_security.symbol %>
|
||||
</span>
|
||||
<span class="text-xs text-secondary">
|
||||
<%= "#{combobox_security.symbol} (#{combobox_security.exchange_operating_mic})" %>
|
||||
</span>
|
||||
<div class="flex items-center justify-between w-full">
|
||||
<div class="flex flex-col">
|
||||
<span class="text-sm font-medium">
|
||||
<%= combobox_security.name.presence || combobox_security.symbol %>
|
||||
</span>
|
||||
<span class="text-xs text-secondary">
|
||||
<%= "#{combobox_security.symbol} (#{combobox_security.exchange_operating_mic})" %>
|
||||
</span>
|
||||
</div>
|
||||
<% if combobox_security.country_code.present? %>
|
||||
<div class="flex items-center bg-container-inset rounded-sm px-1.5 py-1 gap-1">
|
||||
<%= image_tag("https://hatscripts.github.io/circle-flags/flags/#{combobox_security.country_code.downcase}.svg",
|
||||
class: "h-4 rounded-sm", # h-3 (12px) matches text-xs, w-5 for 3:5 aspect ratio
|
||||
alt: "#{combobox_security.country_code.upcase} flag",
|
||||
title: combobox_security.country_code.upcase) %>
|
||||
<span class="text-xs text-secondary">
|
||||
<%= combobox_security.country_code.upcase %>
|
||||
</span>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue