Corrige 3 erros de runtime + filtro de faixa de datas no dashboard

Erros corrigidos (reportados em prints):
- Logout dava "No route matches [GET] /auth/logout": link usava method:
  :delete (rails-ujs), que o Turbo ignora -> agora data-turbo-method
- /admin/usuarios estourava NoMethodError 'admin_ou_gerente?'/'admin?' na
  UserPolicy -> adicionados helpers que delegam para o User
- Nova consolidação estourava NoMethodError 'new?' na ConsolidacaoPolicy ->
  ApplicationPolicy passa a definir new? (= create?) e edit? (= update?)

Dashboard:
- Substitui a navegação por mês por um filtro de calendário com faixa de
  datas (Flatpickr, range mode) que auto-submete inicio/fim
- Controller passa a consultar por período (Entrega.no_periodo) em vez de
  do_mes; gráfico diário limitado a ~1 trimestre

Specs: UserPolicy + new? na ConsolidacaoPolicy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-15 22:27:57 -03:00
parent 732c6daae8
commit bb1dead9fd
7 changed files with 151 additions and 62 deletions

View File

@@ -10,7 +10,9 @@ class ApplicationPolicy
def index? = user.pode_consolidar? || user.admin?
def show? = user.pode_consolidar? || user.admin?
def create? = user.pode_consolidar? || user.admin?
def new? = create?
def update? = user.pode_consolidar? || user.admin?
def edit? = update?
def destroy? = user.admin?
class Scope

View File

@@ -32,6 +32,19 @@ class UserPolicy < ApplicationPolicy
admin?
end
private
# Helpers de papel usados pelas permissões acima (delegam para o User)
def admin?
user.admin?
end
def admin_ou_gerente?
user.admin? || user.gerente?
end
public
class Scope < Scope
def resolve
if user.admin?