Commit 7f464b5d authored by AlanPCS's avatar AlanPCS

Translate controllers Citizen, Professional, Situation, Shift, Blocking,...

Translate controllers Citizen, Professional, Situation, Shift, Blocking, Occupation, Occupation, Schedule, Professionals_Service_Place, Service_places_Service_types and Report
Signed-off-by: 's avatarAlanPCS <apcs11@inf.ufpr.br>
parent 6dca9961
......@@ -80,10 +80,10 @@ $(document).ready(->
$('select#agendamentos_orgao_id_eq').attr('disabled', 'disabled')
.html('<option value="">Carregando Locais de Atendimento...</option>')
# Obtemos os profissionais ligados ao Local de Atendimento
# Obtemos os professionais ligados ao Local de Atendimento
# do método Agendamentos#local_atendimento via AJAX e que retorna
# JSON como formatação de resposta.
$.getJSON(app_root_url + 'agendamentos/' + parseInt(atendimento_id) + '/local_atendimento')
$.getJSON(app_root_url + 'schedules/' + parseInt(atendimento_id) + '/local_atendimento')
.done((dados) ->
locais = ['<option value="">Todos</option>']
$.each(dados, (i, local) ->
......@@ -99,9 +99,9 @@ $(document).ready(->
# Define o local de atendimento selecionado previamente (se existir) e anula o parâmetro
# para não carregá-lo mais de uma vez
if params["agendamentos[orgao_id_eq]"]?
$("select#agendamentos_orgao_id_eq option[value=\"" + params["agendamentos[orgao_id_eq]"] + "\"]").attr("selected", "selected")
params["agendamentos[orgao_id_eq]"] = null
if params["schedules[orgao_id_eq]"]?
$("select#agendamentos_orgao_id_eq option[value=\"" + params["schedules[orgao_id_eq]"] + "\"]").attr("selected", "selected")
params["schedules[orgao_id_eq]"] = null
)
)
......@@ -116,22 +116,22 @@ $(document).ready(->
$('select#agendamentos_escala_profissional_executor_id_eq').attr('disabled', 'disabled')
.html('<option value="">Carregando Profissionais...</option>')
# Obtemos os profissionais ligados ao Tipo e ao Local de Atendimento
# do método Agendamentos#profissionais via AJAX e que retorna
# Obtemos os professionais ligados ao Tipo e ao Local de Atendimento
# do método Agendamentos#professionais via AJAX e que retorna
# JSON como formatação de resposta.
$.getJSON(app_root_url + 'agendamentos/' + parseInt(atendimento_id) + '/profissionais/' + parseInt(local_id))
$.getJSON(app_root_url + 'schedules/' + parseInt(atendimento_id) + '/professionais/' + parseInt(local_id))
.done((dados) ->
profissionais = ['<option value="">Todos</option>']
$.each(dados, (i, profissional) ->
profissionais.push('<option value="' + profissional.id + '">' + profissional.nome + '</option>')
professionais = ['<option value="">Todos</option>']
$.each(dados, (i, professional) ->
professionais.push('<option value="' + professional.id + '">' + professional.nome + '</option>')
)
if profissionais.length > 0
$("select#agendamentos_escala_profissional_executor_id_eq").html(profissionais)
if professionais.length > 0
$("select#agendamentos_escala_profissional_executor_id_eq").html(professionais)
.removeAttr('disabled')
else
$("select#agendamentos_escala_profissional_executor_id_eq")
.html('<option value="">Nenhum profissional encontrado!</option>')
.html('<option value="">Nenhum professional encontrado!</option>')
)
)
......
......@@ -75,17 +75,17 @@ jQuery(function($){
// Verificar lembretes
function check_lembretes() {
// Verifica se está logado como cidadão
$.getJSON(app_root_url + '/cidadaos/agendamentos/lembretes.json', function(data) {
var agendamentos = data['agendamentos'];
$.getJSON(app_root_url + '/citizens/schedules/lembretes.json', function(data) {
var schedules = data['schedules'];
// No mínimo verificar lembretes a cada 10 minutos
// Aviso: não colocar um valor muito pequeno por questões de custo computacional
var check_time = 600000;
// Percorre todos os agendamentos do usuario
for(i in agendamentos) {
// Percorre todos os schedules do usuario
for(i in schedules) {
// Horários do inicio da consulta e tempo para enviar lembrete
var consulta_inicio = Date.parse(agendamentos[i]['horario_inicio_atendimento']);
var tempo_lembrete = Date.parse(agendamentos[i]['tempo_lembrete']);
var consulta_inicio = Date.parse(schedules[i]['horario_inicio_atendimento']);
var tempo_lembrete = Date.parse(schedules[i]['tempo_lembrete']);
// A consulta ainda não foi realizada?
if(consulta_inicio > Date.now()) {
......@@ -98,9 +98,9 @@ jQuery(function($){
$(document).attr("title", "(" + notifications + ") Agendador");
// Atualiza status do agendamento
// Atualiza status do schedule
$.ajax({
url: app_root_url + '/agendamentos/' + agendamentos[i]['id'] + '/update_lembrete',
url: app_root_url + '/schedules/' + schedules[i]['id'] + '/update_lembrete',
type: 'PUT',
dataType: 'json',
success: function(response) {
......@@ -130,21 +130,21 @@ jQuery(function($){
$(".notifications").click(function (event) {
/*
* Obtém os agendamentos do cidadão com lembretes a serem notificados, onde:
* Obtém os schedules do cidadão com lembretes a serem notificados, onde:
*
* data['agendamentos'] -> hash com os dados dos agendamentos
* data['schedules'] -> hash com os dados dos schedules
* data['locais_atendimento'] -> hash com os dados dos órgãos
*/
$.getJSON(app_root_url + '/cidadaos/agendamentos/lembretes_notificacao.json', function(data) {
var agendamentos = data['agendamentos'];
$.getJSON(app_root_url + '/citizens/schedules/lembretes_notificacao.json', function(data) {
var schedules = data['schedules'];
var locais_atendimento = data['locais_atendimento'];
var first = false;
// Percorre todos os agendamentos do usuario
for(i in agendamentos) {
var orgao_id = agendamentos[i]['orgao_id'];
var hic = new Date(agendamentos[i]['horario_inicio_atendimento']);
// Percorre todos os schedules do usuario
for(i in schedules) {
var orgao_id = schedules[i]['orgao_id'];
var hic = new Date(schedules[i]['horario_inicio_atendimento']);
var date = (hic.getDay() < 10 ? '0' + hic.getDay() : hic.getDay()) + '/' + (hic.getMonth() < 10 ? '0' + hic.getMonth() : hic.getMonth()) + '/' + hic.getFullYear();
var time = (hic.getHours() < 10 ? '0' + hic.getHours() : hic.getHours()) + ':' + (hic.getMinutes() < 10 ? '0' + hic.getMinutes() : hic.getMinutes());
......@@ -154,12 +154,12 @@ jQuery(function($){
}
if(orgao_id != null) {
$("#notifications-reminders .notificacoes_lembretes").append("<li> <div class=\"notificacoes_id\"> <p> <b> Lembrete! </p> </b> </div> <div class=\"notificacoes_info\"> <p> Agendamento em " + date + " às " + time + " (Local: " + locais_atendimento[orgao_id]['nome'] + ") </p> </div> </li>")
$("#notifications-reminders .notificacoes_lembretes").append("<li> <div class=\"notificacoes_id\"> <p> <b> Lembrete! </p> </b> </div> <div class=\"notificacoes_info\"> <p> Schedule em " + date + " às " + time + " (Local: " + locais_atendimento[orgao_id]['nome'] + ") </p> </div> </li>")
}
// Atualiza status do agendamento
// Atualiza status do schedule
$.ajax({
url: app_root_url + '/agendamentos/' + agendamentos[i]['id'] + '/update_lembrete',
url: app_root_url + '/schedules/' + schedules[i]['id'] + '/update_lembrete',
type: 'PUT',
dataType: 'json',
success: function(response) {
......@@ -195,15 +195,15 @@ jQuery(function($){
click: function() {
if($('#edit_cidadao').length > 0) {
var password = $("<input>").attr("type", "hidden")
.attr("name", "cidadao[current_password]")
.attr("id", "cidadao[current_password]")
.attr("name", "citizen[current_password]")
.attr("id", "citizen[current_password]")
.val($('#current_password_confirmation').val());
$('#edit_cidadao').append($(password)).submit();
} else if($('#edit_profissional').length > 0) {
var password = $("<input>").attr("type", "hidden")
.attr("name", "profissional[current_password]")
.attr("id", "profissional[current_password]")
.attr("name", "professional[current_password]")
.attr("id", "professional[current_password]")
.val($('#current_password_confirmation').val());
$('#edit_profissional').append($(password)).submit();
......@@ -370,7 +370,7 @@ jQuery(function($){
prevText: "Ant"
});
// Obtêm o periodo de agendamentos da prefeitura e define o valor máximo dos datepickers
// Obtêm o periodo de schedules da prefeitura e define o valor máximo dos datepickers
$.getJSON(app_root_url + '/prefeituras/1/periodo_agendamentos.json', function(data) {
$.datepicker.setDefaults({
maxDate: parseInt(data)
......
This diff is collapsed.
This diff is collapsed.
$(document).ready(->
appURL = $('input#app_url').val()
if appURL?
ocupacoes = new Bloodhound({
occupations = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('descricao'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: appURL + 'ocupacoes.json?s=%QUERY'
remote: appURL + 'occupations.json?s=%QUERY'
})
ocupacoes.initialize()
occupations.initialize()
$('input#ocupacoes_descricao').typeahead({
hint: false,
......@@ -15,9 +15,9 @@ $(document).ready(->
minLength: 2
},
{
name: 'ocupacoes',
name: 'occupations',
displayKey: 'descricao',
source: ocupacoes.ttAdapter(),
source: occupations.ttAdapter(),
templates: {
header: '<h3 class="similar">Ocupações semelhantes</h3>'
empty: [ '<div class="empty-message">', 'Nenhuma ocupação semelhante encontrada', '</div>' ].join('\n'),
......
......@@ -27,7 +27,7 @@ body.alto-contraste {
background-color: transparent;
}
/* ------------------------------- */
/* Calendário Agendamento */
/* Calendário Schedule */
/* ------------------------------- */
#termo_compromisso {
color: black;
......
......@@ -257,7 +257,7 @@ hr {
-moz-appearance: none;
-webkit-appearance: none;
}
.actions input, button, #relatorios{
.actions input, button, #reports{
padding: 5px;
text-decoration: none;
background-color: #ff8c03;
......@@ -269,7 +269,7 @@ hr {
color: white;
}
.actions input:active, .actions #relatorios:active {
.actions input:active, .actions #reports:active {
background-color: #e07700;
border: 1px solid #e07700;
}
......@@ -287,7 +287,7 @@ hr {
-moz-border-radius: 6px;
border-radius: 6px;
}
#relatorios a{
#reports a{
background-color: #ff8c03;
-webkit-border-radius: 6px;
-khtml-border-radius: 6px;
......@@ -300,7 +300,7 @@ hr {
color: white;
padding: 7px;
}
#relatorios {
#reports {
margin-top: -39px;
}
.list td {
......@@ -467,7 +467,7 @@ hr {
border-bottom-width: 40px;
}
/* ------------------------------- */
/* Views Cidadao */
/* Views Citizen */
/* ------------------------------- */
#nao-bloqueado h3 {
background: url("ico_calendario_verde.png") no-repeat left bottom transparent;
......@@ -556,7 +556,7 @@ div .field, .actions, .field-required {
}
/* ------------------------------- */
/* Calendário Agendamento */
/* Calendário Schedule */
/* ------------------------------- */
#calendario_agendamento table {
margin-top: 25px;
......
// Place all the styles related to the cidadaos controller here.
// Place all the styles related to the citizens controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
......@@ -482,7 +482,7 @@
display:inline;
}
/* Calendário Agendamento */
/* Calendário Schedule */
#calendario_agendamento table {
margin-top: 5px;
......@@ -684,7 +684,7 @@
#horario_id option:hover {
background-color:#EEE;
}
#texto-agendamento-info {
#texto-schedule-info {
color: #ff0000;
font-size: 13px;
}
......
......@@ -4,7 +4,7 @@ class AgendadorController < ApplicationController
def index
if current_cidadao
if current_cidadao.profissional.nil?
if current_cidadao.professional.nil?
redirect_to cidadaos_agendamentos_historico_path(:home => true)
else
redirect_to profissionais_escalas_path(:home => true)
......@@ -20,14 +20,14 @@ class AgendadorController < ApplicationController
end
end
# GET /profissionais.json?id=1
# GET /professionais.json?id=1
def profissionais_executores
@profissionais = Profissional.select("id, nome")
@professionais = Professional.select("id, nome")
.joins(:locais_atendimento)
.where(:locais_atendimento => { :id => params[:id] })
respond_to do |format|
format.json { render json: @profissionais }
format.json { render json: @professionais }
end
end
......
This diff is collapsed.
......@@ -27,17 +27,17 @@ class ApplicationController < ActionController::Base
def load_prefeitura
if current_cidadao
if current_cidadao.profissional.nil?
if current_cidadao.professional.nil?
@currentPrefeitura = Prefeitura.where(:municipio_id => current_cidadao.municipio_id).first
else
@currentPrefeitura = current_cidadao.profissional.locais_atendimento.first.prefeitura
@currentPrefeitura = current_cidadao.professional.locais_atendimento.first.prefeitura
end
end
end
def check_citizen_city_hall
if current_cidadao
if current_cidadao.profissional.nil?
if current_cidadao.professional.nil?
if !@currentPrefeitura
return redirect_to edit_cidadao_registration_path, alert: "Você deve atualizar seu cadastro antes de utilizar o agendador."
end
......@@ -47,7 +47,7 @@ class ApplicationController < ActionController::Base
def check_citizen_acess
if current_cidadao
if current_cidadao.profissional.nil?
if current_cidadao.professional.nil?
if @currentPrefeitura
if !@currentPrefeitura.acesso_cidadao
sign_out
......@@ -84,10 +84,10 @@ class ApplicationController < ActionController::Base
response.headers["Expires"] = "0"
end
# Define a autorização do profissional corrente.
# Define a autorização do professional corrente.
# @return [CidadaoAbility Object] @current_ability retorna a
# autorização do profissional corrente
# @note usa a função do #current_cidadao.profissional, ver
# autorização do professional corrente
# @note usa a função do #current_cidadao.professional, ver
# {https://github.com/plataformatec/devise#controller-filters-and-helpers
# Devise#current_user}
def current_ability
......
......@@ -3,61 +3,61 @@ class CadastrosController < ApplicationController
before_action :authenticate_cidadao!
load_and_authorize_resource
before_action :valid_profissional_associations, :only =>
[:escalas,:atendimento,:atendimento_update]
[:shifts,:atendimento,:atendimento_update]
before_action :escala_valida_para_alteracao, :only =>
[:escalas_prefeitura_edit,:escalas_prefeitura_update]
def index
@search = Cidadao.search(params[:q])
@cidadaos = @search.result
@search = Citizen.search(params[:q])
@citizens = @search.result
.paginate(page: params[:page], per_page: 25)
respond_to do |format|
format.html # index.html.erb
format.js # index.js.erb
format.json { render json: @profissionais }
format.json { render json: @professionais }
end
end
def edit
@cidadao = Cidadao.find(params[:id])
@citizen = Citizen.find(params[:id])
end
def update
@cidadao = Cidadao.find(params[:id])
@citizen = Citizen.find(params[:id])
respond_to do |format|
if @cidadao.update(cidadao_params)
format.html { redirect_to profissionais_lista_cidadaos_path, notice: "Cidadao: #{@cidadao.nome}, atualizado com sucesso." }
if @citizen.update(cidadao_params)
format.html { redirect_to profissionais_lista_cidadaos_path, notice: "Citizen: #{@citizen.nome}, atualizado com sucesso." }
format.json { head :no_content }
else
format.html { render action: "cidadao_edit" }
format.json { render json: @cidadao.errors, status: :unprocessable_entity }
format.json { render json: @citizen.errors, status: :unprocessable_entity }
end
end
end
def show
@cidadao = Cidadao.find(params[:id])
@citizen = Citizen.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @cidadao }
format.json { render json: @citizen }
end
end
def new
@cidadao = Cidadao.new
@citizen = Citizen.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @cidadao }
format.json { render json: @citizen }
end
end
def cidadao_params
params.require(:cidadao).permit( :email, :password, :password_confirmation,
params.require(:citizen).permit( :email, :password, :password_confirmation,
:current_password, :nome, :cpf, :telefone1,:telefone2, :email, :rg, :cartao_sus,
:id, :data_nascimento, :foto, :observacao)
end
......
......@@ -2,12 +2,12 @@
class Cidadaos::RegistrationsController < Devise::RegistrationsController
before_action :check_professional, :only => [:new, :create]
def update
if params[:cidadao]
if params[:cidadao][:cep]
if !valida_cep(params[:cidadao][:cep])
if params[:citizen]
if params[:citizen][:cep]
if !valida_cep(params[:citizen][:cep])
return redirect_to :back, alert: "CEP inválido."
elsif
info = get_address_info(params[:cidadao][:cep])
info = get_address_info(params[:citizen][:cep])
city_id = get_city_id(get_state_id(info['uf']),info['localidade'])
@city = info['localidade']
@state = info['uf']
......@@ -26,12 +26,12 @@ class Cidadaos::RegistrationsController < Devise::RegistrationsController
end
def new
if params[:cidadao]
if params[:cidadao][:cep]
if !valida_cep(params[:cidadao][:cep])
if params[:citizen]
if params[:citizen][:cep]
if !valida_cep(params[:citizen][:cep])
return redirect_to :back, alert: "CEP inválido."
elsif
info = get_address_info(params[:cidadao][:cep])
info = get_address_info(params[:citizen][:cep])
city_id = get_city_id(get_state_id(info['uf']),info['localidade'])
@city = info['localidade']
@state = info['uf']
......@@ -50,29 +50,29 @@ class Cidadaos::RegistrationsController < Devise::RegistrationsController
end
def create
if params[:cidadao][:cep]
if !valida_cep(params[:cidadao][:cep])
if params[:citizen][:cep]
if !valida_cep(params[:citizen][:cep])
return redirect_to :back, alert: "CEP inválido."
end
end
if params[:cidadao][:municipio_id]
@prefeitura = Prefeitura.where(:municipio_id => params[:cidadao][:municipio_id])
if params[:citizen][:municipio_id]
@prefeitura = Prefeitura.where(:municipio_id => params[:citizen][:municipio_id])
if @prefeitura.size <= 0
return redirect_to :back, alert: "Sua prefeitura não utiliza o agendador. Contate-a para mais informações."
end
end
if params[:cidadao][:cpf]
p = Profissional.where(:cpf => params[:cidadao][:cpf])
if params[:citizen][:cpf]
p = Professional.where(:cpf => params[:citizen][:cpf])
if p.size > 0
return redirect_to :back, alert: "Este CPF já está registrado como profissional."
return redirect_to :back, alert: "Este CPF já está registrado como professional."
end
end
super
end
def check_professional
if current_cidadao.profissional
return redirect_to root_path, alert: "Você está logado como profissional."
if current_cidadao.professional
return redirect_to root_path, alert: "Você está logado como professional."
end
end
end
......@@ -2,7 +2,7 @@
class Cidadaos::SessionsController < Devise::SessionsController
before_action :sessao_profissional, :only => [:new, :create]
# Verifica se uma sessão de profissional já existe.
# Verifica se uma sessão de professional já existe.
# @note redireciona para a página principal com uma mensagem de
# alerta(+alert+).
def sessao_profissional
......@@ -13,8 +13,8 @@ class Cidadaos::SessionsController < Devise::SessionsController
end
def new
if params[:cidadao][:cpf]
c = Cidadao.where(:cpf => params[:cidadao][:cpf])
if params[:citizen][:cpf]
c = Citizen.where(:cpf => params[:citizen][:cpf])
if c.size > 0
c = c.first
city_hall = Prefeitura.where(:municipio_id => c.municipio_id)
......
This diff is collapsed.
......@@ -6,7 +6,7 @@ class ConselhosController < ApplicationController
def index
@link = "Conselhos"
# Used by the typeahead.js plugin to provide search
# functionality in the 'Descricao' field in the Ocupacao's
# functionality in the 'Descricao' field in the Occupation's
# _form partial view.
if params[:s]
query_str = params[:s]
......@@ -63,7 +63,7 @@ class ConselhosController < ApplicationController
# POST /conselhos.json
def create
@conselho = Conselho.new(conselho_params)
if !current_cidadao.profissional.administradorc3sl?
if !current_cidadao.professional.administradorc3sl?
@conselho.ativo = true
end
respond_to do |format|
......
This diff is collapsed.
......@@ -9,7 +9,7 @@ class LocaisAtendimentoController < ApplicationController
@link = "Locais de Atendimento"
@search = LocalAtendimento.search(params[:q])
@locais_atendimento = @search.result
if !current_cidadao.profissional.administradorc3sl?
if !current_cidadao.professional.administradorc3sl?
@locais_atendimento = @locais_atendimento.where(:prefeitura_id => @currentPrefeitura.id)
end
@locais_atendimento = @locais_atendimento.paginate(:page => params[:page], :per_page => 25)
......@@ -65,7 +65,7 @@ class LocaisAtendimentoController < ApplicationController
if !@prefeitura
return redirect_to :back, alert: "Prefeitura inválida."
else
if !current_cidadao.profissional.administradorc3sl?
if !current_cidadao.professional.administradorc3sl?
if @prefeitura.id != @currentPrefeitura.id
return redirect_to :back, alert: "Prefeitura inválida."
end
......@@ -104,7 +104,7 @@ class LocaisAtendimentoController < ApplicationController
if !@prefeitura
return redirect_to :back, alert: "Prefeitura inválida."
else
if !current_cidadao.profissional.administradorc3sl?
if !current_cidadao.professional.administradorc3sl?
if @prefeitura.id != @currentPrefeitura.id
return redirect_to :back, alert: "Prefeitura inválida."
end
......@@ -126,14 +126,14 @@ class LocaisAtendimentoController < ApplicationController
end
end
# Retorna os profissionais de um dado
# Retorna os professionais de um dado
# local de atendimento no formato JSON
def profissionais
def professionais
@local_atendimento = LocalAtendimento.find(params[:id])
if @local_atendimento
# As duas atribuições abaixo correspondem à solução encontrada em:
# http://meltingice.net/2013/06/11/pluck-multiple-columns-rails/
@orgao_profissionais = @local_atendimento.profissionais
@orgao_profissionais = @local_atendimento.professionais
.ativo
.hide_c3sl_user
.select([:id, :nome])
......
......@@ -4,104 +4,104 @@ class OcupacoesController < ApplicationController
before_action :authenticate_adm_prefeitura, only: [:show, :edit, :update]
before_action :fetch_dependencies, only: [:index, :new, :create, :edit, :update]
load_and_authorize_resource
# GET /ocupacoes
# GET /ocupacoes.json
# GET /occupations
# GET /occupations.json
def index
@link = "Cargos"
# Used by the typeahead.js plugin to provide search
# functionality in the 'Descricao' field in the Ocupacao's