pg_rails 7.0.8.pre.alpha.9 → 7.0.8.pre.alpha.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/pg_associable/app/javascript/modal_controller.js +1 -1
  3. data/pg_engine/app/controllers/admin/users_controller.rb +16 -4
  4. data/pg_engine/app/controllers/pg_engine/base_controller.rb +2 -2
  5. data/pg_engine/app/controllers/pg_engine/devise_controller.rb +16 -3
  6. data/pg_engine/app/helpers/pg_engine/print_helper.rb +2 -2
  7. data/pg_engine/app/lib/pg_form_builder.rb +21 -0
  8. data/pg_engine/app/models/pg_engine/base_record.rb +4 -1
  9. data/pg_engine/app/models/user.rb +20 -5
  10. data/pg_engine/app/views/pg_engine/base/edit.html.slim +5 -0
  11. data/pg_engine/app/views/pg_engine/base/index.html.slim +1 -1
  12. data/pg_engine/app/views/pg_engine/base/new.html.slim +5 -0
  13. data/pg_engine/config/initializers/simple_form_monkey_patch.rb +12 -0
  14. data/pg_engine/config/locales/es.yml +4 -0
  15. data/pg_engine/config/routes.rb +1 -0
  16. data/pg_engine/config/simple_form/simple_form_bootstrap.rb +2 -4
  17. data/pg_engine/db/migrate/20240305200900_nombre_user.rb +6 -0
  18. data/pg_engine/db/seeds.rb +1 -1
  19. data/pg_engine/lib/tasks/auto_anotar_modelos.rake +2 -1
  20. data/pg_engine/spec/controllers/devise/registrations_controller_spec.rb +33 -0
  21. data/pg_engine/spec/controllers/devise/sessions_controller_spec.rb +18 -0
  22. data/pg_engine/spec/factories/users.rb +2 -0
  23. data/pg_engine/spec/lib/pg_form_builder_spec.rb +14 -0
  24. data/pg_engine/spec/models/pg_engine/base_record_spec.rb +5 -3
  25. data/pg_layout/app/lib/navbar.rb +13 -3
  26. data/pg_layout/app/views/devise/registrations/edit.html.erb +2 -0
  27. data/pg_layout/app/views/devise/registrations/new.html.erb +3 -2
  28. data/pg_layout/app/views/devise/sessions/new.html.erb +11 -0
  29. data/pg_layout/app/views/pg_layout/_flash.html.slim +2 -1
  30. data/pg_layout/app/views/pg_layout/_navbar.html.erb +13 -2
  31. data/pg_rails/lib/version.rb +1 -1
  32. data/pg_scaffold/lib/generators/pg_slim/pg_slim_generator.rb +2 -2
  33. metadata +8 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55efac7692668130210916f2d27c9d5f649660dc6a7341ea615fcfe66b263909
4
- data.tar.gz: 1827e613adbfbaed350d8d84f69131c302a14ef9b7f7cef0c2fc030171b13261
3
+ metadata.gz: fd8e2d2862617656464a77ffbb81da7f6a4446d013905748392a062e8f3dab7c
4
+ data.tar.gz: '082f99be749adde90a68693ebfe00ee234c6a83429c18c0f02b9aff6b831ae53'
5
5
  SHA512:
6
- metadata.gz: ca7acd8b6732ba7e5fb832b443a32d74d12490d013d1c0a72ed7bfbd499ce959f458815c22a980f9b94f81cdbddfa4e024e4b8de5533ab0f637ec7ed6c1de735
7
- data.tar.gz: 4335852cf4c82da4e90504ed5872472f5612378fb92b674bb3da4185c26fb040e81b55522bcf67dfe71db81c36fec146c112f4ff14bbc02832eb01dc481a03ee
6
+ metadata.gz: d34c9e84d88801ea1b973b275ab94923fb0941bdf9e204fa2a3d76321f9bec079427e3df7d9fae905ef31e3144cda6d92c061ca510f108c66084ec68258de446
7
+ data.tar.gz: 18fed1f31567205e9ad8bff9e455f9c5e48bf0be4966e2ba9c08fca716995720934e0b8f0011ab1a2bcf7cd39edbd92fb708b296d926849cae2c815c5a1a4352
@@ -23,7 +23,7 @@ export default class extends Controller {
23
23
  }
24
24
 
25
25
  disconnect (e) {
26
+ this.modalPuntero.hide()
26
27
  this.modalPuntero.dispose()
27
- document.querySelectorAll('.modal-backdrop').forEach(e => { e.remove() })
28
28
  }
29
29
  }
@@ -26,22 +26,34 @@ module Admin
26
26
  pg_respond_update
27
27
  end
28
28
 
29
+ skip_before_action :authenticate_user!, only: [:login_as]
30
+
31
+ # :nocov:
32
+ def login_as
33
+ if current_user&.developer? || Rails.env.development?
34
+ usuario = User.find(params[:id])
35
+ sign_in(:user, usuario)
36
+ end
37
+ redirect_to '/'
38
+ end
39
+ # :nocov:
40
+
29
41
  private
30
42
 
31
43
  def atributos_permitidos
32
- %i[email password developer]
44
+ %i[email nombre apellido password developer]
33
45
  end
34
46
 
35
47
  def atributos_para_buscar
36
- %i[email developer]
48
+ %i[email nombre apellido developer]
37
49
  end
38
50
 
39
51
  def atributos_para_listar
40
- %i[email developer]
52
+ %i[email nombre apellido developer]
41
53
  end
42
54
 
43
55
  def atributos_para_mostrar
44
- %i[email developer]
56
+ %i[email nombre apellido developer]
45
57
  end
46
58
  end
47
59
  end
@@ -74,8 +74,8 @@ module PgEngine
74
74
  end
75
75
  end
76
76
 
77
- def go_back(message)
78
- flash[:alert] = message
77
+ def go_back(message = nil, type: :alert)
78
+ flash[type] = message if message.present?
79
79
  redirect_back fallback_location: root_path
80
80
  end
81
81
  end
@@ -1,9 +1,22 @@
1
1
  module PgEngine
2
2
  class DeviseController < ApplicationController
3
- layout 'pg_layout/devise'
3
+ before_action :configure_permitted_parameters
4
4
 
5
- before_action do
6
- render(layout: 'pg_layout/layout') if controller_name == 'registrations' && action_name == 'edit'
5
+ layout :layout_by_resource
6
+
7
+ def layout_by_resource
8
+ if controller_name == 'registrations' && action_name.in?(%w[edit update])
9
+ 'pg_layout/layout'
10
+ else
11
+ 'pg_layout/devise'
12
+ end
13
+ end
14
+
15
+ protected
16
+
17
+ def configure_permitted_parameters
18
+ devise_parameter_sanitizer.permit(:sign_up, keys: %i[nombre apellido])
19
+ devise_parameter_sanitizer.permit(:account_update, keys: %i[nombre apellido])
7
20
  end
8
21
  end
9
22
  end
@@ -98,10 +98,10 @@ module PgEngine
98
98
  'No'
99
99
  end
100
100
 
101
- def print_currency(number, simbolo: '$')
101
+ def print_currency(number, simbolo: '$', precision: nil)
102
102
  return if number.blank?
103
103
 
104
- precision = (number % 1).positive? ? 2 : 0
104
+ precision ||= (number % 1).positive? ? 2 : 0
105
105
  "#{simbolo} #{number_with_precision(number, delimiter: '.', separator: ',',
106
106
  precision:)}"
107
107
  end
@@ -4,6 +4,27 @@ class PgFormBuilder < SimpleForm::FormBuilder
4
4
  include PgAssociable::FormBuilderMethods
5
5
  include PgEngine::ErrorHelper
6
6
 
7
+ def default_prefix(attribute_name)
8
+ at_name = object.class.human_attribute_name(attribute_name.to_s).downcase
9
+ "#{articulo(attribute_name)} #{at_name}"
10
+ end
11
+
12
+ def articulo(attribute_name)
13
+ gender = I18n.t("gender.#{attribute_name}", default: nil)
14
+ if gender.present?
15
+ gender == 'f' ? 'La' : 'El'
16
+ else
17
+ at_name = object.class.human_attribute_name(attribute_name.to_s).downcase
18
+ at_name.ends_with?('a') ? 'La' : 'El'
19
+ end
20
+ end
21
+
22
+ def input(attribute_name, options = {}, &)
23
+ options[:error_prefix] ||= default_prefix(attribute_name)
24
+
25
+ super(attribute_name, options, &)
26
+ end
27
+
7
28
  def mensajes_de_error
8
29
  base_errors = object.errors[:base]
9
30
  base_message = (base_errors.map(&:to_s).join('<br>') if base_errors.present?)
@@ -34,9 +34,12 @@ module PgEngine
34
34
  end
35
35
 
36
36
  def self.human_attribute_name(attribute, options = {})
37
- # Si es un enumerized
38
37
  if attribute.to_s.ends_with?('_text')
38
+ # Si es un enumerized
39
39
  super(attribute[0..-6], options)
40
+ elsif attribute.to_s.ends_with?('_f')
41
+ # Si es un decorated method
42
+ super(attribute[0..-3], options)
40
43
  else
41
44
  super(attribute, options)
42
45
  end
@@ -36,10 +36,9 @@ class User < ApplicationRecord
36
36
  # ApplicationRecord should be defined on Application
37
37
 
38
38
  # Include default devise modules. Others available are:
39
- # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
40
39
  devise :database_authenticatable, :registerable,
41
- :recoverable, :rememberable, :validatable,
42
- :confirmable, :lockable, :timeoutable, :trackable
40
+ :recoverable, :rememberable,
41
+ :lockable, :timeoutable, :trackable, :confirmable
43
42
 
44
43
  audited
45
44
  include Discard::Model
@@ -47,12 +46,28 @@ class User < ApplicationRecord
47
46
  has_many :user_accounts
48
47
  has_many :accounts, through: :user_accounts
49
48
 
50
- validates :email, presence: true
49
+ validates :nombre, :apellido, presence: true
50
+
51
+ validates_presence_of :email
52
+ validates_uniqueness_of :email, message: 'ya pertenece a un usuario'
53
+ validates_format_of :email, with: /\A[^@\s]+@[^@\s]+\z/
54
+ validates_presence_of :password, if: :password_required?
55
+ validates_confirmation_of :password, if: :password_required?, message: 'Las contraseñas no coinciden'
56
+ validates_length_of :password, if: :password_required?, within: 6..128,
57
+ message: 'es demasiado corta (6 caracteres mínimo)'
58
+
59
+ def password_required?
60
+ !persisted? || !password.nil? || !password_confirmation.nil?
61
+ end
51
62
 
52
63
  scope :query, ->(param) { where('email ILIKE ?', "%#{param}%") }
53
64
 
54
65
  def to_s
55
- email
66
+ nombre_completo
67
+ end
68
+
69
+ def nombre_completo
70
+ "#{nombre} #{apellido}"
56
71
  end
57
72
 
58
73
  def current_account
@@ -0,0 +1,5 @@
1
+ - content_for :title do
2
+ | Modificar #{@clase_modelo.nombre_singular.downcase}
3
+
4
+ .p-3
5
+ = render 'form'
@@ -39,7 +39,7 @@ div
39
39
  - object = object.decorate
40
40
  tr id="#{dom_id(object)}"
41
41
  - atributos_para_listar.each do |att|
42
- td = object.send(att)
42
+ td.text-nowrap = object.send(att)
43
43
  td.text-nowrap.text-end.ps-5
44
44
  = object.show_link
45
45
  = object.edit_link
@@ -0,0 +1,5 @@
1
+ - content_for :title do
2
+ | Crear #{@clase_modelo.nombre_singular.downcase}
3
+
4
+ .p-3
5
+ = render 'form'
@@ -0,0 +1,12 @@
1
+ module SimpleForm
2
+ module Components
3
+ module Errors
4
+ def error_text
5
+ text = has_custom_error? ? options[:error] : errors.reject(&:empty?).send(error_method)
6
+ return if text.blank?
7
+
8
+ "#{html_escape(options[:error_prefix])} #{html_escape(text)}".lstrip.html_safe
9
+ end
10
+ end
11
+ end
12
+ end
@@ -40,3 +40,7 @@ es:
40
40
  # prompts:
41
41
  # defaults:
42
42
  # age: 'Select your age'
43
+ errors:
44
+ messages:
45
+ blank: ''
46
+ empty: ''
@@ -6,6 +6,7 @@ Rails.application.routes.draw do
6
6
  pg_resource(:users)
7
7
  pg_resource(:accounts)
8
8
  pg_resource(:user_accounts)
9
+ get 'login_as', to: 'users#login_as'
9
10
  end
10
11
  ActiveAdmin.routes(self)
11
12
  end
@@ -56,8 +56,7 @@ SimpleForm.setup do |config|
56
56
  b.optional :readonly
57
57
  b.use :label, class: 'form-label'
58
58
  b.use :input, class: 'form-control', error_class: 'is-invalid'
59
- b.use :full_error, wrap_with: { class: 'invalid-feedback' }
60
- b.optional :error, wrap_with: { class: 'invalid-feedback' }
59
+ b.use :error, wrap_with: { class: 'invalid-feedback' }
61
60
  b.use :hint, wrap_with: { class: 'form-text' }
62
61
  end
63
62
 
@@ -66,8 +65,7 @@ SimpleForm.setup do |config|
66
65
  b.optional :readonly
67
66
  b.use :label, class: 'form-label'
68
67
  b.use :input, class: 'form-select', error_class: 'is-invalid'
69
- b.use :full_error, wrap_with: { class: 'invalid-feedback' }
70
- b.optional :error, wrap_with: { class: 'invalid-feedback' }
68
+ b.use :error, wrap_with: { class: 'invalid-feedback' }
71
69
  b.use :hint, wrap_with: { class: 'form-text' }
72
70
  end
73
71
 
@@ -0,0 +1,6 @@
1
+ class NombreUser < ActiveRecord::Migration[7.1]
2
+ def change
3
+ add_column :users, :nombre, :string, null: false
4
+ add_column :users, :apellido, :string, null: false
5
+ end
6
+ end
@@ -3,6 +3,6 @@ DatabaseCleaner.clean_with(:truncation, except: %w(ar_internal_metadata users ac
3
3
  MAIL = 'mrosso10@gmail.com'
4
4
 
5
5
  unless User.where(email: MAIL).exists?
6
- FactoryBot.create :user, email: MAIL, password: 'admin123',
6
+ FactoryBot.create :user, email: MAIL, nombre: 'Martín', apellido: 'Rosso', password: 'admin123',
7
7
  confirmed_at: Time.now, developer: true
8
8
  end
@@ -21,7 +21,8 @@ if Rails.env.development?
21
21
  'show_complete_foreign_keys' => 'false',
22
22
  'show_indexes' => 'false',
23
23
  'simple_indexes' => 'true',
24
- 'model_dir' => 'app/models',
24
+ 'model_dir' => ['app/models', 'app/overrides'],
25
+ # 'model_dir' => 'app/models',
25
26
  'root_dir' => '',
26
27
  'include_version' => 'false',
27
28
  'require' => '',
@@ -0,0 +1,33 @@
1
+ require 'rails_helper'
2
+
3
+ describe Devise::RegistrationsController do
4
+ before do
5
+ # rubocop:disable RSpec/InstanceVariable
6
+ @request.env['devise.mapping'] = Devise.mappings[:user]
7
+ # rubocop:enable RSpec/InstanceVariable
8
+ end
9
+
10
+ describe '#new' do
11
+ subject { get :new }
12
+
13
+ it do
14
+ subject
15
+ expect(response).to have_http_status(:ok)
16
+ end
17
+ end
18
+
19
+ describe '#edit' do
20
+ subject { get :edit }
21
+
22
+ let(:logger_user) { create :user, :admin }
23
+
24
+ before do
25
+ sign_in logger_user
26
+ end
27
+
28
+ it do
29
+ subject
30
+ expect(response).to have_http_status(:ok)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,18 @@
1
+ require 'rails_helper'
2
+
3
+ describe Devise::SessionsController do
4
+ before do
5
+ # rubocop:disable RSpec/InstanceVariable
6
+ @request.env['devise.mapping'] = Devise.mappings[:user]
7
+ # rubocop:enable RSpec/InstanceVariable
8
+ end
9
+
10
+ describe '#new' do
11
+ subject { get :new }
12
+
13
+ it do
14
+ subject
15
+ expect(response).to have_http_status(:ok)
16
+ end
17
+ end
18
+ end
@@ -37,6 +37,8 @@
37
37
 
38
38
  FactoryBot.define do
39
39
  factory :orphan_user, class: 'User' do
40
+ nombre { Faker::Name.name }
41
+ apellido { Faker::Name.name }
40
42
  email { Faker::Internet.email }
41
43
  password { "password#{rand(99_999)}" }
42
44
  confirmed_at { Faker::Date.backward }
@@ -29,4 +29,18 @@ describe PgFormBuilder do
29
29
  it { expect(subject).to eq 'Por favor, revisá los campos obligatorios:' }
30
30
  end
31
31
  end
32
+
33
+ describe '#default_prefix' do
34
+ context 'cuando el atributo es masculino' do
35
+ subject { instancia.default_prefix(:nombre) }
36
+
37
+ it { expect(subject).to eq 'El nombre' }
38
+ end
39
+
40
+ context 'cuando el atributo es femenino' do
41
+ subject { instancia.default_prefix(:fecha) }
42
+
43
+ it { expect(subject).to eq 'La fecha' }
44
+ end
45
+ end
32
46
  end
@@ -2,12 +2,14 @@ require 'rails_helper'
2
2
 
3
3
  describe PgEngine::BaseRecord do
4
4
  describe '#human_attribute_name' do
5
- subject do
6
- described_class.human_attribute_name('bla_text')
5
+ it do
6
+ obj = described_class.human_attribute_name('bla_text')
7
+ expect(obj).to eq described_class.human_attribute_name('bla')
7
8
  end
8
9
 
9
10
  it do
10
- expect(subject).to eq described_class.human_attribute_name('bla')
11
+ obj = described_class.human_attribute_name('bla_f')
12
+ expect(obj).to eq described_class.human_attribute_name('bla')
11
13
  end
12
14
  end
13
15
  end
@@ -5,15 +5,25 @@ class Navbar
5
5
  @user = user
6
6
  end
7
7
 
8
+ def topbar
9
+ bar('topbar')
10
+ end
11
+
8
12
  def sidebar
13
+ bar('sidebar')
14
+ end
15
+
16
+ def bar(key)
9
17
  yaml_data = YAML.load_file("#{Rails.application.root}/config/pg_rails.yml")
10
- sidebar = ActiveSupport::HashWithIndifferentAccess.new(yaml_data)['sidebar']
18
+ bar_data = ActiveSupport::HashWithIndifferentAccess.new(yaml_data)[key]
19
+ return [] if bar_data.blank?
20
+
11
21
  # rubocop:disable Security/Eval
12
- sidebar.map do |item|
22
+ bar_data.map do |item|
13
23
  {
14
24
  title: item['name'],
15
25
  path: eval(item['path']),
16
- show: true
26
+ show: item['policy'] ? eval(item['policy']) : true
17
27
  }
18
28
  end
19
29
  # rubocop:enable Security/Eval
@@ -5,6 +5,8 @@
5
5
 
6
6
  <div class="form-inputs">
7
7
  <%= f.input :email, required: true, autofocus: true %>
8
+ <%= f.input :nombre, required: true %>
9
+ <%= f.input :apellido, required: true %>
8
10
 
9
11
  <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
10
12
  <p><%= t(".currently_waiting_confirmation_for_email", email: resource.unconfirmed_email) %></p>
@@ -1,12 +1,13 @@
1
1
  <h2><%= t(".sign_up") %></h2>
2
2
 
3
3
  <%= pg_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
4
- <%= f.error_notification %>
4
+ <%= f.mensajes_de_error %>
5
5
 
6
6
  <div class="form-inputs">
7
+ <%= f.input :nombre, required: true, autofocus: true %>
8
+ <%= f.input :apellido, required: true %>
7
9
  <%= f.input :email,
8
10
  required: true,
9
- autofocus: true ,
10
11
  input_html: { autocomplete: "email" }%>
11
12
  <%= f.input :password,
12
13
  required: true,
@@ -18,3 +18,14 @@
18
18
  <% end %>
19
19
 
20
20
  <%= render "devise/shared/links" %>
21
+
22
+ <% if Rails.env.development? %>
23
+ <br>
24
+ <br>
25
+ <br>
26
+ <ul>
27
+ <% User.all.each do |user| %>
28
+ <li><%= link_to user, admin_login_as_path(id: user.id) %></li>
29
+ <% end %>
30
+ </ul>
31
+ <% end %>
@@ -3,8 +3,9 @@
3
3
  - flash_to_show = flash.select { |flash_message| flash_message[0].to_sym.in? ApplicationController._flash_types }
4
4
  / slim-lint:enable LineLength
5
5
 
6
+ / TODO: data-turbo-temporary, setear al activar toast?
6
7
  - flash_to_show.each do |flash_type, message|
7
8
  .toast(class="bg-#{flash_type_to_class(flash_type)}-subtle" role="alert" data-bs-autohide="true"
8
- data-turbo-temporary="true" aria-live="assertive" aria-atomic="true")
9
+ data-xturbo-temporary="true" aria-live="assertive" aria-atomic="true")
9
10
  .toast-body
10
11
  = message
@@ -9,16 +9,25 @@
9
9
  <!-- <span class="navbar-toggler-icon"></span> -->
10
10
  </button>
11
11
  <div class="collapse navbar-collapse" id="navbarSupportedContent">
12
- <ul class="navbar-nav me-auto mb-2 mb-lg-0">
12
+ <ul class="navbar-nav xme-auto mb-2 mb-lg-0">
13
13
  <% if user_signed_in? %>
14
14
  <li class="nav-item dropdown">
15
15
  <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
16
- <%= current_user.email %>
16
+ <%= current_user %>
17
17
  </a>
18
18
  <ul class="dropdown-menu">
19
19
  <li>
20
20
  <%= link_to "Mi perfil", edit_user_registration_path, class: 'dropdown-item' %>
21
21
  </li>
22
+ <% @navbar.topbar.each do |entry| %>
23
+ <% next if @navbar.hide_entry?(entry) %>
24
+ <li>
25
+ <a class="dropdown-item" href="<%= entry[:path] %>">
26
+ <%= entry[:title] %>
27
+ </a>
28
+ </li>
29
+ <% end %>
30
+
22
31
  <li>
23
32
  <%= link_to "Cerrar sesión", destroy_user_session_path, data: { 'turbo-method': 'delete' }, class: 'dropdown-item' %>
24
33
  </li>
@@ -40,6 +49,8 @@
40
49
  </li>
41
50
  <% end %>
42
51
  </ul>
52
+ <%= content_for :navbar_ext %>
53
+
43
54
  </div>
44
55
  </div>
45
56
  </nav>
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgRails
4
- VERSION = '7.0.8-alpha.9'
4
+ VERSION = '7.0.8-alpha.11'
5
5
  end
@@ -23,9 +23,9 @@ class PgSlimGenerator < Slim::Generators::ScaffoldGenerator
23
23
 
24
24
  def available_views
25
25
  if options[:index_file]
26
- %w[index edit show new _form]
26
+ %w[index show _form]
27
27
  else
28
- %w[edit show new _form]
28
+ %w[show _form]
29
29
  end
30
30
  end
31
31
  end
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.9
4
+ version: 7.0.8.pre.alpha.11
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-03-01 00:00:00.000000000 Z
11
+ date: 2024-03-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Rails goodies.
14
14
  email:
@@ -84,9 +84,12 @@ files:
84
84
  - pg_engine/app/views/admin/users/new.html.slim
85
85
  - pg_engine/app/views/admin/users/show.html.slim
86
86
  - pg_engine/app/views/pg_engine/base/download.xlsx.axlsx
87
+ - pg_engine/app/views/pg_engine/base/edit.html.slim
87
88
  - pg_engine/app/views/pg_engine/base/index.html.slim
89
+ - pg_engine/app/views/pg_engine/base/new.html.slim
88
90
  - pg_engine/config/initializers/active_admin.rb
89
91
  - pg_engine/config/initializers/devise.rb
92
+ - pg_engine/config/initializers/simple_form_monkey_patch.rb
90
93
  - pg_engine/config/locales/devise.en.yml
91
94
  - pg_engine/config/locales/es.yml
92
95
  - pg_engine/config/routes.rb
@@ -99,6 +102,7 @@ files:
99
102
  - pg_engine/db/migrate/20240211152951_create_accounts.rb
100
103
  - pg_engine/db/migrate/20240211153049_create_user_accounts.rb
101
104
  - pg_engine/db/migrate/20240222115722_create_active_storage_tables.active_storage.rb
105
+ - pg_engine/db/migrate/20240305200900_nombre_user.rb
102
106
  - pg_engine/db/seeds.rb
103
107
  - pg_engine/lib/pg_engine.rb
104
108
  - pg_engine/lib/pg_engine/configuracion.rb
@@ -112,6 +116,8 @@ files:
112
116
  - pg_engine/spec/controllers/admin/user_accounts_controller_spec.rb
113
117
  - pg_engine/spec/controllers/admin/users_controller_spec.rb
114
118
  - pg_engine/spec/controllers/concerns/pg_engine/error_helper_spec.rb
119
+ - pg_engine/spec/controllers/devise/registrations_controller_spec.rb
120
+ - pg_engine/spec/controllers/devise/sessions_controller_spec.rb
115
121
  - pg_engine/spec/factories/accounts.rb
116
122
  - pg_engine/spec/factories/user_accounts.rb
117
123
  - pg_engine/spec/factories/users.rb