alumniime / alumni-ime

Website Alumni IME
6 stars 0 forks source link

Incluir infos profissionais no cadastro #6

Closed llrt closed 6 years ago

llrt commented 6 years ago

Incluir para preenchimento as seguintes infos profissionais (obrigatórias):

Se o cara cadastrar via Linkedin, capturar informações e exibir para o usuário já preenchidas as infos correspondentes, mas permitindo-o alterá-las/complementá-las.

gabrieldilly commented 6 years ago

Quando o linkedin traz as informações profissionais do usuário podem vir vários cargos atuais. Faz sentido permitir que durante o cadastro o usuário coloque vários cargos também?

llrt commented 6 years ago

Creio que não. Entendo que estamos interessados na ocupação principal dele - nesse caso poderíamos deixar até isso claro no label do campo ou criar um Field group "ocupação atual principal" . Vamos discutir com o Moreno isso.

gabrieldilly commented 6 years ago

A ideia atual é carregar o formulário preenchido parcialmente quando o cadastro é pelo Linkedin. Nesse caso, acho que faz sentido exibir todos os cargos da pessoa. E se vale para o linkedin, talvez é válido padronizar da mesma forma para o cadastro com email.

llrt commented 6 years ago

Não vi para preenchimento ainda os campos "Meio atual", "Organização" e "Nível do Cargo".

Na exibição, algumas infos aparecem no headtitle, mas aparecem tb os campos "Cargo atual", "Meio de atuação" (seria o "setor" ou o "meio atual"?) e "Empresa" não preenchidos. Não sei se isto ocorre porque o usuário já existia na base. De qualquer forma, deveria haver uma maneira de dar refresh com as infos do linkedin.

llrt commented 6 years ago

O problema de aparecerem campos não preenchidos era realmente porque meu usuário pré-existia na base. Excluído meu usuário e recadastrado a partir do Linkedin, as infos foram corretamente puxadas daquele site. Persiste porém a necessidade dos campos "Meio atual", "Organização" e "Nível do Cargo" no form de alteração. Outra coisa: ao tentar alterar o cadastro sem mudar nenhuma informação, recebo o erro abaixo:

{"profile":{"name":"Leandro Loriato","role":"user"},"token":{"PersonId":57,"role":"user"},"hasPassword":false,"PersonId":57,"PersonTypeId":3,"LinkedinId":"JDWkvYZQJp","name":"Leandro Loriato","email":"leandroloriato@gmail.com","password":null,"salt":null,"provider":"linkedin","role":"user","EmailVerified":true,"ConfirmEmailToken":null,"ConfirmEmailExpires":null,"ResetPasswordToken":null,"ResetPasswordExpires":null,"LinkedinProfileURL":"https://www.linkedin.com/in/leandro-loriato-0011275","Headline":"IT Dev Team Coordinator at BNDES","LocationId":1,"IndustryId":4,"Summary":"Experienced IT professional with a demonstrated history of working in the banking industry. Skilled in Scrum, Java, Python, SQL, and Linux. Strong IT education, with a Master of Science (MSc) in Mathematical Finance from Instituto de Matematica Pura e Aplicada (IMPA)","Specialties":null,"ImageURL":"https://media.licdn.com/dms/image/C4E00AQHV8xp5yGq-sg/profile-originalphoto-shrink_450_600/0?e=1530583200&v=beta&t=umAQfNldvTL4B2Ix8JjYZ3j2De1YRpnX1IydhRp3PX0","ImageData":null,"FullName":"Leandro Amato Loriato","Birthdate":"1986-09-30T03:00:00.000Z","Genre":null,"Phone":"+55 (21) 99944-4302","GraduationEngineeringId":10,"GraduationYear":2008,"ProfessorSEId":null,"OptionToKnowThePageId":null,"OptionToKnowThePageOther":null,"InitiativeLinkOther":null,"CreateDate":"2018-07-02T01:03:45.000Z","LastActivityDate":"2018-07-02T01:07:23.000Z","IsApproved":false,"IsExcluded":false} Company saved null Position saved (node:234) Warning: a promise was created in a handler at anonymous> (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/server/api/user/user.controller.js:153:23 but was not returned from it, see http://goo.gl/rRqMUw at Function.Promise.cast (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/bluebird/js/release/promise.js:196:13) TypeError: val.replace is not a function at Object.SqlString.escape (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/lib/sql-string.js:63:15) at Object.escape (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/lib/dialects/abstract/query-generator.js:979:22) at Object.whereItemQuery (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2380:22) at /mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2011:25 at /mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/node_modules/lodash/lodash.js:4389:15 at baseForOwn (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/node_modules/lodash/lodash.js:2652:24) at Function.forOwn (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/node_modules/lodash/lodash.js:12254:24) at Object.whereItemsQuery (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2010:9) at Object.getWhereConditions (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2445:19) at Object.selectQuery (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1547:28) at QueryInterface.select (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/lib/query-interface.js:709:25) at Model. (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/lib/model.js:1398:32) From previous event: at Promise.then (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/sequelize/lib/promise.js:21:17) at /mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/server/api/user/user.controller.js:153:10 at nextTask (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/async/dist/async.js:5310:14) at Object.waterfall (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/async/dist/async.js:5320:5) at update (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/server/api/user/user.controller.js:149:9) at Layer.handle [as handle_request] (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/express/lib/router/layer.js:95:5) at next (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/express/lib/router/route.js:137:13) at next (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/composable-middleware/lib/composable-middleware.js:40:9) at next (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/composable-middleware/lib/composable-middleware.js:71:15) at /mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/express-jwt/lib/index.js:128:7 at /mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/express-jwt/node_modules/async/lib/async.js:52:16 at Immediate._onImmediate (/mnt/c/Users/Leandro/dev/workspaces/alumniime/alumni-ime/node_modules/express-jwt/node_modules/async/lib/async.js:1206:34) at runCallback (timers.js:810:20) at tryOnImmediate (timers.js:768:5) at processImmediate [as _immediateCallback] (timers.js:745:5) PUT /api/users/57/profile 500 449.098 ms - -

llrt commented 6 years ago

Outra coisa: trocaria a ordem dos campos "Meio de Atuação" e "Cargo", colocando "Meio de atuação" antes (mais acima) na exibição das infos de cadastro.