pg_rails 7.0.8.pre.alpha.103 → 7.0.8.pre.alpha.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/pg_engine/app/assets/stylesheets/actiontext.css +31 -0
  3. data/pg_engine/app/assets/stylesheets/notifications.scss +31 -2
  4. data/pg_engine/app/components/notification_component.rb +9 -4
  5. data/pg_engine/app/components/notifications_bell_component.rb +25 -0
  6. data/pg_engine/app/controllers/admin/eventos_controller.rb +57 -0
  7. data/pg_engine/app/controllers/concerns/pg_engine/resource.rb +0 -2
  8. data/pg_engine/app/controllers/pg_engine/base_controller.rb +6 -1
  9. data/pg_engine/app/controllers/users/notifications_controller.rb +6 -0
  10. data/pg_engine/app/models/evento.rb +11 -0
  11. data/pg_engine/app/notifiers/simple_user_notifier.rb +4 -0
  12. data/pg_engine/app/views/active_storage/blobs/_blob.html.erb +1 -0
  13. data/pg_engine/app/views/admin/eventos/index.html.slim +6 -0
  14. data/pg_engine/app/views/admin/eventos/new.html.slim +10 -0
  15. data/pg_engine/app/views/layouts/action_text/contents/_content.html.erb +3 -0
  16. data/pg_engine/config/routes.rb +2 -0
  17. data/pg_engine/db/migrate/20240614130246_create_action_text_tables.action_text.rb +26 -0
  18. data/pg_engine/lib/pg_engine/engine.rb +8 -0
  19. data/pg_engine/spec/helpers/pg_engine/pg_rails_helper_spec.rb +0 -2
  20. data/pg_engine/spec/requests/admin/eventos_spec.rb +56 -0
  21. data/pg_engine/spec/system/noticed_spec.rb +3 -0
  22. data/pg_layout/app/javascript/config/index.js +3 -0
  23. data/pg_layout/app/javascript/controllers/notifications_controller.js +21 -3
  24. data/pg_layout/app/views/pg_layout/_navbar.html.erb +2 -9
  25. data/pg_rails/lib/version.rb +1 -1
  26. data/pg_rails/scss/pg_rails.scss +2 -0
  27. metadata +12 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: adf3e1c08971d75321d41dd7af1e1e564429e53ff550f79ba17a9ad68414c5f9
4
- data.tar.gz: 6b2795f204ae9f2cd47b7fec7d1899bc49fb9c07fd2b48eb616aebb7a10e93c9
3
+ metadata.gz: 6449fcb56114d2f214c03476b625c5dbcd2ebf416ddf87cfe23224432cc5a60e
4
+ data.tar.gz: e84b73268092c987312c2530a53945f9281a2364b663e9c331abb8a971971f58
5
5
  SHA512:
6
- metadata.gz: ce8f1e2eda8c93f15128ea12fb6dbf334b8dd7a85e0e9e6286a4e18d19484176105ed975a5cd1f641db05c773d80a72130c9649abfe55e6b0bec736e1f760235
7
- data.tar.gz: b8f789a849733993524a2a403b0782dbb77ec3e043b913ca9641fb707e99261a13ccaf5b42809b20be516dffccb21954ef9411638a6f49a19857d05977f6e432
6
+ metadata.gz: 750cd9d4dd72d4d6bda3e6ebc33edf23eda9d84d41090f6bd8cc5af2889ce04471c01a722c80249055608b7ffe2b0e9f417436252e64c38bfbda315d7f911aa1
7
+ data.tar.gz: 4bd4276d1cc708cdbae0487aa74e180fc5974a71ce1d6e5046f45f7bc1c3a85cec2be3e5146188d2af0a55f5fd2aa8698ce171406d083f8c8717a5d3e480ca3f
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Provides a drop-in pointer for the default Trix stylesheet that will format the toolbar and
3
+ * the trix-editor content (whether displayed or under editing). Feel free to incorporate this
4
+ * inclusion directly in any other asset bundle and remove this file.
5
+ *
6
+ *= require trix
7
+ */
8
+
9
+ /*
10
+ * We need to override trix.css’s image gallery styles to accommodate the
11
+ * <action-text-attachment> element we wrap around attachments. Otherwise,
12
+ * images in galleries will be squished by the max-width: 33%; rule.
13
+ */
14
+ .trix-content .attachment-gallery > action-text-attachment,
15
+ .trix-content .attachment-gallery > .attachment {
16
+ flex: 1 0 33%;
17
+ padding: 0 0.5em;
18
+ max-width: 33%;
19
+ }
20
+
21
+ .trix-content .attachment-gallery.attachment-gallery--2 > action-text-attachment,
22
+ .trix-content .attachment-gallery.attachment-gallery--2 > .attachment, .trix-content .attachment-gallery.attachment-gallery--4 > action-text-attachment,
23
+ .trix-content .attachment-gallery.attachment-gallery--4 > .attachment {
24
+ flex-basis: 50%;
25
+ max-width: 50%;
26
+ }
27
+
28
+ .trix-content action-text-attachment .attachment {
29
+ padding: 0 !important;
30
+ max-width: 100% !important;
31
+ }
@@ -1,3 +1,26 @@
1
+ .pg--notifications-bell--tooltip {
2
+ position: relative;
3
+ background-color: #99570b;
4
+ padding: 4px;
5
+ z-index: 10;
6
+ border-radius: 2px;
7
+ }
8
+ .pg--notifications-bell--tooltip::after {
9
+ content: '';
10
+ color: white;
11
+ display: block;
12
+ position: absolute;
13
+ right: -9px;
14
+ top: 3px;
15
+ border-color: transparent;
16
+ border-left-color: #99570b;
17
+ border-style: solid;
18
+ border-top-width: 0.7rem;
19
+ border-bottom-width: 0.7rem;
20
+ border-left-width: 0.7rem;
21
+ z-index: -1;
22
+ }
23
+
1
24
  #notifications {
2
25
  display: flex;
3
26
  align-items: center;
@@ -8,7 +31,8 @@
8
31
  }
9
32
 
10
33
  #notifications-inner {
11
- max-width: 400px;
34
+ width: 100%;
35
+ max-width: 40em;
12
36
  display: flex;
13
37
  flex-direction: column;
14
38
  gap: 0.4em;
@@ -18,10 +42,15 @@
18
42
  border-radius: 2px;
19
43
  position: relative;
20
44
  padding: 0.3em 2.5em;
45
+ padding-right: 0.5em;
21
46
  xpadding-left: 2.5em;
22
47
  display: flex;
23
- align-items: center;
48
+ align-items: stretch;
24
49
  background-color: white;
50
+
51
+ figcaption {
52
+ display: none;
53
+ }
25
54
  }
26
55
  .notification:not(.unseen) {
27
56
  xcolor: #646464;
@@ -8,11 +8,16 @@ class NotificationComponent < BaseComponent
8
8
  <div class="notification d-flex justify-content-between <%= 'unseen' if @notification.unseen? %>"
9
9
  id="<%= dom_id(@notification) %>" data-id="<%= @notification.id %>">
10
10
  <div>
11
- <%= @notification.message %>
11
+ <%= @notification.message.html_safe %>
12
12
  </div>
13
- <div class="notification--time text-body-tertiary text-end ms-4">
14
- hace
15
- <%= distance_of_time_in_words @notification.created_at, Time.zone.now %>
13
+ <div class="notification--time d-flex flex-column justify-content-end text-body-tertiary text-end ms-4">
14
+ <div>
15
+ hace
16
+ <%= distance_of_time_in_words @notification.created_at, Time.zone.now %>
17
+ </div>
18
+ <div>
19
+ <a href="javascript:void" class="link-opacity-50" data-action="notifications#markAsUnseen">Marcar como no leído</a>
20
+ </div>
16
21
  </div>
17
22
  </div>
18
23
  ERB
@@ -0,0 +1,25 @@
1
+ class NotificationsBellComponent < BaseComponent
2
+ def initialize(tooltip:, unseen:)
3
+ @tooltip = tooltip
4
+ @unseen = unseen
5
+ super
6
+ end
7
+
8
+ erb_template <<~ERB
9
+ <div>
10
+ <% if @tooltip.present? %>
11
+ <div class="d-none d-sm-inline-block text-white pg--notifications-bell--tooltip">
12
+ <%= @tooltip %>
13
+ </div>
14
+ <% end %>
15
+ <button type="button" class="btn btn-primary btn-sm position-relative"
16
+ data-bs-toggle="collapse" data-bs-target="#notifications-collapse">
17
+ <i class="bi-bell-fill fs-5 text-light"></i>
18
+ <% if @unseen %>
19
+ <span class="position-absolute p-1 xbg-danger bg-gradient rounded-circle start-50 notifications-unseen-mark">
20
+ </span>
21
+ <% end %>
22
+ </button>
23
+ </div>
24
+ ERB
25
+ end
@@ -0,0 +1,57 @@
1
+ module Admin
2
+ class EventosController < AdminController
3
+ layout 'pg_layout/containerized'
4
+
5
+ add_breadcrumb 'Eventos'
6
+
7
+ def index
8
+ @events = Noticed::Event.order(id: :desc)
9
+ end
10
+
11
+ def new
12
+ @event = Evento.new(type: SimpleUserNotifier.to_s)
13
+ end
14
+
15
+ # rubocop:disable Metrics/MethodLength
16
+ def create # rubocop:disable Metrics/AbcSize
17
+ @event = Evento.new(event_params)
18
+ # @event.message.save!
19
+ unless @event.valid?
20
+ render :new, status: :unprocessable_entity
21
+ return
22
+ end
23
+ json_params_for_event = {
24
+ message: @event.message,
25
+ tooltip: @event.tooltip
26
+ }
27
+ notifier_class = @event.type.constantize
28
+ notifier = notifier_class.with(json_params_for_event)
29
+
30
+ if @event.target == 'todos'
31
+ notifier.deliver(User.all)
32
+ elsif @event.target == 'devs'
33
+ notifier.deliver(User.where(developer: true))
34
+ else
35
+ # :nocov:
36
+ 'shouldnt happen'
37
+ # :nocov:
38
+ end
39
+
40
+ redirect_to admin_eventos_path
41
+ rescue StandardError => e
42
+ # :nocov:
43
+ flash.now[:alert] = e.to_s
44
+ render :new, status: :unprocessable_entity
45
+ # :nocov:
46
+ end
47
+ # rubocop:enable Metrics/MethodLength
48
+
49
+ private
50
+
51
+ def event_params
52
+ params.require(:evento).permit(
53
+ :type, :message, :tooltip, :record_type, :record_id, :target
54
+ )
55
+ end
56
+ end
57
+ end
@@ -212,9 +212,7 @@ module PgEngine
212
212
  if Object.const_defined?('FriendlyId') && @clase_modelo.is_a?(FriendlyId)
213
213
  @clase_modelo.friendly.find(params[:id])
214
214
  elsif @clase_modelo.respond_to? :find_by_hashid!
215
- # rubocop:disable Rails/DynamicFindBy
216
215
  @clase_modelo.find_by_hashid!(params[:id])
217
- # rubocop:enable Rails/DynamicFindBy
218
216
  else
219
217
  @clase_modelo.find(params[:id])
220
218
  end
@@ -92,7 +92,12 @@ module PgEngine
92
92
 
93
93
  if Current.user.present?
94
94
  @notifications = Current.user.notifications.order(id: :desc)
95
- @unseen_notifications = @notifications.unseen.any?
95
+ unseen = @notifications.unseen.any?
96
+ tooltip = @notifications.unseen.map(&:tooltip).first
97
+ @notifications_bell = NotificationsBellComponent.new(
98
+ unseen:,
99
+ tooltip:
100
+ )
96
101
  end
97
102
  end
98
103
 
@@ -1,5 +1,11 @@
1
1
  module Users
2
2
  class NotificationsController < ApplicationController
3
+ def mark_as_unseen
4
+ notification = Noticed::Notification.find(params[:id])
5
+ notification.mark_as_unseen!
6
+ head :ok
7
+ end
8
+
3
9
  def mark_as_seen
4
10
  # No handleo errores porque no debería fallar, y si falla
5
11
  # se notifica a rollbar y al user no le pasa nada
@@ -0,0 +1,11 @@
1
+ class Evento
2
+ include ActiveModel::API
3
+ include ActionText::Attribute
4
+ extend Enumerize
5
+
6
+ attr_accessor :tooltip, :target, :message, :type, :record_type, :record_id
7
+
8
+ validates :target, :type, :message, presence: true
9
+
10
+ enumerize :target, in: { todos: 0, devs: 1 }
11
+ end
@@ -21,6 +21,10 @@ class SimpleUserNotifier < ApplicationNotifier
21
21
  def message
22
22
  params[:message]
23
23
  end
24
+
25
+ def tooltip
26
+ params[:tooltip]
27
+ end
24
28
  end
25
29
  # Add required params
26
30
  #
@@ -0,0 +1 @@
1
+ <%= image_tag blob %>
@@ -0,0 +1,6 @@
1
+ - content_for :actions do
2
+ = link_to 'Nuevo', new_admin_evento_path
3
+ h1 Eventos
4
+
5
+ - @events.each do |event|
6
+ pre.mb-5 = JSON.pretty_generate event.as_json
@@ -0,0 +1,10 @@
1
+ = pg_form_for @event, url: admin_eventos_path do |f|
2
+ = f.mensajes_de_error
3
+
4
+ = f.input :type, as: :select, collection: ApplicationNotifier.descendants.map(&:to_s)
5
+ = f.rich_text_area :message
6
+ = f.input :tooltip
7
+ = f.input :record_type
8
+ = f.input :record_id
9
+ = f.input :target
10
+ = f.submit
@@ -0,0 +1,3 @@
1
+ <div class="trix-content">
2
+ <%= yield -%>
3
+ </div>
@@ -17,9 +17,11 @@ Rails.application.routes.draw do
17
17
  }, failure_app: PgEngine::DeviseFailureApp
18
18
  namespace :users, path: 'u' do
19
19
  post 'notifications/mark_as_seen', to: 'notifications#mark_as_seen'
20
+ post 'notifications/mark_as_unseen', to: 'notifications#mark_as_unseen'
20
21
  end
21
22
  namespace :admin, path: 'a' do
22
23
  pg_resource(:emails)
24
+ pg_resource(:eventos)
23
25
  pg_resource(:email_logs) do
24
26
  collection do
25
27
  post :mailgun_sync
@@ -0,0 +1,26 @@
1
+ # This migration comes from action_text (originally 20180528164100)
2
+ class CreateActionTextTables < ActiveRecord::Migration[6.0]
3
+ def change
4
+ # Use Active Record's configured type for primary and foreign keys
5
+ primary_key_type, foreign_key_type = primary_and_foreign_key_types
6
+
7
+ create_table :action_text_rich_texts, id: primary_key_type do |t|
8
+ t.string :name, null: false
9
+ t.text :body, size: :long
10
+ t.references :record, null: false, polymorphic: true, index: false, type: foreign_key_type
11
+
12
+ t.timestamps
13
+
14
+ t.index [ :record_type, :record_id, :name ], name: "index_action_text_rich_texts_uniqueness", unique: true
15
+ end
16
+ end
17
+
18
+ private
19
+ def primary_and_foreign_key_types
20
+ config = Rails.configuration.generators
21
+ setting = config.options[config.orm][:primary_key_type]
22
+ primary_key_type = setting || :primary_key
23
+ foreign_key_type = setting || :bigint
24
+ [primary_key_type, foreign_key_type]
25
+ end
26
+ end
@@ -13,6 +13,14 @@ module PgEngine
13
13
  g.fallbacks[:pg_active_record] = :active_record
14
14
  end
15
15
 
16
+ # overrides = "#{PgEngine::Engine.root}/app/overrides"
17
+
18
+ # config.to_prepare do
19
+ # Dir.glob("#{overrides}/**/*.rb").each do |override|
20
+ # load override
21
+ # end
22
+ # end
23
+
16
24
  initializer 'pg_engine.set_exceptions_app' do
17
25
  Rails.application.config.exceptions_app = Rails.application.routes
18
26
  end
@@ -1,5 +1,4 @@
1
1
  require 'rails_helper'
2
- # rubocop:disable RSpec/ExampleLength
3
2
  describe PgEngine::PgRailsHelper do
4
3
  describe '#img_placeholder' do
5
4
  it 'si no es fade_in' do
@@ -35,4 +34,3 @@ describe PgEngine::PgRailsHelper do
35
34
  end
36
35
  end
37
36
  end
38
- # rubocop:enable RSpec/ExampleLength
@@ -0,0 +1,56 @@
1
+ require 'rails_helper'
2
+
3
+ describe 'Eventos' do
4
+ let(:user) { create :user, :developer }
5
+
6
+ before do
7
+ create :user # no dev
8
+ sign_in user
9
+ SimpleUserNotifier.with(message: 'New post').deliver(User.all, enqueue_job: false)
10
+ end
11
+
12
+ it 'renders the event index' do
13
+ get '/a/eventos'
14
+
15
+ expect(response.body).to include 'New post'
16
+ end
17
+
18
+ describe 'posting events' do
19
+ subject do
20
+ get '/a/eventos/new'
21
+ expect(response.body).to include 'Tooltip'
22
+ post '/a/eventos', params: {
23
+ evento: {
24
+ type: 'SimpleUserNotifier',
25
+ message: 'hola',
26
+ target:
27
+ }
28
+ }
29
+ end
30
+
31
+ context 'cuando se manda a los devs' do
32
+ let(:target) { 'devs' }
33
+
34
+ it do
35
+ expect { subject }.to change(Noticed::Notification, :count).by(1)
36
+ end
37
+ end
38
+
39
+ context 'cuando se manda a todos' do
40
+ let(:target) { 'todos' }
41
+
42
+ it do
43
+ expect { subject }.to change(Noticed::Notification, :count).by(2)
44
+ end
45
+ end
46
+
47
+ context 'cuando hay error' do
48
+ let(:target) { 'bla' }
49
+
50
+ it do
51
+ subject
52
+ expect(response).to have_http_status(:unprocessable_entity)
53
+ end
54
+ end
55
+ end
56
+ end
@@ -29,6 +29,9 @@ describe 'Notifications' do
29
29
  expect(page).to have_css('.notifications-unseen-mark')
30
30
  find('.bi-bell-fill').click
31
31
  expect(page).to have_no_css('.notifications-unseen-mark', wait: 5)
32
+ expect(page).to have_no_css('.unseen')
33
+ click_on 'Marcar como no leído'
34
+ expect(page).to have_css('.unseen')
32
35
  end
33
36
  end
34
37
 
@@ -3,3 +3,6 @@ import './turbo_rails'
3
3
  import './rollbar'
4
4
  import './bootstrap'
5
5
  import './tooltips'
6
+
7
+ import 'trix'
8
+ import '@rails/actiontext'
@@ -18,15 +18,33 @@ export default class extends Controller {
18
18
  })
19
19
  }
20
20
 
21
+ async markAsUnseen (e) {
22
+ const notification = e.target.closest('.notification')
23
+ notification.dataset.markedAsUnseen = true
24
+ const id = notification.dataset.id
25
+ const response = await post('/u/notifications/mark_as_unseen',
26
+ { query: { id } })
27
+
28
+ if (response.ok) {
29
+ notification.classList.add('unseen')
30
+ } else {
31
+ const text = await response.text
32
+ Rollbar.error('Error marking as unseen: ', text)
33
+ }
34
+ }
35
+
21
36
  async markAsSeen () {
22
37
  const ids = []
23
- document.querySelectorAll('.notification')
24
- .forEach((e) => { ids.push(e.dataset.id) })
38
+ const targets = Array.from(document.querySelectorAll('.notification')).filter((e) => {
39
+ return !e.dataset.markedAsUnseen
40
+ })
41
+ targets.forEach((e) => { ids.push(e.dataset.id) })
42
+
25
43
  const response = await post('/u/notifications/mark_as_seen',
26
44
  { query: { ids }, responseKind: 'turbo-stream' })
27
45
 
28
46
  if (response.ok) {
29
- document.querySelectorAll('.notification.unseen').forEach(
47
+ targets.forEach(
30
48
  (notif) => {
31
49
  notif.classList.remove('unseen')
32
50
  }
@@ -10,15 +10,8 @@
10
10
  <% @navbar.extensiones.each do |extension| %>
11
11
  <%= extension %>
12
12
  <% end %>
13
- <% if Current.user.present? %>
14
- <button type="button" class="btn btn-primary btn-sm position-relative"
15
- data-bs-toggle="collapse" data-bs-target="#notifications-collapse">
16
- <i class="bi-bell-fill fs-5 text-light"></i>
17
- <% if @unseen_notifications %>
18
- <span class="position-absolute p-1 xbg-danger bg-gradient rounded-circle start-50 notifications-unseen-mark">
19
- </span>
20
- <% end %>
21
- </button>
13
+ <% if Current.user.present? && @notifications_bell.present? %>
14
+ <%= render @notifications_bell %>
22
15
  <% end %>
23
16
  <%= @navbar.logo if @navbar.logo.present? %>
24
17
  <button class="btn btn-outline-light d-inline-block d-<%= @breakpoint_navbar_expand %>-none"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgRails
4
- VERSION = '7.0.8-alpha.103'
4
+ VERSION = '7.0.8-alpha.105'
5
5
  end
@@ -37,3 +37,5 @@ $alert-margin-bottom: 0.5rem;
37
37
  @import './../../pg_layout/app/assets/stylesheets/animations';
38
38
 
39
39
  @import 'bootstrap-icons/font/bootstrap-icons';
40
+
41
+ @import 'trix/dist/trix';
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.8.pre.alpha.103
4
+ version: 7.0.8.pre.alpha.105
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martín Rosso
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-19 00:00:00.000000000 Z
11
+ date: 2024-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -981,6 +981,7 @@ files:
981
981
  - pg_engine/app/assets/images/plantita-sm.png
982
982
  - pg_engine/app/assets/images/plantita.png
983
983
  - pg_engine/app/assets/javascripts/active_admin.js
984
+ - pg_engine/app/assets/stylesheets/actiontext.css
984
985
  - pg_engine/app/assets/stylesheets/active_admin.scss
985
986
  - pg_engine/app/assets/stylesheets/notifications.scss
986
987
  - pg_engine/app/assets/stylesheets/pg_rails_b5.scss
@@ -991,10 +992,12 @@ files:
991
992
  - pg_engine/app/components/flash_container_component.rb
992
993
  - pg_engine/app/components/internal_error_component.rb
993
994
  - pg_engine/app/components/notification_component.rb
995
+ - pg_engine/app/components/notifications_bell_component.rb
994
996
  - pg_engine/app/components/page_not_found_component.rb
995
997
  - pg_engine/app/controllers/admin/accounts_controller.rb
996
998
  - pg_engine/app/controllers/admin/email_logs_controller.rb
997
999
  - pg_engine/app/controllers/admin/emails_controller.rb
1000
+ - pg_engine/app/controllers/admin/eventos_controller.rb
998
1001
  - pg_engine/app/controllers/admin/user_accounts_controller.rb
999
1002
  - pg_engine/app/controllers/admin/users_controller.rb
1000
1003
  - pg_engine/app/controllers/concerns/pg_engine/resource.rb
@@ -1034,6 +1037,7 @@ files:
1034
1037
  - pg_engine/app/models/current.rb
1035
1038
  - pg_engine/app/models/email.rb
1036
1039
  - pg_engine/app/models/email_log.rb
1040
+ - pg_engine/app/models/evento.rb
1037
1041
  - pg_engine/app/models/mensaje_contacto.rb
1038
1042
  - pg_engine/app/models/pg_engine/base_record.rb
1039
1043
  - pg_engine/app/models/user.rb
@@ -1048,6 +1052,7 @@ files:
1048
1052
  - pg_engine/app/policies/user_account_policy.rb
1049
1053
  - pg_engine/app/policies/user_policy.rb
1050
1054
  - pg_engine/app/policies/user_registration_policy.rb
1055
+ - pg_engine/app/views/active_storage/blobs/_blob.html.erb
1051
1056
  - pg_engine/app/views/admin/accounts/_account.html.slim
1052
1057
  - pg_engine/app/views/admin/accounts/_form.html.slim
1053
1058
  - pg_engine/app/views/admin/accounts/edit.html.slim
@@ -1059,6 +1064,8 @@ files:
1059
1064
  - pg_engine/app/views/admin/emails/_form.html.slim
1060
1065
  - pg_engine/app/views/admin/emails/_send.html.slim
1061
1066
  - pg_engine/app/views/admin/emails/show.html.slim
1067
+ - pg_engine/app/views/admin/eventos/index.html.slim
1068
+ - pg_engine/app/views/admin/eventos/new.html.slim
1062
1069
  - pg_engine/app/views/admin/user_accounts/_form.html.slim
1063
1070
  - pg_engine/app/views/admin/user_accounts/_user_account.html.slim
1064
1071
  - pg_engine/app/views/admin/user_accounts/edit.html.slim
@@ -1069,6 +1076,7 @@ files:
1069
1076
  - pg_engine/app/views/admin/users/edit.html.slim
1070
1077
  - pg_engine/app/views/admin/users/new.html.slim
1071
1078
  - pg_engine/app/views/admin/users/show.html.slim
1079
+ - pg_engine/app/views/layouts/action_text/contents/_content.html.erb
1072
1080
  - pg_engine/app/views/pg_engine/admin_mailer/admin_mail.html.slim
1073
1081
  - pg_engine/app/views/pg_engine/base/download.xlsx.axlsx
1074
1082
  - pg_engine/app/views/pg_engine/base/edit.html.slim
@@ -1103,6 +1111,7 @@ files:
1103
1111
  - pg_engine/db/migrate/20240523183651_create_email_logs.rb
1104
1112
  - pg_engine/db/migrate/20240611000219_create_noticed_tables.noticed.rb
1105
1113
  - pg_engine/db/migrate/20240611000220_add_notifications_count_to_noticed_event.noticed.rb
1114
+ - pg_engine/db/migrate/20240614130246_create_action_text_tables.action_text.rb
1106
1115
  - pg_engine/db/seeds.rb
1107
1116
  - pg_engine/lib/pg_engine.rb
1108
1117
  - pg_engine/lib/pg_engine/configuracion.rb
@@ -1160,6 +1169,7 @@ files:
1160
1169
  - pg_engine/spec/models/user_account_spec.rb
1161
1170
  - pg_engine/spec/models/user_spec.rb
1162
1171
  - pg_engine/spec/pg_engine/pdf_preview_generator_spec.rb
1172
+ - pg_engine/spec/requests/admin/eventos_spec.rb
1163
1173
  - pg_engine/spec/requests/base_controller_requests_spec.rb
1164
1174
  - pg_engine/spec/system/alerts_spec.rb
1165
1175
  - pg_engine/spec/system/destroy_spec.rb