caronae / caronae-backend

[Projeto descontinuado] Backend do Caronaê, app open-source de caronas usado por mais de 15 mil alunos da UFRJ
https://caronae.org
GNU General Public License v3.0
38 stars 16 forks source link

Exibir caronas da usuária na área administrativa #34

Closed macecchi closed 6 years ago

macecchi commented 6 years ago

Na área administrativa existe uma view que mostra o perfil da usuária, como na imagem abaixo. Essa tela é usada pela equipe do Caronaê principalmente quando alguma pessoa tem algum problema e entra em contato com a gente, e precisamos encontrar os dados da pessoa:

screen shot 2018-10-20 at 21 36 12

No entanto, essa view atualmente não traz mais informações além do próprio perfil da usuária.

A ideia é acrescentar informações das caronas da usuária - como as caronas ofertadas e as caronas que ela participou. O próprio model User já retorna as caronas pelo método $user->rides(), que inclui um campo status que indica qual o relacionamento dele com a carona - driver, accepted, pending e refused.

A minha ideia era ter um bloco similar ao de 'Detalhes do usuário', só que de 'Caronas do usuário'. As caronas listadas podem exibir algumas informações, como:

Código do controller: https://github.com/caronae/caronae-backend/blob/master/app/Http/Controllers/Admin/UserController.php (usamos a biblioteca Laravel Backpack CRUD, mas essa view é feita na mão, então não faz tanta diferença). Código da view: https://github.com/caronae/caronae-backend/blob/master/resources/views/users/show.blade.php

jcavalin commented 6 years ago

@macecchi

Eu não tenho experiência com Laravel, então estou com uma dúvida: a melhor maneira de fazer essa lista seria fazer um foreach na view criando uma <table> simples? Não gosto muito dessa ideia pela falta da paginação. Caso tenha uma sugestão melhor, você poderia me dar um norte?

Outra dúvida, como pego o "status da usuária na carona"?

Obrigado.

macecchi commented 6 years ago

@jcavalin

Basicamente isso mesmo!

Tanto faz se usa <table> ou não, pode ser até uma lista (<ul>). Um exemplo de design de como mostramos uma lista de caronas nos apps é assim, bem simples mesmo. Não precisa ser nada demais, e podemos melhorar o design depois mesmo :)

img_2313

Pra pegar o status é só fazer $ride->status. O status é uma coluna "pivot" do relacionamento, então quando vc pega as caronas da usuária, o Laravel já adiciona essa coluna, que pode ter o valor driver, accepted, refused ou pending.

macecchi commented 6 years ago

PR #38 mergeado. Muito obrigado pela contribuição, @jcavalin!