示例#1
0
 /**
  * Lista as cidades dos estados que o usuário tem permissão
  *
  * @return mixed
  */
 public function cidade()
 {
     //TODO -> Fazer a lista de estados antes da lista de cidades
     return Cidade::whereIn('estado_id', Estado::permitidos(Auth::user())->lists('id'))->get();
 }
示例#2
0
 /**
  * Metodo para filtrar Vagas por POST,
  * @param categoriaOng  -> id da categoria a ser usada no filtro
  * @param nome          -> nome a ser usado no filtro
  * @param cidade_id      -> id da cidade a ser usado no filtro
  */
 public function postFiltrarvagas()
 {
     $categoriaVaga = Request::get('filtro_categoria');
     $cidade_id = Request::get('filtro_cidade');
     $filtro_ong = Request::get('filtro_ong');
     $categorias = Vaga::getCategoriasComVagas();
     $cidades = Vaga::getCidadesComVagas();
     $ongs = Vaga::getOngsComVagas();
     $causas = new Collection();
     //Montando array de ongs para select
     $ongsArray = array(null => 'Projeto');
     foreach ($ongs as $ong) {
         $ongsArray[$ong->id] = $ong->nome;
     }
     $ongs = $ongsArray;
     //Montando array de cidades para select
     $cidadesArray = array(null => 'Cidade');
     foreach ($cidades as $cidade) {
         $cidadesArray[$cidade->id] = $cidade->nome;
     }
     $cidades = $cidadesArray;
     //Montando array de categorias para select
     $categoriasArray = array(null => 'Categoria');
     foreach ($categorias as $categoria) {
         $categoriasArray[$categoria->id] = $categoria->nomeTraduzido;
     }
     $categorias = $categoriasArray;
     //Filtrando resultados pelas categorias
     if ($categoriaVaga && $categoriaVaga != "null") {
         $vagasByCategoria = CategoriaVaga::findOrFail($categoriaVaga)->vagas;
         $causas = $causas->merge($vagasByCategoria);
     }
     //Filtrando resultados por Cidade
     if ($cidade_id) {
         $vagasByCidade = Cidade::findOrFail($cidade_id)->vagas;
         //Se ja tiver filtrado, entao interseccionar os
         //resultados para maior relevancia
         if (count($causas)) {
             $causas = $causas->intersect($vagasByCidade);
         } else {
             $causas = $causas->merge($vagasByCidade);
         }
     }
     if ($filtro_ong) {
         $causasByOng = Ong::findOrFail($filtro_ong)->vagas;
         if (count($causas)) {
             $causas = $causas->intersect($causasByOng);
         } else {
             $causas = $causas->merge($causasByOng);
         }
     }
     if (!$cidade_id && (!$categoriaVaga || $categoriaVaga == "null") && !$filtro_ong) {
         $causas = Vaga::all();
     }
     return view('cuidar.vagas', compact('causas', 'categorias', 'cidades', 'ongs'));
 }
示例#3
0
 public function edit($id = 0)
 {
     $ong = Ong::findOrFail($id);
     $user = Auth::user();
     //Verificando se usuario logado é owner da ong atual
     //TODO: Model de permissoes..
     if ($ong->user->id != $user->id) {
         //Criar mensagens de erro padrão em configurações??
         App::abort(403, 'Ops, aparentemente voce não tem permissão para editar as informações dessa Ong');
     }
     $foto = $ong->getAvatarUrl();
     $fotoCapa = $ong->getCapaUrl();
     $categoriaSelecionada = $ong->categoria ? $ong->categoria->id : null;
     $categoriasOngs = CategoriaOng::all();
     $cidadeSelecionada = $ong->cidade ? $ong->cidade->id : null;
     $estadoSelecionado = $ong->estado ? $ong->estado->id : null;
     $nome = $ong->nome;
     //Ordenando array de cidades para ficar cidadeID => cidadeNome
     $cidades = Cidade::all()->keyBy('id');
     foreach ($cidades as $cidade) {
         $cidadesArray[$cidade->id] = $cidade->nome;
     }
     $cidades = $cidadesArray;
     //Ordenando array de estados para ficar estadoID => estadoNome
     $estados = Estado::all();
     $estadosArray = array(0 => 'Estado');
     foreach ($estados as $estado) {
         $estadosArray[$estado->id] = $estado->nome;
     }
     $estados = $estadosArray;
     //Trocando entidadeAtiva para essa ong
     Session::put('entidadeAtiva_id', $ong->id);
     Session::put('entidadeAtiva_tipo', 'ong');
     $ong->url = $ong->getUrl();
     return view('ong.edit', compact('user', 'ong', 'foto', 'fotoCapa', 'nome', 'categoriaSelecionada', 'categoriasOngs', 'cidades', 'estados', 'cidadeSelecionada', 'estadoSelecionado'));
 }
示例#4
0
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit($id)
 {
     $vaga = Vaga::findOrFail($id);
     $categoriaSelecionada = $vaga->categoria ? $vaga->categoria->id : null;
     $cidadeSelecionada = $vaga->cidade ? $vaga->cidade->id : null;
     $estadoSelecionado = $vaga->estado ? $vaga->estado->id : null;
     //@TODO: Arranjar meio seguro de pegar ongs, se alguma outra entidade for owner talvez de problema.
     $ongSelecionada = $vaga->owner->id;
     if (!$vaga->podeEditar) {
         App::abort(403, "Voce não tem permissao para editar essa Vaga");
     }
     //Obtendo ongs do usuario
     $ongs = Auth::user()->ongs;
     //Montando array de ongs para select
     $ongsArray = array(0 => 'Projeto');
     foreach ($ongs as $ong) {
         $ongsArray[$ong->id] = $ong->nome;
     }
     $ongs = $ongsArray;
     $categoriasVaga = CategoriaVaga::all();
     //Ordenando array de cidades para ficar cidadeID => cidadeNome
     $cidades = Cidade::all()->keyBy('id');
     foreach ($cidades as $cidade) {
         $cidadesArray[$cidade->id] = $cidade->nome;
     }
     $cidades = $cidadesArray;
     //Ordenando array de estados para ficar estadoID => estadoNome
     $estados = Estado::all();
     $estadosArray = array(0 => 'Estado');
     foreach ($estados as $estado) {
         $estadosArray[$estado->id] = $estado->nome;
     }
     $estados = $estadosArray;
     return view('vaga.edit', compact('vaga', 'categoriasVaga', 'ongs', 'cidades', 'estados', 'categoriaSelecionada', 'cidadeSelecionada', 'estadoSelecionado', 'ongSelecionada'));
 }
示例#5
0
 public function getCidades($idEstado)
 {
     $cidades = Cidade::where('estado', $idEstado)->get(['id', 'nome']);
     return response()->json($cidades);
 }
 public function search($type, $val)
 {
     if ($type == "0") {
         $cidades = Cidade::where('nome', $val)->paginate($this->max_rows);
     } elseif ($type == "1") {
         $cidades = Cidade::where('nome', 'LIKE', $val . '%')->paginate($this->max_rows);
     } elseif ($type == "2") {
         $cidades = Cidade::where('nome', 'LIKE', '%' . $val . '%')->paginate($this->max_rows);
     } else {
         $cidades = Cidade::where('nome', $val)->paginate($this->max_rows);
     }
     return view('main', ['cidades' => $cidades]);
 }