* fix type mismatch in third_party_auth migrations
* fix type mismatch in verify_student migrations
* fix type mismatch in video_config migrations
* fix type mismatch in verified_track_content migrations
* fix type mismatch in commercemigrations
* fix type mismatch in xblock_config migrations
* fix type mismatch in course_creators migrations
* fix type mismatch in contentstore migrations
* fix type mismatch in course_goals migrations
* fix type mismatch in experiments migrations
* fix type mismatch in xblock_django migrations
* fix type mismatch in catalog migrations
* fix type mismatch in static_replace migrations
* fix type mismatch in bulk_email migrations
* fix type mismatch in course_overviews migrations
* Fix type mismatches in the course_modes migrations
* Fix type mismatches in the course_action_state migrations
* Fix type mismatches in the schedules migrations
* Fix type mismatches in grades migrations
* Fix type mismatches in video_pipeline
* Fix type mismatches in api_admin
* Fix mismatches in credential migrations
* Fix type mismatches in track migrations
* Fix type mismatches in oauth_dispatch
* Fix type mismatches in badges migrations
* fix type mismatch in contentserver migrations
* Fix type mismatches in mobile_api migrations
* fix type mismatch in crawlers migrations
* fix type mismatch in dark_lang migrations
* fix type mismatch in branding migrations
* For all files, from __future__ import unicode_literals.
* Add @python_2_unicode_compatible to both models.
* Test six.string_type(obj) for both models.
Also, fix some new pylint warnings and improve model repr methods.
MST-24
We need to do this because when I tride to go to the JSON serializer a
bunch of tests started failing because various parts of our code are
putting things into the session that are not JSON serializable.
We can't keep using the default pickle serializer because it defaluts to
using the highest available protocol and that will cause issues with the
python 2 to 3 upgrade since both will be running in production at the
same time. We need to use a version of the pickle protocol that both
can use interchangably.
We also need to make sure we read with latin1 encoding to make datetimes
work correctly between the two versions of python.
Develop the capability to allow instructors to designate teams to have private discussions. This way, so non-teammembers cannot view discussion. And the intend is for course teams to manage the team membership as well.
MST-10
This will force a logout as sessions fail to load but this should be a
more performant and secure serializer moving forward. The reason we
overwrote it in our config is that it previously used to be the default
and we didn't want things to breake and force logouts when we changed
it. We're no more okay with people getting logged out.
DescriptorWithMixins are dynamically created and do not have a hash
class method. Those classes had hash values in python2 but do not
have a default hash in python3. Thus those class objects can not be
used as dict keys. Used location of section/unit instead of real object
for cache dict. Location object is hashable.