Create a sign up form where the new user selects which language they are learning
ykdojo opened this issue · comments
We're going to start with just Japanese and English.
I'm going to work on this next.
People should be able to select one of "both Japanese and English," "only Japanese", or "only English".
UI text for this:
Select your languages
I'm learning...
- Japanese or English, or both
I'm fluent in...
- Japanese or English, or both (make this UI general enough so we can add more languages later)
NOTE: People need to select at least one language in each category.
Also add something like the following:
NOTE: It's currently only available for Japanese and English. If you want to practice writing in other languages, please sign up for our waiting list here: https://www.csdojo.io/wait
TODO Next: When someone selects English or Japanese, a plus sign should appear for people to select another language. (but not the same one twice)
Also, TODO: We should fix the style a bit so it looks better.
Just found this. I'm thinking of using it: https://developer.snapappointments.com/bootstrap-select/
Experimented with it a little bit, and it looks really good. However, it looks like bootstrap-select and material-kit try to fight with each other when I try to use them at the same time. Will need to figure out a way to make them work at the same time.
Okay, the problem is this:
In order for us to use bootstrap-select, we need to use the plain bootstrap CSS and JS files.
So, there's no easy way to use bootstrap-select and material-kit at the same time.
I still really like how material-kit looks, so I think I'll prioritize that.
Instead of using bootstrap-select, I'll add a bit of code so we can do multi-selecting.. At least that's my plan right now. Or maybe we can look for another multi-select library.
People can now select multiple languages. (d6cd571)
Now we will have to:
A) Fix the style so it looks nicer
B) Write some backend code so people can actually sign up
Oops. Actually, this code contained a bug. When you select Japanese and immediately change it to English, it keeps creating more and more select elements. Will need to fix it... maybe I'll take care of this tomorrow.
Fixed it (1e47642). This works well now. We still need to fix the styles though-- will make this a new issue.
Actually, this is not quite done yet. Still need to make backend and database changes.
Just started working on this.
Looks like we'll need to use fixtures to load initial language data.
https://docs.djangoproject.com/en/2.1/howto/initial-data/
TODO next: create a relationship between users and languages (each user can be fluent in one or more languages, as well as learning one or more languages)
Next: Connect the UI to the database so the user is able to select which languages they are learning / fluent in
(NOTE: you can get learning_languages of a user with user.learning_languages, for example.)